From 4664ace4f65fbe1fd47fc06d1d5aacffa4661801 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 17 Oct 2014 17:23:57 -0400 Subject: [PATCH 001/536] Created subdirectories, source and bin, and moved files around --- BAMbinSortByCoordinate.cpp | 58 + BAMbinSortByCoordinate.h | 9 + BAMfunctions.cpp | 38 + BAMfunctions.h | 8 + BAMoutput.cpp | 101 + BAMoutput.h | 33 + ErrorWarning.cpp | 19 + ErrorWarning.h | 8 + Genome.cpp | 452 +++ Genome.h | 22 + GlobalVariables.cpp | 5 + GlobalVariables.h | 9 + InOutStreams.cpp | 43 + InOutStreams.h | 23 + IncludeDefine.h | 216 ++ Mac_Include/omp.h | 87 + Makefile | 112 + OutSJ.cpp | 105 + OutSJ.h | 53 + PackedArray.cpp | 27 + PackedArray.h | 31 + ParameterInfo.h | 112 + Parameters.cpp | 989 ++++++ Parameters.h | 236 ++ Parameters_closeReadsFiles.cpp | 12 + Parameters_openReadsFiles.cpp | 100 + ReadAlign.cpp | 121 + ReadAlign.h | 140 + ReadAlignChunk.cpp | 132 + ReadAlignChunk.h | 42 + ReadAlignChunk_mapChunk.cpp | 108 + ReadAlignChunk_processChunks.cpp | 167 + ReadAlign_alignBAM.cpp | 454 +++ ReadAlign_assignAlignToWindow.cpp | 123 + ReadAlign_chimericDetection.cpp | 330 ++ ReadAlign_createExtendWindowsWithAlign.cpp | 85 + ReadAlign_mapOneRead.cpp | 93 + ReadAlign_maxMappableLength2strands.cpp | 101 + ReadAlign_multMapSelect.cpp | 56 + ReadAlign_oneRead.cpp | 77 + ReadAlign_outputAlignments.cpp | 141 + ReadAlign_outputTranscriptCIGARp.cpp | 65 + ReadAlign_outputTranscriptSAM.cpp | 297 ++ ReadAlign_outputTranscriptSJ.cpp | 54 + ReadAlign_quantTranscriptome.cpp | 60 + ReadAlign_stitchPieces.cpp | 436 +++ ReadAlign_stitchWindowSeeds.cpp | 201 ++ ReadAlign_storeAligns.cpp | 73 + STAR.cpp | 346 ++ SequenceFuns.cpp | 170 + SequenceFuns.h | 22 + SjdbClass.h | 14 + Stats.cpp | 136 + Stats.h | 35 + SuffixArrayFuns.cpp | 217 ++ SuffixArrayFuns.h | 16 + ThreadControl.cpp | 7 + ThreadControl.h | 28 + TimeFunctions.cpp | 20 + TimeFunctions.h | 9 + Transcript.cpp | 39 + Transcript.h | 60 + Transcriptome.cpp | 43 + Transcriptome.h | 29 + Transcriptome_quantAlign.cpp | 102 + alignSmithWaterman.cpp | 152 + alignSmithWaterman.h | 2 + bamRemoveDuplicates.cpp | 236 ++ bamRemoveDuplicates.h | 10 + bam_cat.c | 140 + binarySearch2.cpp | 43 + binarySearch2.h | 7 + blocksOverlap.cpp | 41 + blocksOverlap.h | 10 + extendAlign.cpp | 94 + extendAlign.h | 5 + genomeGenerate.cpp | 628 ++++ genomeGenerate.h | 4 + htslib/.gitignore | 21 + htslib/.travis.yml | 8 + htslib/Makefile | 303 ++ htslib/README.md | 17 + htslib/bgzf.c | 1085 ++++++ htslib/bgzip.c | 283 ++ htslib/config.h | 3 + htslib/cram/cram.h | 66 + htslib/cram/cram_codecs.c | 1764 ++++++++++ htslib/cram/cram_codecs.h | 155 + htslib/cram/cram_decode.c | 2138 ++++++++++++ htslib/cram/cram_decode.h | 112 + htslib/cram/cram_encode.c | 2630 ++++++++++++++ htslib/cram/cram_encode.h | 105 + htslib/cram/cram_index.c | 503 +++ htslib/cram/cram_index.h | 98 + htslib/cram/cram_io.c | 3652 ++++++++++++++++++++ htslib/cram/cram_io.h | 532 +++ htslib/cram/cram_samtools.c | 144 + htslib/cram/cram_samtools.h | 97 + htslib/cram/cram_stats.c | 357 ++ htslib/cram/cram_stats.h | 59 + htslib/cram/cram_structs.h | 752 ++++ 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 | 386 +++ htslib/cram/open_trace_file.h | 115 + htslib/cram/os.h | 306 ++ htslib/cram/pooled_alloc.c | 170 + htslib/cram/pooled_alloc.h | 56 + htslib/cram/sam_header.c | 1222 +++++++ htslib/cram/sam_header.h | 452 +++ htslib/cram/string_alloc.c | 153 + htslib/cram/string_alloc.h | 69 + htslib/cram/thread_pool.c | 713 ++++ htslib/cram/thread_pool.h | 197 ++ htslib/cram/vlen.c | 432 +++ htslib/cram/vlen.h | 48 + htslib/cram/zfio.c | 185 + htslib/cram/zfio.h | 54 + htslib/faidx.5 | 124 + htslib/faidx.c | 421 +++ htslib/hfile.c | 526 +++ htslib/hfile_internal.h | 75 + htslib/hfile_net.c | 99 + htslib/hts.c | 1326 +++++++ htslib/htslib.mk | 127 + htslib/htslib/bgzf.h | 313 ++ htslib/htslib/faidx.h | 112 + htslib/htslib/hfile.h | 204 ++ htslib/htslib/hts.h | 305 ++ htslib/htslib/hts_defs.h | 47 + htslib/htslib/kfunc.h | 49 + htslib/htslib/khash.h | 617 ++++ htslib/htslib/khash_str2int.h | 98 + htslib/htslib/klist.h | 121 + htslib/htslib/knetfile.h | 75 + htslib/htslib/kseq.h | 253 ++ htslib/htslib/ksort.h | 285 ++ htslib/htslib/kstdint.h | 64 + htslib/htslib/kstring.h | 270 ++ htslib/htslib/sam.h | 401 +++ htslib/htslib/synced_bcf_reader.h | 255 ++ htslib/htslib/tbx.h | 52 + htslib/htslib/vcf.h | 824 +++++ htslib/htslib/vcf_sweep.h | 15 + htslib/htslib/vcfutils.h | 94 + htslib/htslib_vars.mk | 20 + htslib/kfunc.c | 254 ++ htslib/knetfile.c | 622 ++++ htslib/kstring.c | 229 ++ htslib/sam.5 | 45 + htslib/sam.c | 1797 ++++++++++ htslib/synced_bcf_reader.c | 1183 +++++++ htslib/tabix.1 | 132 + htslib/tabix.c | 374 ++ htslib/tbx.c | 290 ++ htslib/vcf.5 | 96 + htslib/vcf.c | 2967 ++++++++++++++++ htslib/vcf_sweep.c | 158 + htslib/vcfutils.c | 642 ++++ loadGTF.cpp | 215 ++ loadGTF.h | 7 + mapThreadsSpawn.cpp | 29 + mapThreadsSpawn.h | 7 + outputSJ.cpp | 154 + outputSJ.h | 4 + parametersDefault | 470 +++ readLoad.cpp | 151 + readLoad.h | 10 + serviceFuns.cpp | 68 + signalFromBAM.cpp | 204 ++ signalFromBAM.h | 13 + sjSplitAlign.cpp | 13 + sjdbBuildIndex.cpp | 269 ++ sjdbBuildIndex.h | 10 + sjdbLoadFromStream.cpp | 29 + sjdbLoadFromStream.h | 8 + sjdbPrepare.cpp | 202 ++ sjdbPrepare.h | 9 + stitchAlignToTranscript.cpp | 385 +++ stitchAlignToTranscript.h | 6 + stitchGapIndel.cpp | 56 + stitchWindowAligns.cpp | 342 ++ stitchWindowAligns.h | 12 + streamFuns.cpp | 60 + streamFuns.h | 12 + stringSubstituteAll.cpp | 10 + stringSubstituteAll.h | 8 + sysRemoveDir.cpp | 22 + sysRemoveDir.h | 8 + 193 files changed, 48382 insertions(+) create mode 100644 BAMbinSortByCoordinate.cpp create mode 100644 BAMbinSortByCoordinate.h create mode 100644 BAMfunctions.cpp create mode 100644 BAMfunctions.h create mode 100644 BAMoutput.cpp create mode 100644 BAMoutput.h create mode 100644 ErrorWarning.cpp create mode 100644 ErrorWarning.h create mode 100644 Genome.cpp create mode 100644 Genome.h create mode 100644 GlobalVariables.cpp create mode 100644 GlobalVariables.h create mode 100644 InOutStreams.cpp create mode 100644 InOutStreams.h create mode 100644 IncludeDefine.h create mode 100644 Mac_Include/omp.h create mode 100644 Makefile create mode 100644 OutSJ.cpp create mode 100644 OutSJ.h create mode 100644 PackedArray.cpp create mode 100644 PackedArray.h create mode 100644 ParameterInfo.h create mode 100644 Parameters.cpp create mode 100644 Parameters.h create mode 100644 Parameters_closeReadsFiles.cpp create mode 100644 Parameters_openReadsFiles.cpp create mode 100644 ReadAlign.cpp create mode 100644 ReadAlign.h create mode 100644 ReadAlignChunk.cpp create mode 100644 ReadAlignChunk.h create mode 100644 ReadAlignChunk_mapChunk.cpp create mode 100644 ReadAlignChunk_processChunks.cpp create mode 100644 ReadAlign_alignBAM.cpp create mode 100644 ReadAlign_assignAlignToWindow.cpp create mode 100644 ReadAlign_chimericDetection.cpp create mode 100644 ReadAlign_createExtendWindowsWithAlign.cpp create mode 100644 ReadAlign_mapOneRead.cpp create mode 100644 ReadAlign_maxMappableLength2strands.cpp create mode 100644 ReadAlign_multMapSelect.cpp create mode 100644 ReadAlign_oneRead.cpp create mode 100644 ReadAlign_outputAlignments.cpp create mode 100644 ReadAlign_outputTranscriptCIGARp.cpp create mode 100644 ReadAlign_outputTranscriptSAM.cpp create mode 100644 ReadAlign_outputTranscriptSJ.cpp create mode 100644 ReadAlign_quantTranscriptome.cpp create mode 100644 ReadAlign_stitchPieces.cpp create mode 100644 ReadAlign_stitchWindowSeeds.cpp create mode 100644 ReadAlign_storeAligns.cpp create mode 100644 STAR.cpp create mode 100644 SequenceFuns.cpp create mode 100644 SequenceFuns.h create mode 100644 SjdbClass.h create mode 100644 Stats.cpp create mode 100644 Stats.h create mode 100644 SuffixArrayFuns.cpp create mode 100644 SuffixArrayFuns.h create mode 100644 ThreadControl.cpp create mode 100644 ThreadControl.h create mode 100644 TimeFunctions.cpp create mode 100644 TimeFunctions.h create mode 100644 Transcript.cpp create mode 100644 Transcript.h create mode 100644 Transcriptome.cpp create mode 100644 Transcriptome.h create mode 100644 Transcriptome_quantAlign.cpp create mode 100644 alignSmithWaterman.cpp create mode 100644 alignSmithWaterman.h create mode 100644 bamRemoveDuplicates.cpp create mode 100644 bamRemoveDuplicates.h create mode 100644 bam_cat.c create mode 100644 binarySearch2.cpp create mode 100644 binarySearch2.h create mode 100644 blocksOverlap.cpp create mode 100644 blocksOverlap.h create mode 100644 extendAlign.cpp create mode 100644 extendAlign.h create mode 100644 genomeGenerate.cpp create mode 100644 genomeGenerate.h create mode 100644 htslib/.gitignore create mode 100644 htslib/.travis.yml create mode 100644 htslib/Makefile create mode 100644 htslib/README.md create mode 100644 htslib/bgzf.c create mode 100644 htslib/bgzip.c create mode 100644 htslib/config.h create mode 100644 htslib/cram/cram.h create mode 100644 htslib/cram/cram_codecs.c create mode 100644 htslib/cram/cram_codecs.h create mode 100644 htslib/cram/cram_decode.c create mode 100644 htslib/cram/cram_decode.h create mode 100644 htslib/cram/cram_encode.c create mode 100644 htslib/cram/cram_encode.h create mode 100644 htslib/cram/cram_index.c create mode 100644 htslib/cram/cram_index.h create mode 100644 htslib/cram/cram_io.c create mode 100644 htslib/cram/cram_io.h create mode 100644 htslib/cram/cram_samtools.c create mode 100644 htslib/cram/cram_samtools.h create mode 100644 htslib/cram/cram_stats.c create mode 100644 htslib/cram/cram_stats.h create mode 100644 htslib/cram/cram_structs.h create mode 100644 htslib/cram/files.c create mode 100644 htslib/cram/mFILE.c create mode 100644 htslib/cram/mFILE.h create mode 100644 htslib/cram/md5.c create mode 100644 htslib/cram/md5.h create mode 100644 htslib/cram/misc.h create mode 100644 htslib/cram/open_trace_file.c create mode 100644 htslib/cram/open_trace_file.h create mode 100644 htslib/cram/os.h create mode 100644 htslib/cram/pooled_alloc.c create mode 100644 htslib/cram/pooled_alloc.h create mode 100644 htslib/cram/sam_header.c create mode 100644 htslib/cram/sam_header.h create mode 100644 htslib/cram/string_alloc.c create mode 100644 htslib/cram/string_alloc.h create mode 100644 htslib/cram/thread_pool.c create mode 100644 htslib/cram/thread_pool.h create mode 100644 htslib/cram/vlen.c create mode 100644 htslib/cram/vlen.h create mode 100644 htslib/cram/zfio.c create mode 100644 htslib/cram/zfio.h create mode 100644 htslib/faidx.5 create mode 100644 htslib/faidx.c create mode 100644 htslib/hfile.c create mode 100644 htslib/hfile_internal.h create mode 100644 htslib/hfile_net.c create mode 100644 htslib/hts.c create mode 100644 htslib/htslib.mk create mode 100644 htslib/htslib/bgzf.h create mode 100644 htslib/htslib/faidx.h create mode 100644 htslib/htslib/hfile.h create mode 100644 htslib/htslib/hts.h create mode 100644 htslib/htslib/hts_defs.h create mode 100644 htslib/htslib/kfunc.h create mode 100644 htslib/htslib/khash.h create mode 100644 htslib/htslib/khash_str2int.h create mode 100644 htslib/htslib/klist.h create mode 100644 htslib/htslib/knetfile.h create mode 100644 htslib/htslib/kseq.h create mode 100644 htslib/htslib/ksort.h create mode 100644 htslib/htslib/kstdint.h create mode 100644 htslib/htslib/kstring.h create mode 100644 htslib/htslib/sam.h create mode 100644 htslib/htslib/synced_bcf_reader.h create mode 100644 htslib/htslib/tbx.h create mode 100644 htslib/htslib/vcf.h create mode 100644 htslib/htslib/vcf_sweep.h create mode 100644 htslib/htslib/vcfutils.h create mode 100644 htslib/htslib_vars.mk create mode 100644 htslib/kfunc.c create mode 100644 htslib/knetfile.c create mode 100644 htslib/kstring.c create mode 100644 htslib/sam.5 create mode 100644 htslib/sam.c create mode 100644 htslib/synced_bcf_reader.c create mode 100644 htslib/tabix.1 create mode 100644 htslib/tabix.c create mode 100644 htslib/tbx.c create mode 100644 htslib/vcf.5 create mode 100644 htslib/vcf.c create mode 100644 htslib/vcf_sweep.c create mode 100644 htslib/vcfutils.c create mode 100644 loadGTF.cpp create mode 100644 loadGTF.h create mode 100644 mapThreadsSpawn.cpp create mode 100644 mapThreadsSpawn.h create mode 100644 outputSJ.cpp create mode 100644 outputSJ.h create mode 100644 parametersDefault create mode 100644 readLoad.cpp create mode 100644 readLoad.h create mode 100644 serviceFuns.cpp create mode 100644 signalFromBAM.cpp create mode 100644 signalFromBAM.h create mode 100644 sjSplitAlign.cpp create mode 100644 sjdbBuildIndex.cpp create mode 100644 sjdbBuildIndex.h create mode 100644 sjdbLoadFromStream.cpp create mode 100644 sjdbLoadFromStream.h create mode 100644 sjdbPrepare.cpp create mode 100644 sjdbPrepare.h create mode 100644 stitchAlignToTranscript.cpp create mode 100644 stitchAlignToTranscript.h create mode 100644 stitchGapIndel.cpp create mode 100644 stitchWindowAligns.cpp create mode 100644 stitchWindowAligns.h create mode 100644 streamFuns.cpp create mode 100644 streamFuns.h create mode 100644 stringSubstituteAll.cpp create mode 100644 stringSubstituteAll.h create mode 100644 sysRemoveDir.cpp create mode 100644 sysRemoveDir.h diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp new file mode 100644 index 0000000..eca4052 --- /dev/null +++ b/BAMbinSortByCoordinate.cpp @@ -0,0 +1,58 @@ +#include "BAMbinSortByCoordinate.h" +#include "ErrorWarning.h" +#include "serviceFuns.cpp" +#include "BAMfunctions.h" + +void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters *P) { + + if (binS==0) return; //nothing to do for empty bins + //allocate arrays + char *bamIn=new char[binS]; + uint *startPos=new uint[binN*3]; + + uint bamInBytes=0; + //load all aligns + for (uint it=0; itinOut->logMain, 1, *P); + }; + + //extract coordinates + + for (uint ib=0,ia=0;iaoutBAMcompression)).c_str()); + outBAMwriteHeader(bgzfBin,P->samHeader,P->chrName,P->chrLength); + //send ordered aligns to bgzf one-by-one + for (uint ia=0;ia &chrn, const vector &chrl) { + bgzf_write(fp,"BAM\001",4); + int32 hlen=samh.size(); + bgzf_write(fp,(char*) &hlen,sizeof(hlen)); + bgzf_write(fp,samh.c_str(),hlen); + int32 nchr=(int32) chrn.size(); + bgzf_write(fp,(char*) &nchr,sizeof(nchr)); + for (int32 ii=0;ii +TintType bamAttributeInt(const char *bamAux, const char *attrName) {//not tested!!! + char *attrStart=strstr(bamAux,attrName); + if (attrStart==NULL) return (TintType) -1; + switch (attrStart[2]) { + case ('c'): + return (TintType) *(int8_t*)(attrStart+3); + case ('s'): + return (TintType) *(int16_t*)(attrStart+3); + case ('i'): + return (TintType) *(int32_t*)(attrStart+3); + case ('C'): + return (TintType) *(uint8_t*)(attrStart+3); + case ('S'): + return (TintType) *(uint16_t*)(attrStart+3); + case ('I'): + return (TintType) *(uint32_t*)(attrStart+3); + }; +}; \ No newline at end of file diff --git a/BAMfunctions.h b/BAMfunctions.h new file mode 100644 index 0000000..b53e0d0 --- /dev/null +++ b/BAMfunctions.h @@ -0,0 +1,8 @@ +#ifndef DEF_BAMfunctions +#define DEF_BAMfunctions + +#include "IncludeDefine.h" +#include SAMTOOLS_BGZF_H + void outBAMwriteHeader (BGZF* fp, const string &samh, const vector &chrn, const vector &chrl); + +#endif \ No newline at end of file diff --git a/BAMoutput.cpp b/BAMoutput.cpp new file mode 100644 index 0000000..06f56f4 --- /dev/null +++ b/BAMoutput.cpp @@ -0,0 +1,101 @@ +#include "BAMoutput.h" +#include +#include "GlobalVariables.h" +#include + +BAMoutput::BAMoutput (uint64 bamArraySizeIn, uint32 nBinsIn, uint64 genomeSize, int iChunk, string tmpDir) {//allocate bam array + + nBins=nBinsIn; + binGlen=genomeSize/(nBins-1)+1; + binSize=bamArraySizeIn/nBins; + bamArraySize=binSize*nBins; + bamArray = new char [bamArraySize]; + + mkdir((tmpDir+to_string((uint) iChunk)).c_str(),S_IRWXU); + binStart=new char* [nBins]; + binBytes=new uint64 [nBins]; + binStream=new ofstream* [nBins]; + binTotalN=new uint [nBins]; + binTotalBytes=new uint [nBins]; + for (uint ii=0;ii bamArraySize) {//write out this buffer + + if (g_threadChunks.threadBool) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); + bgzf_write(bgzfBAM,bamArray,binBytes1); + if (g_threadChunks.threadBool) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); + + binBytes1=0;//rewind the buffer + }; + + memcpy(bamArray+binBytes1, bamIn, bamSize); + binBytes1 += bamSize; + +}; + +void BAMoutput::unsortedFlush () {//flush all alignments + if (g_threadChunks.threadBool) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); + bgzf_write(bgzfBAM,bamArray,binBytes1); + if (g_threadChunks.threadBool) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); + binBytes1=0;//rewind the buffer +}; + +void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint chrStart, uint iRead) { + + if (bamSize==0) return; //no output, could happen if one of the mates is not mapped + + uint iBin; + uint32 alignG= *( (uint32*) (bamIn+2*sizeof(uint32)) ); + if ( alignG == (uint32) -1 ) {//unmapped alignment, last bin + iBin=nBins-1; + } else { + iBin=(alignG + chrStart)/binGlen; + }; + + if (binBytes[iBin]+bamSize+sizeof(uint) > binSize) {//write out this buffer + binStream[iBin]->write(binStart[iBin],binBytes[iBin]); + binBytes[iBin]=0;//rewind the buffer + }; + + memcpy(binStart[iBin]+binBytes[iBin], bamIn, bamSize); + binBytes[iBin] += bamSize; + memcpy(binStart[iBin]+binBytes[iBin], &iRead, sizeof(uint)); + binBytes[iBin] += sizeof(uint); + binTotalBytes[iBin] += bamSize+sizeof(uint); + binTotalN[iBin] += 1; + +}; + +void BAMoutput::coordFlush () {//flush all alignments + for (uint32 iBin=0; iBinwrite(binStart[iBin],binBytes[iBin]); + binStream[iBin]->flush(); + binBytes[iBin]=0;//rewind the buffer + }; +}; diff --git a/BAMoutput.h b/BAMoutput.h new file mode 100644 index 0000000..9825f92 --- /dev/null +++ b/BAMoutput.h @@ -0,0 +1,33 @@ +#ifndef CODE_BAMoutput +#define CODE_BAMoutput + +#include "IncludeDefine.h" +#include SAMTOOLS_BGZF_H + + +class BAMoutput {// +public: + //sorted output + BAMoutput (uint64 bamArraySizeIn, uint32 nBinsIn, uint64 genomeSize, int iChunk, string tmpDir); + void coordOneAlign (char *bamIn, uint bamSize, uint chrStart, uint iRead); + void coordFlush (); + //unsorted output + BAMoutput (uint64 bamArraySizeIn, BGZF *bgzfBAMin); + void unsortedOneAlign (char *bamIn, uint bamSize, uint bamSize2); + void unsortedFlush (); + + uint32 nBins; //number of bins to split genome into + uint* binTotalN; //total number of aligns in each bin + uint* binTotalBytes;//total size of aligns in each bin +private: + uint64 bamArraySize; //this size will be allocated + char* bamArray; //large array to store the bam alignments, pre-sorted + uint64 binSize;//storage size of each bin + uint64 binGlen;//bin genomic length + char **binStart; //pointers to starts of the bins + uint64 *binBytes, binBytes1;//number of bytes currently written to each bin + ofstream **binStream;//output streams for each bin + BGZF *bgzfBAM; +}; + +#endif \ No newline at end of file diff --git a/ErrorWarning.cpp b/ErrorWarning.cpp new file mode 100644 index 0000000..8ced2b1 --- /dev/null +++ b/ErrorWarning.cpp @@ -0,0 +1,19 @@ +/* +functions that handle errors and warnings +*/ +#include "ErrorWarning.h" +#include "TimeFunctions.h" + +void exitWithError(string messageOut, ostream &streamOut1, ostream &streamOut2, int errorInt, Parameters &P) { + time_t timeCurrent; + time( &timeCurrent); + if (streamOut1.good()) { + streamOut1 << "\n" << messageOut << endl << timeMonthDayTime(timeCurrent) <<" ...... FATAL ERROR, exiting\n" < +#include +#include + +//addresses with respect to shmStart of several genome values +#define SHM_sizeG 0 +#define SHM_sizeSA 8 +#define SHM_startG 16 +// #define SHM_startSA 24 +// +// //first available byt of the shm +// #define SHM_startSHM 32 + +//arbitrary number for ftok function +#define SHM_projectID 23 + +// Genome::Genome(Parameters* Pin) { +// P=Pin; +// }; + +Genome::~Genome() { + P->inOut->logMain << "--genomeLoad=" << P->genomeLoad <<" ."<genomeLoad=="LoadAndRemove") {//mark genome for removal after the jobs complete, if there are no other jobs attached to it + struct shmid_ds shmStat; + shmctl(shmID,IPC_STAT,&shmStat); + if (shmStat.shm_nattch>1) { + P->inOut->logMain << shmStat.shm_nattch-1 << " other job(s) are attached to the shared memory segment, will not remove it." <inOut->logMain <<"No other jobs are attached to the shared memory segement, removing it."<genomeDir.c_str(),SHM_projectID);; + char *shmStart=NULL; + uint *shmNG=NULL, *shmNSA=NULL; //pointers to shm stored values , *shmSG, *shmSSA + uint64 shmSize=0;//, shmStartG=0; shmStartSA=0; + + + uint L=200,K=6; + + time_t rawtime; + time ( &rawtime ); + + + //protect some parameters + uint sjdbOverhang1=P->sjdbOverhang; + + vector versionGenomeMin=P->versionGenome; + P->versionGenome[0]=0; + + ifstream parFile((P->genomeDir+("/genomeParameters.txt")).c_str()); + if (parFile.good()) { + P->inOut->logMain << "Reading genome generation parameters:\n"; + P->scanAllLines(parFile,3,-1); + parFile.close(); + } else { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir+("/genomeParameters.txt") << endl; + errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + + //check genome version + if (P->versionGenome[0]==0) {// + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: read no value for the versionGenome parameter from genomeParameters.txt file\n"; + errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + } else if (P->sjdbFileChrStartEnd=="-" && P->versionGenome.at(0) >= versionGenomeMin.at(0)) {// + P->inOut->logMain << "Genome version is compatible with current STAR version\n"; + } else if (P->sjdbFileChrStartEnd!="-" && P->versionGenome.at(0) >= versionGenomeMin.at(1)) {// + P->inOut->logMain << "Genome version is compatible with current STAR version\n"; + } else { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: Genome version is INCOMPATIBLE with current STAR version\n"; + errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + + + if (P->sjdbOverhang==0) P->sjdbOverhang=sjdbOverhang1; //for twopass sjdbOverhang may be defined at the mapping stage + //TODO make a more careful check, if the values are different, break! + + P->inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<genomeDir+"/Genome").c_str(), ios::binary); + if (!GenomeIn.good()) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/Genome" <<"\n" << endl; + errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + + ifstream SAin((P->genomeDir + "/SA").c_str(), ios::binary); + if (!SAin.good()) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/SA" <<"\n" << endl; + errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + + ifstream SAiIn((P->genomeDir+"/SAindex").c_str(),ios::binary); + if (!SAiIn.good()) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/SAindex" <<"\n" << endl; + errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + + uint SAiInBytes=0; + SAiInBytes += fstreamReadBig(SAiIn,(char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases)); + P->genomeSAindexStart = new uint[P->genomeSAindexNbases+1]; + SAiInBytes += fstreamReadBig(SAiIn,(char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1)); + P->nSAi=P->genomeSAindexStart[P->genomeSAindexNbases]; + P->inOut->logMain << "Read from SAindex: genomeSAindexNbases=" << P->genomeSAindexNbases <<" nSAi="<< P->nSAi <genomeLoad=="LoadAndKeep" || P->genomeLoad=="LoadAndRemove" || P->genomeLoad=="Remove" || P->genomeLoad=="LoadAndExit") {// find shared memory fragment + shmID=shmget(shmKey,0,0); + shmLoad=(shmID==-1); + if (shmLoad && errno !=ENOENT) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget():" << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + }; + if (!shmLoad) {//genome is already in shm + P->inOut->logMain <<"Found genome in shared memory\n"<genomeLoad=="Remove") {//kill the genome and exit + if (shmLoad) {//did not find genome in shared memory, nothing to kill + ostringstream errOut; + errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + } else { + struct shmid_ds *buf=NULL; + int shmStatus=shmctl(shmID,IPC_RMID,buf); + if (shmStatus==-1) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmctl() while trying to remove shared memory piece:" << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + }; + P->inOut->logMain <<"DONE: removed the genome from shared memory\n"<genomeLoad=="NoSharedMemory" || shmLoad) {//find the size of the genome and SAs from files - the genome is not in shared memory + + GenomeIn.seekg (0, ios::end); + P->nGenome=(uint) GenomeIn.tellg(); + GenomeIn.clear(); + GenomeIn.seekg (0, ios::beg); + P->inOut->logMain <<"Genome file size: "<nGenome <<" bytes; state: good=" <nSAbyte=(uint) (SAin.tellg()); + GenomeIn.clear(); + SAin.seekg (0, ios::beg); + P->inOut->logMain <<"SA file size: "<nSAbyte <<" bytes; state: good=" <inOut->logMain, EXIT_CODE_SHM, *P); + }; + shmNG= (uint*) (shmStart+SHM_sizeG); + shmNSA= (uint*) (shmStart+SHM_sizeSA); + + uint iwait=0; + while (*shmNG==0) { + iwait++; + P->inOut->logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <inOut->logMain, EXIT_CODE_GenomeLoadingWaitedTooLong, *P); + }; + }; + + P->nGenome=*shmNG; + P->nSAbyte=*shmNSA; + + P->inOut->logMain << "Using shared memory for genome. key=0x" <inOut->logMain, EXIT_CODE_SHM, *P); +// }; + + /////////////////////////////////////// allocate arrays + if (P->genomeLoad=="NoSharedMemory") {// simply allocate memory, do not use shared memory + try { + if (P->twopass1readsN==0) {//2-pass: reserve extra memory + G1=new char[P->nGenome+L+L]; + SA.allocateArray(); + } else { + P->nGenome2=P->nGenome+P->twopassSJlimit*P->sjdbLength; + SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->twopassSJlimit*P->sjdbLength); + G1=new char[P->nGenome2+L+L]; + SA2.allocateArray(); + SA.pointArray(SA2.charArray+SA2.lengthByte-SA.lengthByte); + }; + SAi.allocateArray(); + P->inOut->logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000 << " bytes\n"; + errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << P->nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000<inOut->logMain, EXIT_CODE_MemoryAllocation, *P); + }; + } else {//using shared memeory + + if (shmLoad) {//genome was not in shared memory: allocate shm + shmSize=SA.lengthByte + P->nGenome+L+L+SHM_startG+8; + shmSize+= SAi.lengthByte; + if (P->annotScoreScale>0) shmSize+=P->nGenome; + shmID = shmget(shmKey, shmSize, IPC_CREAT | SHM_NORESERVE | 0666); // shmID = shmget(shmKey, shmSize, IPC_CREAT | SHM_NORESERVE | SHM_HUGETLB | 0666); + if (shmID < 0) { + ostringstream errOut; + errOut <<"EXITING: fatal error from shmget() trying to allocate shared memory piece: error type" << strerror(errno) <<"\n"; + errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM of at least" << shmSize+2000000000 << " bytes\n"; + errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << shmSize+2000000000 <<"\n"; + errOut <<"Possible cause 3: allowed shared memory size is not large enough. SOLUTIONS: (i) consult STAR manual on how to increase shared memory allocation; " \ + "(ii) ask your system administrator to increase shared memory allocation; (iii) run STAR with --genomeLoad NoSharedMemory\n"<inOut->logMain, EXIT_CODE_MemoryAllocation, *P); + + }; + shmStart = (char*) shmat(shmID, NULL, 0); + shmNG= (uint*) (shmStart+SHM_sizeG); + shmNSA= (uint*) (shmStart+SHM_sizeSA); + }; + + G1=shmStart+SHM_startG; + SA.pointArray(G1+P->nGenome+L+L); + char* shmNext=SA.charArray+P->nSAbyte; + + SAi.pointArray(shmNext); + shmNext += SAi.lengthByte; + + if (P->annotScoreScale>0) {//optional allocation + sigG = shmNext; + shmNext += P->nGenome; + }; + }; + + G=G1+L; + + if (P->genomeLoad=="NoSharedMemory" || shmLoad) {//load genome and SAs from files + //load genome + P->inOut->logMain <<"Genome file size: "<nGenome <<" bytes; state: good=" <inOut->logMain <<"Loading Genome ... " << flush; + uint genomeReadBytesN=fstreamReadBig(GenomeIn,G,P->nGenome); + P->inOut->logMain <<"done! state: good=" <nGenome+ii]=K-1; + }; + + //load SAs + P->inOut->logMain <<"SA file size: "<inOut->logMain <<"Loading SA ... " << flush; + genomeReadBytesN=fstreamReadBig(SAin,SA.charArray, SA.lengthByte); + P->inOut->logMain <<"done! state: good=" <inOut->logMain <<"Loading SAindex ... " << flush; + SAiInBytes +=fstreamReadBig(SAiIn,SAi.charArray, SAi.lengthByte); + P->inOut->logMain <<"done: "<genomeLoad=="LoadAndKeep" || P->genomeLoad=="LoadAndRemove" || P->genomeLoad=="LoadAndExit") ) {//record sizes. This marks the end of genome loading + *shmNG=P->nGenome; + *shmNSA=P->nSAbyte; + }; + + time ( &rawtime ); + P->inOut->logMain << "Finished loading the genome: " << asctime (localtime ( &rawtime )) <<"\n"<nGenome; ii++) sum1 += (uint) (unsigned char) G[ii]; + P->inOut->logMain << "Sum of all Genome bytes: " <inOut->logMain << "Sum of all SA bytes: " <inOut->logMain << "Sum of all SAi bytes: " <genomeLoad=="LoadAndExit") { + uint shmSum=0; + for (uint ii=0;iiinOut->logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<> Log.timing.out"); + exit(0); + }; + + //find chr starts from files + P->chrInfoLoad(); + + P->chrBinFill(); + + //splice junctions database + if (P->nGenome==P->chrStart[P->nChrReal]) {//no sjdb + P->sjdbN=0; + P->sjGstart=P->chrStart[P->nChrReal]+1; //not sure why I need that + } else {//there are sjdb chromosomes + ifstream sjdbInfo((P->genomeDir+"/sjdbInfo.txt").c_str()); + if (sjdbInfo.fail()) { + ostringstream errOut; + errOut << "EXITING because of FATAL error, could not open file " << (P->genomeDir+"/sjdbInfo.txt") <<"\n"; + errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + + sjdbInfo >> P->sjdbN >> P->sjdbOverhang; + P->sjdbLength=P->sjdbOverhang*2+1; + P->inOut->logMain << "Processing splice junctions database sjdbN=" <sjdbN<<", sjdbOverhang=" <sjdbOverhang <<" \n"; + + P->sjChrStart=P->nChrReal; + P->sjGstart=P->chrStart[P->sjChrStart]; + + //fill the sj-db to genome translation array + P->sjDstart=new uint [P->sjdbN]; + P->sjAstart=new uint [P->sjdbN]; + P->sjdbStart=new uint [P->sjdbN]; + P->sjdbEnd=new uint [P->sjdbN]; + + P->sjdbMotif=new uint8 [P->sjdbN]; + P->sjdbShiftLeft=new uint8 [P->sjdbN]; + P->sjdbShiftRight=new uint8 [P->sjdbN]; + P->sjdbStrand=new uint8 [P->sjdbN]; + + for (uint ii=0;iisjdbN;ii++) {//get the info about junctions from sjdbInfo.txt + { + uint16 d1,d2,d3,d4; + sjdbInfo >> P->sjdbStart[ii] >> P->sjdbEnd[ii] >> d1 >> d2 >> d3 >> d4; + P->sjdbMotif[ii] = (uint8) d1; + P->sjdbShiftLeft[ii] = (uint8) d2; + P->sjdbShiftRight[ii] = (uint8) d3; + P->sjdbStrand[ii] = (uint8) d4; + }; + P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; + P->sjAstart[ii] = P->sjdbEnd[ii] + 1; + if (P->sjdbMotif[ii]==0) {//shinon-canonical junctions back to their true coordinates + P->sjDstart[ii] += P->sjdbShiftLeft[ii]; + P->sjAstart[ii] += P->sjdbShiftLeft[ii]; + }; + }; + }; + + //check and redefine some parameters + //max intron size + if (P->alignIntronMax==0 && P->alignMatesGapMax==0) { + P->inOut->logMain << "alignIntronMax=alignMatesGapMax=0, the max intron size will be approximately determined by (2^winBinNbits)*winAnchorDistNbins=" \ + << (1LLU<winBinNbits)*P->winAnchorDistNbins <winBinNbits=max( (uint) floor(log2(P->nGenome/40000)+0.5), (uint) floor(log2(max(max(4LLU,P->alignIntronMax),P->alignMatesGapMax)/4)+0.5) ); + P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" redefined winBinNbits="<< P->winBinNbits <winBinNbits > P->genomeChrBinNbits) { + P->inOut->logMain << "winBinNbits=" <winBinNbits <<" > " << "genomeChrBinNbits=" << P->genomeChrBinNbits << " redefining:\n"; + P->winBinNbits=P->genomeChrBinNbits; + P->inOut->logMain << "winBinNbits=" <winBinNbits <alignIntronMax==0 && P->alignMatesGapMax==0) { + } else { + //redefine winFlankNbins,winAnchorDistNbins + P->winFlankNbins=max(P->alignIntronMax,P->alignMatesGapMax)/(1LLU<winBinNbits)+1; + P->winAnchorDistNbins=2*P->winFlankNbins; + P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" and alignMatesGapMax="<alignMatesGapMax<<\ + ", redefined winFlankNbins="<winFlankNbins<<" and winAnchorDistNbins="<winAnchorDistNbins<winBinChrNbits=P->genomeChrBinNbits-P->winBinNbits; + +}; + + diff --git a/Genome.h b/Genome.h new file mode 100644 index 0000000..1a139c4 --- /dev/null +++ b/Genome.h @@ -0,0 +1,22 @@ +#ifndef GENOME_DEF +#define GENOME_DEF + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "PackedArray.h" +class Genome { + public: + char *G, *sigG; + PackedArray SA,SA2; + PackedArray SAi; + void genomeLoad(); + + Genome (Parameters* Pin ) : P(Pin) {}; + Genome () {}; + ~Genome(); + private: + char *G1; //pointer -200 of G + Parameters* P; + int shmID; +}; +#endif diff --git a/GlobalVariables.cpp b/GlobalVariables.cpp new file mode 100644 index 0000000..c912b3b --- /dev/null +++ b/GlobalVariables.cpp @@ -0,0 +1,5 @@ +#ifndef CODE_GlobalVariables +#define CODE_GlobalVariables +Stats g_statsAll;//global mapping statistics +ThreadControl g_threadChunks; +#endif diff --git a/GlobalVariables.h b/GlobalVariables.h new file mode 100644 index 0000000..2b8ba98 --- /dev/null +++ b/GlobalVariables.h @@ -0,0 +1,9 @@ +#ifndef GLOBAL_VARIABLES_DEF +#define GLOBAL_VARIABLES_DEF + +#include "ThreadControl.h" +extern Stats g_statsAll; +extern ThreadControl g_threadChunks; + +#endif + diff --git a/InOutStreams.cpp b/InOutStreams.cpp new file mode 100644 index 0000000..ef53bfa --- /dev/null +++ b/InOutStreams.cpp @@ -0,0 +1,43 @@ +#include "InOutStreams.h" +#include "GlobalVariables.h" + +InOutStreams::InOutStreams() { + logStdOut=NULL; + outSAM=NULL; + outBAMfileUnsorted=NULL; + outQuantBAMfile=NULL; +}; + +InOutStreams::~InOutStreams() { + + if (logStdOut!=NULL) logStdOut->flush(); + if (outSAM!=NULL) outSAM->flush(); + + logStdOutFile.flush(); + outSAMfile.flush(); + + outChimSAM.flush(); + outChimJunction.flush(); + logProgress.flush(); + logMain.flush(); + logFinal.flush(); + outLocalChains.flush(); + + logStdOutFile.close(); + outSAMfile.close(); + outChimSAM.close(); + outChimJunction.close(); + logProgress.close(); + logMain.close(); + logFinal.close(); + outLocalChains.close(); + + + for (int ii=0;ii<2;ii++) { + if (outUnmappedReadsStream[ii].is_open()) { + outUnmappedReadsStream[ii].flush(); + outUnmappedReadsStream[ii].close(); + } + }; +}; + diff --git a/InOutStreams.h b/InOutStreams.h new file mode 100644 index 0000000..8013788 --- /dev/null +++ b/InOutStreams.h @@ -0,0 +1,23 @@ +#ifndef INOUTSTREAMS_DEF +#define INOUTSTREAMS_DEF + +#include "IncludeDefine.h" +#include SAMTOOLS_BGZF_H + +class InOutStreams { + public: + ostream *logStdOut, *outSAM; + ofstream logStdOutFile, outSAMfile; + BGZF *outBAMfileUnsorted, *outBAMfileCoord, *outQuantBAMfile; + + ofstream outChimSAM, outChimJunction, logMain, logProgress, logFinal, outUnmappedReadsStream[MAX_N_MATES]; + ifstream readIn[MAX_N_MATES]; + + //compilation-optional streams + ofstream outLocalChains; + + InOutStreams(); + ~InOutStreams(); +}; + +#endif diff --git a/IncludeDefine.h b/IncludeDefine.h new file mode 100644 index 0000000..8cc9aaf --- /dev/null +++ b/IncludeDefine.h @@ -0,0 +1,216 @@ +#ifndef INCLUDEDEFINE_DEF +#define INCLUDEDEFINE_DEF + +//standard libs +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "VERSION" + +//external libs +#define SAMTOOLS_BGZF_H "htslib/htslib/bgzf.h" + +using namespace std; + +#ifdef COMPILE_FOR_MAC + //some Mac's idiosyncrasies: standard SHM libraries are very old and missing some definitions + #define SHM_NORESERVE 0 +#endif + +typedef int8_t int8; +typedef uint8_t uint8; + +#define uint unsigned long long +#define sint signed long long +#define uint64 unsigned long long +#define uint32 unsigned int +#define uint16 unsigned short int +#define uchar unsigned char +#define int64 long long +#define int32 int + +#define GENOME_spacingChar 5 + +#define uintWinBin unsigned short +#define uintWinBinMax numeric_limits::max() + + +#define intSWscore int +#define intScore int + +//cleaned +//output +#define BAMoutput_oneAlignMaxBytes 100000 + + +//SAM attributes +#define ATTR_Nmax 9 +#define ATTR_NH 1 +#define ATTR_HI 2 +#define ATTR_AS 3 +#define ATTR_NM 4 +#define ATTR_MD 5 +#define ATTR_nM 6 +#define ATTR_jM 7 +#define ATTR_jI 8 +#define ATTR_XS 9 +#define ATTR_RG 10 + + +//BAM definitions +#define BAM_CIGAR_MaxSize 10000 +#define BAM_CIGAR_OperationShift 4 +#define BAM_CIGAR_M 0 +#define BAM_CIGAR_I 1 +#define BAM_CIGAR_D 2 +#define BAM_CIGAR_N 3 +#define BAM_CIGAR_S 4 +#define BAM_CIGAR_H 5 +#define BAM_CIGAR_P 6 +#define BAM_CIGAR_EQ 7 +#define BAM_CIGAR_X 8 + +#define BAM_ATTR_MaxSize 1000 + +#if defined COMPILE_FOR_LONG_READS + #define MAX_N_EXONS 200 +#else + #define MAX_N_EXONS 20 +#endif + +//input reads +#define MAX_N_MATES 2 +#define DEF_readNameLengthMax 50000 +#if defined COMPILE_FOR_LONG_READS + #define DEF_readSeqLengthMax 50000 +#else + #define DEF_readSeqLengthMax 500 +#endif + +#if (DEF_readNameLengthMax > DEF_readSeqLengthMax) + #define DEF_readNameSeqLengthMax DEF_readNameLengthMax +#else + #define DEF_readNameSeqLengthMax DEF_readSeqLengthMax +#endif + +#define EXIT_CODE_BUG 101 +#define EXIT_CODE_PARAMETER 102 +#define EXIT_CODE_RUNTIME 103 +#define EXIT_CODE_INPUT_FILES 104 +#define EXIT_CODE_GENOME_FILES 105 +#define EXIT_CODE_SHM 106 +#define EXIT_CODE_GenomeLoadingWaitedTooLong 107 +#define EXIT_CODE_MemoryAllocation 108 +#define EXIT_CODE_FILE_OPEN 109 +#define EXIT_CODE_FILE_WRITE 110 + +//cleaned-end + + +//exit codes +#define EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS 101 + +#define SJ_MOTIF_SIZE 7 //number of recorded SJ motifs +#define SJ_SAM_AnnotatedMotifShift 20 + +#define EXTEND_ORDER 1 //1-first extend to the 5' of the read, then 3'; 2- first extend to the left, then to the right + +#define MAX_N_FRAG 2 +#define MARK_FRAG_SPACER_BASE 11 +#define MAX_N_CHIMERAS 5 +#define MAX_N_MULTMAP 100000 //max number of multiple mappers +#define MAX_SJ_REPEAT_SEARCH 255 //max length of a repeat to search around a SJ +#define MAX_QS_VALUE 60 +#define MAX_OUTPUT_FLAG 10 + +#define PC_rStart 0 +#define PC_Length 1 +#define PC_Str 2 +#define PC_Dir 3 +#define PC_Nrep 4 +#define PC_SAstart 5 +#define PC_SAend 6 +#define PC_iFrag 7 +#define PC_SIZE 8 + +#define WC_Str 0 +#define WC_Chr 1 +#define WC_gStart 2 +#define WC_gEnd 3 +#define WC_SIZE 4 + +#define WA_Length 0 +#define WA_rStart 1 +#define WA_gStart 2 +#define WA_Nrep 3 +#define WA_Anchor 4 +#define WA_iFrag 5 +#define WA_sjA 6 +#define WA_SIZE 7 + +#define EX_R 0 +#define EX_G 1 +#define EX_L 2 +#define EX_iFrag 3 +#define EX_sjA 4 +#define EX_SIZE 5 + +//mapType +#define MT_PE 0 //paired end type +#define MT_SIZE 5 + +#define MARKER_ALL_PIECES_EXCEED_seedMultimapNmax 999901 //marks the reads that map too many time, more than seedMultimapNmax +#define MARKER_NO_UNIQUE_PIECES 999902 //the best transcript does not contain any unique pieces +#define MARKER_NO_GOOD_WINDOW 999903 //did not find any good windows +#define MARKER_NO_GOOD_PIECES 999904 +#define MARKER_TOO_MANY_ANCHORS_PER_WINDOW 999905 +#define MARKER_MAX_N_MULT_EXCEEDED 999906 +#define MARKER_FULL_LENGTH_MULTIMAPPER_EXCEEDED_alignWindowsPerReadNmax 999907 +#define MARKER_ALL_PIECES_EXCEEDED_winAnchorMultimapNmax 999908 +#define MARKER_TOO_MANY_CHIMERAS 999909 +#define MARKER_READ_TOO_SHORT 999910 + +#define PEMARKER_SINGLE_END 0 +#define PEMARKER_PAIR 1 +#define PEMARKER_ONE_END 3 +#define PEMARKER_TOO_MANY_PAIRS 5 +#define PEMARKER_CHIMERIC_PAIRS 7 +#define PEMARKER_CHIMERIC_SJ_READ1 221 +#define PEMARKER_CHIMERIC_SJ_READ2 223 +#define PEMARKER_CHIMERIC_SJ_READ1and2 225 +#define PEMARKER_SINGLE_END_NOTMAPPED 1001 + + +typedef uint uiPC[PC_SIZE]; +typedef uint uiWC[WC_SIZE]; +typedef uint uiWA[WA_SIZE]; + +// debugging +//#define DEBUG_Nread 1000000 +//#define DEBUG +#if defined DEBUG + #define DEBUG_stitch + #define DEBUG_Nread 200000 + #define DEBUG_NreadStart 1 + #define DEBUG_extend +#endif + +// #define DEBUG_NreadStart 500000 + +#endif diff --git a/Mac_Include/omp.h b/Mac_Include/omp.h new file mode 100644 index 0000000..1400282 --- /dev/null +++ b/Mac_Include/omp.h @@ -0,0 +1,87 @@ +/* Copyright (C) 2005 Free Software Foundation, Inc. + Contributed by Richard Henderson . + + This file is part of the GNU OpenMP Library (libgomp). + + Libgomp is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for + more details. + + You should have received a copy of the GNU Lesser General Public License + along with libgomp; see the file COPYING.LIB. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301, USA. */ + +/* As a special exception, if you link this library with other files, some + of which are compiled with GCC, to produce an executable, this library + does not by itself cause the resulting executable to be covered by the + GNU General Public License. This exception does not however invalidate + any other reasons why the executable file might be covered by the GNU + General Public License. */ + +#ifndef OMP_H +#define OMP_H 1 + +#ifndef _LIBGOMP_OMP_LOCK_DEFINED +#define _LIBGOMP_OMP_LOCK_DEFINED 1 +/* These two structures get edited by the libgomp build process to + reflect the shape of the two types. Their internals are private + to the library. */ + +typedef struct +{ + unsigned char _x[64] + __attribute__((__aligned__(8))); +} omp_lock_t; + +typedef struct +{ + unsigned char _x[72] + __attribute__((__aligned__(8))); +} omp_nest_lock_t; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +extern void omp_set_num_threads (int); +extern int omp_get_num_threads (void); +extern int omp_get_max_threads (void); +extern int omp_get_thread_num (void); +extern int omp_get_num_procs (void); + +extern int omp_in_parallel (void); + +extern void omp_set_dynamic (int); +extern int omp_get_dynamic (void); + +extern void omp_set_nested (int); +extern int omp_get_nested (void); + +extern void omp_init_lock (omp_lock_t *); +extern void omp_destroy_lock (omp_lock_t *); +extern void omp_set_lock (omp_lock_t *); +extern void omp_unset_lock (omp_lock_t *); +extern int omp_test_lock (omp_lock_t *); + +extern void omp_init_nest_lock (omp_nest_lock_t *); +extern void omp_destroy_nest_lock (omp_nest_lock_t *); +extern void omp_set_nest_lock (omp_nest_lock_t *); +extern void omp_unset_nest_lock (omp_nest_lock_t *); +extern int omp_test_nest_lock (omp_nest_lock_t *); + +extern double omp_get_wtime (void); +extern double omp_get_wtick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* OMP_H */ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2203dce --- /dev/null +++ b/Makefile @@ -0,0 +1,112 @@ +OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Transcript.o Stats.o \ + ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ + ReadAlignChunk.o ReadAlignChunk_processChunks.o ReadAlignChunk_mapChunk.o \ + OutSJ.o outputSJ.o blocksOverlap.o ThreadControl.o sysRemoveDir.o \ + ReadAlign_maxMappableLength2strands.o binarySearch2.o\ + ReadAlign_outputAlignments.o \ + ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o \ + ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ + ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o \ + stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o genomeGenerate.o \ + TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ + Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o \ + sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o mapThreadsSpawn.o \ + Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp \ + BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o \ + bam_cat.o +SOURCES := $(wildcard *.cpp) $(wildcard *.c) + +LDFLAGS := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz +LDFLAGS_static := -static -static-libgcc $(LDFLAGS) +LDFLAGS_gdb := $(LDFLAGS) + +COMPTIMEPLACE := -D'COMPILATION_TIME_PLACE="$(shell echo `date` $(HOSTNAME):`pwd`)"' + +CCFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) $(OPTIMFLAGS) $(OPTIMFLAGS1) +CCFLAGS_main := -O3 $(CCFLAGS_common) +CCFLAGS_gdb := -O0 -g $(CCFLAGS_common) + +CC :=g++ + + +%.o : %.cpp + $(CC) -c $(CCFLAGS) $< + +%.o : %.c + $(CC) -c $(CCFLAGS) $< + +all: STAR + +.PHONY: clean +clean: + rm -f *.o STAR STARstatic Depend.list + +.PHONY: CLEAN +CLEAN: + rm -f *.o STAR Depend.list + $(MAKE) -C htslib clean + +.PHONY: cleanRelease +cleanRelease: + rm -f *.o Depend.list + $(MAKE) -C htslib clean + + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),STARforMac) +ifneq ($(MAKECMDGOALS),STARforMacGDB) +Depend.list: $(SOURCES) parametersDefault.xxd htslib + echo $(SOURCES) + /bin/rm -f ./Depend.list + $(CC) $(CCFLAGS_common) -MM $^ >> Depend.list +include Depend.list +endif +endif +endif + +htslib : htslib/libhts.a + +htslib/libhts.a : + $(MAKE) -C htslib lib-static + +parametersDefault.xxd: parametersDefault + xxd -i parametersDefault > parametersDefault.xxd + +STAR : CCFLAGS=$(CCFLAGS_main) +STAR : Depend.list parametersDefault.xxd $(OBJECTS) + $(CC) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) + +STARstatic : CCFLAGS=$(CCFLAGS_main) +STARstatic : Depend.list parametersDefault.xxd $(OBJECTS) + $(CC) -o STARstatic $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) + +STARlong : CCFLAGS=-D'COMPILE_FOR_LONG_READS' $(CCFLAGS_main) +STARlong : Depend.list parametersDefault.xxd $(OBJECTS) + $(CC) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) + +STARlongStatic : CCFLAGS=-D'COMPILE_FOR_LONG_READS' $(CCFLAGS_main) +STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS) + $(CC) -o STARstatic $(CCFLAGS) $(LDFLAGS_static) $(OBJECTS) + + +STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) +STARforMac : parametersDefault.xxd $(OBJECTS) + $(CC) -o STAR $(CCFLAGS) $(LDFLAGS) $(OBJECTS) + +STARforMacGDB : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_gdb) +STARforMacGDB : parametersDefault.xxd $(OBJECTS) + $(CC) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) + +gdb : CCFLAGS= $(CCFLAGS_gdb) +gdb : Depend.list parametersDefault.xxd $(OBJECTS) + $(CC) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) + +gdb-long : CCFLAGS= -D'COMPILE_FOR_LONG_READS' $(CCFLAGS_gdb) +gdb-long : Depend.list parametersDefault.xxd $(OBJECTS) + $(CC) -o STAR $(CCFLAGS) $(LDFLAGS_gdb) $(OBJECTS) + +localChains : CCFLAGS=-D'OUTPUT_localChains' $(CCFLAGS_main) +localChains : Depend.list parametersDefault.xxd $(OBJECTS) + $(CC) -o STAR $(CCFLAGS) $(LDFLAGS) $(OBJECTS) + + diff --git a/OutSJ.cpp b/OutSJ.cpp new file mode 100644 index 0000000..f7d6328 --- /dev/null +++ b/OutSJ.cpp @@ -0,0 +1,105 @@ +#include "OutSJ.h" +#include "ErrorWarning.h" + +OutSJ::OutSJ (uint nSJmax, Parameters *inP) {//do I need P? + + data = new char [oneSJ.dataSize*nSJmax]; //allocate big array of SJ loci and properties + memset(data,0,oneSJ.dataSize*nSJmax); + N=0;//initialize the counter + P=inP; +}; + + +int compareSJ(const void* i1, const void* i2) {//compare SJs from the data structure + uint s1=*( (uint*)i1 ); + uint s2=*( (uint*)i2 ); + + if (s1>s2) { + return 1; + } else if (s1g2) { + return 1; + } else if (g1chrBin[*start >> P->genomeChrBinNbits]; + outStream << P->chrName.at(sjChr) <<"\t"<< *start + 1 - P->chrStart[sjChr] <<"\t"<<*start + *gap - P->chrStart[sjChr] \ + <<"\t"<< int(*strand) <<"\t"<< int(*motif) <<"\t"<< int (*annot) <<"\t"<< *countUnique <<"\t"<< *countMultiple \ + <<"\t"<< *overhangLeft << endl; +}; + +void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters* P) {//collapse isj junction into isj1: increase counts in isj1. choose max overhangs, motif, annot + *(uint32*)(isj1P+countUniqueP) += *(uint32*)(isjP+countUniqueP); + *(uint32*)(isj1P+countMultipleP) += *(uint32*)(isjP+countMultipleP); + + if (*(uint16*)(isj1P+overhangLeftP) < *(uint16*)(isjP+overhangLeftP) ) { + *(uint16*)(isj1P+overhangLeftP) = *(uint16*)(isjP+overhangLeftP) ; + }; + if (*(uint16*)(isj1P+overhangRightP) < *(uint16*)(isjP+overhangRightP) ) { + *(uint16*)(isj1P+overhangRightP) = *(uint16*)(isjP+overhangRightP) ; + }; + + if (*(isj1P+motifP) != *(isjP+motifP) ) { + stringstream errOut; + errOut <<"EXITING becaues of BUG: different motifs for the same junction while collapsing junctions"<inOut->logMain, EXIT_CODE_BUG, *P);\ +// *(isj1P+motifP) = *(isjP+motifP) ; + }; + if (*(isj1P+annotP) < *(isjP+annotP) ) { + stringstream errOut; + errOut <<"EXITING becaues of BUG: different annotation status for the same junction while collapsing junctions:"\ + <<*(uint*)(isj1P+startP) <<" "<<*(uint32*)(isj1P+gapP) <<" "<inOut->logMain, EXIT_CODE_BUG, *P);\ + +// *(isj1P+annotP) = *(isjP+annotP) ; + }; + +} diff --git a/OutSJ.h b/OutSJ.h new file mode 100644 index 0000000..e05f598 --- /dev/null +++ b/OutSJ.h @@ -0,0 +1,53 @@ +#ifndef OUT_SJ_DEF +#define OUT_SJ_DEF + +#include "Parameters.h" + +class Junction {//one junction +public: + const static uint startP=0; + const static uint gapP=startP+sizeof(uint); + const static uint strandP=gapP+sizeof(uint32); + const static uint motifP=strandP+sizeof(char); + const static uint annotP=motifP+sizeof(char); + const static uint countUniqueP=annotP+sizeof(char); + const static uint countMultipleP=countUniqueP+sizeof(uint32); + const static uint overhangLeftP=countMultipleP+sizeof(uint32); + const static uint overhangRightP=overhangLeftP+sizeof(uint16); + + uint *start; + uint32 *gap; + char *strand, *motif, *annot; + uint32 *countUnique, *countMultiple; + uint16 *overhangLeft, *overhangRight; + + const static uint dataSize=overhangRightP+sizeof(uint16); + + void junctionPointer(char* sjPoint, uint isj); + void outputStream(ostream &outStream, Parameters* P); + void collapseOneSJ(char* isj1P, char* isjP, Parameters* P); +}; + +class OutSJ { + +public: + //all junctions + char* data; //sj array[Njunctions][dataSize] + + uint N; //number of junctions stored + + Junction oneSJ; + + Parameters *P; + + OutSJ(uint nSJmax, Parameters *P); + + void collapseSJ();//collapse the junctions in data +// int compareSJ(void* i1, void* i2); + +}; + +int compareSJ(const void* i1, const void* i2); //external functions + +#endif + diff --git a/PackedArray.cpp b/PackedArray.cpp new file mode 100644 index 0000000..c47ef1d --- /dev/null +++ b/PackedArray.cpp @@ -0,0 +1,27 @@ +# include "PackedArray.h" + +void PackedArray::defineBits(uint Nbits, uint lengthIn){ + wordLength=Nbits; + wordCompLength=sizeof(uint)*8LLU-wordLength; + bitRecMask=(~0LLU)>>wordCompLength; + length=lengthIn; + lengthByte=length*Nbits/8LLU+1LLU; +}; + +void PackedArray::writePacked( uint jj, uint x) { + uint b=jj*wordLength; + uint B=b/8LLU; + uint S=b%8LLU; + + x = x << S; + uint* a1 = (uint*) (charArray+B); + *a1 = ( (*a1) & ~(bitRecMask<>S)<>wordCompLength; + return a1; +}; + +#endif diff --git a/ParameterInfo.h b/ParameterInfo.h new file mode 100644 index 0000000..ec24e53 --- /dev/null +++ b/ParameterInfo.h @@ -0,0 +1,112 @@ +#ifndef PARAMETERSINFO_DEF +#define PARAMETERSINFO_DEF + +class ParameterInfoBase { +public: + string nameString; //string that identifies parameter + int inputLevel; //where the parameter was defined + int inputLevelAllowed; //at which inpurt level parameter definition is allowed + virtual void inputValues(istringstream &streamIn) =0; + friend std::ostream& operator<< (std::ostream& o, ParameterInfoBase const& b); + virtual ~ParameterInfoBase() {}; +protected: + virtual void printValues(std::ostream& o) const = 0; +}; + + + +inline std::ostream& operator<< (std::ostream& o, ParameterInfoBase const& b) { + b.printValues(o); + return o; +}; + + +template +inline parameterType inputOneValue (istringstream &streamIn) { + parameterType oneV; + streamIn >> oneV; + return oneV; +}; +template <> +inline string inputOneValue (istringstream &streamIn) { + string oneV=""; + streamIn >> ws;//skip whitespace + if (streamIn.peek()!='"') {//simple parameter with no spaces or " + streamIn >> oneV; + } else { + streamIn.get();//skip " + getline(streamIn,oneV,'"'); + }; + return oneV; +}; + + +template +inline void printOneValue (parameterType *value, std::ostream& outStr) { + outStr << *value; +}; +template <> +inline void printOneValue (string *value, std::ostream& outStr) { + if ((*value).find_first_of(" \t")!=std::string::npos) {//there is white space in the argument, put "" around + outStr << '\"' << *value <<'\"'; + } else { + outStr << *value; + }; +}; + +template +class ParameterInfoScalar : public ParameterInfoBase { +public: + parameterType *value; + vector allowedValues; + + ParameterInfoScalar(int inputLevelIn, int inputLevelAllowedIn, string nameStringIn, parameterType* valueIn) { + nameString=nameStringIn; + inputLevel=inputLevelIn; + inputLevelAllowed=inputLevelAllowedIn; + value=valueIn; + }; + + void inputValues(istringstream &streamIn) { + *value=inputOneValue (streamIn); + }; + + ~ParameterInfoScalar() {}; +protected: + virtual void printValues(std::ostream& outStr) const { + printOneValue(value, outStr); + }; + +}; + +template +class ParameterInfoVector : public ParameterInfoBase { +public: + vector *value; + vector allowedValues; + + ParameterInfoVector(int inputLevelIn, int inputLevelAllowedIn, string nameStringIn, vector *valueIn) { + nameString=nameStringIn; + inputLevel=inputLevelIn; + inputLevelAllowed=inputLevelAllowedIn; + value=valueIn; + }; + + void inputValues(istringstream &streamIn) { + (*value).clear(); + while (streamIn.good()) { + (*value).push_back(inputOneValue (streamIn)); + streamIn >> ws; //remove white space, may arrive at the end of line + }; + }; + + ~ParameterInfoVector() {}; +protected: + virtual void printValues(std::ostream& outStr) const { + for (int ii=0; ii < (int) (*value).size(); ii++) { + printOneValue(&(*value).at(ii),outStr); + outStr<<" "; + }; + }; +}; +#endif diff --git a/Parameters.cpp b/Parameters.cpp new file mode 100644 index 0000000..277fb04 --- /dev/null +++ b/Parameters.cpp @@ -0,0 +1,989 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "ErrorWarning.h" +#include "SequenceFuns.h" +#include "OutSJ.h" +#include "sysRemoveDir.h" +#include "stringSubstituteAll.h" +#include SAMTOOLS_BGZF_H +#include "GlobalVariables.h" +#include "signalFromBAM.h" +#include "bamRemoveDuplicates.h" + +//for mkfifo +#include + +#define PAR_NAME_PRINT_WIDTH 30 + +Parameters::Parameters() {//initalize parameters info + + inOut = new InOutStreams; + + //versions + parArray.push_back(new ParameterInfoScalar (-1, -1, "versionSTAR", &versionSTAR)); + parArray.push_back(new ParameterInfoVector (-1, -1, "versionGenome", &versionGenome)); + + //parameters + parArray.push_back(new ParameterInfoVector (-1, 2, "parametersFiles", ¶metersFiles)); + + //run + parArray.push_back(new ParameterInfoScalar (-1, -1, "runMode", &runMode)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "runThreadN", &runThreadN)); + + //genome + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeDir", &genomeDir)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeLoad", &genomeLoad)); + parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFastaFiles", &genomeFastaFiles)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAindexNbases", &genomeSAindexNbases)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeChrBinNbits", &genomeChrBinNbits)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &genomeSAsparseD)); + + //read + parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesIn", &readFilesIn)); + parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesCommand", &readFilesCommand)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); + + //input from BAM + parArray.push_back(new ParameterInfoScalar (-1, -1, "inputBAMfile", &inputBAMfile)); + + //BAM processing + parArray.push_back(new ParameterInfoScalar (-1, -1, "bamRemoveDuplicatesType", &bamRemoveDuplicatesType)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "bamRemoveDuplicatesMate2basesN", &bamRemoveDuplicatesMate2basesN)); + + //limits + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitGenomeGenerateRAM", &limitGenomeGenerateRAM)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitIObufferSize", &limitIObufferSize)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSAMoneReadBytes", &limitOutSAMoneReadBytes)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSJcollapsed", &limitOutSJcollapsed)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSJoneRead", &limitOutSJoneRead)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitBAMsortRAM", &limitBAMsortRAM)); + + //output + parArray.push_back(new ParameterInfoScalar (-1, 2, "outFileNamePrefix", &outFileNamePrefix)); + parArray.push_back(new ParameterInfoScalar (-1, 2, "outTmpDir", &outTmpDir)); + parArray.push_back(new ParameterInfoScalar (-1, 2, "outStd", &outStd)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outReadsUnmapped", &outReadsUnmapped)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outQSconversionAdd", &outQSconversionAdd)); + + //outSAM + parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMtype", &outSAMtype)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmode", &outSAMmode)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMstrandField", &outSAMstrandField)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMattributes", &outSAMattributes)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMunmapped", &outSAMunmapped)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMorder", &outSAMorder)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMprimaryFlag", &outSAMprimaryFlag)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMreadID", &outSAMreadID)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmapqUnique", &outSAMmapqUnique)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMattrRGline", &outSAMattrRGline)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMheaderHD", &outSAMheaderHD)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMheaderPG", &outSAMheaderPG)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMheaderCommentFile", &outSAMheaderCommentFile)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMcompression", &outBAMcompression)); + + + //output SJ filtering + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSJfilterReads", &outSJfilterReads)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterCountUniqueMin", &outSJfilterCountUniqueMin)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterCountTotalMin", &outSJfilterCountTotalMin)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterOverhangMin", &outSJfilterOverhangMin)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterDistToOtherSJmin", &outSJfilterDistToOtherSJmin)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterIntronMaxVsReadN", &outSJfilterIntronMaxVsReadN)); + + //output wiggle + parArray.push_back(new ParameterInfoVector (-1, -1, "outWigType", &outWigType)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outWigStrand", &outWigStrand)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outWigReferencesPrefix", &outWigReferencesPrefix)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outWigNorm", &outWigNorm)); + + //output filtering + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterType", &outFilterType) ); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMultimapNmax", &outFilterMultimapNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMultimapScoreRange", &outFilterMultimapScoreRange)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterScoreMin", &outFilterScoreMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterScoreMinOverLread", &outFilterScoreMinOverLread)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMatchNmin", &outFilterMatchNmin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMatchNminOverLread", &outFilterMatchNminOverLread)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMismatchNmax", &outFilterMismatchNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMismatchNoverLmax", &outFilterMismatchNoverLmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMismatchNoverReadLmax", &outFilterMismatchNoverReadLmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterIntronMotifs", &outFilterIntronMotifs)); + + //clipping + parArray.push_back(new ParameterInfoVector (-1, -1, "clip5pNbases", &clip5pNbases)); + parArray.push_back(new ParameterInfoVector (-1, -1, "clip3pNbases", &clip3pNbases)); + parArray.push_back(new ParameterInfoVector (-1, -1, "clip3pAfterAdapterNbases", &clip3pAfterAdapterNbases)); + parArray.push_back(new ParameterInfoVector (-1, -1, "clip3pAdapterSeq", &clip3pAdapterSeq)); + parArray.push_back(new ParameterInfoVector (-1, -1, "clip3pAdapterMMp", &clip3pAdapterMMp)); + + //binning, anchors, windows + parArray.push_back(new ParameterInfoScalar (-1, -1, "winBinNbits", &winBinNbits)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "winAnchorDistNbins", &winAnchorDistNbins)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "winFlankNbins", &winFlankNbins)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "winAnchorMultimapNmax", &winAnchorMultimapNmax)); + + //scoring + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreGap", &scoreGap)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreGapNoncan", &scoreGapNoncan)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreGapGCAG", &scoreGapGCAG)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreGapATAC", &scoreGapATAC)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreStitchSJshift", &scoreStitchSJshift)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreGenomicLengthLog2scale", &scoreGenomicLengthLog2scale)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreDelBase", &scoreDelBase)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreDelOpen", &scoreDelOpen)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreInsOpen", &scoreInsOpen)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreInsBase", &scoreInsBase)); + + //alignment + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedSearchLmax", &seedSearchLmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedSearchStartLmax", &seedSearchStartLmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedSearchStartLmaxOverLread", &seedSearchStartLmaxOverLread)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedPerReadNmax", &seedPerReadNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedPerWindowNmax", &seedPerWindowNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedNoneLociPerWindow", &seedNoneLociPerWindow)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedMultimapNmax", &seedMultimapNmax)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignIntronMin", &alignIntronMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignIntronMax", &alignIntronMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignMatesGapMax", &alignMatesGapMax)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerReadNmax", &alignTranscriptsPerReadNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSJoverhangMin", &alignSJoverhangMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSJDBoverhangMin", &alignSJDBoverhangMin)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLmin", &alignSplicedMateMapLmin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLminOverLmate", &alignSplicedMateMapLminOverLmate)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignWindowsPerReadNmax", &alignWindowsPerReadNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerWindowNmax", &alignTranscriptsPerWindowNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignEndsType", &alignEndsType)); + + //chimeric + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &chimSegmentMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &chimScoreMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreDropMax", &chimScoreDropMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreSeparation", &chimScoreSeparation)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); + + //sjdb + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfile", &sjdbGTFfile)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFchrPrefix", &sjdbGTFchrPrefix)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfeatureExon", &sjdbGTFfeatureExon)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentTranscript", &sjdbGTFtagExonParentTranscript)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &sjdbOverhang)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &sjdbScore)); + + //quant + parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quantMode)); + + //2-pass + parArray.push_back(new ParameterInfoScalar (-1, -1, "twopass1readsN", &twopass1readsN)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "twopassSJlimit", &twopassSJlimit)); + + +// //SW parameters +// parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); +// parArray.push_back(new ParameterInfoScalar (-1, -1, "swWinCoverageMinP", &swWinCoverageMinP)); + + parameterInputName.push_back("Default"); + parameterInputName.push_back("Command-Line-Initial"); + parameterInputName.push_back("Command-Line"); + parameterInputName.push_back("genomeParameters.txt"); + +}; + + +void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters: default, from files, from command line + +///////// Default parameters + + #include "parametersDefault.xxd" + string parString( (const char*) parametersDefault,parametersDefault_len); + stringstream parStream (parString); + + scanAllLines(parStream, 0, -1); + for (uint ii=0; iiinputLevel<0) { + ostringstream errOut; + errOut <<"BUG: DEFAULT parameter value not defined: "<nameString; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + +///////// Initial parameters from Command Line + + commandLine=""; + string commandLineFile=""; + + if (argInN>1) {//scan parameters from command line + commandLine += string(argIn[0]); + for (int iarg=1; iarglogMain.open((outFileNamePrefix + "Log.out").c_str()); + if (inOut->logMain.fail()) { + ostringstream errOut; + errOut <<"EXITING because of FATAL ERROR: could not create output file: "<logMain, EXIT_CODE_PARAMETER, *this); + }; + + inOut->logMain << "STAR version=" << STAR_VERSION << "\n"<logMain << "STAR compilation time,server,dir=" << COMPILATION_TIME_PLACE << "\n"<logStdOut=& std::cout; + } else if (outStd=="SAM" || outStd=="BAM_Unsorted" || outStd=="BAM_SortedByCoordinate" || outStd=="BAM_Quant") { + inOut->logStdOutFile.open((outFileNamePrefix + "Log.std.out").c_str()); + inOut->logStdOut= & inOut->logStdOutFile; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL PARAMETER error: outStd="<logMain, EXIT_CODE_PARAMETER, *this); + }; + + inOut->logMain << "##### DEFAULT parameters:\n" <inputLevel==0) { + inOut->logMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; + }; + }; + + inOut->logMain <<"##### Command Line:\n"<logMain << "##### Initial USER parameters from Command Line:\n"; + for (uint ii=0; iiinputLevel==1) { + inOut->logMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; + }; + }; + +///////// Parameters files + + if (parametersFiles.at(0) != "-") {//read parameters from a user-defined file + for (uint ii=0; iilogMain << "##### USER parameters from user-defined parameters file " <logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + }; + +///////// Command Line Final + + if (argInN>1) {//scan all parameters from command line and override previuos values + inOut->logMain << "###### All USER parameters from Command Line:\n" <logMain << "##### Finished reading parameters from all sources\n\n" << flush; + + inOut->logMain << "##### Final user re-defined parameters-----------------:\n" << flush; + + ostringstream clFull; + clFull << argIn[0]; + for (uint ii=0; iiinputLevel>0) { + inOut->logMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; + if (parArray[ii]->nameString != "parametersFiles" ) { + clFull << " --" << parArray[ii]->nameString << " " << *(parArray[ii]); + }; + }; + }; + commandLineFull=clFull.str(); + inOut->logMain << "\n-------------------------------\n##### Final effective command line:\n" << clFull.str() << "\n"; + +// parOut.close(); + inOut->logMain << "\n##### Final parameters after user input--------------------------------:\n" << flush; +// parOut.open("Parameters.all.out"); + for (uint ii=0; iilogMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; + }; +// parOut.close(); + + inOut->logMain << "----------------------------------------\n\n" << flush; + + + ///////////////////////////////////////// Old variables + outputBED[0]=0; outputBED[1]=0; //controls the format of starBED output. Will be replaced with HDF5 output + //chimeric + maxChimReadGap=0; + //annot scoring + annotScoreScale=0; + annotSignalFile="-"; + //sj-db + sjdbLength=sjdbOverhang*2+1; + + + //splitting + Qsplit=0; + maxNsplit=10; + minLsplit=12; + minLmap=5; + + + +////////////////////////////////////////////////////// Calculate and check parameters + iReadAll=0; + if (outTmpDir=="-") { + outFileTmp=outFileNamePrefix +"_STARtmp/"; + sysRemoveDir (outFileTmp); + } else { + outFileTmp=outTmpDir; + }; + + if (mkdir (outFileTmp.c_str(),S_IRWXU)!=0) { + ostringstream errOut; + errOut <<"EXITING because of fatal ERROR: could not make temporary directory: "<< outFileTmp<<"\n"; + errOut <<"SOLUTION: (i) please check the path and writing permissions \n (ii) if you specified --outTmpDir, and this directory exists - please remove it before running STAR\n"<logMain, EXIT_CODE_PARAMETER, *this); + }; + + //threaded or not + g_threadChunks.threadBool=(runThreadN>1); + + //wigOut parameters + if (outWigType.at(0)=="None") { + outWigFlags.yes=false; + } else if (outWigType.at(0)=="bedGraph") { + outWigFlags.yes=true; + outWigFlags.format=0; + } else if (outWigType.at(0)=="wiggle") { + outWigFlags.yes=true; + outWigFlags.format=1; + } else { + ostringstream errOut; + errOut << "EXITING because of FATAL INPUT ERROR: unrecognized option in --outWigType=" << outWigType.at(0) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --outWigType : 'None' or 'bedGraph' \n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (outWigStrand.at(0)=="Stranded") { + outWigFlags.strand=true; + } else if (outWigStrand.at(0)=="Unstranded") { + outWigFlags.strand=false; + } else { + ostringstream errOut; + errOut << "EXITING because of FATAL INPUT ERROR: unrecognized option in --outWigStrand=" << outWigStrand.at(0) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --outWigStrand : 'Stranded' or 'Unstranded' \n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (outWigType.size()==1) {//simple bedGraph + outWigFlags.type=0; + } else { + if (outWigType.at(1)=="read1_5p") { + outWigFlags.type=1; + } else if (outWigType.at(1)=="read2") { + outWigFlags.type=2; + } else { + ostringstream errOut; + errOut << "EXITING because of FATAL INPUT ERROR: unrecognized second option in --outWigType=" << outWigType.at(1) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --outWigType : 'read1_5p' \n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + //wigOut parameters + if (outWigNorm.at(0)=="None") { + outWigFlags.norm=0; + } else if (outWigNorm.at(0)=="RPM") { + outWigFlags.norm=1; + } else { + ostringstream errOut; + errOut << "EXITING because of fatal parameter ERROR: unrecognized option in --outWigNorm=" << outWigNorm.at(0) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --outWigNorm : 'None' or 'RPM' \n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (runMode=="alignReads") { + inOut->logProgress.open((outFileNamePrefix + "Log.progress.out").c_str()); + } else if (runMode=="inputAlignmentsFromBAM") { + //at the moment, only wiggle output is implemented + if (outWigFlags.yes) { + *inOut->logStdOut << timeMonthDayTime() << " ..... Reading from BAM, output wiggle\n" <logMain << timeMonthDayTime() << " ..... Reading from BAM, output wiggle\n" <logStdOut << timeMonthDayTime() << " ..... Done\n" <logMain << timeMonthDayTime() << " ..... Done\n" <logStdOut << timeMonthDayTime() << " ..... Reading from BAM, remove duplicates, output BAM\n" <logMain << timeMonthDayTime() << " ..... Reading from BAM, remove duplicates, output BAM\n" <logStdOut << timeMonthDayTime() << " ..... Done\n" <logMain << timeMonthDayTime() << " ..... Done\n" <logMain, EXIT_CODE_PARAMETER, *this); + }; + sysRemoveDir (outFileTmp); + exit(0); + }; + + outSAMbool=false; + outBAMunsorted=false; + outBAMcoord=false; + if (runMode=="alignReads" && outSAMmode != "None") {//open SAM file and write header + if (outSAMtype.at(0)=="BAM") { + if (outSAMtype.size()<2) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETER error: missing BAM option\n"; + errOut <<"SOLUTION: re-run STAR with one of the allowed values of --outSAMtype BAM Unsorted OR SortedByCoordinate OR both\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + for (uint32 ii=1; iilogMain, EXIT_CODE_PARAMETER, *this); + }; + }; + //TODO check for conflicts + if (outBAMunsorted) { + if (outStd=="BAM_Unsorted") { + outBAMfileUnsortedName="-"; + } else { + outBAMfileUnsortedName=outFileNamePrefix + "Aligned.out.bam"; + }; + inOut->outBAMfileUnsorted = bgzf_open(outBAMfileUnsortedName.c_str(),("w"+to_string((long long) outBAMcompression)).c_str()); + }; + if (outBAMcoord) { + if (outStd=="BAM_SortedByCoordinate") { + outBAMfileCoordName="-"; + } else { + outBAMfileCoordName=outFileNamePrefix + "Aligned.sortedByCoord.out.bam"; + }; + inOut->outBAMfileCoord = bgzf_open(outBAMfileCoordName.c_str(),("w"+to_string((long long) outBAMcompression)).c_str()); + outBAMcoordNbins=max(runThreadN*3,10); + outBAMsortTmpDir=outFileTmp+"/BAMsort/"; + mkdir(outBAMsortTmpDir.c_str(),S_IRWXU); + }; + } else if (outSAMtype.at(0)=="SAM") { + outSAMbool=true; + if (outStd=="SAM") { + inOut->outSAM = & std::cout; + } else { + inOut->outSAMfile.open((outFileNamePrefix + "Aligned.out.sam").c_str()); + inOut->outSAM = & inOut->outSAMfile; + }; + } else if (outSAMtype.at(0)=="None") { + //nothin to do, all flags are already false + } else { + ostringstream errOut; + errOut <<"EXITING because of fatal input ERROR: unknown value for the first word of outSAMtype: "<< outSAMtype.at(0) <<"\n"; + errOut <<"SOLUTION: re-run STAR with one of the allowed values of outSAMtype: BAM or SAM \n"<logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + + //versions + for (uint ii=0;ii<2;ii++) { + if (parArray[ii]->inputLevel>0) { + ostringstream errOut; + errOut <<"EXITING because of fatal input ERROR: the version parameter "<< parArray[ii]->nameString << " cannot be re-defined by the user\n"; + errOut <<"SOLUTION: please remove this parameter from the command line or input files and re-start STAR\n"<logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + //run + if (runThreadN<=0) { + ostringstream errOut; + errOut <<"EXITING: fatal input ERROR: runThreadN must be >0, user-defined runThreadN="<logMain, EXIT_CODE_PARAMETER, *this); + }; + + // + if (outFilterType=="BySJout" && outSAMorder=="PairedKeepInputOrder") { + ostringstream errOut; + errOut <<"EXITING: fatal input ERROR: --outFilterType=BySJout is not presently compatible with --outSAMorder=PairedKeepInputOrder\n"; + errOut <<"SOLUTION: re-run STAR without setting one of those parameters. Send a feature request to the Authors\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + //SJ filtering + for (int ii=0;ii<4;ii++) { + if (outSJfilterOverhangMin.at(ii)<0) outSJfilterOverhangMin.at(ii)=numeric_limits::max(); + if (outSJfilterCountUniqueMin.at(ii)<0) outSJfilterCountUniqueMin.at(ii)=numeric_limits::max(); + }; + + if (limitGenomeGenerateRAM==0) {//must be >0 + inOut->logMain <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM=0\n"; + inOut->logMain <<"SOLUTION: please specify a >0 value for limitGenomeGenerateRAM\n"<1000000000000) {// + inOut->logMain <<"WARNING: specified limitGenomeGenerateRAM="<0) ++ii;//skip comma + outSAMattrRGlineSplit.push_back(outSAMattrRGline.at(ii)); //star new RG line with an empty string + if (outSAMattrRGlineSplit.back().substr(0,3)!="ID:") { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: the first word of a line from --outSAMattrRGline="<logMain, EXIT_CODE_PARAMETER, *this); + }; + outSAMattrRG.push_back(outSAMattrRGlineSplit.back().substr(3)); + }; + outSAMattrRGlineSplit.back()+="\t" + outSAMattrRGline.at(ii); + }; + }; + }; + + readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files + + if (runMode=="alignReads" && genomeLoad!="Remove" && genomeLoad!="LoadAndExit") {//open reads files to check if they are present + openReadsFiles(); + + //check sizes of the mate files, if not the same, assume mates are not the same length + if (readNmates==1) { + readMatesEqualLengths=true; + } else if (readNmates > 2){ + ostringstream errOut; + errOut <<"EXITING: because of fatal input ERROR: number of read mates files > 2: " <logMain, EXIT_CODE_PARAMETER, *this); + } else if (readMatesLengthsIn=="Equal") { + readMatesEqualLengths=true; + } else if (readMatesLengthsIn=="NotEqual") { + readMatesEqualLengths=false; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL input ERROR: the value of the parameter readMatesLengthsIn=" << readMatesLengthsIn <<" is not among the allowed values: Equal or NotEqual\n"; + errOut <<"SOLUTION: specify one of the allowed values: Equal or NotEqual\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if ( runMode=="alignReads" && outReadsUnmapped=="Fastx" ) {//open unmapped reads file + for (uint imate=0;imateoutUnmappedReadsStream[imate].open(ff.str().c_str()); + }; + }; + + + if (outFilterType=="Normal") { + outFilterBySJoutStage=0; + } else if (outFilterType=="BySJout") { + outFilterBySJoutStage=1; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL input ERROR: unknown value of parameter outFilterType: " << outFilterType <<"\n"; + errOut <<"SOLUTION: specify one of the allowed values: Normal | BySJout\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + if (outSAMmapqUnique<0 || outSAMmapqUnique>255) { + ostringstream errOut; + errOut <<"EXITING because of FATAL input ERROR: out of range value for outSAMmapqUnique=" << outSAMmapqUnique <<"\n"; + errOut <<"SOLUTION: specify outSAMmapqUnique withing the range of 0 to 255\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + // in/out buffers + #define BUFFER_InSizeFraction 0.5 + chunkInSizeBytesArray=(uint) int((limitIObufferSize-limitOutSJcollapsed*Junction::dataSize)*BUFFER_InSizeFraction)/2; + chunkOutBAMsizeBytes= (uint) int((1.0/BUFFER_InSizeFraction-1.0)*chunkInSizeBytesArray*2.0); + chunkInSizeBytes=chunkInSizeBytesArray-2*(DEF_readSeqLengthMax+1)-2*DEF_readNameLengthMax;//to prevent overflow + + //basic trimming + if (clip5pNbases.size()==1 && readNmates==2) clip5pNbases.push_back(clip5pNbases[0]); + if (clip3pNbases.size()==1 && readNmates==2) clip3pNbases.push_back(clip3pNbases[0]); + if (clip3pAfterAdapterNbases.size()==1 && readNmates==2) clip3pAfterAdapterNbases.push_back(clip3pAfterAdapterNbases[0]); + + //adapter clipping + if (clip3pAdapterSeq.size()==1 && readNmates==2) clip3pAdapterSeq.push_back(clip3pAdapterSeq[0]); + if (clip3pAdapterMMp.size()==1 && readNmates==2) clip3pAdapterMMp.push_back(clip3pAdapterMMp[0]); + for (uint imate=0;imatefastaOutSeqs.open("Seqs.out.fasta"); + }; + }; + + //outSAMattributes + + + outSAMattrPresent.NH=false;//TODO re-write as class with constructor? + outSAMattrPresent.HI=false; + outSAMattrPresent.AS=false; + outSAMattrPresent.NM=false; + outSAMattrPresent.MD=false; + outSAMattrPresent.nM=false; + outSAMattrPresent.jM=false; + outSAMattrPresent.jI=false; + outSAMattrPresent.RG=false; + outSAMattrPresent.XS=false; + + //for quant SAM output only NH and HI flags + outSAMattrPresentQuant=outSAMattrPresent; + outSAMattrPresent.NH=true; + outSAMattrPresent.NH=true; + outSAMattrOrderQuant.push_back(ATTR_NH); + outSAMattrOrderQuant.push_back(ATTR_HI); + + vector vAttr1; + if (outSAMattributes.at(0)=="None") { + } else if (outSAMattributes.at(0)=="All"){ + vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI"}; + } else if (outSAMattributes.at(0)=="Standard"){ + vAttr1={"NH","HI","AS","nM"}; + } else { + vAttr1=outSAMattributes; + }; + + for (int ii=0;iilogMain << "WARNING --outSAMattributes contains XS, therefore STAR will use --outSAMstrandField intronMotif" <logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + if (outSAMattrRG.size()>0 && !outSAMattrPresent.RG) { + outSAMattrOrder.push_back(ATTR_RG); + inOut->logMain << "WARNING --outSAMattrRG defines a read group, therefore STAR will output RG attribute" <logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (outSAMstrandField=="intronMotif" && !outSAMattrPresent.XS) { + outSAMattrOrder.push_back(ATTR_XS); + inOut->logMain << "WARNING --outSAMstrandField=intronMotif, therefore STAR will output XS attribute" <logMain, EXIT_CODE_PARAMETER, *this); + }; + +// #ifdef COMPILE_NO_SHM +// if (genomeLoad!="NoSharedMemory") { +// ostringstream errOut; +// errOut <<"EXITING because of FATAL INPUT ERROR: The code was compiled with NO SHARED MEMORY support, but genomeLoad="<logMain, EXIT_CODE_PARAMETER, *this); +// }; +// #endif + + //open compilation-dependent streams + #ifdef OUTPUT_localChains + inOut->outLocalChains.open((outFileNamePrefix + "LocalChains.out.tab").c_str()); + #endif + +// genomeNumToNT={'A','C','G','T','N'}; + strcpy(genomeNumToNT,"ACGTN"); + + if (genomeLoad!="LoadAndKeep" && genomeLoad!="LoadAndRemove" && genomeLoad!="Remove" && genomeLoad!="LoadAndExit" && genomeLoad!="NoSharedMemory") {// find shared memory fragment + ostringstream errOut; + errOut << "EXITING because of FATAL INPUT ERROR: --genomeLoad=" << genomeLoad << "\n" <logMain, EXIT_CODE_PARAMETER, *this); + }; + + //quantification parameters + quantModeI=0; + if (quantMode.at(0) != "-") { + for (uint32 ii=0; iioutQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) outBAMcompression)).c_str()); + } else { + ostringstream errOut; + errOut << "EXITING because of FATAL INPUT ERROR: unrecognized option in --quantMode=" << quantMode.at(ii) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --quantMode : TranscriptomeSAM or - .\n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + }; + + //two-pass + if (twopass1readsN>0) {//2-pass parameters + if (sjdbOverhang<=0) { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: sjdbOverhang <=0 in the 2-pass mode\n"; + errOut << "SOLUTION: for the 2-pass mode, specify sjdbOverhang>0, ideally readmateLength-1"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (genomeLoad!="NoSharedMemory") { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with genomeLoad<<"<logMain, EXIT_CODE_PARAMETER, *this); + }; + + twopassDir=outFileNamePrefix+"/_STARpass1/"; + sysRemoveDir (twopassDir); + if (mkdir (twopassDir.c_str(),S_IRWXU)!=0) { + ostringstream errOut; + errOut <<"EXITING because of fatal ERROR: could not make pass1 directory: "<< twopassDir<<"\n"; + errOut <<"SOLUTION: please check the path and writing permissions \n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + twopassSJpass1file=twopassDir+"/SJ.out.tab"; + sjdbLength=sjdbOverhang*2+1; + }; + inOut->logMain << "Finished loading and checking parameters\n" <> parIn; + if (parIn=="" || parIn.substr(0,2)=="//" || parIn.substr(0,1)=="#") return 0; //this is a comment + + uint iPar; + for (iPar=0; iParnameString) {// + if (inputLevelRequested < 0 || inputLevelRequested == parArray[iPar]->inputLevelAllowed) { + break;//will read this parameter values + } else { + return 1; //do not read inputs not requested at this level + }; + }; + }; + + string parV(""); + lineInStream >> parV; + if (parV=="") {//parameter value cannot be empty + ostringstream errOut; + errOut << "EXITING: FATAL INPUT ERROR: empty value for parameter \""<< parIn << "\" in input \"" << parameterInputName.at(inputLevel) <<"\"\n"; + errOut << "SOLUTION: use non-empty value for this parameter\n"<logMain, EXIT_CODE_PARAMETER, *this); + }; + + lineInStream.str(lineIn); lineInStream.clear(); lineInStream >> parIn; //get the correct state of stream, past reading parIn + + if (iPar==parArray.size()) {//string is not identified + ostringstream errOut; + errOut << "EXITING: FATAL INPUT ERROR: unrecoginzed parameter name \""<< parIn << "\" in input \"" << parameterInputName.at(inputLevel) <<"\"\n"; + errOut << "SOLUTION: use correct parameter name (check the manual)\n"<logMain, EXIT_CODE_PARAMETER, *this); + } else {//found the corresponding parameter + if (inputLevel==0 && parArray[iPar]->inputLevel>0) {//this is one of the initial parameters, it was read from Command Line and should not be re-defined + getline(lineInStream,parV); + inOut->logMain << setiosflags(ios::left) << setw(PAR_NAME_PRINT_WIDTH) << parArray[iPar]->nameString <inputLevelAllowed>0 && parArray[iPar]->inputLevelAllowed < inputLevel) {//this is initial parameter and cannot be redefined + ostringstream errOut; + errOut << "EXITING: FATAL INPUT ERROR: parameter \""<< parIn << "\" cannot be defined at the input level \"" << parameterInputName.at(inputLevel) << "\"\n"; + errOut << "SOLUTION: define parameter \""<< parIn << "\" in \"" << parameterInputName.at(parArray[iPar]->inputLevelAllowed) <<"\"\n" <logMain, EXIT_CODE_PARAMETER, *this); + } else if (parArray[iPar]->inputLevel==inputLevel) {//this parameter was already defined at this input level + ostringstream errOut; + errOut << "EXITING: FATAL INPUT ERROR: duplicate parameter \""<< parIn << "\" in input \"" << parameterInputName.at(inputLevel) << "\"\n"; + errOut << "SOLUTION: keep only one definition of input parameters in each input source\n"<logMain, EXIT_CODE_PARAMETER, *this); + } else {//read values + parArray[iPar]->inputValues(lineInStream); + parArray[iPar]->inputLevel=inputLevel; + if ( inOut->logMain.good() ) { + inOut->logMain << setiosflags(ios::left) << setw(PAR_NAME_PRINT_WIDTH) << parArray[iPar]->nameString << *(parArray[iPar]); + if ( parArray[iPar]->inputLevel > 0 ) inOut->logMain <<" ~RE-DEFINED"; + inOut->logMain << endl; + }; + }; + }; + return 0; +}; + +////////////////////////////////////////////////////////////////////////////////////////// +void Parameters::chrInfoLoad() {//find chrStart,Length,nChr from Genome G + + //load chr names + ifstream chrStreamIn ( (genomeDir+"/chrName.txt").c_str() ); + if (chrStreamIn.fail()) { + ostringstream errOut; + errOut << "EXITING because of FATAL error, could not open file " << (genomeDir+"/chrName.txt") <<"\n"; + errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_INPUT_FILES, *this); + }; + + while (chrStreamIn.good()) { + string chrIn; + char chrInChar[1000]; + chrStreamIn.getline(chrInChar,1000); + chrIn=chrInChar; + if (chrIn=="") break; + chrName.push_back(chrIn); + }; + chrStreamIn.close(); + nChrReal=chrName.size(); + + inOut->logMain << "Number of real (reference) chromosmes= " << nChrReal <<"\n"<logMain, EXIT_CODE_INPUT_FILES, *this); + }; + + for (uint ii=0;ii> chrLength[ii]; + }; + chrStreamIn.close(); + + //load chr starts + chrStreamIn.open( (genomeDir+"/chrStart.txt").c_str() ); + if (chrStreamIn.fail()) { + ostringstream errOut; + errOut << "EXITING because of FATAL error, could not open file " << (genomeDir+"/chrStart.txt") <<"\n"; + errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_INPUT_FILES, *this); + }; + + for (uint ii=0;ii<=nChrReal;ii++) { + chrStreamIn >> chrStart[ii]; + }; + chrStreamIn.close(); + + //log + for (uint ii=0; iilogMain << ii+1 <<"\t"<< chrName[ii] <<"\t"<=chrStart[ichr]) ichr++; + chrBin[ii]=ichr-1; + }; +}; + diff --git a/Parameters.h b/Parameters.h new file mode 100644 index 0000000..0f27005 --- /dev/null +++ b/Parameters.h @@ -0,0 +1,236 @@ +#ifndef PARAMETERS_DEF +#define PARAMETERS_DEF + +#include "IncludeDefine.h" +#include "InOutStreams.h" +#include "ParameterInfo.h" +#include +#include "TimeFunctions.h" +#include +#include + +#define PAR_quantModeI_TranscritomeSAM 0x1 + +class Parameters { + + public: + vector parArray, parArrayInitial; + vector parameterInputName; + + string commandLine, commandLineFull; + + //version + uint versionSTAR; + vector versionGenome; + + // run parameters + string runMode; + int runThreadN; + + //parameters + vector parametersFiles; + + //input + string inputBAMfile; + + //genome, SA, ... + vector chrStart, chrLength; + string genomeDir,genomeLoad; + vector genomeFastaFiles; + uint genomeSAsparseD;//sparsity=distance between indices + //binning,windows,anchors + uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; + uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; + uint winAnchorMultimapNmax; //max number of alignments for anchors + + uint genomeSAindexNbases; //length of the SA pre-index strings + uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases + + char genomeNumToNT[6]; + //read parameters + uint readMapNumber; + uint iReadAll; + int readFilesIndex; + uint32 readFilesN; + vector readFilesIn, readFilesInTmp; + vector > readFilesNames; + uint readNmates; + string readMatesLengthsIn; + vector readFilesCommand; + pid_t readFilesCommandPID[MAX_N_MATES]; + + string outSAMreadID; + + vector clip5pNbases, clip3pNbases, clip3pAfterAdapterNbases; + vector clip3pAdapterMMp; + vector clip3pAdapterSeq; + char *clip3pAdapterSeqNum[MAX_N_MATES];//adapter sequence - numerical + bool readMatesEqualLengths; //whether or not the read mates have the same length, true if onyl one mate + + //align parameters + uint alignSJoverhangMin,alignSJDBoverhangMin,alignSplicedMateMapLmin; //min SJ donor/acceptor length + double alignSplicedMateMapLminOverLmate; + uint alignWindowsPerReadNmax; //max number of alignment windows per read + uint alignTranscriptsPerWindowNmax; //maximum number of transcripts recorded per window + uint alignTranscriptsPerReadNmax; //max number of alignments per read + uint alignIntronMin;//min length to call a gap an intron + uint alignIntronMax;//max length to call + uint alignMatesGapMax;//max gap between the mates (if paired-end) + string alignEndsType; + + //seed parameters + uint seedMultimapNmax; //max number of multiple alignments per piece + uint seedSearchLmax; //max length of the seed + uint seedPerReadNmax; //max number of pieces per Read + uint seedPerWindowNmax; //max number of aligns per window + uint seedNoneLociPerWindow; //max number of aligns from one piece per window + uint seedSearchStartLmax; + double seedSearchStartLmaxOverLread; //length of split start points + + //chunk parameters + uint chunkInSizeBytes,chunkInSizeBytesArray,chunkOutBAMsizeBytes; + + //output + string outFileNamePrefix, outStd, outTmpDir; + + //SAM output + string outBAMfileCoordName, outBAMfileUnsortedName, outQuantBAMfileName; + string samHeader; + string outSAMmode, outSAMstrandField, outSAMunmapped, outSAMorder, outSAMprimaryFlag; + vector outSAMattributes, outSAMheaderHD, outSAMheaderPG; + vector outSAMattrRGline,outSAMattrRGlineSplit,outSAMattrRG; + string outSAMheaderCommentFile; + int outSAMmapqUnique; + struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS;} outSAMattrPresent, outSAMattrPresentQuant; + vector outSAMattrOrder, outSAMattrOrderQuant; + int outBAMcompression; + vector outSAMtype; + bool outBAMunsorted, outBAMcoord, outSAMbool; + uint32 outBAMcoordNbins; + string outBAMsortTmpDir; + string bamRemoveDuplicatesType; + uint bamRemoveDuplicatesMate2basesN; + + + string outReadsUnmapped; + int outQSconversionAdd; + string outFileTmp; + + //output filtering + uint outFilterMismatchNmax; + double outFilterMismatchNoverLmax, outFilterMismatchNoverReadLmax, outFilterMismatchNoverLmax1; //max proportion of all MM within all bases + + uint outFilterMatchNmin,outFilterMultimapNmax;//min number of matches + double outFilterScoreMinOverLread, outFilterMatchNminOverLread;//normalzied to read length + intScore outFilterScoreMin,outFilterMultimapScoreRange;//min score to output + string outFilterIntronMotifs; + string outFilterType; //type of filtering + int outFilterBySJoutStage; //indicates the stage of filtering by SJout + + //output filtering SJs + string outSJfilterReads; + vector outSJfilterCountUniqueMin, outSJfilterCountTotalMin; + vector outSJfilterOverhangMin; + vector outSJfilterDistToOtherSJmin; //min allowed distance to other SJ's donor/acceptor + vector outSJfilterIntronMaxVsReadN; + + //wiggle output + vector outWigType, outWigStrand, outWigNorm; + string outWigReferencesPrefix; + struct { + bool yes; + bool strand; + int type; + int format; + int norm; + } outWigFlags; + + //2-pass + uint twopass1readsN, twopassSJlimit; + string twopassDir,twopassSJpass1file; + + //storage limits + uint limitGenomeGenerateRAM; + uint limitIObufferSize; //max size of the in/out buffer, bytes + uint limitOutSAMoneReadBytes; + uint limitOutSJoneRead, limitOutSJcollapsed; + uint limitBAMsortRAM; + + // penalties + intScore scoreGap, scoreGapNoncan, scoreGapGCAG, scoreGapATAC, scoreDelBase, scoreDelOpen, scoreInsBase, scoreInsOpen; + intScore scoreStitchSJshift;//Max negative score when + double scoreGenomicLengthLog2scale; + + //old variables: CLEAN-up needed + char outputBED[MAX_OUTPUT_FLAG]; //output flags + + //SW search + uint swMode, swWinCoverageMinP; + //SW penalties + uint swPeoutFilterMatchNmin, swPenMismatch, swPenGapOpen, swPenGapExtend; + uint swHsize; + + int annotScoreScale;//overall multiplication factor for the annotation + string annotSignalFile;//binary file with annotation signal + + //SJ database parameters + string sjdbFileChrStartEnd; + string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript; + uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer + int sjdbScore; + + uint sjChrStart,sjdbN; //first sj-db chr + uint sjGstart; //start of the sj-db genome sequence + uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci + uint8 *sjdbMotif; //motifs of annotated junctions + uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions + uint8 *sjdbStrand; //junctions strand, not used yet + + uint sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered + + //quantification parameters + //input + vector quantMode; //quantification mode input string + uint32 quantModeI; //quantification mode integer + + //chimeric + uint chimSegmentMin, chimJunctionOverhangMin; //min chimeric donor/acceptor length + uint maxChimReadGap; //max read gap for stitching chimeric windows + int chimScoreMin,chimScoreDropMax,chimScoreSeparation, chimScoreJunctionNonGTAG; //min chimeric score + + //splitting + char Qsplit; + uint maxNsplit, minLsplit, minLmap; + + //limits + + + ////////////////////// CLEAN-UP needed + InOutStreams *inOut; //main input output streams + + uint Lread; + + //Genome parameters + uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci + uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass + uint nSAi; //size of the SAindex + vector chrName; + map chrNameIndex; + unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information + uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index + + + + Parameters(); + void chrInfoLoad(); //find nChr and chrStart from genome + void chrBinFill();//file chrBin array + int readParsFromFile(ifstream*, ofstream*, int); //read parameters from one file + int readPars(); // read parameters from all files + int scanOneLine (string &lineIn, int inputLevel, int inputLevelRequested); + void scanAllLines (istream &streamIn, int inputLevel, int inputLevelRequested); + void inputParameters (int argInN, char* argIn[]); //input parameters: default, from files, from command line + void openReadsFiles(); + void closeReadsFiles(); + +}; +#endif // Parameters.h diff --git a/Parameters_closeReadsFiles.cpp b/Parameters_closeReadsFiles.cpp new file mode 100644 index 0000000..7c5c8cb --- /dev/null +++ b/Parameters_closeReadsFiles.cpp @@ -0,0 +1,12 @@ +#include "Parameters.h" +#include "ErrorWarning.h" +#include +#include +void Parameters::closeReadsFiles() { + for (uint imate=0;imatereadIn[imate].is_open() ) inOut->readIn[imate].close(); + if (readFilesCommandPID[imate]>0) { + kill(readFilesCommandPID[imate],SIGKILL); + }; + }; +}; \ No newline at end of file diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp new file mode 100644 index 0000000..4db7116 --- /dev/null +++ b/Parameters_openReadsFiles.cpp @@ -0,0 +1,100 @@ +#include "Parameters.h" +#include "ErrorWarning.h" +#include +#include +void Parameters::openReadsFiles() { + string readFilesCommandString(""); + if (readFilesCommand.at(0)=="-") { + if (readFilesIn.at(0).find(',')readIn[ii].is_open() ) inOut->readIn[ii].close(); + inOut->readIn[ii].open(readFilesIn.at(ii).c_str()); //try to open the Sequences file right away, exit if failed + if (inOut->readIn[ii].fail()) { + ostringstream errOut; + errOut <<"EXITING because of fatal input ERROR: could not open readFilesIn=" << readFilesIn.at(ii) <<"\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + } else {//create fifo files, execute pre-processing command + + vector readsCommandFileName; + + readFilesNames.resize(readNmates); + + for (uint imate=0;imatelogMain << "Input read files for mate "<< imate+1 <<", from input string " << readFilesIn.at(imate) <logMain < " << ("\""+readFilesInTmp.at(imate)+"\"") << "\n"; + readsCommandFile << readFilesCommandString << " " <<("\""+file1+"\"") << (" > \""+readFilesInTmp.at(imate)+"\"") <<"\n"; + ++readFilesN;//only increase file count for one mate + + } while (pos!= string::npos); + + readsCommandFile.close(); + chmod(readsCommandFileName.at(imate).c_str(),S_IXUSR | S_IRUSR | S_IWUSR); + + readFilesCommandPID[imate]=0; + + pid_t PID=fork(); + switch (PID) { + case -1: + exitWithError("EXITING: because of fatal EXECUTION error: someting went wrong with forking readFilesCommand", std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + break; + + case 0: + //this is the child + execlp(readsCommandFileName.at(imate).c_str(), readsCommandFileName.at(imate).c_str(), (char*) NULL); + exit(0); + + default: + //this is the father, record PID of the children + readFilesCommandPID[imate]=PID; + }; + +// system((("\""+readsCommandFileName.at(imate)+"\"") + " & ").c_str()); + inOut->readIn[imate].open(readFilesInTmp.at(imate).c_str()); + }; + if (readNmates==2 && readFilesNames.at(0).size() != readFilesNames.at(1).size()) { + ostringstream errOut; + errOut <<"EXITING: because of fatal INPUT ERROR: number of input files for mate1: "<logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (outSAMattrRG.size()>1 && outSAMattrRG.size()!=readFilesN) { + ostringstream errOut; + errOut <<"EXITING: because of fatal INPUT ERROR: number of input read files: "<logMain, EXIT_CODE_PARAMETER, *this); + } else if (outSAMattrRG.size()==1) {//use the same read group for all files + for (uint32 ifile=1;ifilewinBinN]; + winBin[1] = new uintWinBin [P->winBinN]; + memset(winBin[0],255,sizeof(winBin[0][0])*P->winBinN); + memset(winBin[1],255,sizeof(winBin[0][0])*P->winBinN); + + //transcriptome + if ( (P->quantModeI & PAR_quantModeI_TranscritomeSAM) > 0) { + alignTrAll=new Transcript [P->alignTranscriptsPerReadNmax]; + }; + +// statsRA=new StatsAll; + + //split + splitR=new uint*[3]; + splitR[0]=new uint[P->maxNsplit]; splitR[1]=new uint[P->maxNsplit]; splitR[2]=new uint[P->maxNsplit]; + + //alignments + PC=new uiPC[P->seedPerReadNmax]; + WC=new uiWC[P->alignWindowsPerReadNmax]; + + nWA=new uint[P->alignWindowsPerReadNmax]; + nWAP=new uint[P->alignWindowsPerReadNmax]; + WALrec=new uint[P->alignWindowsPerReadNmax]; + WlastAnchor=new uint[P->alignWindowsPerReadNmax]; + +#ifdef COMPILE_FOR_LONG_READS + swWinCov = new uint[P->alignWindowsPerReadNmax]; + + if (P->swMode==1) { + swWinGleft = new uint[P->alignWindowsPerReadNmax]; + swWinGright = new uint[P->alignWindowsPerReadNmax]; + swWinRleft = new uint[P->alignWindowsPerReadNmax]; + swWinRright = new uint[P->alignWindowsPerReadNmax]; + P->swHsize=5000000000LLU; + swT = new char [P->swHsize]; + }; + + scoreSeedToSeed = new intScore [P->seedPerWindowNmax*(P->seedPerWindowNmax+1)/2]; + scoreSeedBest = new intScore [P->seedPerWindowNmax]; + scoreSeedBestInd = new uint [P->seedPerWindowNmax]; + scoreSeedBestMM = new uint [P->seedPerWindowNmax]; + seedChain = new uint [P->seedPerWindowNmax]; + +#endif + + WA=new uiWA*[P->alignWindowsPerReadNmax]; + for (uint ii=0;iialignWindowsPerReadNmax;ii++) WA[ii]=new uiWA[P->seedPerWindowNmax]; + + WAincl = new bool [P->seedPerWindowNmax]; + + trAll = new Transcript**[P->alignWindowsPerReadNmax+1]; + + nWinTr = new uint[P->alignWindowsPerReadNmax]; + + trArray = new Transcript[P->alignTranscriptsPerReadNmax]; + trArrayPointer = new Transcript*[P->alignTranscriptsPerReadNmax]; + for (uint ii=0;iialignTranscriptsPerReadNmax;ii++) trArrayPointer[ii]= &(trArray[ii]); + + + trInit = new Transcript; + + //read + Read0 = new char*[2]; + Read0[0] = new char [DEF_readSeqLengthMax+1]; + Read0[1] = new char [DEF_readSeqLengthMax+1]; + + Qual0 = new char*[2]; + Qual0[0] = new char [DEF_readSeqLengthMax+1]; + Qual0[1] = new char [DEF_readSeqLengthMax+1]; + + readNameMates=new char* [P->readNmates]; + for (uint ii=0; iireadNmates; ii++) readNameMates[ii]=new char [DEF_readNameLengthMax]; + + readName = readNameMates[0]; + Read1 = new char*[3]; + Read1[0]=new char[DEF_readSeqLengthMax+1]; Read1[1]=new char[DEF_readSeqLengthMax+1]; Read1[2]=new char[DEF_readSeqLengthMax+1]; + Qual1=new char*[2]; //modified QSs for scoring + Qual1[0]=new char[DEF_readSeqLengthMax+1]; Qual1[1]=new char[DEF_readSeqLengthMax+1]; + + resetN(); + +}; + +void ReadAlign::resetN () {//reset resets the counters to 0 for a new read + mapMarker=0; + nA=0;nP=0;nW=0; + nTr=0;nTrMate=0;nextWinScore=0; + nUM[0]=0;nUM[1]=0; + storedLmin=0; uniqLmax=0; uniqLmaxInd=0; multLmax=0; multLmaxN=0; multNminL=0; multNmin=0; multNmax=0; multNmaxL=0; + chimN=0; + + for (uint ii=0; iireadNmates; ii++) { + maxScoreMate[ii]=0; + }; + +// for (uint ii=0;iialignTranscriptsPerReadNmax;ii++) trArrayPointer[ii]= &(trArray[ii]); + +}; + +void ReadAlign::outTxtMain(ofstream* outTxt, Transcript& t) { + + *outTxt << setw(10) << iRead+1 << setw(7) << nTr <<" "\ + << setw(7) << t.roStart << setw(7) << t.rLength << setw(12) << nW << setw(10)<< mapMarker << "\t" << t.maxScore << setw(7) << nextWinScore << setw(7) << t.nextTrScore <<" " \ + << setw(7) << t.nMatch << setw(7) << t.nMM <<" "\ + << setw(7) << t.nGap << setw(10) << t.lGap << setw(7) << t.nDel << setw(7) << t.lDel; + + *outTxt << "\n"; +}; diff --git a/ReadAlign.h b/ReadAlign.h new file mode 100644 index 0000000..f906697 --- /dev/null +++ b/ReadAlign.h @@ -0,0 +1,140 @@ +#ifndef CODE_READALIGN +#define CODE_READALIGN + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "Genome.h" +#include "Stats.h" +#include "OutSJ.h" +#include +#include "Transcriptome.h" +#include "BAMoutput.h" + + +class ReadAlign : public Genome { + public: + Parameters* P; //pointer to the parameters, will be initialized on construction + + //mapping statistics + Stats statsRA; + + //quantification + Transcriptome *Tr; + + //mapping time + time_t timeStart, timeFinish; + + + //input,output + istream* readInStream[MAX_N_MATES]; + ostream* outSAMstream; + OutSJ *chunkOutSJ, *chunkOutSJ1; + fstream chunkOutChimSAM, chunkOutChimJunction, chunkOutUnmappedReadsStream[MAX_N_MATES], chunkOutFilterBySJoutFiles[MAX_N_MATES]; + uint outBAMbytes, outBAMbytes1; //number of bytes output to SAM/BAM with oneRead + char *outBAMarray, *outBAMarray1;//pointer to the (last+1) position of the SAM/BAM output array + BAMoutput *outBAMcoord, *outBAMunsorted, *outBAMquant;//sorted by coordinate, unsorted, transcriptomic BAM structure + char outBAMoneAlign[MAX_N_MATES][BAMoutput_oneAlignMaxBytes];//tmp array to store BAM alignmnent + uint outBAMoneAlignNbytes[MAX_N_MATES];//number of bytes in the tmp BAM array + + ostringstream samStreamCIGAR, samStreamSJmotif, samStreamSJintron,samStreamSJannot; + + intScore maxScoreMate[MAX_N_MATES]; + intScore *scoreSeedToSeed, *scoreSeedBest; + uint *scoreSeedBestInd, *seedChain, *scoreSeedBestMM; + + bool outFilterPassed; //true if alignment passed all filter and is output to SAM/BAM + +// StatsAll *statsRA; + + //transcript + Transcript* trArray; //linear array of transcripts to store all of them from all windows + Transcript** trArrayPointer; //linear array of transcripts to store all of them from all windows + + //read + uint iRead, iReadAll, iMate, readFilesIndex; + char readFilter; //Illumina not passed Y/N + bool revertStrand; //what to do with the strand, according to strandType and iMate + uint Lread, readLength[MAX_N_MATES], readLengthOriginal[MAX_N_MATES], readLengthPair, readLengthPairOriginal; + uint clip3pNtotal[MAX_N_MATES], clip5pNtotal[MAX_N_MATES], clip3pAdapterN[MAX_N_MATES]; //total number of trimmed bases from 5p,3p + int readFileType; //file type: 1=fasta; 2=fastq + uint outFilterMismatchNmaxTotal; + + char dummyChar[4096]; + char** Read0; + char** Qual0; + char** readNameMates; + char* readName; + char** Read1; + char** Qual1; //modified QSs for scoring + + //split + uint** splitR; + uint Nsplit; + +// uint fragLength[MAX_N_FRAG], fragStart[MAX_N_FRAG]; //fragment Lengths and Starts in read space + + //binned alignments + uintWinBin **winBin; //binned genome: window ID (number) per bin + + //alignments + uiPC *PC; //pieces coordinates + uiWC *WC; //windows coordinates + uiWA **WA; //aligments per window + + int unmapType; //marker for why a read is unmapped + + uint mapMarker; //alignment marker (typically, if there is something wrong) + uint nA, nP, nW, nWall, nUM[2]; //number of all alignments, pieces, windows, U/M, + uint *nWA, *nWAP, *WALrec, *WlastAnchor; //number of alignments per window, per window per piece, min recordable length per window + bool *WAincl; //alginment inclusion mask + + uint *swWinCov, *swWinGleft, *swWinGright, *swWinRleft, *swWinRright; //read coverage per window + char *swT; + + uint storedLmin, uniqLmax, uniqLmaxInd, multLmax, multLmaxN, multNmin, multNminL, multNmax, multNmaxL; + uint nTr, nTrMate; // number of transcripts called + intScore maxScore, nextWinScore;//maximum alignment score, next best score + + uint chimN, chimRepeat, chimStr, chimMotif; + Transcript trChim[MAX_N_CHIMERAS]; + + Transcript trA, trA1, *trBest, *trNext, *trInit; //transcript, best tr, next best tr, initialized tr + Transcript ***trAll; //all transcripts for all windows + uint *nWinTr; //number of recorded transcripts per window + + Transcript *alignC, *extendC, *polyAtailC; //alignment rules/conditions + + intScore trMultScores[MAX_N_MULTMAP];//scores for the multiple mappers + Transcript* trMult[MAX_N_MULTMAP];//multimapping transcripts + Transcript *alignTrAll;//alignments to transcriptome + + ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn);//allocate arrays + void resetN();//resets the counters to 0 + void multMapSelect(); + int mapOneRead(); + uint maxMappableLength2strands(uint pieceStart, uint pieceLength, uint iDir, uint iSA1, uint iSA2, uint& maxL, uint iFrag); + void storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indStartEnd[2], uint iFrag); + + bool outputTranscript(Transcript *trOut, uint nTrOut, ofstream *outBED); + uint outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, ostream *outStream); + void alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, vector outSAMattrOrder); + void samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uint &tagNM, string &tagMD); + + void outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ *outStream, uint sjReadStartN ); + string outputTranscriptCIGARp(Transcript const &trOut); + void outTxtMain(ofstream*,Transcript&); + int createExtendWindowsWithAlign(uint a1, uint aStr); //extends and windows with one alignment + void assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep, uint aFrag, uint aRstart,bool aAnchor, uint sjA); //assigns one alignment to a window + void stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint Lread); + void chimericDetection(); + void outputAlignments(); + void stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G);//stitches all seeds in one window: iW + + int oneRead(); + uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); +}; + +#endif + + diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp new file mode 100644 index 0000000..5b337a8 --- /dev/null +++ b/ReadAlignChunk.cpp @@ -0,0 +1,132 @@ +#include "ReadAlignChunk.h" +#include +#include "ErrorWarning.h" + +ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin),Tr(TrIn) {//initialize chunk + + iThread=iChunk; + + RA = new ReadAlign(P,genomeIn, Tr);//new local copy of RA for each chunk + + RA->iRead=0; + + chunkIn=new char* [P->readNmates]; + readInStream=new istringstream* [P->readNmates]; +// readInStream=new istringstream* [P->readNmates]; + for (uint ii=0;iireadNmates;ii++) { + chunkIn[ii]=new char[P->chunkInSizeBytesArray];//reserve more space to finish loading one read + memset(chunkIn[ii],'\n',P->chunkInSizeBytesArray); + readInStream[ii] = new istringstream; + readInStream[ii]->rdbuf()->pubsetbuf(chunkIn[ii],P->chunkInSizeBytesArray); + RA->readInStream[ii]=readInStream[ii]; + }; + + + if (P->outSAMbool) { + chunkOutBAM=new char [P->chunkOutBAMsizeBytes]; + RA->outBAMarray=chunkOutBAM; + chunkOutBAMstream=new ostringstream; + chunkOutBAMstream->rdbuf()->pubsetbuf(chunkOutBAM,P->chunkOutBAMsizeBytes); + RA->outSAMstream=chunkOutBAMstream; + RA->outSAMstream->seekp(0,ios::beg); + chunkOutBAMtotal=0; + }; + + if (P->outBAMunsorted) { + chunkOutBAMunsorted = new BAMoutput (P->chunkOutBAMsizeBytes,P->inOut->outBAMfileUnsorted); + RA->outBAMunsorted = chunkOutBAMunsorted; + } else { + chunkOutBAMunsorted=NULL; + RA->outBAMunsorted=NULL; + }; + + if (P->outBAMcoord) { + chunkOutBAMcoord = new BAMoutput (P->chunkOutBAMsizeBytes, P->outBAMcoordNbins, P->chrStart[P->nChrReal], iChunk, P->outBAMsortTmpDir); + RA->outBAMcoord = chunkOutBAMcoord; + } else { + chunkOutBAMcoord=NULL; + RA->outBAMcoord=NULL; + }; + + if ( (P->quantModeI & PAR_quantModeI_TranscritomeSAM) > 0) { + chunkOutBAMquant = new BAMoutput (P->chunkOutBAMsizeBytes,P->inOut->outQuantBAMfile); + RA->outBAMquant = chunkOutBAMquant; + } else { + chunkOutBAMquant=NULL; + RA->outBAMquant=NULL; + }; + + chunkOutSJ=new OutSJ (P->limitOutSJcollapsed, P); + chunkOutSJ1=new OutSJ (P->limitOutSJcollapsed, P); + + RA->chunkOutSJ=chunkOutSJ; + RA->chunkOutSJ1=chunkOutSJ1; + + if (P->chimSegmentMin>0) { + chunkFstreamOpen(P->outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); + chunkFstreamOpen(P->outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); + }; + if (P->outReadsUnmapped=="Fastx" ) { + chunkFstreamOpen(P->outFileTmp + "/Unmapped.out.mate1.thread",iChunk, RA->chunkOutUnmappedReadsStream[0]); + if (P->readNmates==2) chunkFstreamOpen(P->outFileTmp + "/Unmapped.out.mate2.thread",iChunk, RA->chunkOutUnmappedReadsStream[1]); + }; + if (P->outFilterType=="BySJout") { + chunkFstreamOpen(P->outFileTmp + "/FilterBySJoutFiles.mate1.thread",iChunk, RA->chunkOutFilterBySJoutFiles[0]); + if (P->readNmates==2) chunkFstreamOpen(P->outFileTmp + "/FilterBySJoutFiles.mate2.thread",iChunk, RA->chunkOutFilterBySJoutFiles[1]); + }; +}; + +/////////////// +void ReadAlignChunk::chunkFstreamOpen(string filePrefix, int iChunk, fstream &fstreamOut) {//open fstreams for chunks + ostringstream fNameStream1; + fNameStream1 << filePrefix << iChunk; + string fName1=fNameStream1.str(); + P->inOut->logMain << "Opening the file: " << fName1 << " ... " <inOut->logMain << "failed!\n"; + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not create output file "<< fName1 << "\n"; + errOut << "Solution: check that you have permission to write this file\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + P->inOut->logMain << "ok" <flush(); + allOut->clear(); + fileChunkIn.close(); + fileChunkIn.clear(); + remove(name1.str().c_str()); + iC++; + } else { + fileChunkIn.close(); + break; + }; + }; +}; + diff --git a/ReadAlignChunk.h b/ReadAlignChunk.h new file mode 100644 index 0000000..e3a5571 --- /dev/null +++ b/ReadAlignChunk.h @@ -0,0 +1,42 @@ +#ifndef READ_ALIGN_CHUNK_DEF +#define READ_ALIGN_CHUNK_DEF + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "ReadAlign.h" +#include "OutSJ.h" +#include "Transcriptome.h" +#include "BAMoutput.h" + +class ReadAlignChunk {//chunk of reads and alignments +public: + Parameters* P; + ReadAlign* RA; + + Transcriptome *Tr; + + char **chunkIn; //space for the chunk of input reads + char *chunkOutBAM, *chunkOutBAM1;//space for the chunk of output SAM + OutSJ *chunkOutSJ, *chunkOutSJ1; + + BAMoutput *chunkOutBAMcoord, *chunkOutBAMunsorted, *chunkOutBAMquant; + + istringstream** readInStream; + ostringstream* chunkOutBAMstream; + ofstream chunkOutBAMfile; + string chunkOutBAMfileName; + + bool noReadsLeft; + uint iChunkIn; //current chunk # as read from .fastq + uint iChunkOutSAM; //current chunk # writtedn to Aligned.out.sam + int iThread; //current thread + uint chunkOutBAMtotal, chunkOutBAMtotal1; //total number of bytes in the write buffer + + ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk); + void processChunks(); + void mapChunk(); + void chunkFstreamOpen(string filePrefix, int iChunk, fstream &fstreamOut); + void chunkFstreamCat (fstream &chunkOut, ofstream &allOut, bool mutexFlag, pthread_mutex_t &mutexVal); + void chunkFilesCat(ostream *allOut, string filePrefix, uint &iC); +}; +#endif diff --git a/ReadAlignChunk_mapChunk.cpp b/ReadAlignChunk_mapChunk.cpp new file mode 100644 index 0000000..30dbca4 --- /dev/null +++ b/ReadAlignChunk_mapChunk.cpp @@ -0,0 +1,108 @@ +#include "ReadAlignChunk.h" +#include "GlobalVariables.h" +#include "ThreadControl.h" +#include "ErrorWarning.h" +#include SAMTOOLS_BGZF_H + +void ReadAlignChunk::mapChunk() {//map one chunk. Input reads stream has to be setup in RA->readInStream[ii] + RA->statsRA.resetN(); + + for (uint ii=0;iireadNmates;ii++) {//clear eof and rewind the input streams + RA->readInStream[ii]->clear(); + RA->readInStream[ii]->seekg(0,ios::beg); + }; + + if ( P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//open chunk file + ostringstream name1(""); + name1 << P->outFileTmp + "/Aligned.tmp.sam.chunk"<oneRead(); //map one read + + if (readStatus==0) {//there was a read processed + RA->iRead++; +// chunkOutBAMtotal=(uint) RA->outSAMstream->tellp(); + chunkOutBAMtotal+=RA->outBAMbytes; + chunkOutBAMtotal1+=RA->outBAMbytes1; +// uint ddd=(uint) RA->outSAMstream->tellp(); + }; + + //write SAM aligns to chunk buffer + if (P->outSAMbool) { + if ( chunkOutBAMtotal > P->chunkOutBAMsizeBytes ) {//this should not happen! + ostringstream errOut; + errOut <<"EXITING because of fatal error: buffer size for SAM/BAM output is too small\n"; + errOut <<"Solution: increase input parameter --limitOutSAMoneReadBytes\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } else if ( chunkOutBAMtotal + P->limitOutSAMoneReadBytes > P->chunkOutBAMsizeBytes || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped + if ( P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//output chunks into separate files + chunkOutBAMfile.write(chunkOutBAM,chunkOutBAMtotal); + chunkOutBAMfile.clear(); //in case 0 bytes were written which could set fail bit + } else {//standard way, directly into Aligned.out.sam file + //SAM output + if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); + P->inOut->outSAM->write(chunkOutBAM,chunkOutBAMtotal); + P->inOut->outSAM->clear();//in case 0 bytes were written which could set fail bit + if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); + }; + RA->outSAMstream->seekp(0,ios::beg); //rewind the chunk storage + chunkOutBAMtotal=0; + }; + }; + + //collapse SJ buffer if needed + if ( chunkOutSJ->N > P->limitOutSJcollapsed ) {//this means the number of collapsed junctions is larger than the chunks size + ostringstream errOut; + errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; + errOut <<"Solution: increase input parameter --limitOutSJoneRead\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } else if ( chunkOutSJ->N + P->limitOutSJoneRead > P->limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped + chunkOutSJ->collapseSJ(); + if ( chunkOutSJ->N + 2*P->limitOutSJoneRead > P->limitOutSJcollapsed ) { + ostringstream errOut; + errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; + errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + }; + + //collapse SJ1 buffer if needed + if ( chunkOutSJ1->N > P->limitOutSJcollapsed ) {//this means the number of collapsed junctions is larger than the chunks size + ostringstream errOut; + errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; + errOut <<"Solution: increase input parameter --limitOutSJoneRead\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } else if ( chunkOutSJ1->N + P->limitOutSJoneRead > P->limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped + chunkOutSJ1->collapseSJ(); + if ( chunkOutSJ1->N + 2*P->limitOutSJoneRead > P->limitOutSJcollapsed ) { + ostringstream errOut; + errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; + errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + }; + + }; //reads cycle + + if ( P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//write the remaining part of the buffer, close and rename chunk files + chunkOutBAMfile.write(chunkOutBAM,chunkOutBAMtotal); + chunkOutBAMfile.clear(); //in case 0 bytes were written which could set fail bit + chunkOutBAMfile.close(); + RA->outSAMstream->seekp(0,ios::beg); //rewind the chunk storage + chunkOutBAMtotal=0; + ostringstream name2(""); + name2 << P->outFileTmp + "/Aligned.out.sam.chunk"<runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexStats); + g_statsAll.addStats(RA->statsRA); + g_statsAll.progressReport(P->inOut->logProgress); + if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexStats); +}; diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp new file mode 100644 index 0000000..b13f437 --- /dev/null +++ b/ReadAlignChunk_processChunks.cpp @@ -0,0 +1,167 @@ +#include "ReadAlignChunk.h" +#include "GlobalVariables.h" +#include "ThreadControl.h" +#include "ErrorWarning.h" + +void ReadAlignChunk::processChunks() {//read-map-write chunks + noReadsLeft=false; //true if there no more reads left in the file + + while (!noReadsLeft) {//continue until the input EOF + //////////////read a chunk from input files and store in memory + if (P->outFilterBySJoutStage<2) {//read chunks from input file + + if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexInRead); + + uint chunkInSizeBytesTotal[2]={0,0}; + while (chunkInSizeBytesTotal[0] < P->chunkInSizeBytes && chunkInSizeBytesTotal[1] < P->chunkInSizeBytes && !P->inOut->readIn[0].eof() && !P->inOut->readIn[1].eof()) { + char nextChar=P->inOut->readIn[0].peek(); + if (P->iReadAll==P->readMapNumber) {//do nto read any more reads + break; + } else if (nextChar=='@') {//fastq, not multi-line + P->iReadAll++; //increment read number + for (uint imate=0; imatereadNmates; imate++) {//for all mates + uint32 iline=0; + if (P->outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping + + //read or skip the 1st field of the read name line + if (P->outSAMreadID=="Number") { + chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], "@%llu", P->iReadAll); + string dummy1; + P->inOut->readIn[imate] >> dummy1; //skip the first field of the read name + } else { + P->inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); + chunkInSizeBytesTotal[imate] += strlen(chunkIn[imate] + chunkInSizeBytesTotal[imate]); + }; + + //read the second field of the read name line + char passFilterIllumina='N'; + if (P->inOut->readIn[imate].peek()!='\n') {//2nd field exists + string field2; + P->inOut->readIn[imate] >> field2; + passFilterIllumina='N'; + if (field2.length()>=3 && field2.at(2)=='Y') passFilterIllumina='Y'; + }; + + //ignore the rest of the read name + P->inOut->readIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); + + chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P->iReadAll, passFilterIllumina, P->readFilesIndex); + + iline=1; + }; + //do not need to worry about 2nd stage, that's read directly from the files +// else {//2nd stage of 2-stage mapping +// read index and file index are already recorded with the read name, simply copy it +// P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); +// }; + for (;iline<4;iline++) {//TODO ignore the 3rd line of fastq + P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); + chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount(); + chunkIn[imate][chunkInSizeBytesTotal[imate]-1]='\n'; + }; + }; + } else if (nextChar=='>') {//fasta, can be multiline, which is converted to single line + for (uint imate=0; imatereadNmates; imate++) { + if (P->outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping + + if (P->outSAMreadID=="Number") { + chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], ">%llu", P->iReadAll); + } else { + P->inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); + chunkInSizeBytesTotal[imate] += strlen(chunkIn[imate] + chunkInSizeBytesTotal[imate]); + }; + + P->inOut->readIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); + + chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P->iReadAll, 'N', P->readFilesIndex); + + + }; +// else {//2nd stage of 2-stage mapping +// read index and file index are already recorded with the read name, simply copy it +// P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); +// }; + nextChar=P->inOut->readIn[imate].peek(); + while (nextChar!='@' && nextChar!='>' && nextChar!=' ' && nextChar!='\n' && !P->inOut->readIn[0].eof()) {//read multi-line fasta + P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readSeqLengthMax + 1 ); + if (P->inOut->readIn[imate].gcount()<2) break; //no more input + chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount()-1; + nextChar=P->inOut->readIn[imate].peek(); + }; + chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n'; + chunkInSizeBytesTotal[imate] ++; + }; + } else if (nextChar==' ' || nextChar=='\n' || P->inOut->readIn[0].eof()) {//end of stream + break; + } else { + string word1; + P->inOut->readIn[0] >> word1; + if (word1=="FILE") {//new file marker + P->inOut->readIn[0] >> P->readFilesIndex; + P->inOut->logMain << "Starting to map file # " << P->readFilesIndex<<"\n"; + for (uint imate=0; imatereadNmates; imate++) { + P->inOut->logMain << "mate " <readFilesNames.at(imate).at(P->readFilesIndex) <<"\n"; + P->inOut->readIn[imate].ignore(numeric_limits::max(),'\n'); + }; + P->inOut->logMain<readNmates==2) {//skip the FILE line for the second read +// getline(P->inOut->readIn[1],word1); +// }; + } else {//error + ostringstream errOut; + errOut << "ERROR_00201: EXITING because of FATAL ERROR in input reads: unknown file format: the read ID should start with @ or > \n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + }; + }; + //TODO: check here that both mates are zero or non-zero + if (chunkInSizeBytesTotal[0]==0) { + noReadsLeft=true; //true if there no more reads left in the file + iChunkIn=g_threadChunks.chunkInN;//to keep things consistent + g_threadChunks.chunkInN++; + } else { + noReadsLeft=false; + iChunkIn=g_threadChunks.chunkInN; + g_threadChunks.chunkInN++; + }; + + for (uint imate=0; imatereadNmates; imate++) chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n';//extra empty line at the end of the chunks + + if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexInRead); + + } else {//read from one file per thread + noReadsLeft=true; + for (uint imate=0; imatereadNmates; imate++) { + RA->chunkOutFilterBySJoutFiles[imate].flush(); + RA->chunkOutFilterBySJoutFiles[imate].seekg(0,ios::beg); + RA->readInStream[imate]=& RA->chunkOutFilterBySJoutFiles[imate]; + }; + }; + + mapChunk(); + + if (iThread==0 && P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files + chunkFilesCat(P->inOut->outSAM, P->outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); + }; + + };//cycle over input chunks + + if (P->outFilterBySJoutStage!=1) {//not the first stage of the 2-stage mapping + if (P->outBAMunsorted) chunkOutBAMunsorted->unsortedFlush(); + if (P->outBAMcoord) chunkOutBAMcoord->coordFlush(); + if (chunkOutBAMquant!=NULL) chunkOutBAMquant->unsortedFlush(); + + //the thread is finished mapping reads, concatenate the temp files into output files + if (P->chimSegmentMin>0) { + chunkFstreamCat (RA->chunkOutChimSAM, P->inOut->outChimSAM, P->runThreadN>1, g_threadChunks.mutexOutChimSAM); + chunkFstreamCat (RA->chunkOutChimJunction, P->inOut->outChimJunction, P->runThreadN>1, g_threadChunks.mutexOutChimJunction); + }; + if (P->outReadsUnmapped=="Fastx" ) { + for (uint ii=0;iireadNmates;ii++) { + chunkFstreamCat (RA->chunkOutUnmappedReadsStream[ii],P->inOut->outUnmappedReadsStream[ii], P->runThreadN>1, g_threadChunks.mutexOutUnmappedFastx); + }; + }; + }; + P->inOut->logMain << "Completed: thread #" < // C++0x + +void ReadAlign::samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uint &tagNM, string &tagMD) { + tagNM=0; + tagMD=""; + char* R=Read1[trOut.roStr==0 ? 0:2]; + uint matchN=0; + for (uint iex=iEx1;iex<=iEx2;iex++) { + for (uint ii=0;iigenomeNumToNT[(uint8) g1]; + matchN=0; + } else { + matchN++; + }; + }; + if (iexgenomeNumToNT[(uint8) G[ii]]; + }; + matchN=0; + } else if (trOut.canonSJ[iex]==-2) {//insertion + tagNM+=trOut.exons[iex+1][EX_R]-trOut.exons[iex][EX_R]-trOut.exons[iex][EX_L]; + }; + }; + }; + tagMD+=to_string(matchN); +}; +// calculate bin given an alignment covering [beg,end) (zero-based, half-close-half-open) +int reg2bin(int beg, int end) +{ + --end; + if (beg>>14 == end>>14) return ((1<<15)-1)/7 + (beg>>14); + if (beg>>17 == end>>17) return ((1<<12)-1)/7 + (beg>>17); + if (beg>>20 == end>>20) return ((1<<9)-1)/7 + (beg>>20); + if (beg>>23 == end>>23) return ((1<<6)-1)/7 + (beg>>23); + if (beg>>26 == end>>26) return ((1<<3)-1)/7 + (beg>>26); + return 0; +}; + +int bamAttrArrayWrite(int32 attr, const char* tagName, char* attrArray ) { + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[2]='i'; + *( (int32*) (attrArray+3))=attr; + return 3+sizeof(int32); +}; +int bamAttrArrayWrite(char attr, const char* tagName, char* attrArray ) { + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[2]='A'; + attrArray[3]=attr; + return 3+sizeof(char); +}; +int bamAttrArrayWrite(string &attr, const char* tagName, char* attrArray ) { + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[2]='Z'; + memcpy(attrArray+3,attr.c_str(),attr.size()+1);//copy string data including \0 + return 3+attr.size()+1; +}; +int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray ) { + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[2]='B'; + attrArray[3]='c'; + *( (int32*) (attrArray+4))=attr.size(); + memcpy(attrArray+4+sizeof(int32),attr.data(),attr.size());//copy array data + return 4+sizeof(int32)+attr.size(); +}; +int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray ) { + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[2]='B'; + attrArray[3]='i'; + *( (int32*) (attrArray+4))=attr.size(); + memcpy(attrArray+4+sizeof(int32),attr.data(),sizeof(int32)*attr.size());//copy array data + return 4+sizeof(int32)+sizeof(int32)*attr.size(); +}; + +template +int bamAttrArrayWriteInt(intType x, const char* tagName, char* attrArray, Parameters *P) {//adapted from samtools + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + #define ATTR_RECORD_INT(_intChar,_intType,_intValue) attrArray[2] = _intChar; *(_intType*)(attrArray+3) = (_intType) _intValue; return 3+sizeof(_intType) + if (x < 0) { + if (x >= -127) { + ATTR_RECORD_INT('c',int8_t,x); + } else if (x >= -32767) { + ATTR_RECORD_INT('s',int16_t,x); + } else { + ATTR_RECORD_INT('i',int32_t,x); + if (!(x>=-2147483647)) { + ostringstream errOut; + errOut <<"EXITING because of FATAL BUG: integer out of range for BAM conversion: "<< x <<"\n"; + errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + }; + }; + } else { + if (x <= 255) { + ATTR_RECORD_INT('C',uint8_t,x); + } else if (x <= 65535) { + ATTR_RECORD_INT('S',uint16_t,x); + } else { + ATTR_RECORD_INT('I',uint32_t,x); + if (!(x<=4294967295)) { + ostringstream errOut; + errOut <<"EXITING because of FATAL BUG: integer out of range for BAM conversion: "<< x <<"\n"; + errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + }; + }; + }; +}; + + + + +void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, vector outSAMattrOrder) { + + if (P->outSAMmode=="None") return; //no SAM/BAM output + + uint32 recSize=0; //record size - total for both mates + outBAMoneAlignNbytes[0]=0; + outBAMoneAlignNbytes[1]=0; + + //for SAM output need to split mates + uint iExMate=0; //last exon of the first mate + + uint samFLAG=0; + uint leftMate=0; //the mate (0 or 1) which is on the left + + bool flagPaired = P->readNmates==2; + + uint nMates=1; + if (unmapType<0) {//unmapped reads: SAM + for (iExMate=0;iExMatereadNmates);imate++) { + + uint iEx1=0; + uint iEx2=0; + uint Mate=0; + uint Str=0; + uint32 packedCIGAR[BAM_CIGAR_MaxSize]; + uint32 nCIGAR=0; //number of CIGAR operations + int MAPQ=0; + uint32 attrN=0; + char attrOutArray[BAM_ATTR_MaxSize]; + + if (unmapType>=0) {//this mate is unmapped + if (mateMapped!=NULL && mateMapped[imate]) continue; //this mate was mapped, do not record it aws unmapped + samFLAG=0x4; + if (P->readNmates==2) {//paired read + samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); + if (mateMapped[1-imate]) {//mate mapped + if (trBest->Str!=1-imate) samFLAG+=0x20;//mate strand reverted + } else {//mate unmapped + samFLAG+=0x8; + }; + }; + + if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + + Mate=imate; + Str=Mate; + + attrN=0; + attrN+=bamAttrArrayWriteInt(0,"NH",attrOutArray+attrN,P); + attrN+=bamAttrArrayWriteInt(0,"HI",attrOutArray+attrN,P); + attrN+=bamAttrArrayWriteInt(trBest->maxScore,"AS",attrOutArray+attrN,P); + attrN+=bamAttrArrayWriteInt(trBest->nMM,"nM",attrOutArray+attrN,P); + attrN+=bamAttrArrayWrite((to_string((uint) unmapType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers + if (!P->outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); + + } else { + if (flagPaired) {//paired reads + samFLAG=0x0001; + if (iExMate==trOut.nExons-1) {//single mate + if (mateChr>P->nChrReal) samFLAG+=0x0008; //not mapped as pair + } else {//properly paired + samFLAG+=0x0002; //mapped as pair + }; + } else {//single end + samFLAG=0; + }; + + if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + + + iEx1 = (imate==0 ? 0 : iExMate+1); + iEx2 = (imate==0 ? iExMate : trOut.nExons-1); + Mate=trOut.exons[iEx1][EX_iFrag]; + Str= trOut.Str;//note that Strand = the mate on the left + + if (Mate==0) { + samFLAG += Str*0x10; + if (nMates==2) samFLAG += (1-Str)*0x20; + } else {//second mate strand need to be reverted + samFLAG += (1-Str)*0x10; + if (nMates==2) samFLAG += Str*0x20; + }; + + if (flagPaired) { + leftMate=Str; + samFLAG += (Mate==0 ? 0x0040 : 0x0080); + if (flagPaired && nMates==1 && mateStrand==1) samFLAG +=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) + }; + + //not primary align? + if (!trOut.primaryFlag) samFLAG +=0x100; + + uint trimL; + if (Str==0 && Mate==0) { + trimL=clip5pNtotal[Mate]; + } else if (Str==0 && Mate==1) { + trimL=clip3pNtotal[Mate]; + } else if (Str==1 && Mate==0) { + trimL=clip3pNtotal[Mate]; + } else { + trimL=clip5pNtotal[Mate]; + }; + + nCIGAR=0; //number of CIGAR operations + + uint trimL1 = trimL + trOut.exons[iEx1][EX_R] - (trOut.exons[iEx1][EX_R]0) { + packedCIGAR[nCIGAR++]=trimL1< SJintron; + vector SJmotif; + + for (uint ii=iEx1;ii<=iEx2;ii++) { + if (ii>iEx1) {//record gaps + uint gapG=trOut.exons[ii][EX_G]-(trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]); + uint gapR=trOut.exons[ii][EX_R]-trOut.exons[ii-1][EX_R]-trOut.exons[ii-1][EX_L]; + //it's possible to have a D or N and I at the same time + if (gapR>0){ + + packedCIGAR[nCIGAR++]=gapR<=0 || trOut.sjAnnot[ii-1]==1) {//junction: N + + packedCIGAR[nCIGAR++]=gapG<0) {//deletion: N + packedCIGAR[nCIGAR++]=gapG< 0 ) { + packedCIGAR[nCIGAR++]=trimR1<outSAMmapqUnique; + if (nTrOut>=5) { + MAPQ=0; + } else if (nTrOut>=3) { + MAPQ=1; + } else if (nTrOut==2) { + MAPQ=3; + }; + + //attribute string + uint tagNM=(uint) -1; + string tagMD(""); + + attrN=0; + for (uint ii=0;iioutSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); + break; + default: + ostringstream errOut; + errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<inOut->logMain, EXIT_CODE_PARAMETER, *P); + }; + }; + }; +////////////////////////////// prepare sequence and qualities + char seqMate[DEF_readSeqLengthMax+1], qualMate[DEF_readSeqLengthMax+1]; + char *seqOut=NULL, *qualOut=NULL; + + if ( Mate==Str) {//seq strand is correct, or mate is unmapped + seqOut=Read0[Mate]; + qualOut=Qual0[Mate]; + } else { + revComplementNucleotides(Read0[Mate], seqMate, readLengthOriginal[Mate]); + seqMate[readLengthOriginal[Mate]]=0; + for (uint ii=0;ii reg2bin() function in Section 4.3; l read name is the length> of read name below (= length(QNAME) + 1).> uint32 t + if (unmapType<0) { + pBAM[3]=( ( reg2bin(trOut.exons[iEx1][EX_G] - trChrStart,trOut.exons[iEx2][EX_G] + trOut.exons[iEx2][EX_L] - trChrStart) << 16 ) \ + |( MAPQ<<8 ) | ( strlen(readName) ) ); //note:read length includes 0-char + } else { + pBAM[3]=( reg2bin(-1,0) << 16 | strlen(readName) );//4680=reg2bin(-1,0) + }; + + //4: FLAG<<16|n cigar op; n cigar op is the number of operations in CIGAR. + pBAM[4]=( ( samFLAG << 16 ) | (nCIGAR) ); + + //5: l seq Length of SEQ + pBAM[5]=readLengthOriginal[Mate]; + + //6: next refID Ref-ID of the next segment (􀀀1  mate refID < n ref) + if (nMates>1) { + pBAM[6]=trOut.Chr; + } else if (mateChrnChrReal){ + pBAM[6]=mateChr; + } else { + pBAM[6]=-1; + }; + + //7: next pos 0-based leftmost pos of the next segment (= PNEXT 􀀀 1) + if (nMates>1) { + pBAM[7]=trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G] - trChrStart; + } else if (mateChrnChrReal){ + pBAM[7]=mateStart-P->chrStart[mateChr]; + } else { + pBAM[7]=-1; + }; + + //8: tlen Template length (= TLEN) + if (nMates>1) { + int32 tlen=trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; + if (imate>0) tlen=-tlen; + pBAM[8]=(uint32)tlen; + } else { + pBAM[8]=0; + }; + + recSize+=9*sizeof(int32); //core record size + + //Read name1, NULL terminated (QNAME plus a tailing `\0') + strcpy(outBAMoneAlign[imate]+recSize,readName+1); + recSize+=strlen(readName); + + //CIGAR: op len<<4|op. `MIDNSHP=X'!`012345678' + memcpy(outBAMoneAlign[imate]+recSize,packedCIGAR, nCIGAR*sizeof(int32)); + recSize+=nCIGAR*sizeof(int32); + + //4-bit encoded read: `=ACMGRSVTWYHKDBN'! [0; 15]; other characters mapped to `N'; high nybble rst (1st base in the highest 4-bit of the 1st byte) + memcpy(outBAMoneAlign[imate]+recSize,seqMate,(readLengthOriginal[Mate]+1)/2); + recSize+=(readLengthOriginal[Mate]+1)/2; + + //Phred base quality (a sequence of 0xFF if absent) + if (readFileType==2 && P->outSAMmode != "NoQS") {//output qaultiy + for (uint32 ii=0; ii>P->winBinNbits]; + + if (iW==uintWinBinMax || (!aAnchor && aLength < WALrec[iW]) ) return; //alignment does not belong to any window, or it's shorter than rec-length + + //check if this alignment overlaps with any other alignment in the window, record the longest of the two + {//do not check for overlap if this is an sj-align + uint iA; + for (iA=0; iA=WA[iW][iA][WA_rStart] && aRstart=WA[iW][iA][WA_rStart] && aRstart+aLengthWA[iW][iA][WA_Length]) {//replace + + uint iA0;//iA0 is where the align has to be inserted + for (iA0=0;iA0iA0;iA1--) {//shift aligns to free up insertion point + for (uint ii=0;iiiA) {//shift aligns up + for (uint iA1=iA;iA1seedPerWindowNmax) {//too many aligns per window, re-calcualte min-length, remove the shortest one, + + WALrec[iW]=Lread+1; + for (uint iA=0; iA WALrec[iW] ) {//re-record the anchors and long aligns + for (uint ii=0; ii WALrec[iW] ) { + if (nWA[iW]>=P->seedPerWindowNmax) { + exitWithError("BUG: iA>=P->seedPerWindowNmax in stitchPieces, exiting",std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + }; + + uint iA; + for (iA=0;iAiA;iA1--) {//shift aligns for free up insertion point + for (uint ii=0;ii + +void ReadAlign::chimericDetection() { + + //output chains for out-of-STAR chimeric detection + #ifdef OUTPUT_localChains + { + P->inOut->outLocalChains << readName <<"\t"<< Read0[0] <<"\t"<< Read0[1] << "\n"; + for (uint iw=0; iwinOut->outLocalChains << trAll[iw][itr]->maxScore<<"\t"<< trAll[iw][itr]->Chr<<"\t"<Str<<"\t"<nExons; + for (uint ib=0;ibnExons;ib++) { + P->inOut->outLocalChains <<"\t"<< trAll[iw][itr]->exons[ib][EX_G]-P->chrStart[trAll[iw][itr]->Chr] \ + <<"\t"<< trAll[iw][itr]->exons[ib][EX_R] <<"\t"<< trAll[iw][itr]->exons[ib][EX_L]; + }; + P->inOut->outLocalChains <<"\n"; + }; + }; + }; + #endif + //////////////////// chimeras + //stich windows => chimeras + //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows + //stitch only one window on each end of the read + + if (P->chimSegmentMin>0 && nW>1 && trBest->rLength >= P->chimSegmentMin \ + && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P->chimSegmentMin <= Lread \ + || trBest->exons[0][EX_R] >= P->chimSegmentMin ) \ + && trBest->nextTrScore+P->outFilterMultimapScoreRange < trBest->maxScore \ + && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { + //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif + int chimScoreBest=0,chimScoreNext=0; + trChim[0]=*trBest; + + uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; + uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; + if (roStart1>readLength[0]) roStart1--; + if (roEnd1>readLength[0]) roEnd1--; + + uint chimStrBest=0; + if (trBest->intronMotifs[1]==0 && trBest->intronMotifs[2]==0) {//strand is undefined + chimStr=0; + } else if ( (trBest->Str==0) == (trBest->intronMotifs[1]>0)) {//strand the same as RNA + chimStr=1; + } else {//strand opposite to RNA + chimStr=2; + }; + + for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) + if (trBest==trAll[iW][0] && iWt==0) continue; + // {//same window + // if (iWt==0) continue; //do not check the best transcript itself + // if (trBest->exons[0][EX_R]<=trAll[iW][iWt]->exons[0][EX_R]) { + // //start of the last Best exon is before end of the first Chim exon + // if (trBest->exons[trBest->nExons-1][EX_G]exons[0][EX_G]+trAll[iW][iWt]->exons[0][EX_L]) continue; + // } else { + // if (trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_G]exons[0][EX_G]+trBest->exons[0][EX_L]) continue; + // }; + // }; + + if (trAll[iW][iWt]->intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions + uint chimStr1; + if (trAll[iW][iWt]->intronMotifs[1]==0 && trAll[iW][iWt]->intronMotifs[2]==0) {//strand is undefined + chimStr1=0; + } else if ( (trAll[iW][iWt]->Str==0) == (trAll[iW][iWt]->intronMotifs[1]>0)) {//strand the same as RNA + chimStr1=1; + } else {//strand opposite to RNA + chimStr1=2; + }; + + if (chimStr!=0 && chimStr1!=0 && chimStr!=chimStr1) continue; //chimeric segments have to have consitent strands + + uint roStart2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[0][EX_R] : Lread - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L]; + uint roEnd2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] + trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L] - 1 : Lread - trAll[iW][iWt]->exons[0][EX_R] - 1; + if (roStart2>readLength[0]) roStart2--; + if (roEnd2>readLength[0]) roEnd2--; + + uint chimOverlap = roStart2>roStart1 ? (roStart2>roEnd1 ? 0 : roEnd1-roStart2+1) : (roEnd2= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); + + //segment lengths && (different mates || small gap between segments) + if (roEnd1 > P->chimSegmentMin + roStart1 + chimOverlap && roEnd2> P->chimSegmentMin + roStart2 + chimOverlap \ + && ( diffMates || ( (roEnd1 + P->maxChimReadGap + 1) >= roStart2 && (roEnd2 + P->maxChimReadGap + 1) >= roStart1 ) ) ) { + //maxChimReadGap=0 in Parameters.cpp + + int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + + if (chimScore > chimScoreBest && chimScore >= P->chimScoreMin && chimScore+P->chimScoreDropMax >= (int) (readLength[0]+readLength[1]) ) { + trChim[1]=*trAll[iW][iWt]; + chimScoreNext=chimScoreBest; + chimScoreBest=chimScore; + trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; + trChim[1].cStart = trChim[1].gStart - P->chrStart[trChim[1].Chr]; + chimStrBest=chimStr1; + } else if (chimScore>chimScoreNext) {//replace the nextscore if it's not the best one and is higher than the previous one + chimScoreNext=chimScore; + }; + }; + };//cycle over window transcripts + };//cyecl over windows + + if (chimStr==0) chimStr=chimStrBest; + + chimN=0; + if (chimScoreNext + P->chimScoreSeparation < chimScoreBest) {//report only if chimera is unique + + if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); + + uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; + uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; + + uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; + int chimMotif=0; + chimN=2; + if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one + chimN=0;//reject such chimeras + //good test example: + //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT + //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA + } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction + chimN=2; + chimRepeat=0; + chimMotif=-1; + if (trChim[0].Str==1) { + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + if (trChim[1].Str==1) { + chimJ1=trChim[1].exons[e1][EX_G]-1; + } else { + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; + } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary + if (trChim[0].exons[e0][EX_L]>=P->chimJunctionOverhangMin && trChim[1].exons[e1][EX_L]>=P->chimJunctionOverhangMin ) {//large enough overhanh required + uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; + uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; + + uint jR, jRbest=0; + int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; + for (jR=0; jR3 || b1>3 || bR>3) {//chimera is not called if there are Ns in the genome or in the read + chimN=0; + break; + }; + + char b01,b02,b11,b12; + if (trChim[0].Str==0) { + b01=G[trChim[0].exons[e0][EX_G]+jR+1]; + b02=G[trChim[0].exons[e0][EX_G]+jR+2]; + } else { + b01=G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; + if (b01<4) b01=3-b01; + b02=G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; + if (b02<4) b02=3-b02; + }; + if (trChim[1].Str==0) { + b11=G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; + b12=G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + } else { + b11=G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; + if (b11<4) b11=3-b11; + b12=G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + if (b12<4) b12=3-b12; + }; + + jMotif=0; + if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG + if (chimStr!=2) { + jMotif=1; + }; + } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC + if (chimStr!=1) { + jMotif=2; + }; + }; + + if (bR==b0 && bR!=b1) { + jScore++; + } else if (bR!=b0 && bR==b1) { + jScore--; + }; + + jScoreJ =jMotif==0 ? jScore + P->chimScoreJunctionNonGTAG : jScore ; + + if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { + chimMotif=jMotif; + jRbest=jR; + jScoreBest=jScoreJ; + }; + };//jR cycle + if (chimN>0) {//else the chimera was rejected because of mismatches + + //shift junction in trChim + if (trChim[0].Str==1) { + trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + + if (trChim[1].Str==0) { + trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; + trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]-1; + } else { + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; + //find repeats + char b0,b1; + uint jR; + for (jR=0;jR<100;jR++) {//forward check + if (trChim[0].Str==0) { + b0=G[chimJ0+jR]; + } else { + b0=G[chimJ0-jR]; + if (b0<4) b0=3-b0; + }; + + if (trChim[1].Str==0) { + b1=G[chimJ1+1+jR]; + } else { + b1=G[chimJ1-1-jR]; + if (b1<4) b1=3-b1; + }; + if (b0!=b1) break; + }; + chimRepeat1=jR; + for (jR=0;jR<100;jR++) {//reverse check + if (trChim[0].Str==0) { + b0=G[chimJ0-1-jR]; + } else { + b0=G[chimJ0+1+jR]; + if (b0<4) b0=3-b0; + }; + + if (trChim[1].Str==0) { + b1=G[chimJ1-jR]; + } else { + b1=G[chimJ1+jR]; + if (b1<4) b1=3-b1; + }; + if (b0!=b1) break; + }; + chimRepeat0=jR; + };//chimN>0 + };//large enough overhang + };//chimeric junction is within a mate + + //debug + // cout << readName <<"\t"<< (trChim[0].Str==0 ? chimJ1-chimJ0 : chimJ0-chimJ1) << "\t"<< (chimMotif>=0 ? P->alignIntronMax : P->alignMatesGapMax)<<"\n"; + // cout << chimRepeat0 <<"\t"<=P->chimJunctionOverhangMin+chimRepeat0 \ + && trChim[1].exons[e1][EX_L]>=P->chimJunctionOverhangMin+chimRepeat1 \ + && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ + || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P->alignIntronMax : P->alignMatesGapMax) ) ) + {//unique chimeras only && minOverhang1 + //&& minOverhang2 + //&& (diff str || diff chr || + //|| gap > (alignIntronMax,alignMatesGapMax) ) negative gap = very large # because of uint + + if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) { + trChim[0].primaryFlag=true;//paired portion is primary + trChim[1].primaryFlag=false; + } else if (trChim[1].exons[0][EX_iFrag]!=trChim[1].exons[trChim[1].nExons-1][EX_iFrag]) { + trChim[1].primaryFlag=true;//paired portion is primary + trChim[0].primaryFlag=false; + } else if (trChim[0].exons[0][EX_iFrag]!=trChim[1].exons[0][EX_iFrag]) { + trChim[1].primaryFlag=true;//paired portion is primary + trChim[0].primaryFlag=true; + } else {//two chimeric segments are on the same mate, another mate not mapped + trChim[0].primaryFlag=true;//paired portion is primary + trChim[1].primaryFlag=false; + }; + + for (uint iTr=0;iTrreadNmates==2) { + outputTranscriptSAM(trChim[iTr], chimN, iTr, trChim[1-iTr].Chr, trChim[1-iTr].exons[0][EX_G], (int) (trChim[1-iTr].Str!=trChim[1-iTr].exons[0][EX_iFrag]), -1, NULL, &chunkOutChimSAM); + } else { + outputTranscriptSAM(trChim[iTr], chimN, iTr, -1, -1, -1, -1, NULL, &chunkOutChimSAM); + }; + }; + //junction + SAMp + chunkOutChimJunction << P->chrName[trChim[0].Chr] <<"\t"<< chimJ0 - P->chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \ + <<"\t"<< P->chrName[trChim[1].Chr] <<"\t"<< chimJ1 - P->chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \ + <<"\t"<< chimMotif <<"\t"<< chimRepeat0 <<"\t"<< chimRepeat1 <<"\t"<< readName+1 \ + <<"\t"<< trChim[0].exons[0][EX_G] - P->chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \ + <<"\t"<< trChim[1].exons[0][EX_G] - P->chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]) <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate + }; + };//chimeric score + };//chimeric search +};//END \ No newline at end of file diff --git a/ReadAlign_createExtendWindowsWithAlign.cpp b/ReadAlign_createExtendWindowsWithAlign.cpp new file mode 100644 index 0000000..27c9c48 --- /dev/null +++ b/ReadAlign_createExtendWindowsWithAlign.cpp @@ -0,0 +1,85 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +//#include "Transcript.h" +#include "ReadAlign.h" +#include "SequenceFuns.h" + +int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { + + + uint aBin = (a1 >> P->winBinNbits); //align's bin + uint iBinLeft=aBin, iBinRight=aBin; + uintWinBin* wB=winBin[aStr]; + uint iBin=-1, iWin=-1, iWinRight=-1; + + + if (wB[aBin]==uintWinBinMax) {//proceed if there is no window at this bin + //check neighboring bins + + bool flagMergeLeft=false; + if (aBin>0) {//merge left only if there are bins on the left + for (iBin=aBin-1; iBin >= ( aBin>P->winAnchorDistNbins ? aBin-P->winAnchorDistNbins : 0 ); --iBin) {//go left, find windows in Anchor range + if (wB[iBin]chrBin[iBin>>P->winBinChrNbits]==P->chrBin[aBin>>P->winBinChrNbits]); + if (flagMergeLeft) {//this align can be merged into the existing window + iWin=wB[iBin]; + iBinLeft=WC[iWin][WC_gStart]; + for (uint ii=iBin+1; ii<=aBin; ii++) {//mark al bins with the existing windows ID + wB[ii]=iWin; + }; + }; + }; + + bool flagMergeRight=false; + if (aBin+1winBinN) {//merge left only if there are bins on the right + for (iBin=aBin+1; iBinwinAnchorDistNbins+1,P->winBinN); ++iBin) {//go right, find windows in Anchor range + if (wB[iBin]chrBin[iBin>>P->winBinChrNbits]==P->chrBin[aBin>>P->winBinChrNbits]); + if (flagMergeRight) {//this align can be merged into the existing window + while (wB[iBin]==wB[iBin+1]) ++iBin; //extend through all bins of the right window + iBinRight=iBin; + iWinRight=wB[iBin]; +// if (iBin!=WC[iWinRight][WC_gEnd]) {//debug, switch off!!! +// cerr <<"BUG in createWindows"<chrBin[aBin >> P->winBinChrNbits]; + WC[iWin][WC_Str]=aStr; + WC[iWin][WC_gEnd]=WC[iWin][WC_gStart]=aBin; + ++nW; + if (nW>=P->alignWindowsPerReadNmax) { + nW=P->alignWindowsPerReadNmax; + return EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS; //too many windows, do not record TODO: record a marker + }; + } else {//record windows after merging + WC[iWin][WC_gStart]=iBinLeft; + WC[iWin][WC_gEnd]=iBinRight; + if (flagMergeLeft && flagMergeRight) {//kill right window, it was merged with the left one + WC[iWinRight][WC_gStart]=1; + WC[iWinRight][WC_gEnd]=0; + }; + }; + }; + return 0; +}; + diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp new file mode 100644 index 0000000..e5b284a --- /dev/null +++ b/ReadAlign_mapOneRead.cpp @@ -0,0 +1,93 @@ +#include "ReadAlign.h" +#include "SequenceFuns.h" +#include "Stats.h" + +int ReadAlign::mapOneRead() { + + revertStrand = false; //the 2nd read is awlays on opposite strand. 1st and 2nd reads have already been reversed. + + if (Lread>0) { + Nsplit=qualitySplit(Read1[0], Qual1[0], Lread, P->Qsplit, P->maxNsplit, P->minLsplit, splitR); + } else { + Nsplit=0; + }; + + resetN(); //reset aligns counters to 0 + + //reset/initialize a transcript + trInit->reset(); + trInit->Chr=0; trInit->Str=0; trInit->roStr=0; trInit->cStart=0; trInit->gLength=0; //to generate nice output of 0 for non-mapped reads + trInit->iRead=iRead; + trInit->Lread=Lread; + trInit->readLengthPairOriginal=readLengthPairOriginal; + trInit->nExons=0; + + trNext=trBest=trInit; + + uint seedSearchStartLmax=min(P->seedSearchStartLmax,(uint) (P->seedSearchStartLmaxOverLread*(Lread-1))); + // align all good pieces + for (uint ip=0; ipseedSearchStartLmax>0 && seedSearchStartLmax0) {//check if the 1st piece in reveree direction does not need to be remapped + Lmapped=0; + uint Nrep2=0; + while ( istart*Lstart + Lmapped + P->minLmap < splitR[1][ip] ) {//map until unmapped portion is <=minLmap + + uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart + Lmapped ) : \ + ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1-Lmapped); //choose Shift for forward or reverse + +// uint seedLength=min(splitR[1][ip] - Lmapped - istart*Lstart, P->seedSearchLmax); + uint seedLength=splitR[1][ip] - Lmapped - istart*Lstart; + Nrep2=maxMappableLength2strands(Shift, seedLength, iDir, 0, P->nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple + if (iDir==0 && istart==0 && Lmapped==0 && Shift+L == splitR[1][ip] ) {//this piece maps full length and does not need to be mapped from the opposite direction + flagDirMap=false; + }; + Lmapped+=L; + };//while ( istart*Lstart + Lmapped + P->minLmap < splitR[1][ip] ) + };//if (flagDirMap || istart>0) + + if (P->seedSearchLmax>0) {//search fixed length. Not very efficient, need to improve + uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart ) : \ + ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1); //choose Shift for forward or reverse + uint seedLength = min(P->seedSearchLmax, iDir==0 ? (splitR[0][ip] + splitR[1][ip]-Shift):(Shift+1) ); + maxMappableLength2strands(Shift, seedLength, iDir, 0, P->nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple + }; + + +// #endif + };//for (uint istart=0; istartoutFilterMatchNmin) {//read is too short (trimmed too much?) + mapMarker=MARKER_READ_TOO_SHORT; + trBest->rLength=0; //min good piece length + nW=0; + } else if (Nsplit==0) {//no good pieces + mapMarker=MARKER_NO_GOOD_PIECES; + trBest->rLength=splitR[1][0]; //min good piece length + nW=0; + } else if (Nsplit>0 && nA==0) { + mapMarker=MARKER_ALL_PIECES_EXCEED_seedMultimapNmax; + trBest->rLength=multNminL; + nW=0; + } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped + stitchPieces(Read1, Qual1, G, SA, Lread); + if (nW>0) multMapSelect(); //check all the windows and transcripts for multiple mappers + }; + + return 0; +}; diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp new file mode 100644 index 0000000..9db6618 --- /dev/null +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -0,0 +1,101 @@ +#include "ReadAlign.h" +#include "SuffixArrayFuns.h" +#include "ErrorWarning.h" + +uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, uint iDir, uint iSA1, uint iSA2, uint& maxLbest, uint iFrag) { + //returns number of mappings, maxMappedLength=mapped length + uint Nrep=0, indStartEnd[2], maxL; + + uint NrepAll[P->genomeSAsparseD], indStartEndAll[P->genomeSAsparseD][2], maxLall[P->genomeSAsparseD]; + maxLbest=0; + + bool dirR = iDir==0; + + for (uint iDist=0; iDistgenomeSAsparseD); iDist++) {//cycle through different distances + uint pieceStart; + uint pieceLength=pieceLengthIn-iDist; + + //calculate full index + uint Lmax=min(P->genomeSAindexNbases,pieceLength); + uint ind1=0; + if (dirR) {//forward search + pieceStart=pieceStartIn+iDist; + for (uint ii=0;ii0) {//check the precense of the prefix for Lind + iSA1=SAi[P->genomeSAindexStart[Lind-1]+ind1]; + if ((iSA1 & P->SAiMarkAbsentMaskC) == 0) {//prefix exists + break; + } else {//this prefix does not exist, reduce Lind + --Lind; + ind1 = ind1 >> 2; + }; + }; + + if (P->genomeSAindexStart[Lind-1]+ind1+1 < P->genomeSAindexStart[Lind]) {//we are not at the end of the SA + iSA2=((SAi[P->genomeSAindexStart[Lind-1]+ind1+1] & P->SAiMarkNmask) & P->SAiMarkAbsentMask) - 1; + } else { + iSA2=P->nSA-1; + }; + + + //#define SA_SEARCH_FULL + + #ifdef SA_SEARCH_FULL + //full search of the array even if the index search gave maxL + maxL=0; + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G, SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + #else + if (Lind < P->genomeSAindexNbases && (iSA1 & P->SAiMarkNmaskC)==0 ) {//no need for SA search + indStartEnd[0]=iSA1; + indStartEnd[1]=iSA2; + Nrep=indStartEnd[1]-indStartEnd[0]+1; + maxL=Lind; + } else if (iSA1==iSA2) {//unique align already, just find maxL + if ((iSA1 & P->SAiMarkNmaskC)!=0) { + ostringstream errOut; + errOut << "BUG: in ReadAlign::maxMappableLength2strands"; + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + }; + indStartEnd[0]=indStartEnd[1]=iSA1; + Nrep=1; + bool comparRes; + maxL=compareSeqToGenome(Read1,pieceStart, pieceLength, Lind, G, SA, iSA1, dirR, comparRes, P); + } else {//SA search, pieceLength>maxL + if ( (iSA1 & P->SAiMarkNmaskC)==0 ) {//no N in the prefix + maxL=Lind; + } else { + maxL=0; + }; + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G, SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + }; + #endif + + if (maxL+iDist > maxLbest) {//this idist is better + maxLbest=maxL+iDist; + }; + NrepAll[iDist]=Nrep; + indStartEndAll[iDist][0]=indStartEnd[0]; + indStartEndAll[iDist][1]=indStartEnd[1]; + maxLall[iDist]=maxL; + }; + + for (uint iDist=0; iDistgenomeSAsparseD); iDist++) {//cycle through different distances, store the ones with largest maxL + if ( (maxLall[iDist]+iDist) == maxLbest) { + storeAligns(iDir, (dirR ? pieceStartIn+iDist : pieceStartIn-iDist), NrepAll[iDist], maxLall[iDist], indStartEndAll[iDist], iFrag); + }; + }; + return Nrep; +}; diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp new file mode 100644 index 0000000..c0c3f06 --- /dev/null +++ b/ReadAlign_multMapSelect.cpp @@ -0,0 +1,56 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "ReadAlign.h" +#include "ErrorWarning.h" + +void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts of all windows + + maxScore=0; + for (uint iW=0; iWmaxScore) maxScore = trAll[iW][0]->maxScore; + }; + + if (maxScore!=trBest->maxScore) { + ostringstream errOut; + errOut << "BUG: maxScore!=trBest->maxScore in multMapSelect"; + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + }; + + trBest->primaryFlag=true; + + bool chimRecord = false; + + nTr=0; + for (uint iW=0; iWmaxScore + P->outFilterMultimapScoreRange) >= maxScore ) || \ + ( chimRecord && trAll[iW][iTr]->iFrag>=0 && (trAll[iW][iTr]->maxScore + P->outFilterMultimapScoreRange) >=maxScoreMate[trAll[iW][iTr]->iFrag] ) ) {//record this alignment + // if paired-end, record alignments from ALL windows + if (nTr==MAX_N_MULTMAP) {//too many alignments for this read, do not record it + ostringstream errOut; + errOut << "EXITING: Fatal ERROR: number of alignments exceeds MAX_N_MULTMAP, increase it and re-compile STAR"; + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); + }; + + trMultScores[nTr]=trAll[iW][iTr]->maxScore; + trMult[nTr]=trAll[iW][iTr]; + trMult[nTr]->Chr = trAll[iW][0]->Chr; + trMult[nTr]->Str = trAll[iW][0]->Str; + trMult[nTr]->roStr = trAll[iW][0]->roStr; + if ( P->outSAMprimaryFlag=="AllBestScore" && trMultScores[nTr] == maxScore ) trMult[nTr]->primaryFlag=true; + + if ( (trAll[iW][iTr]->maxScore + P->outFilterMultimapScoreRange) >= maxScore) nTrMate++; + + nTr++; + }; + }; + }; + + for (uint iTr=0; iTrroStart = trMult[iTr]->roStr==0 ? trMult[iTr]->rStart : Lread - trMult[iTr]->rStart - trMult[iTr]->rLength; + trMult[iTr]->cStart=trMult[iTr]->gStart - P->chrStart[trMult[iTr]->Chr]; + }; + +}; + diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp new file mode 100644 index 0000000..aa7db93 --- /dev/null +++ b/ReadAlign_oneRead.cpp @@ -0,0 +1,77 @@ +#include "ReadAlign.h" +#include "readLoad.h" +#include "SequenceFuns.h" +#include "ErrorWarning.h" + +int ReadAlign::oneRead() {//process one read: load, map, write + + //load read name, sequence, quality from the streams into internal arrays + int readStatus[2]; + + readStatus[0]=readLoad(*(readInStream[0]), P, 0, readLength[0], readLengthOriginal[0], readNameMates[0], Read0[0], Read1[0], Qual0[0], Qual1[0], clip3pNtotal[0], clip5pNtotal[0], clip3pAdapterN[0], iReadAll, readFilesIndex, readFilter); + if (P->readNmates==2) {//read the 2nd mate + readStatus[1]=readLoad(*(readInStream[1]), P, 1, readLength[1], readLengthOriginal[1], readNameMates[1], Read0[1], Read1[0]+readLength[0]+1, Qual0[1], Qual1[0]+readLength[0]+1, clip3pNtotal[1], clip5pNtotal[1], clip3pAdapterN[1], iReadAll, readFilesIndex, readFilter); + + if (readStatus[0]!=readStatus[1]) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: Read1 and Read2 are not consistent, reached the end of the one before the other one\n"; + errOut << "SOLUTION: Check you your input files: they may be corrupted\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } else if (readStatus[0]==-1) {//finished with the stream + return -1; + }; + + //combine two reads together + Lread=readLength[0]+readLength[1]+1; + readLengthPairOriginal=readLengthOriginal[0]+readLengthOriginal[1]+1; + if (Lread>DEF_readSeqLengthMax) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR in reads input: Lread of the pair = " << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + Read1[0][readLength[0]]=MARK_FRAG_SPACER_BASE; //marker for spacer base + Qual1[0][readLength[0]]=0; + complementSeqNumbers(Read1[0]+readLength[0]+1,Read1[0]+readLength[0]+1,readLength[1]); //returns complement of Reads[ii] + for (uint ii=0;iioutFilterMismatchNmax, (uint) (P->outFilterMismatchNoverReadLmax*(readLength[0]+readLength[1]))); + + //map the read + mapOneRead(); + + //write out alignments + outputAlignments(); + + return 0; + +}; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp new file mode 100644 index 0000000..4027220 --- /dev/null +++ b/ReadAlign_outputAlignments.cpp @@ -0,0 +1,141 @@ +#include "ReadAlign.h" +#include "GlobalVariables.h" +#include "ErrorWarning.h" + +void ReadAlign::outputAlignments() { + + outBAMbytes=0; + outBAMbytes1=0; + + bool mateMapped[2]={false,false}; + + if (P->outFilterBySJoutStage<=1) {//no chimeric output for stage=2 + chimericDetection(); + }; + + if ( nW==0 ) {//no good windows + statsRA.unmappedOther++; + unmapType=0; + } else if ( (trBest->maxScore < P->outFilterScoreMin) || (trBest->maxScore < (intScore) (P->outFilterScoreMinOverLread*(Lread-1))) \ + || (trBest->nMatch < P->outFilterMatchNmin) || (trBest->nMatch < (uint) (P->outFilterMatchNminOverLread*(Lread-1))) ) {//too short + statsRA.unmappedShort++; + unmapType=1; + } else if ( (trBest->nMM > outFilterMismatchNmaxTotal) || (double(trBest->nMM)/double(trBest->rLength)>P->outFilterMismatchNoverLmax) ) {//too many mismatches + statsRA.unmappedMismatch++; + unmapType=2; + } else if (nTr > P->outFilterMultimapNmax){//too multi + statsRA.unmappedMulti++; + unmapType=3; + } else {//output transcripts + + outFilterPassed=true; + if (P->outFilterBySJoutStage==1) {//filtering by SJout + for (uint iTr=0;iTrnExons-1;iex++) {//check all junctions + if (trMult[iTr]->canonSJ[iex]>=0 && trMult[iTr]->sjAnnot[iex]==0) { + outFilterPassed=false; + break; + }; + }; + if (!outFilterPassed) break; + }; + if (!outFilterPassed) {//this read is held for further filtering BySJout, record fastq + unmapType=-3; //the read is not conisddred unmapped + statsRA.readN--; + statsRA.readBases -= readLength[0]+readLength[1]; + +// if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutFilterBySJout); + for (uint im=0;imreadNmates;im++) { + chunkOutFilterBySJoutFiles[im] << readNameMates[im] << "/" <runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutFilterBySJout); + }; + }; + + if (P->outSJfilterReads=="All" || nTr==1) { + uint sjReadStartN=chunkOutSJ1->N; + for (uint iTr=0;iTr1) {//multimappers + statsRA.mappedReadsM++; + unmapType=-1; + } else if (nTr==1) {//unique mappers + statsRA.mappedReadsU++; + statsRA.transcriptStats(*(trMult[0]),Lread); + unmapType=-2; + } else {//cannot be + ostringstream errOut; + errOut << "EXITING because of a BUG: nTr=0 in outputAlignments.cpp"; + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + }; + + for (uint iTr=0;iTroutBAMunsorted || P->outBAMcoord) {//BAM output + alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder); + for (uint imate=0; imatereadNmates; imate++) {//output each mate + if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], P->chrStart[trMult[iTr]->Chr], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); + }; + }; + + if (P->outSAMbool){//SAM output + outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); + }; + }; + + if (P->outSJfilterReads=="All" || nTr==1) { + uint sjReadStartN=chunkOutSJ->N; + for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; + mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; + if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) unmapType=4; + + if ( P->quantModeI > 0) { + quantTranscriptome(Tr, nTr, trMult, alignTrAll); + }; + }; + }; + + if (unmapType>=0 && P->outSAMunmapped=="Within") {//unmapped read, at least one mate + if (P->outBAMunsorted || P->outBAMcoord) {//BAM output + alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder); + for (uint imate=0; imatereadNmates; imate++) {//output each mate + if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + //TODO clean for single-end alignments of PE reads + if ( (P->quantModeI & PAR_quantModeI_TranscritomeSAM) > 0 && unmapType!=4) outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], 0, iReadAll); + }; + }; + if (P->outSAMbool) { + outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); + }; + }; + if (unmapType>=0 && P->outReadsUnmapped=="Fastx" ){//output to fasta/q files + for (uint im=0;imreadNmates;im++) { + chunkOutUnmappedReadsStream[im] << readNameMates[im] << "/" <readNmates>1) chunkOutUnmappedReadsStream[im] <<"\t"<< int(mateMapped[0]) << int(mateMapped[1]); + chunkOutUnmappedReadsStream[im] <<"\n"; + chunkOutUnmappedReadsStream[im] << Read0[im] <<"\n"; + if (readFileType==2) {//fastq + chunkOutUnmappedReadsStream[im] << "+\n"; + chunkOutUnmappedReadsStream[im] << Qual0[im] <<"\n"; + }; + }; + }; +}; + + + diff --git a/ReadAlign_outputTranscriptCIGARp.cpp b/ReadAlign_outputTranscriptCIGARp.cpp new file mode 100644 index 0000000..d6ac47c --- /dev/null +++ b/ReadAlign_outputTranscriptCIGARp.cpp @@ -0,0 +1,65 @@ +#include "ReadAlign.h" +#include "SequenceFuns.h" + +string ReadAlign::outputTranscriptCIGARp(Transcript const &trOut) {//generates CIGARp string for the transcript + //p is a special CIGAR operation to encode gap between mates. This gap is negative for overlapping mates + + string CIGAR; + samStreamCIGAR.str(std::string()); + + uint leftMate=0; + if (P->readFilesIn.size()>1) leftMate=trOut.Str; + + uint trimL=trOut.exons[0][EX_R] - (trOut.exons[0][EX_R]0) { + samStreamCIGAR << trimL << "S"; //initial trimming + }; + + for (uint ii=0;ii0) {//record gaps + uint gapG=trOut.exons[ii][EX_G]-(trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]); + + if (trOut.exons[ii][EX_G] >= (trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]) ) {// + if (trOut.canonSJ[ii-1]==-3) {//gap between mates + //soft clipping of the second mate + uint s1=readLengthOriginal[leftMate]-(trOut.exons[ii-1][EX_R]+trOut.exons[ii-1][EX_L]); + uint s2=trOut.exons[ii][EX_R]-(readLengthOriginal[leftMate]+1); + if (s1>0){ + samStreamCIGAR << s1 << "S"; + }; + samStreamCIGAR << gapG << "p"; + if (s2>0){ + samStreamCIGAR << s2 << "S"; + }; + + } else { + //it's possible to have a D or N and I for at the same time + uint gapR=trOut.exons[ii][EX_R]-trOut.exons[ii-1][EX_R]-trOut.exons[ii-1][EX_L]; //gapR>0 always + if (gapR>0){ + samStreamCIGAR << gapR << "I"; + }; + if (trOut.canonSJ[ii-1]>=0 || trOut.sjAnnot[ii-1]==1) {//junction: N + samStreamCIGAR << gapG << "N"; + } else if (gapG>0) {//deletion + samStreamCIGAR << gapG << "D"; + }; + }; + } else {//mates overlap + samStreamCIGAR << "-" << (trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]) - trOut.exons[ii][EX_G] << "p"; + }; + }; + samStreamCIGAR << trOut.exons[ii][EX_L] << "M"; + }; + + + trimL=(trOut.exons[trOut.nExons-1][EX_R] 0 ) { + samStreamCIGAR << trimL << "S"; //final trimming + }; + CIGAR=samStreamCIGAR.str(); + + return CIGAR; + + + +}; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp new file mode 100644 index 0000000..344bf77 --- /dev/null +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -0,0 +1,297 @@ +#include "ReadAlign.h" +#include "SequenceFuns.h" +#include "ErrorWarning.h" + +uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, ostream *outStream) { + + if (P->outSAMmode=="None") return 0; //no SAM output + + uint outStreamPos0=(uint)outStream->tellp(); + + if (unmapType>=0) {//unmapped reads: SAM + for (uint imate=0;imatereadNmates;imate++) {//cycle over mates + if (!mateMapped[imate]) { + int samFLAG=0x4; + if (P->readNmates==2) {//paired read + samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); + if (mateMapped[1-imate]) {//mate mapped + if (trBest->Str!=1-imate) samFLAG+=0x20;//mate strand reverted + } else {//mate unmapped + samFLAG+=0x8; + }; + }; + + if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + + *outStream << readName+1 <<"\t"<< samFLAG \ + <<"\t"<< '*' <<"\t"<< '0' <<"\t"<< '0' <<"\t"<< '*'; + + if (mateMapped[1-imate]) {//mate is mapped + *outStream <<"\t"<< P->chrName[trBest->Chr] <<"\t"<< trBest->exons[0][EX_G] + 1 - P->chrStart[trBest->Chr]; + } else { + *outStream <<"\t"<< '*' <<"\t"<< '0'; + }; + + *outStream <<"\t"<< '0' <<"\t"<< Read0[imate] <<"\t"<< (readFileType==2 ? Qual0[imate]:"*") \ + <<"\tNH:i:0" <<"\tHI:i:0" <<"\tAS:i:"<maxScore <<"\tnM:i:"<nMM<<"\tuT:A:" <outSAMattrRG.empty()) *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); + *outStream <<"\n"; + + }; + }; + return (uint)outStream->tellp()-outStreamPos0; + };//if (unmapType>=0 && outStream != NULL) //unmapped reads: SAM + + + bool flagPaired = P->readNmates==2; + string CIGAR; + + //for SAM output need to split mates + uint iExMate; //last exon of the first mate + uint nMates=1; + for (iExMate=0;iExMateP->nChrReal) samFLAG+=0x0008; //not mapped as pair + } else {//properly paired + samFLAG+=0x0002; //mapped as pair + }; + } else {//single end + samFLAG=0; + }; + + if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + + uint iEx1 = (imate==0 ? 0 : iExMate+1); + uint iEx2 = (imate==0 ? iExMate : trOut.nExons-1); + uint Mate=trOut.exons[iEx1][EX_iFrag]; + uint Str= trOut.Str;//note that Strand = the mate on the left + + if (Mate==0) { + samFLAG += Str*0x10; + if (nMates==2) samFLAG += (1-Str)*0x20; + } else {//second mate strand need to be reverted + samFLAG += (1-Str)*0x10; + if (nMates==2) samFLAG += Str*0x20; + }; + + if (flagPaired) { + leftMate=Str; + samFLAG += (Mate==0 ? 0x0040 : 0x0080); + if (flagPaired && nMates==1 && mateStrand==1) samFLAG +=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) + }; + + //not primary align? + if (!trOut.primaryFlag) samFLAG +=0x100; + + //empty streams + samStreamCIGAR.str(std::string()); + samStreamSJmotif.str(std::string()); + samStreamSJintron.str(std::string()); +// samStreamSJannot.str(std::string()); + + uint trimL; + if (Str==0 && Mate==0) { + trimL=clip5pNtotal[Mate]; + } else if (Str==0 && Mate==1) { + trimL=clip3pNtotal[Mate]; + } else if (Str==1 && Mate==0) { + trimL=clip3pNtotal[Mate]; + } else { + trimL=clip5pNtotal[Mate]; + }; + + uint trimL1 = trimL + trOut.exons[iEx1][EX_R] - (trOut.exons[iEx1][EX_R]0) { + samStreamCIGAR << trimL1 << "S"; //initial trimming + }; + + for (uint ii=iEx1;ii<=iEx2;ii++) { + if (ii>iEx1) {//record gaps + uint gapG=trOut.exons[ii][EX_G]-(trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]); + uint gapR=trOut.exons[ii][EX_R]-trOut.exons[ii-1][EX_R]-trOut.exons[ii-1][EX_L]; + //it's possible to have a D or N and I at the same time + if (gapR>0){ + samStreamCIGAR << gapR; + samStreamCIGAR << "I"; + }; + if (trOut.canonSJ[ii-1]>=0 || trOut.sjAnnot[ii-1]==1) {//junction: N + samStreamCIGAR << gapG; + samStreamCIGAR << "N"; + samStreamSJmotif <<','<< trOut.canonSJ[ii-1] + (trOut.sjAnnot[ii-1]==0 ? 0 : SJ_SAM_AnnotatedMotifShift); //record junction type +// samStreamSJannot <<','<< (int) trOut.sjAnnot[ii-1]; //record annotation type + samStreamSJintron <<','<< trOut.exons[ii-1][EX_G] + trOut.exons[ii-1][EX_L] + 1 - P->chrStart[trOut.Chr] <<','\ + << trOut.exons[ii][EX_G] - P->chrStart[trOut.Chr]; //record intron loci + } else if (gapG>0) {//deletion: N + samStreamCIGAR << gapG; + samStreamCIGAR << "D"; + }; + }; + samStreamCIGAR << trOut.exons[ii][EX_L] << "M"; + }; + + string SJmotif = samStreamSJmotif.str(); + string SJintron = samStreamSJintron.str(); +// string SJannot = samStreamSJannot.str(); + + if (SJmotif.length()==0) {//no junctions recorded, mark with -1 + SJmotif=",-1"; + SJintron=",-1"; +// SJannot=",-1"; + }; + + uint trimR1=(trOut.exons[iEx1][EX_R] 0 ) { + samStreamCIGAR << trimR1 << "S"; //final trimming + }; + CIGAR=samStreamCIGAR.str(); + + + char seqMate[DEF_readSeqLengthMax+1], qualMate[DEF_readSeqLengthMax+1]; + char *seqOut=NULL, *qualOut=NULL; + + if ( Mate==Str ) {//seq strand is correct + seqOut=Read0[Mate]; + qualOut=Qual0[Mate]; + } else { + revComplementNucleotides(Read0[Mate], seqMate, readLengthOriginal[Mate]); + seqMate[readLengthOriginal[Mate]]=0; + for (uint ii=0;iioutSAMmapqUnique; + if (nTrOut>=5) { + MAPQ=0; + } else if (nTrOut>=3) { + MAPQ=1; + } else if (nTrOut==2) { + MAPQ=3; + }; + + *outStream << readName+1 <<"\t"<< samFLAG <<"\t"<< P->chrName[trOut.Chr] <<"\t"<< trOut.exons[iEx1][EX_G] + 1 - P->chrStart[trOut.Chr] + <<"\t"<< MAPQ <<"\t"<< CIGAR; + + if (nMates>1) { + *outStream <<"\t"<< "=" <<"\t"<< trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G]+ 1 - P->chrStart[trOut.Chr] + <<"\t"<< (imate==0? "":"-") << trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; + } else if (mateChrnChrReal){//mateChr is given in the function parameters + *outStream <<"\t"<< P->chrName[mateChr] <<"\t"<< mateStart+1-P->chrStart[mateChr] <<"\t"<< 0; + } else { + *outStream <<"\t"<< "*" <<"\t"<< 0 <<"\t"<< 0; + }; + + + *outStream <<"\t"<< seqOut; + + if (readFileType==2 && P->outSAMmode != "NoQS") {//fastq + *outStream <<"\t"<< qualOut ; + } else { + *outStream <<"\t"<< "*"; + }; + +// vector customAttr(outSAMattrN,""); + + uint tagNM=0; + string tagMD(""); + if (P->outSAMattrPresent.NM || P->outSAMattrPresent.MD) { + char* R=Read1[trOut.roStr==0 ? 0:2]; + uint matchN=0; + for (uint iex=iEx1;iex<=iEx2;iex++) { + for (uint ii=0;ii0 || (ii==0 && iex>0 && trOut.canonSJ[iex]==-1) ) { + tagMD+=to_string(matchN); +// }; + tagMD+=P->genomeNumToNT[(uint8) g1]; + matchN=0; + } else { + matchN++; + }; + }; + if (iexgenomeNumToNT[(uint8) G[ii]]; + }; + matchN=0; + } else if (trOut.canonSJ[iex]==-2) {//insertion + tagNM+=trOut.exons[iex+1][EX_R]-trOut.exons[iex][EX_R]-trOut.exons[iex][EX_L]; + }; + }; + }; + tagMD+=to_string(matchN); + }; + for (int ii=0;iioutSAMattrOrder.size();ii++) { + switch (P->outSAMattrOrder[ii]) { + case ATTR_NH: + *outStream <<"\tNH:i:" << nTrOut; + break; + case ATTR_HI: + *outStream <<"\tHI:i:"<outSAMattrRG.at(readFilesIndex); + break; + default: + ostringstream errOut; + errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<outSAMattrOrder[ii] <<"\n"; + errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); + }; + }; + + +// for (uint ii=0;iitellp()-outStreamPos0; +}; diff --git a/ReadAlign_outputTranscriptSJ.cpp b/ReadAlign_outputTranscriptSJ.cpp new file mode 100644 index 0000000..26c0ef3 --- /dev/null +++ b/ReadAlign_outputTranscriptSJ.cpp @@ -0,0 +1,54 @@ +#include "ReadAlign.h" +#include "OutSJ.h" + +void ReadAlign::outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ *chunkOutSJ, uint sjReadStartN ) {//record junctions in chunkOutSJ array + + //TODO: make sure that a junction is recorded onyl once from one read. + //For a multimapper, several alignments may contain the same junctions - now it's recorded several time. +// if (nTrOut>1) return; //junctions from multi-mappers are not recorded + +// if (P->outSAMmode=="None") return; //no SAM output + + for (uint iex=0;iex=0) {//only record junctions, not indels or mate gap + chunkOutSJ->oneSJ.junctionPointer(chunkOutSJ->data, chunkOutSJ->N);//get pointer to an empty junction in the data array + *chunkOutSJ->oneSJ.start=trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L]; //start of the intron + *chunkOutSJ->oneSJ.gap=trOut.exons[iex+1][EX_G]-*chunkOutSJ->oneSJ.start; + //overhangs: basic method + //*chunkOutSJ->oneSJ.overhangLeft = (uint32) trOut.exons[iex][EX_L];//TODO calculate the lengh of overhangs taking into account indels + //*chunkOutSJ->oneSJ.overhangRight = (uint32) trOut.exons[iex+1][EX_L]; + //overhangs: min method + *chunkOutSJ->oneSJ.overhangLeft = min ( (uint32) trOut.exons[iex][EX_L],(uint32) trOut.exons[iex+1][EX_L] ); + *chunkOutSJ->oneSJ.overhangRight = *chunkOutSJ->oneSJ.overhangLeft; + + //check if this junction has been recorded from this read - this happens when the mates overlap and cross the same junctions + bool duplicateSJ(false); + for (uint ii=sjReadStartN; iiN; ii++) {//TODO if there are many junctions, need to make more efficient + if ( *chunkOutSJ->oneSJ.start == *((uint*) (chunkOutSJ->data+ii*Junction::dataSize+Junction::startP)) \ + && *chunkOutSJ->oneSJ.gap == *((uint32*) (chunkOutSJ->data+ii*Junction::dataSize+Junction::gapP)) ) { + duplicateSJ=true; + uint16* overhang1=(uint16*) (chunkOutSJ->data+ii*Junction::dataSize+Junction::overhangLeftP); + if (*overhang1<*chunkOutSJ->oneSJ.overhangLeft) { + *overhang1=*chunkOutSJ->oneSJ.overhangLeft; + * ((uint16*) (chunkOutSJ->data+ii*Junction::dataSize+Junction::overhangRightP))=*overhang1; + }; + break; + }; + }; + if (duplicateSJ) continue; //do not record this junctions + + *chunkOutSJ->oneSJ.motif=trOut.canonSJ[iex]; + *chunkOutSJ->oneSJ.strand=(char) (trOut.canonSJ[iex]==0 ? 0 : (trOut.canonSJ[iex]+1)%2+1); + *chunkOutSJ->oneSJ.annot=trOut.sjAnnot[iex]; + if (nTrOut==1) { + *chunkOutSJ->oneSJ.countUnique=1; + *chunkOutSJ->oneSJ.countMultiple=0; + } else { + *chunkOutSJ->oneSJ.countMultiple=1; //TODO: 1/nTrOut? + *chunkOutSJ->oneSJ.countUnique=0; //TODO: 1/nTrOut? + }; + + chunkOutSJ->N++;//increment the number of recorded junctions + }; + }; +}; diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp new file mode 100644 index 0000000..5e14061 --- /dev/null +++ b/ReadAlign_quantTranscriptome.cpp @@ -0,0 +1,60 @@ +#include "Transcriptome.h" +#include "ReadAlign.h" +#include "Transcript.h" +#include "serviceFuns.cpp" + +uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT) { + uint nAlignT=0; + for (uint iag=0; iagnDel>0 || alignG[iag]->nIns>0) continue; //prevent indels + uint nMM1=0; + char* R=Read1[alignG[iag]->roStr==0 ? 0:2]; + for (uint32 iab=0; iabnExons; iab++) {//check for soft-clips and indels + uint left1=0,right1=0;//how many bases to move left or right + if (iab==0) { + left1=alignG[iag]->exons[iab][EX_R]; + } else if (alignG[iag]->canonSJ[iab-1]==-3) { + left1=alignG[iag]->exons[iab][EX_R]-readLength[alignG[iag]->exons[iab-1][EX_iFrag]]-1; + }; + if (alignG[iag]->canonSJ[iab]==-3) { + right1=readLength[alignG[iag]->exons[iab][EX_iFrag]]-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; + } else if (iab==alignG[iag]->nExons-1){ + right1=Lread-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; + }; + + for (uint b=1; b<=left1 ; b++) {//extend to the left + char r1=R[alignG[iag]->exons[iab][EX_R]-b]; + char g1=G[alignG[iag]->exons[iab][EX_G]-b]; + if ( r1!=g1 && r1<4 && g1<4) ++nMM1; + }; + for (uint b=0; bexons[iab][EX_R]+alignG[iag]->exons[iab][EX_L]+b]; + char g1=G[alignG[iag]->exons[iab][EX_G]+alignG[iag]->exons[iab][EX_L]+b]; + if ( r1!=g1 && r1<4 && g1<4) ++nMM1; + }; + alignG[iag]->exons[iab][EX_R] -= left1; + alignG[iag]->exons[iab][EX_G] -= left1; + alignG[iag]->exons[iab][EX_L] += left1+right1; + }; + if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P->outFilterMismatchNoverLmax*(Lread-1)) ) ) { + continue; + }; + + +// if (alignG[iag]->mappedLength==(readLength[0]+readLength[1]) && alignG[iag]->nDel==0) {//remove transcripts that contain indels of soft-clipping //TODO make this optional + nAlignT += Tr->quantAlign(*alignG[iag],alignT+nAlignT); +// }; + }; + + for (uint iatr=0;iatroutSAMattrOrderQuant); + for (uint imate=0; imatereadNmates; imate++) {//output each mate + outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + }; + }; + + return nAlignT; +}; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp new file mode 100644 index 0000000..b850f22 --- /dev/null +++ b/ReadAlign_stitchPieces.cpp @@ -0,0 +1,436 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "ReadAlign.h" +#include "SequenceFuns.h" +#include "stitchWindowAligns.h" +#include "sjSplitAlign.cpp" +#include "PackedArray.h" +#include "alignSmithWaterman.h" +#include "GlobalVariables.h" +#include + +void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint Lread) { + + //zero-out winBin + memset(winBin[0],255,sizeof(winBin[0][0])*P->winBinN); + memset(winBin[1],255,sizeof(winBin[0][0])*P->winBinN); + + +// for (uint iWin=0;iWinwinBinN;ii++){ +// if (winBin[0][ii]!=uintWinBinMax || winBin[1][ii]!=uintWinBinMax) { +// cerr<< "BUG in stitchPieces: ii="<winAnchorMultimapNmax || PC[iP][PC_Length]>=readLength[PC[iP][PC_iFrag]] ) {//proceed if piece is an anchor, i.e. maps few times or is long enough + if (PC[iP][PC_Nrep]<=P->winAnchorMultimapNmax ) {//proceed if piece is an anchor, i.e. maps few times + + uint aDir = PC[iP][PC_Dir]; + uint aLength= PC[iP][PC_Length]; + + for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) {//scan through all alignments of this piece + + uint a1 = SA[iSA]; + uint aStr = a1 >> P->GstrandBit; + a1 &= P->GstrandMask; //remove strand bit + + //convert to positive strand + if (aDir==1 && aStr==0) { + aStr=1; + } else if (aDir==0 && aStr==1) { + a1 = P->nGenome - (aLength+a1); + } else if (aDir==1 && aStr==1) { + aStr=0; + a1 = P->nGenome - (aLength+a1); + }; + + //final strand + if (revertStrand) { //modified strand according to user input CHECK!!!! + aStr=1-aStr; + }; + + if (a1>=P->sjGstart) {//this is sj align + uint a1D, aLengthD, a1A, aLengthA, sj1; + if (sjAlignSplit(a1, aLength, P, a1D, aLengthD, a1A, aLengthA, sj1)) {//align crosses the junction + + int addStatus=createExtendWindowsWithAlign(a1D, aStr);//add donor piece + if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows + break; + }; + addStatus=createExtendWindowsWithAlign(a1A, aStr);//add acceptor piece + if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows + break; + }; + }; + } else {//this is a normal genomic read + int addStatus=createExtendWindowsWithAlign(a1, aStr); + if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows + break; + }; + }; + }; //for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) //scan through all alignments of this piece + };//if (PC[iP][PC_Nrep]<=P->winAnchorMultimapNmax) //proceed if anchor + };//for (uint iP=0; iPwinFlankNbins && wb>0 && P->chrBin[(wb-1) >> P->winBinChrNbits]==WC[iWin][WC_Chr];ii++) { + wb--; + winBin[ WC[iWin][WC_Str] ][ wb ]=(uintWinBin) iWin; + }; + WC[iWin][WC_gStart] = wb; + + wb=WC[iWin][WC_gEnd]; + for (uint ii=0; iiwinFlankNbins && wb+1winBinN && P->chrBin[(wb+1) >> P->winBinChrNbits]==WC[iWin][WC_Chr];ii++) { + wb++; + winBin[ WC[iWin][WC_Str] ][ wb ]=(uintWinBin) iWin; + }; + WC[iWin][WC_gEnd] = wb; + + + }; + nWA[iWin]=0; //initialize nWA + WALrec[iWin]=0; //initialize rec-length + WlastAnchor[iWin]=-1; + }; + + nWall=nW; + + for (uint iP=0; iPwinAnchorMultimapNmax); //this align is an anchor or not + + for (uint ii=0;ii> P->GstrandBit; + a1 &= P->GstrandMask; //remove strand bit + uint aRstart=PC[iP][PC_rStart]; + + //convert to positive strand + if (aDir==1 && aStr==0) { + aStr=1; + aRstart = Lread - (aLength+aRstart); + } else if (aDir==0 && aStr==1) { + aRstart = Lread - (aLength+aRstart); + a1 = P->nGenome - (aLength+a1); + } else if (aDir==1 && aStr==1) { + aStr=0; + a1 = P->nGenome - (aLength+a1); + }; + + //final strand + if (revertStrand) { //modified strand according to user input CHECK!!!! + aStr=1-aStr; + }; + + + if (a1>=P->sjGstart) {//this is sj read + uint a1D, aLengthD, a1A, aLengthA, isj1; + if (sjAlignSplit(a1, aLength, P, a1D, aLengthD, a1A, aLengthA, isj1)) {//align crosses the junction + + assignAlignToWindow(a1D, aLengthD, aStr, aNrep, aFrag, aRstart, aAnchor, isj1); + assignAlignToWindow(a1A, aLengthA, aStr, aNrep, aFrag, aRstart+aLengthD, aAnchor, isj1); + + } else {//align does not cross the junction + continue; //do not check this align, continue to the next one + }; + + } else {//this is a normal genomic read + assignAlignToWindow(a1, aLength, aStr, aNrep, aFrag, aRstart, aAnchor, -1); + }; + }; + +// for (uint ii=0;iiP->seedNoneLociPerWindow) nWA[ii] -= nWAP[ii]; +// }; + }; + + //TODO remove windows that have too many alignments + //aligns are still sorted by original read coordinates, change direction for negative strand + // DOES NOT HELP!!! +// for ( uint iW=0;iWWA[iW][nWA[iW]-1][WA_rStart]) {//swap +// for (uint iA=0;iAswMode==1) {//stitching is done with Smith-Waterman against the windows + uint swWinCovMax=0; + for (uint iWin=0;iWin0) { + //select good windows by coverage + uint rLast=0; + swWinGleft[iWin]=P->chrStart[P->nChrReal]; swWinGright[iWin]=0; swWinRleft[iWin]=0; swWinRright[iWin]=0; + + for (uint ia=0; iarLast+1) { + if (r1>rLast) { + swWinCov[iWin] += L1; + } else { + swWinCov[iWin] += r1+L1-(rLast+1); + }; + rLast=r1+L1-1; + }; + };//for (uint ia=0; ia0) + };//for (uint iWin=0;iWin> oneChar >> trChr >> oneChar >>trStart >> oneChar >> trEnd >> oneChar >>trStr; + trStart += P->chrStart[trChr]; + trEnd += P->chrStart[trChr]; + + uint trNtotal=0, iW1=0; + trBest = trNext = trInit; //initialize next/best + for (uint iWin=0;iWin= P->swWinCoverageMinP) {//S-W on all good windows, record the transcripts + //full S-W against the window + trA=*trInit; //that one is initialized + trA.Chr = WC[iWin][WC_Chr]; + trA.Str = WC[iWin][WC_Str]; + trA.roStr = revertStrand ? 1-trA.Str : trA.Str; //original strand of the read + trA.maxScore=0; + + uint winLeft =swWinGleft[iWin] -5000; + uint winRight=swWinGright[iWin]+5000; + + //debug: process only correct windows + if (!( winLefttrEnd && trA.Str==trStr) ) continue; + + intSWscore swScore=alignSmithWaterman(R[trA.roStr==0 ? 0:2],Lread,G+winLeft,winRight-winLeft,\ + (intSWscore) 200, (intSWscore) 200, (intSWscore) 200, (intSWscore) 1, swT, P->swHsize, trA); + + trA.maxScore = (uint) swScore; + + trA.cStart = trA.exons[0][EX_G] + winLeft - P->chrStart[trA.Chr]; + trA.gLength = trA.exons[trA.nExons-1][EX_G]+1; + for (uint ii=0;iiP->alignIntronMin) { +// trA.canonSJ[ii-1]=0; //sj +// } else if (gg>0) { +// trA.canonSJ[ii-1]=-1;//deletion +// }; +// if (rg>0) trA.canonSJ[ii-1]=-2; + + trA.rLength=1; + trA.nMatch=1; + + trAll[iW1]=trArrayPointer+trNtotal; + *(trAll[iW1][0])=trA; + + if (trAll[iW1][0]->maxScore > trBest->maxScore || (trAll[iW1][0]->maxScore == trBest->maxScore && trAll[iW1][0]->gLength < trBest->gLength ) ) { + trNext=trBest; + trBest=trAll[iW1][0]; + }; + + + nWinTr[iW1]=1; + trNtotal++; + iW1++; + //output all windows + P->inOut->logMain << iRead <<"\t"<< swWinCov[iWin]*100/Lread <<"\t"<< WC[iWin][WC_Str]<<"\t"<< WC[iWin][WC_gStart] \ + <<"\t"<< WC[iWin][WC_gEnd] <<"\t"<< WA[iWin][0][WA_rStart] <<"\t"<< swWinRright[iWin] \ + <<"\t"<inOut->outBED); + }; + }; + nW=iW1;//number of windows with recorded transcripts + return; + };//if (P->swMode==1) +#endif //#if defined PacBio + +#ifdef COMPILE_FOR_LONG_READS +uint swWinCovMax=0; +for (uint iW=0;iW0) { + //select good windows by coverage + uint rLast=0; + + for (uint ia=0; iarLast+1) { + if (r1>rLast) { + swWinCov[iW] += L1; + } else { + swWinCov[iW] += r1+L1-(rLast+1); + }; + rLast=r1+L1-1; + }; + };//for (uint ia=0; iaswWinCovMax) swWinCovMax=swWinCov[iW]; + };//if (nWA[iW]>0) +};//for (uint iW=0;iWnWAmax=0; + trBest = trNext = trInit; //initialize next/best + uint iW1=0;//index of non-empty windows + uint trNtotal=0; //total number of recorded transcripts + + for (uint iW=0; iWnWAmax=max(nWA[iW],trInit->nWAmax); + trA=*trInit; //that one is initialized + trA.Chr = WC[iW][WC_Chr]; + trA.Str = WC[iW][WC_Str]; + trA.roStr = revertStrand ? 1-trA.Str : trA.Str; //original strand of the read + trA.maxScore=0; + + trAll[iW1]=trArrayPointer+trNtotal; + if (trNtotal+P->alignTranscriptsPerWindowNmax > P->alignTranscriptsPerReadNmax) { + P->inOut->logMain << "WARNING: not enough space allocated for transcript. Did not process all windows for read "<< readName+1 <inOut->logMain <<" SOLUTION: increase alignTranscriptsPerReadNmax and re-run\n" << flush; + break; + }; + *(trAll[iW1][0])=trA; + nWinTr[iW1]=0; //initialize number of transcripts per window + + + #ifdef COMPILE_FOR_LONG_READS + stitchWindowSeeds(iW, iW1, R[trA.roStr==0 ? 0:2], Q[trA.roStr], G); + #else + stitchWindowAligns(0, nWA[iW], 0, WAincl, 0, 0, trA, Lread, WA[iW], R[trA.roStr==0 ? 0:2], Q[trA.roStr], G, sigG, P, trAll[iW1], nWinTr+iW1, this); + #endif + trAll[iW1][0]->nextTrScore= nWinTr[iW1]==1 ? 0 : trAll[iW1][1]->maxScore; + + if (trAll[iW1][0]->maxScore > trBest->maxScore || (trAll[iW1][0]->maxScore == trBest->maxScore && trAll[iW1][0]->gLength < trBest->gLength ) ) { + trNext=trBest; + trBest=trAll[iW1][0]; + }; + + trNtotal += nWinTr[iW1]; + iW1++; + }; + + nW=iW1;//only count windows that had alignments + +// {//debug +// std::time(&timeFinish); +// double timeDiff=difftime(timeFinish,timeStart); +// cout << " "<< timeDiff << " "<maxScore*100/Lread<<" "<maxScore==0) {//no window was aligned (could happen if for all windows too many reads are multiples) + mapMarker = MARKER_NO_GOOD_WINDOW; + nW=0; + nTr=0; + return; + }; + + nextWinScore=trNext->maxScore; + +};//end of function + diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp new file mode 100644 index 0000000..6331962 --- /dev/null +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -0,0 +1,201 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "ReadAlign.h" +#include "stitchAlignToTranscript.h" +#include "extendAlign.h" + +void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G) {//stitches all seeds in one window: iW + + for (uint iS1=0;iS10 && score2+scoreSeedBest[iS2] > scoreSeedBest[iS1] ) { + scoreSeedBest[iS1]=score2+scoreSeedBest[iS2]; + scoreSeedBestMM[iS1]=trA1.nMM; + scoreSeedBestInd[iS1]=iS2; + }; + } else {//extend to the left + score2=WA[iW][iS1][WA_Length]; + if ( WA[iW][iS1][WA_rStart]>0 \ + && extendAlign(R, Q, G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, min(WA[iW][iS1][WA_rStart], WA[iW][iS1][WA_gStart] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend + score2 += trA1.maxScore; + }; + if (score2 > scoreSeedBest[iS1] ) { + scoreSeedBest[iS1]=score2; + scoreSeedBestInd[iS1]=iS1; +// scoreSeedBestMM[iS1]=trA1.nMM; + }; + }; + + + + }; + }; + + intScore scoreBest=0; + uint scoreBestInd=0; + + for (uint iS1=0;iS1chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend + scoreSeedBest[iS1]+=trA1.maxScore; + }; + if (scoreSeedBest[iS1]>scoreBest) {//record new best transcript + scoreBest=scoreSeedBest[iS1]; + scoreBestInd=iS1; + }; + }; + + uint seedN=0; + while (true) {//construct the sequence of seeds + seedChain[seedN++]=scoreBestInd; + if (scoreBestInd>scoreSeedBestInd[scoreBestInd]){//keep going + scoreBestInd=scoreSeedBestInd[scoreBestInd]; + } else {//this seed is hte first one + break; + }; + }; + + {//build final transcript form seedChain + {//initiate transcript + + uint iS1=seedChain[seedN-1]; + trA.maxScore = WA[iW][iS1][WA_Length]; + trA.nMatch = WA[iW][iS1][WA_Length]; //# of matches + trA.nMM = 0; + + trA.exons[0][EX_R] = trA.rStart = WA[iW][iS1][WA_rStart]; + trA.exons[0][EX_G] = trA.gStart = WA[iW][iS1][WA_gStart]; + trA.exons[0][EX_L] = WA[iW][iS1][WA_Length]; + trA.exons[0][EX_iFrag]=WA[iW][iS1][WA_iFrag]; + + trA.nExons=1; + + }; + + for (uint iSc=seedN-1; iSc>0; iSc--) {//stitch seeds from the chain + uint iS1=seedChain[iSc], iS2=seedChain[iSc-1]; + int scoreStitch= stitchAlignToTranscript(WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]-1, WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]-1,\ + WA[iW][iS2][WA_rStart], WA[iW][iS2][WA_gStart], WA[iW][iS2][WA_Length], WA[iW][iS2][WA_iFrag], WA[iW][iS2][WA_sjA], \ + P, R, Q, G, &trA, outFilterMismatchNmaxTotal); +// if (scoreStitch>0) { + trA.maxScore+=scoreStitch; +// } else { +// cout <<"BUG"<0 \ + && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, min(trA.exons[0][EX_R], trA.exons[0][EX_G] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend + + trA.maxScore += trA1.maxScore + WA[iW][iS1][WA_Length]; + trA.nMatch += trA1.nMatch + WA[iW][iS1][WA_Length]; //# of matches + trA.nMM += trA1.nMM; + + trA.exons[0][EX_R] -= trA1.extendL; + trA.exons[0][EX_G] -= trA1.extendL; + trA.exons[0][EX_L] += trA1.extendL; + trA.rStart = trA.exons[0][EX_R]; + trA.gStart = trA.exons[0][EX_G]; + }; + }; + + {//extend to the right + uint iS1=seedChain[0]; + trA1=*trInit;//initialize trA1 + uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; + uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; + if ( tR2 < Lread-1 \ + && extendAlign(R, Q, G, tR2, tG2, +1, +1, min(Lread-tR2,P->chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend + trA.add(&trA1); + trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon + }; + }; + + }; + + //debug: recalculate the number of MM +// { +// uint nMM1=0; +// for (uint iex=0;iex0) { + ++trA.intronMotifs[2-trA.canonSJ[iex]%2]; + }; + }; + +// if (P->outFilterIntronMotifs=="KeepCanonical" && (trA.intronMotifs[0]>0 || (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0) ) ) {//keep only conistent canonical introns +// return; +// }; + + + //check exons lenghts including repeats, do not report a transcript with short exons +// for (uint isj=0;isj=0 && \ +// ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] \ +// || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1]) ) { +// return;//do not record this transcript in wTr +// }; +// }; + }; + + {//record the transcript TODO: allow for multiple transcripts in one window + *(trAll[iWrec][0])=trA; + nWinTr[iWrec]=1; + }; + +}; diff --git a/ReadAlign_storeAligns.cpp b/ReadAlign_storeAligns.cpp new file mode 100644 index 0000000..f6f3433 --- /dev/null +++ b/ReadAlign_storeAligns.cpp @@ -0,0 +1,73 @@ +/** ReadAlign - one read, all alignments + * + * + * A longer description. + * + * @see something + */ + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "ReadAlign.h" +#include "ErrorWarning.h" + +void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indStartEnd[2], uint iFrag) {//fill in alignment data + + if ( Nrep > P->seedMultimapNmax ) {// if a piece maps too many times, do not store it + if ( Nrep < multNmin || multNmin==0 ) {multNmin=Nrep; multNminL=L;}; + return; + }; + + nUM[ Nrep==1 ? 0:1] += Nrep; //add numbers of U/M aligns + nA += Nrep; + + uint rStart=iDir==0 ? Shift : Shift+1-L;//alignment read-start + + //find the place to insert the new entry to keep it sorted + int iP; + for (iP=nP-1; iP>=0; iP--) { + if ( PC[iP][0]<=rStart ) { + if ( (PC[iP][PC_rStart]==rStart) && PC[iP][PC_Length]=iP;ii--) {//move old entries to free space for the new one + for (int jj=0;jj P->seedPerReadNmax) {// + ostringstream errOut; + errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; + errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_RUNTIME, *P); + }; + + PC[iP][PC_rStart]=rStart; //alignment read-start + PC[iP][PC_Length]=L; //alignment length + PC[iP][PC_Dir] = iDir; //direction + PC[iP][PC_Nrep] = Nrep; //repeat number - for both strands + PC[iP][PC_SAstart]= indStartEnd[0]; //SA index 1 + PC[iP][PC_SAend] = indStartEnd[1]; //SA index 2 + PC[iP][PC_iFrag] = iFrag; + + //choose "best" alignment + + if (LuniqLmax) { + uniqLmax=L; + uniqLmaxInd=nP-1; + }; + } else { + if ( Nrep < multNmin || multNmin==0 ) {multNmin=Nrep; multNminL=L;}; + if ( L > multLmax ) {multLmax=L;multLmaxN=Nrep;}; + if ( Nrep > multNmax ) {multNmax=Nrep; multNmaxL=L;}; + }; +}; diff --git a/STAR.cpp b/STAR.cpp new file mode 100644 index 0000000..a4a30a3 --- /dev/null +++ b/STAR.cpp @@ -0,0 +1,346 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "SequenceFuns.h" +#include "Genome.h" +#include "ReadAlignChunk.h" +#include "ReadAlign.h" +#include "Stats.h" +#include "genomeGenerate.h" +#include "outputSJ.h" +#include "ThreadControl.h" +#include "GlobalVariables.cpp" +#include "TimeFunctions.h" +#include +#include +#include "ErrorWarning.h" +#include "sysRemoveDir.h" +#include "BAMfunctions.h" +#include "Transcriptome.h" +#include "BAMbinSortByCoordinate.h" +#include "signalFromBAM.h" +#include "sjdbBuildIndex.h" +#include "mapThreadsSpawn.h" +#include "ErrorWarning.h" + +#include "htslib/htslib/sam.h" +extern int bam_cat(int nfn, char * const *fn, const bam_hdr_t *h, const char* outbam); + +int main(int argInN, char* argIn[]) { + + time(&g_statsAll.timeStart); + + Parameters *P = new Parameters; //all parameters + + P->inputParameters(argInN, argIn); + + *(P->inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... Started STAR run\n" <runMode=="genomeGenerate") { + genomeGenerate(P); + (void) sysRemoveDir (P->outFileTmp); + P->inOut->logMain << "DONE: Genome generation, EXITING\n" << flush; + exit(0); + } else if (P->runMode!="alignReads") { + P->inOut->logMain << "EXITING because of INPUT ERROR: unknown value of input parameter runMode=" <runMode<winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; + + Transcriptome *mainTranscriptome=NULL; + if (P->quantModeI>0) {//load transcriptome + mainTranscriptome=new Transcriptome(P); + }; +/////////////////////////////////////////////////////////////////////////////////////////////////START + if (P->runThreadN>1) { + g_threadChunks.threadArray=new pthread_t[P->runThreadN]; + pthread_mutex_init(&g_threadChunks.mutexInRead, NULL); + pthread_mutex_init(&g_threadChunks.mutexOutSAM, NULL); + pthread_mutex_init(&g_threadChunks.mutexOutBAM1, NULL); + pthread_mutex_init(&g_threadChunks.mutexOutUnmappedFastx, NULL); + pthread_mutex_init(&g_threadChunks.mutexOutFilterBySJout, NULL); + pthread_mutex_init(&g_threadChunks.mutexStats, NULL); + }; + + g_statsAll.progressReportHeader(P->inOut->logProgress); + + if (P->twopass1readsN>0) {//2-pass + //re-define P for the pass1 + + Parameters *P1=new Parameters; + *P1=*P; + //turn off unnecessary calculations + P1->outSAMtype[0]="None"; + P1->outSAMbool=false; + P1->outBAMunsorted=false; + P1->outBAMcoord=false; + + P1->chimSegmentMin=0; + P1->quantModeI=0; + P1->outFilterBySJoutStage=0; + + P1->outReadsUnmapped="None"; + + P1->outFileNamePrefix=P->twopassDir; + + P1->readMapNumber=P->twopass1readsN; +// P1->inOut->logMain.open((P1->outFileNamePrefix + "Log.out").c_str()); + + g_statsAll.resetN(); + time(&g_statsAll.timeStartMap); + P->inOut->logProgress << timeMonthDayTime(g_statsAll.timeStartMap) <<"\tStarted 1st pass mapping\n" <inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... Started 1st pass mapping\n" <runThreadN]; + for (int ii=0;iirunThreadN;ii++) { + RAchunk1[ii]=new ReadAlignChunk(P1, mainGenome, mainTranscriptome, ii); + }; + mapThreadsSpawn(P1, RAchunk1); + outputSJ(RAchunk1,P1); //collapse and output junctions +// for (int ii=0;iirunThreadN;ii++) { +// delete [] RAchunk[ii]; +// }; + + time_t rawtime; time (&rawtime); + P->inOut->logProgress << timeMonthDayTime(rawtime) <<"\tFinished 1st pass mapping\n"; + *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished 1st pass mapping\n" <twopassDir + "/Log.final.out").c_str()); + g_statsAll.reportFinal(logFinal1,P1); + + //re-build genome files + + sjdbBuildIndex (P, mainGenome.G, mainGenome.SA, mainGenome.SA2, mainGenome.SAi); + time ( &rawtime ); + *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished inserting 1st pass junctions into genome" <winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; + + //reopen reads files + P->closeReadsFiles(); + P->openReadsFiles(); + }; + + //initialize Stats + g_statsAll.resetN(); + g_statsAll.progressReportHeader(P->inOut->logProgress); + time(&g_statsAll.timeStartMap); + *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... Started mapping\n" <outSAMmode != "None") {//open SAM file and write header + ostringstream samHeaderStream; + + if (P->outSAMheaderHD.at(0)!="-") { + samHeaderStream << P->outSAMheaderHD.at(0); + for (uint ii=1;iioutSAMheaderHD.size(); ii++) { + samHeaderStream << "\t" << P->outSAMheaderHD.at(ii); + }; + samHeaderStream << "\n"; + } else { + samHeaderStream << "@HD\tVN:1.4\n"; + }; + + for (uint ii=0;iinChrReal;ii++) { + samHeaderStream << "@SQ\tSN:"<< P->chrName.at(ii) <<"\tLN:"<chrLength[ii]<<"\n"; + }; + + if (P->outSAMheaderPG.at(0)!="-") { + samHeaderStream << P->outSAMheaderPG.at(0); + for (uint ii=1;iioutSAMheaderPG.size(); ii++) { + samHeaderStream << "\t" << P->outSAMheaderPG.at(ii); + }; + samHeaderStream << "\n"; + }; + + samHeaderStream << "@PG\tID:STAR\tPN:STAR\tVN:" << STAR_VERSION <<"\tCL:" << P->commandLineFull <<"\n"; + + if (P->outSAMheaderCommentFile!="-") { + ifstream comstream (P->outSAMheaderCommentFile); + while (comstream.good()) { + string line1; + getline(comstream,line1); + if (line1.find_first_not_of(" \t\n\v\f\r")!=std::string::npos) {//skip blank lines + samHeaderStream << line1 <<"\n"; + }; + }; + }; + + + for (uint32 ii=0;iioutSAMattrRGlineSplit.size();ii++) {//@RG lines + samHeaderStream << "@RG\t" << P->outSAMattrRGlineSplit.at(ii) <<"\n"; + }; + + samHeaderStream << "@CO\t" <<"user command line: " << P->commandLine <<"\n"; + + P->samHeader=samHeaderStream.str(); + + if (P->outSAMbool) {// + *P->inOut->outSAM << P->samHeader; + }; + if (P->outBAMunsorted){ + outBAMwriteHeader(P->inOut->outBAMfileUnsorted,P->samHeader,P->chrName,P->chrLength); + }; +// if (P->outBAMcoord){ +// outBAMwriteHeader(P->inOut->outBAMfileCoord,P->samHeader,P->chrName,P->chrLength); +// }; + + if ( (P->quantModeI & PAR_quantModeI_TranscritomeSAM) > 0) { + samHeaderStream.str(""); + vector trlength; + for (uint32 ii=0;iitrID.size();ii++) { + uint32 iex1=mainTranscriptome->trExI[ii]+mainTranscriptome->trExN[ii]-1; //last exon of the transcript + trlength.push_back(mainTranscriptome->exLenCum[iex1]+mainTranscriptome->exSE[2*iex1+1]-mainTranscriptome->exSE[2*iex1]+1); + samHeaderStream << "@SQ\tSN:"<< mainTranscriptome->trID.at(ii) <<"\tLN:"<inOut->outQuantBAMfile,samHeaderStream.str(),mainTranscriptome->trID,trlength); + }; + + }; + + if (P->chimSegmentMin>0) { + P->inOut->outChimJunction.open((P->outFileNamePrefix + "Chimeric.out.junction").c_str()); + P->inOut->outChimSAM.open((P->outFileNamePrefix + "Chimeric.out.sam").c_str()); + P->inOut->outChimSAM << P->samHeader; + pthread_mutex_init(&g_threadChunks.mutexOutChimSAM, NULL); + pthread_mutex_init(&g_threadChunks.mutexOutChimJunction, NULL); + }; + + // P->inOut->logMain << "mlock value="<runThreadN]; + for (int ii=0;iirunThreadN;ii++) { + RAchunk[ii]=new ReadAlignChunk(P, mainGenome, mainTranscriptome, ii); + }; + + mapThreadsSpawn(P, RAchunk); + + if (P->outFilterBySJoutStage==1) {//completed stage 1, go to stage 2 + outputSJ(RAchunk,P);//collapse novel junctions + P->readFilesIndex=-1; + + P->outFilterBySJoutStage=2; + mapThreadsSpawn(P, RAchunk); + }; + + //close some BAM files + if (P->inOut->outBAMfileUnsorted!=NULL) { + bgzf_flush(P->inOut->outBAMfileUnsorted); + bgzf_close(P->inOut->outBAMfileUnsorted); + }; + if (P->inOut->outQuantBAMfile!=NULL) { + bgzf_flush(P->inOut->outQuantBAMfile); + bgzf_close(P->inOut->outQuantBAMfile); + }; + + if (P->outBAMcoord && P->limitBAMsortRAM==0) {//make it equal ot the genome size + P->limitBAMsortRAM=P->nGenome+mainGenome.SA.lengthByte+mainGenome.SAi.lengthByte; + }; + + //no need for genome anymore, free the memory + mainGenome.~Genome(); //need explicit call because of the delete P->inOut below + + if (P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files + RAchunk[0]->chunkFilesCat(P->inOut->outSAM, P->outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); + }; + + + + if (P->outBAMcoord) {//sort BAM if needed + *P->inOut->logStdOut << timeMonthDayTime() << " ..... Started sorting BAM\n" <inOut->logMain << timeMonthDayTime() << " ..... Started sorting BAM\n" <chunkOutBAMcoord->nBins; ibin++) { + uint binS=0; + for (int it=0; itrunThreadN; it++) {//collect sizes from threads + binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]; + }; + if (binS>maxMem) maxMem=binS; + }; + P->inOut->logMain << "Max memory needed for sorting = "<P->limitBAMsortRAM) { + ostringstream errOut; + errOut <<"EXITING because of fatal ERROR: not enough memory for BAM sorting: \n"; + errOut <<"SOLUTION: re-run STAR with at least --limitBAMsortRAM " <inOut->logMain, EXIT_CODE_PARAMETER, *P); + }; + + + uint totalMem=0; +// P->inOut->logMain << "Started sorting BAM ..." <runThreadN) + #pragma omp for schedule (dynamic,1) + for (uint32 ibin=0; ibinchunkOutBAMcoord->nBins; ibin++) { + + uint binN=0, binS=0; + for (int it=0; itrunThreadN; it++) {//collect sizes from threads + binN += RAchunk[it]->chunkOutBAMcoord->binTotalN[ibin]; + binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]; + }; + + uint newMem=binS+binN*24; + bool boolWait=true; + while (boolWait) { + #pragma omp critical + if (totalMem+newMem < P->limitBAMsortRAM) { + boolWait=false; + totalMem+=newMem; + }; + sleep(0.1); + }; + BAMbinSortByCoordinate(ibin,binN,binS,P->runThreadN,P->outBAMsortTmpDir,P->inOut->outBAMfileCoord, P); + #pragma omp critical + totalMem-=newMem;//"release" RAM + }; + //concatenate all BAM files, using bam_cat + char **bamBinNames = new char* [RAchunk[0]->chunkOutBAMcoord->nBins]; + vector bamBinNamesV; + for (uint32 ibin=0; ibinchunkOutBAMcoord->nBins; ibin++) { + + bamBinNamesV.push_back(P->outBAMsortTmpDir+"/b"+to_string((uint) ibin)); + struct stat buffer; + if (stat (bamBinNamesV.back().c_str(), &buffer) != 0) {//check if file exists + bamBinNamesV.pop_back(); + }; + }; + for (uint32 ibin=0; ibinoutBAMfileCoordName.c_str()); + }; + //wiggle output + if (P->outWigFlags.yes) { + *P->inOut->logStdOut << timeMonthDayTime() << " ..... Started wiggle output\n" <inOut->logMain << timeMonthDayTime() << " ..... Started wiggle output\n" <outFileNamePrefix + "Signal"; + signalFromBAM(P->outBAMfileCoordName, wigOutFileNamePrefix, *P); + }; + + //aggregate output (junctions, signal, etc) + //collapse splice junctions from different threads/chunks, and output them + outputSJ(RAchunk,P); + + g_statsAll.progressReport(P->inOut->logProgress); + P->inOut->logProgress << "ALL DONE!\n"<inOut->logFinal.open((P->outFileNamePrefix + "Log.final.out").c_str()); + g_statsAll.reportFinal(P->inOut->logFinal,P); + *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... Finished successfully\n" <inOut->logMain << "ALL DONE!\n"<outFileTmp); + + P->closeReadsFiles();//this will kill the readFilesCommand processes if necessary + delete P->inOut; //to close files + delete P; + + return 0; +}; diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp new file mode 100644 index 0000000..58aafe0 --- /dev/null +++ b/SequenceFuns.cpp @@ -0,0 +1,170 @@ +#include "SequenceFuns.h" + +void complementSeqNumbers(char* ReadsIn, char* ReadsOut, uint Lread) {//complement the numeric sequences + for (uint jj=0;jj Start ) { + i2=i3; + } else { + i1=i3; + }; + }; + return i1; +}; + +uint localSearch(const char *x, uint nx, const char *y, uint ny, double pMM){ + //find the best alignment of two short sequences x and y + //pMM is the maximum percentage of mismatches + uint nMatch=0, nMM=0, nMatchBest=0, nMMbest=0, ixBest=nx; + for (uint ix=0;ix3) continue; + if (x[ix+iy]==y[iy]) { + nMatch++; + } else { + nMM++; + }; + }; + + if ( ( nMatch>nMatchBest || (nMatch==nMatchBest && nMM3) ) && (iR=Qsplit) && (r[iR]<=3) ) && (iRLgoodMin ) LgoodMin=iR-iR1; + if ( (iR-iR1) chr; + vector start,end; + vector str; +}; + +#endif \ No newline at end of file diff --git a/Stats.cpp b/Stats.cpp new file mode 100644 index 0000000..ac22666 --- /dev/null +++ b/Stats.cpp @@ -0,0 +1,136 @@ +#include "Stats.h" +#include "TimeFunctions.h" + +void Stats::resetN() {//zero all counters + readN = 0; readBases = 0; + mappedMismatchesN = 0; mappedInsN = 0; mappedDelN = 0; mappedInsL = 0; mappedDelL = 0; mappedBases = 0; mappedPortion = 0; + mappedReadsU = 0; mappedReadsM = 0; + unmappedOther = 0; unmappedShort = 0; unmappedMismatch = 0; unmappedMulti = 0; + splicesNsjdb=0; + for (uint ii=0; ii=0) splicesN[T.canonSJ[ii]]++; + if (T.sjAnnot[ii]==1) splicesNsjdb++; + }; + + mappedBases += mappedL; + mappedPortion += double(mappedL)/double(Lread); +}; + +#define SETW1 setw(9) +#define SETW2 setw(8) +#define SETW3 setw(12) + +void Stats::progressReportHeader(ofstream &progressStream) { + progressStream <=60.0 && readN>0) {//make the report + //progressStream.imbue(std::locale("")); + progressStream <0 ? readBases/readN : 0) \ + <0 ? double(mappedReadsU)/double(readN)*100 : 0) <<'%' \ + <0 ? double(mappedBases)/double(mappedReadsU) : 0) + <0 ? double(mappedMismatchesN)/double(mappedBases)*100 : 0) <<'%' \ + <0 ? double(mappedReadsM)/double(readN)*100 : 0) <<'%'\ + <0 ? double(unmappedMulti)/double(readN)*100 : 0) <<'%'\ + <0 ? double(unmappedMismatch)/double(readN)*100 : 0) <<'%'\ + <0 ? double(unmappedShort)/double(readN)*100 : 0)<<'%'\ + <0 ? double(unmappedOther)/double(readN)*100 : 0) <<'%'\ + <<"\n"<0 ? readBases/readN : 0) <<"\n" \ + <0 ? double(mappedReadsU)/double(readN)*100 : 0) <<'%'<<"\n" \ + <0 ? double(mappedBases)/double(mappedReadsU) : 0) <<"\n"; + + streamOut <0 ? double(mappedDelL)/double(mappedBases)*100 : 0) <<'%' <<"\n" \ + <0 ? double(mappedDelL)/double(mappedDelN) : 0) <<"\n" \ + <0 ? double(mappedInsL)/double(mappedBases)*100 : 0) <<'%' <<"\n" \ + <0 ? double(mappedInsL)/double(mappedInsN) : 0) <<"\n" \ + <0 ? double(mappedReadsM)/double(readN)*100 : 0)<<'%' <<"\n" \ + <0 ? double(unmappedMulti)/double(readN)*100 : 0) <<'%' <<"\n" \ + <0 ? double(unmappedMismatch)/double(readN)*100 : 0) <<'%' <<"\n" \ + <0 ? double(unmappedShort)/double(readN)*100 : 0) <<'%' <<"\n" \ + <0 ? double(unmappedOther)/double(readN)*100 :0) <<'%'<<"\n" <>P->GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P->GstrandMask; + + + if (dirR && dirG) {//forward on read, forward on genome + char* s = s2[0] + S + L; + g += SAstr + L; + for (ii=0;(uint) ii < N-L; ii++) + if (s[ii]!=g[ii]) break; + if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; + return ii+L; + } else if (dirR && !dirG) { + char* s = s2[1] + S + L; + g += P->nGenome-1-SAstr - L; + for (ii=0; (uint) ii < N-L; ii++) + if (s[ii]!=g[-ii]) break; + if (s[ii]>g[-ii] || g[-ii]>3) {compRes=false;} else {compRes=true;}; + return ii+L; + } else if (!dirR && dirG) { + char* s = s2[1] + S - L; + g += SAstr + L; + for (ii=0; (uint) ii < N-L; ii++) + if (s[-ii]!=g[ii]) break; + if (s[-ii]>g[ii]) {compRes=true;} else {compRes=false;}; + return ii+L; + } else {//if (!dirR && !dirG) + char* s = s2[0] + S - L; + g += P->nGenome-1-SAstr - L; + for (ii=0; (uint) ii < N-L; ii++){ + if (s[-ii]!=g[-ii]) break; + }; + if (s[-ii]>g[-ii] || g[-ii]>3) {compRes=false;} else {compRes=true;}; + return ii+L; + }; +}; + +uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, char* g, PackedArray& SA, bool dirR, uint S, Parameters* P) { + // given SA index i3 and identity length L3, return the index of the farthest element with the same length, starting from i1,L1 or i1a,L1a, or i1b,L1b + + bool compRes; + + if (L1i1a+1) ) { //L1a is the target length, i1a...i1b is the initial range, i1c,L1c is the value in the middle + uint i1c=medianUint2(i1a,i1b); + //uint L1c=identityLength(&g[SA[i3]+L1b],&g[SA[i1c]+L1b],L3-L1b)+L1b; + uint L1c=compareSeqToGenome(s,S,L3,L1b,g,SA,i1c,dirR,compRes, P); + if (L1c==L3) { + i1a=i1c; + } + else { //L1c=i2 an not iteration of the loope below is ever made + while (i1+1L1) { + L1b=L1a; L1a=L1; i1b=i1a; i1a=i1; + }; + i1=i3;L1=L3; + } + else { + if (L3>L2) { //move 2 to 3 + L2b=L2a; L2a=L2; i2b=i2a; i2a=i2; + }; + i2=i3;L2=L3; + }; + L= min(L1,L2); + + }; + + if (L3L2) { + i3=i1;L3=L1; + } else { + i3=i2;L3=L2; + }; + }; + // now i3,L3 is the "best" alignment, i.e. longest length + + // find the range of SA indices in which the identiyLength is the same + i1=findMultRange(i3,L3,i1,L1,i1a,L1a,i1b,L1b,s,g,SA,dirR,S, P); + i2=findMultRange(i3,L3,i2,L2,i2a,L2a,i2b,L2b,s,g,SA,dirR,S, P); + + L=L3; //output + indStartEnd[0]=i1; + indStartEnd[1]=i2; + + return i2-i1+1; +}; + +uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P) { + // binary search in SA space + // s[0],s[1] - sequence, complementary sequence + // S - start offset + // N - sequence length + // g - genome sequence + // SA - suffix array + // dirR - direction, true=froward, false=reverse!!!!!!!NOT WORKING + // i1,i2 = starting indices in SA + // L - starting length + // output: SA index < searched string, i.e. g[SA[index]]=i2 an not iteration of the loope below is ever made + while (i1+1>P->GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P->GstrandMask; + + + if (dirG) {//forward on read, forward on genome + char* s = s2[0] + S + L; + char* g = G + SAstr + L; + for (ii=0;(uint) ii < N-L; ii++) + if (s[ii]!=g[ii]) break; + if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; + L3=ii+L; + } else { + char* s = s2[1] + S + L; + char* g = G + P->nGenome-1-SAstr - L; + for (ii=0; (uint) ii < N-L; ii++) { + if (s[ii]!=g[-ii]) break; + }; + + char s1=s[ii],g1=g[-ii]; + if (s1<4) s1=3-s1; + if (g1<4) g1=3-g1; + if (s1>g1) {compRes=true;} else {compRes=false;}; + L3=ii+L; + }; + }; + + if (L3==N) { + cout << "L3==N"< + +#define MAX_chunkOutBAMposition 100000 + +class ThreadControl { +public: + bool threadBool; + + pthread_t *threadArray; + pthread_mutex_t mutexInRead, mutexOutSAM, mutexOutBAM1, mutexOutChimSAM, mutexOutChimJunction, mutexOutUnmappedFastx, mutexOutFilterBySJout, mutexStats; + + uint chunkInN,chunkOutN; + + ThreadControl(); + + static void* threadRAprocessChunks(void *RAchunk) { + ( (ReadAlignChunk*) RAchunk )->processChunks(); + pthread_exit(0); + return NULL; + }; +}; + +#endif + diff --git a/TimeFunctions.cpp b/TimeFunctions.cpp new file mode 100644 index 0000000..c89e3a1 --- /dev/null +++ b/TimeFunctions.cpp @@ -0,0 +1,20 @@ +#include +#include + +std::string timeMonthDayTime() { + time_t rawTime; + char timeChar[100]; + time(&rawTime); + strftime(timeChar,80,"%b %d %H:%M:%SS",localtime(&rawTime)); + std::string timeString=timeChar; + timeString.erase(timeString.end()-1,timeString.end()); + return timeString; +}; + +std::string timeMonthDayTime(time_t &rawTime) { + char timeChar[100]; + strftime(timeChar,80,"%b %d %H:%M:%SS",localtime(&rawTime)); + std::string timeString=timeChar; + timeString.erase(timeString.end()-1,timeString.end()); + return timeString; +}; diff --git a/TimeFunctions.h b/TimeFunctions.h new file mode 100644 index 0000000..5512567 --- /dev/null +++ b/TimeFunctions.h @@ -0,0 +1,9 @@ +#ifndef TIME_FUNCTIONS_DEF +#define TIME_FUNCTIONS_DEF +#include +#include + +string timeMonthDayTime(); +string timeMonthDayTime(time_t &rawTime); + +#endif diff --git a/Transcript.cpp b/Transcript.cpp new file mode 100644 index 0000000..c112259 --- /dev/null +++ b/Transcript.cpp @@ -0,0 +1,39 @@ +#include "Transcript.h" + +Transcript::Transcript() { + reset(); +}; + +void Transcript::reset() { + extendL=0; + +// for (uint ii=0;ii<4;ii++) { +// polyXlength[ii]=0; +// polyXnMM[ii]=0; +// }; + primaryFlag=false; + + nWAmax=0; + + rStart=0; roStart=0; rLength=0; gStart=0; gLength=0; //read and genomic coordinates + + maxScore=0;nextTrScore=0; + nMatch=0; + nMM=0; + + nGap=0; lGap=0; lDel=0; lIns=0; nDel=0; nIns=0; + + nUnique=nAnchor=0; +}; + +void Transcript::add(Transcript *trIn) { + maxScore+=trIn->maxScore; + nMatch+=trIn->nMatch; + nMM+=trIn->nMM; + nGap+=trIn->nGap; lGap+=trIn->lGap; + lDel+=trIn->lDel; nDel+=trIn->nDel; + lIns+=trIn->lIns; nIns+=trIn->nIns; + nUnique+=trIn->nUnique; +}; + + diff --git a/Transcript.h b/Transcript.h new file mode 100644 index 0000000..062f38d --- /dev/null +++ b/Transcript.h @@ -0,0 +1,60 @@ +#ifndef TRANSCRIPT_DEF +#define TRANSCRIPT_DEF + +#include "IncludeDefine.h" +#include "Parameters.h" + +class Transcript { + public: + //uint rMM[DEF_readSeqLengthMax]; //read-space MM coordinates. TODO: remove? reduce the size, do not save the whole array +// uint gMap[DEF_readSeqLengthMax]; //map read bases to genome. TODO: allocate with smaller size + uint exons[MAX_N_EXONS][EX_SIZE]; //coordinates of all exons: r-start, g-start, length + uint shiftSJ[MAX_N_EXONS][2]; //shift of the SJ coordinates due to genomic micro-repeats + int canonSJ[MAX_N_EXONS]; //canonicity of each junction + uint8 sjAnnot[MAX_N_EXONS]; //anotated or not + uint8 sjStr[MAX_N_EXONS]; //anotated or not + + uint intronMotifs[3]; + uint8 sjMotifStrand; + + uint nExons; //number of exons in the read transcript + + uint Lread, readLengthPairOriginal; + uint iRead; //read identifier + + int iFrag; //frag number of the transcript, if the the transcript contains only one frag + + //loci + uint rStart, roStart, rLength, gStart, gLength, cStart; //read, original read, and genomic start/length, chromosome start + uint Chr,Str,roStr; //chromosome and strand and original read Strand + + bool primaryFlag; + +// uint polyXlength[4], polyXnMM[4] ; + uint nWAmax; //number of genes, max number of alignments per gene, total number of alignments for this reads + + uint nMatch;//min number of matches + uint nMM;//max number of mismatches + uint mappedLength; //total mapped length, sum of lengths of all blocks(exons) + + uint extendL; //extension length + intScore maxScore; //maximum Score + intScore nextTrScore; //next after maximum Tr Score + + + uint nGap, lGap; //number of genomic gaps (>alignIntronMin) and their total length + uint nDel; //number of genomic deletions (ie genomic gaps) + uint nIns; //number of (ie read gaps) + uint lDel; //total genomic deletion length + uint lIns; //total genomic insertion length + + uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment + + Transcript(); //resets to 0 + void reset(); //reset to 0 + void resetMapG(); // reset map to 0 + void resetMapG(uint); // reset map to 0 for Lread bases + void add(Transcript*); // add +}; + +#endif diff --git a/Transcriptome.cpp b/Transcriptome.cpp new file mode 100644 index 0000000..4b52392 --- /dev/null +++ b/Transcriptome.cpp @@ -0,0 +1,43 @@ +#include "Transcriptome.h" + +Transcriptome::Transcriptome (Parameters* Pin) { + + P=Pin; + + //load tr ans ex info + ifstream trinfo((P->genomeDir+"/transcriptInfo.tab").c_str()); + + trinfo >> nTr; + trS=new uint [nTr]; + trE=new uint [nTr]; + trEmax=new uint [nTr]; + trExI=new uint32 [nTr]; + trExN=new uint16 [nTr]; + trStr=new uint8 [nTr]; + trID.resize(nTr); + + for (uint32 itr=0; itr> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr]; + trStr[itr]=str1; + }; + P->inOut->logMain << "Loaded transcript database, nTr="<genomeDir+"/exonInfo.tab").c_str()); + + exinfo >> nEx; + exSE = new uint32 [2*nEx]; + exLenCum = new uint32 [nEx]; + for (uint32 iex=0; iex> exSE[2*iex] >> exSE[2*iex+1] >> exLenCum[iex]; //reading all elements one after another + }; + P->inOut->logMain << "Loaded exon database, nEx="< trID; //transcript IDs + uint *trS, *trE, *trEmax; //transcripts start,end,end-max + + uint32 nTr, nEx; //number of transcript/exons + uint16 *trExN; //number of exons per transcript + uint32 *trExI; //index of the first exon for each transcript in exSE + uint8 *trStr; //transcript strand + uint32 *exSE; //exons start/end + uint32 *exLenCum; //cumulative length of previous exons + +private: + Parameters* P; //normal "genomic" parameters + +}; + +#endif diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp new file mode 100644 index 0000000..695e1cf --- /dev/null +++ b/Transcriptome_quantAlign.cpp @@ -0,0 +1,102 @@ +#include "Transcriptome.h" +#include "ReadAlign.h" +#include "serviceFuns.cpp" + + +int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, uint32 *exLenCum1, uint16 exN1, Transcript &aT) { + + //find exon that overlaps beginning of the read + uint32 g1=aG.exons[0][EX_G]-trS1;//start of the transcript + uint32 ex1=binarySearch1(g1, exSE1, 2*exN1); + + if (ex1%2==1) {//beginning of the read in the middle of the exon? + return 0; //align does not belong to this transcript + } else { + ex1=ex1/2; //this is the first exon of the alignment + }; + + aT.nExons=0; + + aG.canonSJ[aG.nExons-1]=-999; //marks the last exons + for (uint32 iab=0; iabexSE1[2*ex1+1]+trS1+1) {//block extends past exon end + return 0; + }; + + if (iab==0 || aG.canonSJ[iab-1]<0) { + aT.exons[aT.nExons][EX_R]=aG.exons[iab][EX_R]; + aT.exons[aT.nExons][EX_G]=aG.exons[iab][EX_G]-trS1-exSE1[2*ex1]+exLenCum1[ex1]; + aT.exons[aT.nExons][EX_L]=aG.exons[iab][EX_L]; + aT.exons[aT.nExons][EX_iFrag]=aG.exons[iab][EX_iFrag]; + if (aT.nExons>0) aT.canonSJ[aT.nExons-1]=aG.canonSJ[iab-1]; + ++aT.nExons; + } else { + aT.exons[aT.nExons-1][EX_L]+=aG.exons[iab][EX_L]; + }; + switch (aG.canonSJ[iab]) { + case -999: //last exon, do nothing + if (trStr1==2) {//convert align coordinates if on the -strand + uint32 trlength=exLenCum1[exN1-1]+exSE1[2*exN1-1]-exSE1[2*exN1-2]+1; //transcript length + for (uint32 iex=0; iex(aG.exons[iab+1][EX_G]-trS1, exSE1, 2*exN1); + if (ex1%2==1) {//beginning of the mext mate in the middle of the exon? + return 0; //align does not belong to this transcript + } else { + ex1=ex1/2; //this is the first exon of the second mate + }; + break; + case -2: //insertion + break; + case -1: //deletion + break; + default://junctions + if ( aG.exons[iab][EX_G]+aG.exons[iab][EX_L]==exSE1[2*ex1+1]+trS1+1 && aG.exons[iab+1][EX_G]==exSE1[2*(ex1+1)]+trS1 ) { + //junction matches transcript junction + ++ex1; + } else { + return 0; + }; + }; + }; + return 0; //this should not happen +}; + +uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall) { + uint32 nAtr=0; //number of alignments to the transcriptome + + //binary search through transcript starts + uint32 tr1=binarySearch1(aG.exons[0][EX_G], trS, nTr); + if (tr1==(uint32) -1) return 0; //alignment outside of range of all transcripts + + uint aGend=aG.exons[aG.nExons-1][EX_G]; + + ++tr1; + do {//cycle back through all the transcripts + --tr1; + if (aGend<=trE[tr1]) {//this transcript contains the read + int aStatus=alignToTranscript(aG, trS[tr1], trStr[tr1], exSE+2*trExI[tr1], exLenCum+trExI[tr1], trExN[tr1], aTall[nAtr]); + if (aStatus==1) {//align conforms with the transcript + aTall[nAtr].Chr = tr1; + aTall[nAtr].Str = trStr[tr1]==1 ? aG.Str : 1-aG.Str; //TODO strandedness + ++nAtr; + }; + }; + } while (trEmax[tr1]>=aGend && tr1>0); + + return nAtr; +}; diff --git a/alignSmithWaterman.cpp b/alignSmithWaterman.cpp new file mode 100644 index 0000000..e3857fe --- /dev/null +++ b/alignSmithWaterman.cpp @@ -0,0 +1,152 @@ +#include "IncludeDefine.h" +#include "Transcript.h" +// local alignment with Smith-Waterman algorithm +intSWscore alignSmithWaterman(char *R, uint rL, char *G, uint gL, \ + intSWscore pMatch, intSWscore pMismatch, intSWscore pGapOpen, intSWscore pGapExtend, \ + char* T, uint Tsize, Transcript &trA) { + + intSWscore *H=new intSWscore[rL+1]; + + uint rL1=rL+1; + if (rL1*(gL+1)>Tsize) return (intSWscore) 0; + + intSWscore *E=new intSWscore[rL1]; + + memset(H,0,sizeof(H[0])*(rL1)); + memset(E,0,sizeof(E[0])*(rL1)); + + + + intSWscore maxH=0; + uint maxHr=0, maxHg=0; + + for (uint ig=1;ig<=gL;ig++) {//cycle over colums + intSWscore F=(intSWscore) 0; + intSWscore HdiagPrev=0; + for (uint ir=1;ir<=rL;ir++) {//cycle over rows + + E[ir]=max( E[ir]-pGapExtend, H[ir]-pGapOpen ); + E[ir]=max( E[ir], (intSWscore) 0 ); + + F = max( F-pGapExtend, H[ir-1]-pGapOpen ); + F = max( F, (intSWscore) 0); + + intSWscore Hdiag = G[ig-1]==R[ir-1] ? HdiagPrev+pMatch : HdiagPrev-pMismatch; + +// if (H[ir]>E[ir] & H[ir]>F) + + HdiagPrev=H[ir]; + + if (F>Hdiag && F>E[ir]) {//insertion (gap in read) + H[ir]=F; + T[ir+ig*rL1]=1; + } else if (Hdiag>F && Hdiag>E[ir]) {//match-mismatch + H[ir]=Hdiag; + T[ir+ig*rL1]=2; + } else {//deletion (gap in genome) + H[ir]=E[ir]; + T[ir+ig*rL1]=3; + }; + + if (H[ir]<0) { + H[ir]=0; + }; + + if (H[ir]==0) { + T[ir+ig*rL1]=0; + }; + +// Hdiag=max(Hdiag,E[ir]); +// Hdiag=max(Hdiag,F); +// H[ir]=max(Hdiag,(intSWscore) 0); + + if (H[ir]>maxH) { + maxH=H[ir]; + maxHr=ir; + maxHg=ig; + }; + #ifdef DEBUG_SW + stdOut << setw(2)<0 && ir>0 && ig>0) { + if (T[ir+ig*rL1]==2) { + if (prevOper==2) {//increase length + trA.exons[trA.nExons][EX_L]++; + } else {//new exon + ++trA.nExons; + trA.exons[trA.nExons][EX_L]=1; + trA.exons[trA.nExons][EX_R]=ir; + trA.exons[trA.nExons][EX_G]=ig; + prevOper=2; + }; + --ir; + --ig; + } else if (T[ir+ig*rL1]==1) {//gap in read + --ir; + prevOper=1; + } else {//gap in genome + --ig; + prevOper=3; + }; + }; + + ++trA.nExons; + for (uint ii=0;ii=1 && ig>=1) { +// +// rMap[ir-1]=ig; +// +// }; + + return maxH; +}; diff --git a/alignSmithWaterman.h b/alignSmithWaterman.h new file mode 100644 index 0000000..e699541 --- /dev/null +++ b/alignSmithWaterman.h @@ -0,0 +1,2 @@ +#include "IncludeDefine.h" +intSWscore alignSmithWaterman(char *R, uint rL, char *G, uint gL, intSWscore pMatch, intSWscore pMismatch, intSWscore pGapOpen, intSWscore pGapExtend, char* T, uint Tsize, Transcript &trA); diff --git a/bamRemoveDuplicates.cpp b/bamRemoveDuplicates.cpp new file mode 100644 index 0000000..d2c3b39 --- /dev/null +++ b/bamRemoveDuplicates.cpp @@ -0,0 +1,236 @@ +#include +#include "bamRemoveDuplicates.h" +#include +#include "htslib/htslib/sam.h" +#include "IncludeDefine.h" +#include SAMTOOLS_BGZF_H +#include "ErrorWarning.h" + +#define compareReturn(a,b) if(a>b) {return 1;} else if (a>24; + uint32 lb=(pb[3]<<24)>>24; + + compareReturn(la,lb) else { + char* ca=(char*) (pa+9); + char* cb=(char*) (pb+9); + for (int ii=0;ii>16; + uint32 fb=pb[4]>>16; + + compareReturn((fa&0x80), (fb&0x80)); + return 0; + }; +}; + +uint32 funStartExtendS(const uint32* const p) {//calculates align start extending right S operation + uint32* cig=(uint32*) (((char*) p)+9*4+((p[3]<<24)>>24)); + if ( ((cig[0]<<28)>>28) == 4 ) {//first (right) operation is S + return p[2]-(cig[0]>>4); + } else { + return p[2]; + }; +}; + +uint32 funCigarExtendS(const uint32* const p, uint32* cout) { + uint32* cig=(uint32*) (((char*) p)+9*4+((p[3]<<24)>>24)); + uint32 n=(p[4]<<16)>>16, n1=n; + + if (((cig[0]<<28)>>28) == 4) { + --n1; + memcpy((char*) cout, (char*) (cig+1), n1*sizeof(uint32));//copy CIGAR starting from the 2nd operation + cout[0]+=(cig[0]>>4)<<4; + } else { + memcpy((char*) cout, (char*) cig, n*sizeof(uint32));//copy full CIGAR + }; + if (((cig[n-1]<<28)>>28) == 4) {//remove last S opeartion add length to previous M + --n1; + cout[n1-1]+=(cig[n-1]>>4)<<4; + }; + return n1; +}; + +int funCompareCigarsExtendS(const uint32* const pa, const uint32* const pb){ + uint32 ca[100], cb[100]; + uint32 na=funCigarExtendS(pa,ca); + uint32 nb=funCigarExtendS(pb,cb); + compareReturn(na,nb); + for (uint32 ii=0; ii>16,pb1[4]>>16);//FLAG match + compareReturn(pa2[4]>>16,pb2[4]>>16);//FLAG match - 2nd mate + + int ret1=funCompareCigarsExtendS(pa1,pb1); + if (ret1!=0) return ret1; + ret1=funCompareCigarsExtendS(pa2,pb2); + if (ret1!=0) return ret1; + + //compare sequences + uint8_t* sa=((uint8_t*) pa2)+9*4+((pa2[3]<<24)>>24)+((pa2[4]<<16)>>16)*4; + uint8_t* sb=((uint8_t*) pb2)+9*4+((pb2[3]<<24)>>24)+((pb2[4]<<16)>>16)*4; + if (((pa2[4]>>16) & 0x10) == 0) {//not reverse complemented + uint ii=1; + for (; ii0) { + compareReturn((sa[ii/2]>>4),(sb[ii/2]>>4)); + }; + } else { + int ii=pa2[5]-g_bamRemoveDuplicatesMate2basesN; + if (ii%2>0) { + compareReturn((sa[ii/2]&15),(sb[ii/2]&15)); + ++ii; + }; + for (; iibamRemoveDuplicatesMate2basesN; + + bam1_t *bamA; + bamA=bam_init1(); + + BGZF *bamIn=bgzf_open(bamFileName.c_str(),"r"); + bam_hdr_t *bamHeader=bam_hdr_read(bamIn); + + BGZF *bgzfOut; + bgzfOut=bgzf_open(bamFileNameOut.c_str(),("w"+to_string((long long) P->outBAMcompression)).c_str()); + bam_hdr_write(bgzfOut, bamHeader); + + uint bamLengthMax=P->limitBAMsortRAM; //max length to load + if (bamLengthMax==0) bamLengthMax=16000000000; + uint grNmax=1000000;//max number of alignments + + char *bamRaw=new char[bamLengthMax]; + uint *aD=new uint[grNmax*2]; + + uint bamLength=0; + uint bamS=0, bamE=0, bamE1=1; //start/end/next-end position for read group search + uint32 rightMax=0; + uint grN=0;//number of reads in group + bool bamFileEnd=false;//when the last alignment of rhe file was reached + while (true) { + if (bamE1>bamLength) {//reached end of loaded BAM block, add BAM data + if (bamLength0) {//reached end of BAM file, cannot load more + bamFileEnd=true; + } else { + if (bamS==0 && bamLength>0) {//TODO + ostringstream errOut; + errOut <<"EXITING because of fatal ERROR: not enough memory for marking duplicates \n"; + errOut <<"SOLUTION: re-run STAR with at least --limitBAMsortRAM " <inOut->logMain, EXIT_CODE_PARAMETER, *P); + }; + + //write out processed block + bgzf_write(bgzfOut,bamRaw,bamS); + + bamLength-=bamS; + memmove(bamRaw, bamRaw+bamS,bamLength); //move the non-processed part of the block to the beginning of bamRaw + bamLength+=bgzf_read(bamIn, bamRaw+bamLength, bamLengthMax-bamLength);//marks the end of the BAM block that has been read + //restart search for the group + bamS=0; + bamE=0; + bamE1=bamE+*(uint32*)(bamRaw+bamE)+4;//next alignment + rightMax=0; + grN=0; + }; + }; + + uint32* bamP=(uint32*) (bamRaw+bamE);//pointer to the 1st mate of the pair + bamP[4] |= (0x400<<16);//mark all aligns as duplicate, will unmark + uint32 chrE=bamP[1]; + uint32 leftE=bamP[2]; + uint32 rightE=bamP[7]; + + uint32 chrS=*(uint32*)(bamRaw+bamS+4*1); + + if ( chrE !=chrS || (rightMax>0 && leftE>rightMax) || bamFileEnd ) {//found new group of reads to be processed, start collapsing procedure + qsort((void*) aD, grN, sizeof(uint), funCompareNames); + qsort((void*) aD, grN/2, 2*sizeof(uint), funCompareCoordFlagCigarSeq); + //go through the list and select non-duplicates + int bScore=-999, bP=0; + for (uint pp=0; ppdata=((uint8_t*) bamP1)+9*4+((bamP1[3]<<24)>>24)+((bamP1[4]<<16)>>16)*4+(bamP1[5]+1)/2+bamP1[5];//add length for: core, name, cigar, seq, qual + bamA->l_data=((uint8_t*) bamP1)+bamP1[0]+1-bamA->data; + int score1=bam_aux2i(bam_aux_get(bamA,"AS")); + if (score1>bScore) { + bScore=score1; + bP=pp; + }; + + if ( pp==(grN/2-1) || funCompareCoordFlagCigarSeq((void*) (aD+pp*2),(void*) (aD+pp*2+2))!=0 ) {//next pair is not equal to the current one + //un-mark duplicates + uint32* bamPb=(uint32*) aD[bP*2+1];//pointer to the 2nd mate of the pair + bamPb[4] ^= (0x400<<16); + bamPb=(uint32*) aD[bP*2];//pointer to the 1st mate of the pair + bamPb[4] ^= (0x400<<16); + //cout << ((char*)(bamPb+9)) <<"\n"; + bScore=-999;//reset best score + }; + }; + + + //reset for the next group + if (bamFileEnd) break; //exit the main cycle over blocks + rightMax=0; + bamS=bamE; + grN=0; + }; + + bamA->data=((uint8_t*) bamP)+9*4+((bamP[3]<<24)>>24)+((bamP[4]<<16)>>16)*4+(bamP[5]+1)/2+bamP[5];//add length for: core, name, cigar, seq, qual + bamA->l_data=((uint8_t*) bamP)+bamP[0]+1-bamA->data; + int nMult=bam_aux2i(bam_aux_get(bamA,"NH")); + + if (nMult==1) {//record this alignment in the current group, unique mappers only. Multi-mappers will not be considered for collapsing, and will remain marked as duplicates + if (grN>=grNmax) {//reallocate + grNmax=grN*2; + uint *aD1=new uint[grNmax]; + memcpy((char*) aD1, (char*) aD, grN*sizeof(uint)); + delete [] aD; + aD=aD1; + cerr << "reallocated array "<leftE) {//left mate, record coordinate of its right mate + rightMax=max(rightMax, rightE); + }; + }; + + bamE=bamE1;//shift to the next record + bamE1=bamE+*(uint32*)(bamRaw+bamE)+4;//next alignment + + }; + + bgzf_write(bgzfOut,bamRaw,bamLength); + bgzf_flush(bgzfOut); + bgzf_close(bgzfOut); +}; diff --git a/bamRemoveDuplicates.h b/bamRemoveDuplicates.h new file mode 100644 index 0000000..c79a761 --- /dev/null +++ b/bamRemoveDuplicates.h @@ -0,0 +1,10 @@ +#ifndef CODE_bamRemoveDuplicates +#define CODE_bamRemoveDuplicates +#include +#include "Parameters.h" + +using namespace std; + +void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, Parameters* const P); + +#endif diff --git a/bam_cat.c b/bam_cat.c new file mode 100644 index 0000000..8eef202 --- /dev/null +++ b/bam_cat.c @@ -0,0 +1,140 @@ +/* + +bam_cat -- efficiently concatenates bam files + +bam_cat can be used to concatenate BAM files. Under special +circumstances, it can be used as an alternative to 'samtools merge' to +concatenate multiple sorted files into a single sorted file. For this +to work each file must be sorted, and the sorted files must be given +as command line arguments in order such that the final read in file i +is less than or equal to the first read in file i+1. + +This code is derived from the bam_reheader function in samtools 0.1.8 +and modified to perform concatenation by Chris Saunders on behalf of +Illumina. + +2014-06-27: Alex Dobin modified the code slighlty: +* to compile with only htslib, no need for samtools package +* removed the samtools interface function (main) + + +########## License: + +The MIT License + +Original SAMtools work copyright (c) 2008-2009 Genome Research Ltd. +Modified SAMtools work copyright (c) 2010 Illumina, Inc. + +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 "htslib/htslib/bgzf.h" +#include "htslib/htslib/sam.h" +#include + +#define BUF_SIZE 0x10000 + +#define GZIPID1 31 +#define GZIPID2 139 + +#define BGZF_EMPTY_BLOCK_SIZE 28 + + +int bam_cat(int nfn, char * const *fn, const bam_hdr_t *h, const char* outbam) +{ + BGZF *fp; + uint8_t *buf; + uint8_t ebuf[BGZF_EMPTY_BLOCK_SIZE]; + const int es=BGZF_EMPTY_BLOCK_SIZE; + int i; + + fp = strcmp(outbam, "-")? bgzf_open(outbam, "w") : bgzf_fdopen(fileno(stdout), "w"); + if (fp == 0) { + fprintf(stderr, "[%s] ERROR: fail to open output file '%s'.\n", __func__, outbam); + return 1; + } + if (h) bam_hdr_write(fp, h); + + buf = (uint8_t*) malloc(BUF_SIZE); + for(i = 0; i < nfn; ++i){ + BGZF *in; + bam_hdr_t *old; + int len,j; + + in = strcmp(fn[i], "-")? bgzf_open(fn[i], "r") : bgzf_fdopen(fileno(stdin), "r"); + if (in == 0) { + fprintf(stderr, "[%s] ERROR: fail to open file '%s'.\n", __func__, fn[i]); + return -1; + } + if (in->is_write) return -1; + + old = bam_hdr_read(in); + if (h == 0 && i == 0) bam_hdr_write(fp, old); + + if (in->block_offset < in->block_length) { + bgzf_write(fp, (void*)((char*)in->uncompressed_block + in->block_offset), in->block_length - in->block_offset); + bgzf_flush(fp); + } + + j=0; + while ((len = bgzf_raw_read(in, buf, BUF_SIZE)) > 0) { + if(lenX[N-1] || xi1+1) {//binary search + i3=(i1+i2)/2; + if (X[i3]>x) { + i2=i3; + } else { + i1=i3; + }; + }; + + if (x==X[i1]) { + i3=i1; + } else if (x==X[i2]) { + i3=i2; + } else { + return -1; + }; + + for (int jj=i3;jj>=0;jj--) {//go back + if (x!=X[jj]) { + return -1; + } else if (y==Y[jj]) { + return jj; + }; + }; + + for (int jj=i3;jj=re2) {//t1 block is on the right to t2, no hope of overlap + i2++; + } else if (rs2>=re1) {//t2 block is on the right to t1, no hope of overlap + i1++; + } else if (gs1-rs1 != gs2-rs2) {//no overlap + if (re1>=re2) i2++;//1 is on the right of 2 + if (re2>=re1) i1++;//2 is on the right of 1 + } else {//overlap + nOverlap += min(re1,re2) - max(rs1,rs2); + if (re1>=re2) i2++;//1 is on the right of 2 + if (re2>=re1) i1++;//2 is on the right of 1 + }; + }; + + //debug +// uint nO1=0; +// for (uint ir=0;ir0) nO1++; +// }; +// +// if (nOverlap!=nO1) { +// exit(255); +// }; +// + + return nOverlap; +}; + diff --git a/blocksOverlap.h b/blocksOverlap.h new file mode 100644 index 0000000..4b9d4b3 --- /dev/null +++ b/blocksOverlap.h @@ -0,0 +1,10 @@ +#ifndef BLOCKS_OVERLAP_DEF +#define BLOCKS_OVERLAP_DEF + +#include "IncludeDefine.h" +#include "Transcript.h" + +uint blocksOverlap(Transcript &t1, Transcript &t2); + + +#endif diff --git a/extendAlign.cpp b/extendAlign.cpp new file mode 100644 index 0000000..98f35ee --- /dev/null +++ b/extendAlign.cpp @@ -0,0 +1,94 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "extendAlign.h" + +bool extendAlign( char* R, char* Q, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, Transcript* trA ) { + +// find the maximum score + +int iS,iG; + +int Score=0, nMatch=0, nMM=0; +trA->maxScore=0; + +R=R+rStart; +Q=Q+rStart; +G=G+gStart; + +if (pMMmax<0) {//end to end extension + + int iExt; + for (iExt=0;iExt<(int) L;iExt++) { + iS=dR*iExt; + iG=dG*iExt; + + if (G[iG]==5) {//prohibit extension through chr boundary +// trA->extendL=0; +// trA->maxScore=-999999999; +// trA->nMatch=0; +// trA->nMM=nMMmax+1; +// return true; + return false; + }; + if (R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through the spacer between fragments + + if (R[iS]>3 || G[iG]>3) continue;//no penalties for Ns in reads or genome + + if (G[iG]==R[iS]) {//Match + nMatch++; + Score += int(Q[iS]); + } else { + nMM++; + Score -= int(Q[iS]); + }; + }; + + if (iExt>0) { + trA->extendL=iExt; + trA->maxScore=Score; + trA->nMatch=nMatch; + trA->nMM=nMM; + return true; + } else { + return false; + }; + +}; + + +for (int i=0;i<(int) L;i++) { + iS=dR*i; + iG=dG*i; + + if (G[iG]==5 || R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through chr boundary, or through the spacer between fragments + if (R[iS]>3 || G[iG]>3) continue;//no penalties for Ns in reads or genome + + if (G[iG]==R[iS]) {//Match + nMatch++; + Score += int(Q[iS]); + if (Score>trA->maxScore) {//record new maximum + if (nMM+nMMprev <= min(pMMmax*double(Lprev+i+1), double(nMMmax)) ) {//check nMM, if too many mismatches - do not record this maximum. Do not break - there might be still hope to make a long extension + trA->extendL=i+1; + trA->maxScore=Score; + trA->nMatch=nMatch; + trA->nMM=nMM; + }; + }; + } else {//MM + if (nMM+nMMprev >= min(pMMmax*double(Lprev+L), double(nMMmax)) ) {//there is no hope to extend it further, break + break; + }; + + nMM++; + Score -= int(Q[iS]); + }; +}; + +// decide of the extension worked +bool extDone = trA->extendL > 0; + +return extDone; + +}; + diff --git a/extendAlign.h b/extendAlign.h new file mode 100644 index 0000000..7a7d567 --- /dev/null +++ b/extendAlign.h @@ -0,0 +1,5 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" + +bool extendAlign( char*, char*, char*, uint, uint, int, int, uint, uint, uint, uint, double, Transcript* ); diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp new file mode 100644 index 0000000..297b15a --- /dev/null +++ b/genomeGenerate.cpp @@ -0,0 +1,628 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "SuffixArrayFuns.h" +#include "PackedArray.h" +#include +#include "TimeFunctions.h" +#include "ErrorWarning.h" +#include "loadGTF.h" +#include "SjdbClass.h" +#include "sjdbLoadFromStream.h" +#include "sjdbPrepare.h" + +#include "serviceFuns.cpp" +#include "streamFuns.h" + +char* globalG; +uint globalL; + + +inline int funCompareSuffixes ( const void *a, const void *b){ + uint jj=0LLU; + + uint *ga=(uint*)((globalG-7LLU)+(*((uint*)a))); + uint *gb=(uint*)((globalG-7LLU)+(*((uint*)b))); + uint va=0,vb=0; + + while (va==vb && jjvb) { + return 1; + } else if (va==vb) { + return 0; + } else { + return -1; + }; +}; + +inline bool funCompareSuffixesBool ( const void *a, const void *b) +{ + uint jj=0LLU; + + uint *ga=(uint*)((globalG-7LLU)+(*((uint*)a))); + uint *gb=(uint*)((globalG-7LLU)+(*((uint*)b))); + uint va=0,vb=0; + + while (va==vb && jj>GstrandBit) == 0; + SAstr &= GstrandMask; + if ( !strandG ) SAstr += N; + return SAstr; +}; + +uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta files. flagRun=false: check and find full size, flaRun=true: collect all the data + uint N=0; //total number of bases in the genome, including chr "spacers" + ifstream fileIn; + for (uint ii=0;iigenomeFastaFiles.size();ii++) {//all the input files + fileIn.open(P->genomeFastaFiles.at(ii).c_str()); + if ( !fileIn.good() ) {// + ostringstream errOut; + errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + while(!fileIn.eof()) {//read each file until eof + string lineIn (4096,'.'); + getline(fileIn,lineIn); + if (lineIn[0]=='>') {//new chromosome + if (!flagRun) { + istringstream lineInStream (lineIn); + lineInStream.ignore(1,' '); + string chrName1; + lineInStream >> chrName1; + P->chrName.push_back(chrName1); + }; + + if (!flagRun && P->chrStart.size()>0) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr + + if (N>0) {//pad the chromosomes to bins boudnaries + N = ( (N+1)/P->genomeChrBinNbases+1 )*P->genomeChrBinNbases; + }; + + if (!flagRun) { + P->chrStart.push_back(N); + P->inOut->logMain << P->genomeFastaFiles.at(ii)<<" : chr # " << P->chrStart.size()-1 << " \""<chrName.at(P->chrStart.size()-1)<<"\" chrStart: "<chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr + + N = ( (N+1)/P->genomeChrBinNbases+1)*P->genomeChrBinNbases; + + if (!flagRun) { + P->nChrReal=P->chrStart.size(); + P->chrStart.push_back(N); //last chromosome end + for (uint ii=0;iinChrReal;ii++) { + P->chrNameIndex[P->chrName[ii]]=ii; + }; + }; + + return N; +}; + +void genomeGenerate(Parameters *P) { + + //check parameters + if (P->sjdbOverhang==0 && (P->sjdbFileChrStartEnd!="-" || P->sjdbGTFfile!="-")) { + ostringstream errOut; + errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; + errOut << "you need to specify non-zero --sjdbOverhang\n"; + errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + + //time + time_t rawTime; + string timeString; + + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Starting to generate Genome files\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Starting to generate Genome files\n" <genomeChrBinNbases=1LLU << P->genomeChrBinNbits; + + + //write genome parameters file + ofstream genomePar; + ofstrOpen(P->genomeDir+("/genomeParameters.txt"),"ERROR_00102", P, genomePar); + + genomePar << "versionGenome\t" << P->versionSTAR <<"\n"; + genomePar << "genomeFastaFiles\t"; + for (uint ii=0;iigenomeFastaFiles.size();ii++) genomePar << P->genomeFastaFiles.at(ii) << " "; + genomePar << "\n"; + genomePar << "genomeSAindexNbases\t" << P->genomeSAindexNbases << "\n"; + genomePar << "genomeChrBinNbits\t" << P->genomeChrBinNbits << "\n"; + genomePar << "genomeSAsparseD\t" << P->genomeSAsparseD <<"\n"; + genomePar << "sjdbOverhang\t" << P->sjdbOverhang <<"\n"; + genomePar << "sjdbFileChrStartEnd\t" << P->sjdbFileChrStartEnd <<"\n"; + genomePar << "sjdbGTFfile\t" << P->sjdbGTFfile <<"\n"; + genomePar << "sjdbGTFchrPrefix\t" << P->sjdbGTFchrPrefix <<"\n"; + genomePar << "sjdbGTFfeatureExon\t" << P->sjdbGTFfeatureExon <<"\n"; + genomePar << "sjdbGTFtagExonParentTranscript\t" << P->sjdbGTFtagExonParentTranscript <<"\n"; + + genomePar.close(); + + //add the sjdb sequences to the genome + SjdbClass sjdbLoci; + + + if (P->sjdbOverhang>0 && P->sjdbFileChrStartEnd!="-") { + ifstream sjdbStreamIn ( P->sjdbFileChrStartEnd.c_str() ); + if (sjdbStreamIn.fail()) { + ostringstream errOut; + errOut << "FATAL INPUT error, could not open input file sjdbFileChrStartEnd=" << P->sjdbFileChrStartEnd <<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); + + P->inOut->logMain << "Loaded database junctions from file: " << P->sjdbFileChrStartEnd <<": "<sjdbFileChrStartEnd!="-") + + char *G=NULL, *G1=NULL; + uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to fins all the sizes + P->chrBinFill(); + + loadGTF(sjdbLoci, P); + + uint L=10000;//maximum length of genome suffix + uint nG1alloc=(nGenomeReal + sjdbLoci.chr.size()*P->sjdbLength+L)*2; + G1=new char[nG1alloc]; + G=G1+L; + + memset(G1,GENOME_spacingChar,nG1alloc);//initialize to K-1 all bytes + + genomeScanFastaFiles(P,G,true); //load the genome sequence + + //convert the genome to 0,1,2,3,4 + for (uint jj=0;jjinOut->logMain << "Unexpected character: char="<< G[jj] << " int="<0) {//prepare sjdb + sjdbPrepare (sjdbLoci, P, G, nGenomeReal, P->genomeDir); + time ( &rawTime ); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... finished processing splice junctions database ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... finished processing splice junctions database ...\n" <sjdbN*P->sjdbLength; + P->nGenome=N; + uint N2 = N*2; + + ofstream chrN,chrS,chrL,chrNL; + + ofstrOpen(P->genomeDir+"/chrName.txt","ERROR_00103", P, chrN); + ofstrOpen(P->genomeDir+"/chrStart.txt","ERROR_00103", P, chrS); + ofstrOpen(P->genomeDir+"/chrLength.txt","ERROR_00103", P, chrL); + ofstrOpen(P->genomeDir+"/chrNameLength.txt","ERROR_00103", P, chrNL); + + for (uint ii=0;iinChrReal;ii++) {//output names, starts, lengths + chrN<chrName[ii]<<"\n"; + chrS<chrStart[ii]<<"\n"; + chrL<chrLength.at(ii)<<"\n"; + chrNL<chrName[ii]<<"\t"<chrLength.at(ii)<<"\n"; + }; + chrS<chrStart[P->nChrReal]<<"\n";//size of the genome + chrN.close();chrL.close();chrS.close(); chrNL.close(); + + if (P->limitGenomeGenerateRAM < (nG1alloc+nG1alloc/3)) {//allocate nG1alloc/3 for SA generation + ostringstream errOut; + errOut <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM="<< (P->limitGenomeGenerateRAM) <<"is too small for your genome\n"; + errOut <<"SOLUTION: please specify limitGenomeGenerateRAM not less than"<< nG1alloc+nG1alloc/3 <<" and make that much RAM available \n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + //write genome to disk + ofstream genomeOut; + ofstrOpen(P->genomeDir+"/Genome","ERROR_00104", P, genomeOut); + + P->inOut->logMain << "Writing genome to disk..."; + fstreamWriteBig(genomeOut,G,N,P->genomeDir+"/Genome","ERROR_00120",P); + genomeOut.close(); + P->inOut->logMain << " done.\n" <nSA=0; + for (uint ii=0;iigenomeSAsparseD) { + if (G[ii]<4) { + P->nSA++; + }; + }; + + P->GstrandBit = (uint) floor(log(N)/log(2))+1; + if (P->GstrandBit<32) P->GstrandBit=32; //TODO: use simple access function for SA + + P->GstrandMask = ~(1LLU<GstrandBit); + P->nSAbyte=P->nSA*(P->GstrandBit+1)/8+1; + PackedArray SA1; + SA1.defineBits(P->GstrandBit+1,P->nSA); + + P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<inOut->logMain << "SA size in bytes: "<< P->nSAbyte << "\n"<inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <nSA=0; + for (uint ii=0;iigenomeSAsparseD) { + if (G[ii]<4) { + uint p1=(G[ii]<<12) + (G[ii-1]<<8) + (G[ii-2]<<4) + G[ii-3]; + indPrefCount[p1]++; + P->nSA++; + }; + }; + + uint saChunkSize=(P->limitGenomeGenerateRAM-nG1alloc)/8/P->runThreadN; //number of SA indexes per chunk + saChunkSize=saChunkSize*6/10; //allow extra space for qsort + //uint saChunkN=((P->nSA/saChunkSize+1)/P->runThreadN+1)*P->runThreadN;//ensure saChunkN is divisible by P->runThreadN + //saChunkSize=P->nSA/saChunkN+100000;//final chunk size + if (P->runThreadN>1) saChunkSize=min(saChunkSize,P->nSA/(P->runThreadN-1)); + + uint saChunkN=P->nSA/saChunkSize;//estimate + uint* indPrefStart = new uint [saChunkN*2]; //start and stop, *2 just in case + uint* indPrefChunkCount = new uint [saChunkN*2]; + indPrefStart[0]=0; + saChunkN=0;//start counting chunks + uint chunkSize1=indPrefCount[0]; + for (uint ii=1; ii saChunkSize) { + saChunkN++; + indPrefStart[saChunkN]=ii; + indPrefChunkCount[saChunkN-1]=chunkSize1-indPrefCount[ii]; + chunkSize1=indPrefCount[ii]; + }; + }; + saChunkN++; + indPrefStart[saChunkN]=indPrefN+1; + indPrefChunkCount[saChunkN-1]=chunkSize1; + + P->inOut->logMain << "Number of chunks: " << saChunkN <<"; chunks size limit: " << saChunkSize*8 <<" bytes\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <runThreadN) ordered schedule(dynamic,1) + for (int iChunk=0; (uint)iChunk < saChunkN; iChunk++) {//start the chunk cycle: sort each chunk with qsort and write to a file + uint* saChunk=new uint [indPrefChunkCount[iChunk]];//allocate local array for each chunk + for (uint ii=0,jj=0;iigenomeSAsparseD) {//fill the chunk with SA indices + if (G[ii]<4) { + uint p1=(G[ii]<<12) + (G[ii-1]<<8) + (G[ii-2]<<4) + G[ii-3]; + if (p1>=indPrefStart[iChunk] && p1genomeDir+"/SA_"+to_string( (uint) iChunk); + ofstrOpen(chunkFileName,"ERROR_00105", P, saChunkFile); + fstreamWriteBig(saChunkFile, (char*) saChunk, sizeof(saChunk[0])*indPrefChunkCount[iChunk],chunkFileName,"ERROR_00121",P); + saChunkFile.close(); + delete [] saChunk; + saChunk=NULL; + }; + + time ( &rawTime ); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <nSAbyte]; + uint N2bit= 1LLU << P->GstrandBit; + uint packedInd=0; + + #define SA_CHUNK_BLOCK_SIZE 10000000 + uint* saIn=new uint[SA_CHUNK_BLOCK_SIZE]; //TODO make adjustable + + #ifdef genenomeGenerate_SA_textOutput + ofstream SAtxtStream ((P->genomeDir + "/SAtxt").c_str()); + #endif + + for (uint iChunk=0;iChunkgenomeDir << "/SA_" << iChunk; + ifstream saChunkFile(saChunkFileNameStream.str().c_str()); + while (! saChunkFile.eof()) {//read blocks from each file + uint chunkBytesN=fstreamReadBig(saChunkFile,(char*) saIn,SA_CHUNK_BLOCK_SIZE*sizeof(saIn[0])); + for (uint ii=0;iinSA ) {// + ostringstream errOut; + errOut << "EXITING because of FATAL problem while generating the suffix array\n"; + errOut << "The number of indices read from chunks = "<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + time ( &rawTime ); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <genomeDir+"/SA","ERROR_00106", P, SAout); + fstreamWriteBig(SAout,(char*) SA1.charArray, (streamsize) P->nSAbyte,P->genomeDir+"/SA","ERROR_00122",P); + SAout.close(); + + //DONE with suffix array generation + + for (uint ii=0;iiinOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <nSAbyte + ifstream genomeIn; + genomeIn.open((P->genomeDir+("/SA")).c_str()); + genomeIn.seekg (0, ios::end); + uint nSAbyte1=genomeIn.tellg(); + genomeIn.close(); + if (nSAbyte1>P->nSAbyte) { + ostringstream errOut; + errOut << "WARNING: in genomeGenerate: the size of the SA file on disk, "<nSAbyte<<"\n"; + errOut << " Will try to cut the file to a correct size and check the SA\n"; + errOut << " Please report this error to dobin@cshl.edu\n"; + + ostringstream sysCom; + sysCom << "cd " <genomeDir<<"; mv SA SA.old; head -c " << P->nSAbyte << " SA.old > SA; rm -f SA.old"; + errOut << " Executing system command: " <inOut->logStdOut <inOut->logMain <genomeDir+("/SA")).c_str()); + genomeIn.seekg (0, ios::end); + uint nSAbyte2=genomeIn.tellg(); + genomeIn.close(); + if (nSAbyte2!=P->nSAbyte) { + ostringstream errOut; + errOut << "EXITING: FATAL ERROR in genomeGenerate: could not write correctly sized SA to disk\n"; + errOut << "SOLUTION: Please report this error to dobin@cshl.edu\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + genomeIn.open((P->genomeDir+("/SA")).c_str()); + fstreamReadBig(genomeIn,SA1.charArray,P->nSAbyte); + genomeIn.close(); + } else if (nSAbyte1nSAbyte) { + ostringstream errOut; + errOut << "EXITING: FATAL ERROR in genomeGenerate: the size of the SA file on disk, "<nSAbyte<<"\n"; + errOut << "SOLUTION: Please try to generate the genome files agains in an empty directory. If the error persists, please report it to dobin@cshl.edu\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + if (nSAbyte1>P->nSAbyte) {//check SA + time(&rawTime); + timeString=asctime(localtime ( &rawTime )); + timeString.erase(timeString.end()-1,timeString.end()); + P->inOut->logMain << timeString <<" ... starting to check Suffix Array...\n" <inOut->logStdOut << timeString <<" ... starting to check Suffix Array...\n" <nSA-1;isa++) {//check SA + if (isa%100000000==0) P->inOut->logMain << isa*100/P->nSA << " " << flush; + + + *g1=funG2strLocus(SA1[isa ],N,P->GstrandBit,P->GstrandMask); + *g2=funG2strLocus(SA1[isa+1],N,P->GstrandBit,P->GstrandMask); + + uint jj=0; + while (G[*g1+jj]==G[*g2+jj] && jjG[*g2+jj] ) { + ostringstream errOut; + errOut << "EXITING: FATAL ERROR in genomeGenerate: Suffix Array is not properly sorted\n"; + errOut << "SOLUTION: re-run genomeGenerate from scratch, with an empty genomeDir directory\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } + }; + P->inOut->logMain << " done: all suffixes ordered correctly\n"<inOut->logStdOut << " done: all suffixes ordered correctly\n"<inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to generate Suffix Array index...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to generate Suffix Array index...\n" <genomeSAindexStart = new uint [P->genomeSAindexNbases+1]; + P->genomeSAindexStart[0]=0; + for (uint ii=1;ii<=P->genomeSAindexNbases;ii++) {//L-mer indices starts + P->genomeSAindexStart[ii] = P->genomeSAindexStart[ii-1] + ( 1LLU<<(2*ii) ); + }; + P->nSAi = P->genomeSAindexStart[P->genomeSAindexNbases]; + + uint* SAi=new uint[P->nSAi]; +// for (uint isa=0; isanSAi; isa++) {//initialize +// SAi[isa]=P->nSA; //if the suffix is not found in the genome, it's location will be marked with this value +// }; + + uint* ind0=new uint[P->genomeSAindexNbases]; + uint* indSAlast=new uint[P->genomeSAindexNbases]; + + for (uint ii=0; iigenomeSAindexNbases; ii++) { + ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths + indSAlast[ii]=P->nSA;//that's probably not needed + }; + + P->SAiMarkNbit=P->GstrandBit+1; + P->SAiMarkAbsentBit=P->GstrandBit+2; + + P->SAiMarkNmaskC=1LLU << P->SAiMarkNbit; + P->SAiMarkNmask=~P->SAiMarkNmaskC; + P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; + P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; + + + for (uint isa=0; isanSA; isa++) {//for all suffixes + if (isa%100000000==0) P->inOut->logMain << isa*100/P->nSA << "% " << flush; + + uint SAstr=SA1[isa]; + bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P->GstrandMask; + if (!dirG) SAstr=P->nGenome-1-SAstr; + + uint indPref=0; + for (uint iL=0; iL < P->genomeSAindexNbases; iL++) {//calculate index + + indPref <<= 2; + + uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand + + if (g1>3) {//if N, this suffix does not belong in SAi + for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { + SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] |= P->SAiMarkNmaskC; + }; + break; + }; + + if (!dirG) g1=3-g1; //complement if (-) strand + + indPref += (uint) g1; + + if ( indPref > ind0[iL] || isa==0 ) {//new && good index, record it + SAi[P->genomeSAindexStart[iL]+indPref]=isa; + for (uint ii=ind0[iL]+1; iigenomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; + }; + ind0[iL]=indPref; +// indSAlast[iL]=isa; +// } else if (indPref==ind0[iL]) { +// indSAlast[iL]=isa;//last SA index with the same prefix + } else if ( indPref < ind0[iL] ) { + ostringstream errOut; + errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + }; + };//for (uint isa=0; isanSA; isa++) + P->inOut->logMain << " done\n"<GstrandBit+3,P->nSAi);//SAi uses an extra bit compared to SA because it needs to store values > nSA + SAip.pointArray((char*) SAi); + for (uint ii=0;iiinOut->logMain << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <genomeDir+"/SAindex","ERROR_00107", P, SAiOut); + + fstreamWriteBig(SAiOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->genomeDir+"/SAindex","ERROR_00123",P); + fstreamWriteBig(SAiOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->genomeDir+"/SAindex","ERROR_00124",P); + fstreamWriteBig(SAiOut, SAip.charArray, SAip.lengthByte,P->genomeDir+"/SAindex","ERROR_00125",P); + SAiOut.close(); + + time(&rawTime); + timeString=asctime(localtime ( &rawTime )); + timeString.erase(timeString.end()-1,timeString.end()); + + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) << " ..... Finished successfully\n" <inOut->logStdOut << timeMonthDayTime(rawTime) << " ..... Finished successfully\n" < + +CC = gcc +AR = ar +RANLIB = ranlib + +# TODO: edit cram code to remove need for -DSAMTOOLS +CPPFLAGS = -I. -DSAMTOOLS=1 +# TODO: probably update cram code to make it compile cleanly with -Wc++-compat +CFLAGS = -g -Wall -O2 +EXTRA_CFLAGS_PIC = -fpic +LDFLAGS = +LDLIBS = + +prefix = /usr/local +exec_prefix = $(prefix) +bindir = $(exec_prefix)/bin +includedir = $(prefix)/include +libdir = $(exec_prefix)/lib +mandir = $(prefix)/share/man +man1dir = $(mandir)/man1 +man5dir = $(mandir)/man5 + +INSTALL = install -p +INSTALL_PROGRAM = $(INSTALL) +INSTALL_DATA = $(INSTALL) -m 644 + +BUILT_PROGRAMS = \ + bgzip \ + tabix + +BUILT_TEST_PROGRAMS = \ + test/fieldarith \ + test/hfile \ + test/sam \ + 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 = 0.0.1 +LIBHTS_SOVERSION = 0 + + +# $(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)"' > $@ + + +.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 \ + 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/sam_header.o \ + cram/string_alloc.o \ + cram/thread_pool.o \ + cram/vlen.o \ + cram/zfio.o + + +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) $(LDFLAGS) -o $@ $(LIBHTS_OBJS:.o=.pico) $(LDLIBS) -lz + 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 + + +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) + +bgzf.o bgzf.pico: bgzf.c config.h $(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_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 config.h $(htslib_bgzf_h) $(htslib_faidx_h) htslib/khash.h htslib/knetfile.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 + +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) $(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) +cram/pooled_alloc.o cram/pooled_alloc.pico: cram/pooled_alloc.c cram/pooled_alloc.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 + +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) +tabix.o: tabix.c $(htslib_tbx_h) $(htslib_sam_h) $(htslib_vcf_h) htslib/kseq.h $(htslib_bgzf_h) $(htslib_hts_h) + + +check test: $(BUILT_TEST_PROGRAMS) + test/fieldarith test/fieldarith.sam + test/hfile + test/sam + cd test && ./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_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/sam.o: test/sam.c $(htslib_sam_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: installdirs install-$(SHLIB_FLAVOUR) + $(INSTALL_PROGRAM) $(BUILT_PROGRAMS) $(DESTDIR)$(bindir) + $(INSTALL_DATA) htslib/*.h $(DESTDIR)$(includedir)/htslib + $(INSTALL_DATA) libhts.a $(DESTDIR)$(libdir)/libhts.a + $(INSTALL_DATA) *.1 $(DESTDIR)$(man1dir) + $(INSTALL_DATA) *.5 $(DESTDIR)$(man5dir) + +installdirs: + mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(includedir)/htslib $(DESTDIR)$(libdir) $(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) + +# 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 + + +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 TAGS + +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 installdirs +.PHONY: lib-shared lib-static mostlyclean tags test testclean +.PHONY: clean-so install-so +.PHONY: clean-dylib install-dylib diff --git a/htslib/README.md b/htslib/README.md new file mode 100644 index 0000000..4afb112 --- /dev/null +++ b/htslib/README.md @@ -0,0 +1,17 @@ +HTSlib is an implementation of a unified C library for accessing common file +formats, such as [SAM, CRAM and VCF][1], used for high-throughput sequencing +data, and is the core library used by [samtools][2] and [bcftools][3]. +HTSlib only depends on [zlib][4]. +It is known to be compatible with gcc, g++ and clang. + +HTSlib implements a generalized BAM index, with file extension `.csi` +(coordinate-sorted index). The HTSlib file reader first looks for the new index +and then for the old if the new index is absent. + +This project also includes the popular tabix indexer, which indexes both `.tbi` +and `.csi` formats, and the bgzip compression utility. + +[1]: http://samtools.github.io/hts-specs/ +[2]: http://samtools.github.io/bcftools/ +[3]: http://github.com/samtools/samtools +[4]: http://zlib.net/ diff --git a/htslib/bgzf.c b/htslib/bgzf.c new file mode 100644 index 0000000..1bf799b --- /dev/null +++ b/htslib/bgzf.c @@ -0,0 +1,1085 @@ +/* The MIT License + + Copyright (c) 2008 Broad Institute / Massachusetts Institute of Technology + 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 "config.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "htslib/hts.h" +#include "htslib/bgzf.h" +#include "htslib/hfile.h" + +#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[2]; + ssize_t n = hpeek(hfpr, magic, 2); + 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); +#ifdef BGZF_CACHE + fp->cache = kh_init(cache); +#endif + return fp; +} + +static BGZF *bgzf_write_init(int compress_level) // compress_level==-1 for the default level, -2 plain uncompressed +{ + BGZF *fp; + fp = (BGZF*)calloc(1, sizeof(BGZF)); + fp->is_write = 1; + 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; + return fp; +} +// get the compress level from the mode string +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; +} + +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(mode2level(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(mode2level(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(mode2level(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; +} + +// 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; + if (bgzf_compress(fp->compressed_block, &comp_size, fp->uncompressed_block, block_length, fp->compress_level) != 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<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 ) + { + 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; + 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 ) + { + (void)inflateEnd(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 << 16; + 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; + 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 new file mode 100644 index 0000000..bcd81f8 --- /dev/null +++ b/htslib/bgzip.c @@ -0,0 +1,283 @@ +/* The MIT License + + Copyright (c) 2008 Broad Institute / Massachusetts Institute of Technology + + 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 +#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); + if (f_dst < 0) return 1; + free(name); + } + } + 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 new file mode 100644 index 0000000..6d32bf5 --- /dev/null +++ b/htslib/config.h @@ -0,0 +1,3 @@ +#define _USE_KNETFILE +#define BGZF_CACHE +#define BGZF_MT diff --git a/htslib/cram/cram.h b/htslib/cram/cram.h new file mode 100644 index 0000000..0b8b291 --- /dev/null +++ b/htslib/cram/cram.h @@ -0,0 +1,66 @@ +/* +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 scram_*() API for programs that wish to + * be file format agnostic. + * + * 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 + +#ifdef SAMTOOLS +# include "cram/cram_samtools.h" +#endif + +#ifndef _CRAM_H_ +#define _CRAM_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 new file mode 100644 index 0000000..3c3d13f --- /dev/null +++ b/htslib/cram/cram_codecs.c @@ -0,0 +1,1764 @@ +/* +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 + } + } + + + + 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 -1; + } else { + for (i = 0; i < slice->hdr->num_blocks; i++) { + b = slice->block[i]; + if (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 -1; + } else { + for (i = 0; i < slice->hdr->num_blocks; i++) { + b = slice->block[i]; + if (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; +} + +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 -1; + } else { + for (i = 0; i < slice->hdr->num_blocks; i++) { + b = slice->block[i]; + if (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(cram_slice *slice, cram_codec *c, + cram_block *out, char *in, int in_size) { + uint32_t *i32 = (uint32_t *)in; + + itf8_put_blk(out, *i32); + 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; + c->encode = cram_external_encode; + 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] = 0; + } + + 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] = 0; + } + + 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, + cram_block *out, char *in, int in_size) { + int *syms = (int *)in; + int i, r = 0; + + for (i = 0; i < in_size; i++) + r |= store_bits_MSB(out, syms[i] + c->e_beta.offset, c->e_beta.nbits); + + return r; +} + +int cram_beta_encode_char(cram_slice *slice, cram_codec *c, + cram_block *out, 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(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, + cram_block *out, char *in, int in_size) { + return 0; +} + +int cram_huffman_encode_char(cram_slice *slice, cram_codec *c, + cram_block *out, 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(out, code, len); + } while (--in_size); + + return r; +} + +int cram_huffman_encode_int0(cram_slice *slice, cram_codec *c, + cram_block *out, char *in, int in_size) { + return 0; +} + +int cram_huffman_encode_int(cram_slice *slice, cram_codec *c, + cram_block *out, 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(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, + cram_block *out, char *in, int in_size) { + return -1; // not imp. +} + +void cram_byte_array_len_encode_free(cram_codec *c) { + if (!c) + return; + free(c); +} + +int cram_byte_array_len_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, c->e_byte_array_len.len_len + + c->e_byte_array_len.val_len); + BLOCK_APPEND(b, c->e_byte_array_len.len_dat, c->e_byte_array_len.len_len); + len += c->e_byte_array_len.len_len; + + BLOCK_APPEND(b, c->e_byte_array_len.val_dat, c->e_byte_array_len.val_len); + len += c->e_byte_array_len.val_len; + + return len; +} + +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_len = e->len_len; + c->e_byte_array_len.len_dat = e->len_dat; + c->e_byte_array_len.val_len = e->val_len; + c->e_byte_array_len.val_dat = e->val_dat; + + return c; +} + +/* + * --------------------------------------------------------------------------- + * BYTE_ARRAY_STOP + */ +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 -1; + } else { + for (i = 0; i < slice->hdr->num_blocks; i++) { + b = slice->block[i]; + if (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) { + int space = 256; + cram_block *b = NULL; + cram_block *out = (cram_block *)out_; + char *cp, ch, *out_cp, *cp_end, *out_end; + char stop; + + if (slice->block_by_id) { + if (!(b = slice->block_by_id[c->byte_array_stop.content_id])) + return -1; + } else { + int i; + for (i = 0; i < slice->hdr->num_blocks; i++) { + b = slice->block[i]; + if (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; + BLOCK_GROW(out, space); + out_cp = (char *)BLOCK_END(out); + out_end = out_cp + space; + + stop = c->byte_array_stop.stop; + while ((ch = *cp) != stop) { + if (cp++ == cp_end) + return -1; + *out_cp++ = ch; + + if (out_cp == out_end) { + BLOCK_SIZE(out) = out_cp - (char *)BLOCK_DATA(out); + space *= 2; + BLOCK_GROW(out, space); + out_cp = (char *)BLOCK_END(out); + out_end = out_cp + space; + } + } + BLOCK_SIZE(out) = out_cp - (char *)BLOCK_DATA(out); + + *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 (version == CRAM_1_VERS) { + 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, + cram_block *out, char *in, int in_size) { + return -1; // not imp. +} + +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 (version == CRAM_1_VERS) { + 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]) { + return encode_init[codec](st, option, dat, version); + } else { + fprintf(stderr, "Unimplemented codec of type %s\n", codec2str(codec)); + abort(); + } +} diff --git a/htslib/cram/cram_codecs.h b/htslib/cram/cram_codecs.h new file mode 100644 index 0000000..7037814 --- /dev/null +++ b/htslib/cram/cram_codecs.h @@ -0,0 +1,155 @@ +/* +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 { + uint32_t len_len; + unsigned char *len_dat; + uint32_t val_len; + unsigned char *val_dat; +} cram_byte_array_len_encoder; + +/* + * A generic codec structure. + */ +typedef struct cram_codec { + enum cram_encoding codec; + 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, + cram_block *out, 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+=(b->bit==0)*8-1) + +#ifdef __cplusplus +} +#endif + +#endif /* _CRAM_ENCODINGS_H_ */ diff --git a/htslib/cram/cram_decode.c b/htslib/cram/cram_decode.c new file mode 100644 index 0000000..83fdaee --- /dev/null +++ b/htslib/cram/cram_decode.c @@ -0,0 +1,2138 @@ +/* +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. +*/ + +/* + * - 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)) + return NULL; + } + + cp = (char *)b->data; + + if (fd->version == CRAM_1_VERS) { + 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->BF_codec = 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->CF_codec = 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->RI_codec = 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->RL_codec = 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->AP_codec = 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->RG_codec = 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->MF_codec = 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->NS_codec = 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->NP_codec = 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->TS_codec = 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->NF_codec = 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->TC_codec = 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->TN_codec = 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->FN_codec = 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->FC_codec = 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->FP_codec = 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->BS_codec = 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->IN_codec = 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->SC_codec = 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->DL_codec = 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->BA_codec = cram_decoder_init(encoding, cp, size, E_BYTE, + fd->version))) { + cram_free_compression_header(hdr); + return NULL; + } + } else if (key[0] == 'R' && key[1] == 'S') { + if (!(hdr->RS_codec = 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->PD_codec = 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->HC_codec = 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->MQ_codec = 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->RN_codec = 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->QS_codec = cram_decoder_init(encoding, cp, size, E_BYTE, + fd->version))) { + cram_free_compression_header(hdr); + return NULL; + } + if (!(hdr->Qs_codec = 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->TL_codec = 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; +} + +/* ---------------------------------------------------------------------- + * 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); + if (fd->version != CRAM_1_VERS) + cp += itf8_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 (fd->version != CRAM_1_VERS) { + 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; + char buf[20]; + + if (!(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 (!c->comp_hdr->FN_codec) return -1; + r |= c->comp_hdr->FN_codec->decode(s,c->comp_hdr->FN_codec, blk, + (char *)&fn, &out_sz); + + ref_pos--; // count from 0 + cr->cigar = ncigar; + for (f = 0; f < fn; f++) { + int32_t pos; + 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 (!c->comp_hdr->FC_codec) return -1; + r |= c->comp_hdr->FC_codec->decode(s, c->comp_hdr->FC_codec, blk, + &op, &out_sz); + if (!c->comp_hdr->FP_codec) return -1; + r |= c->comp_hdr->FP_codec->decode(s, c->comp_hdr->FP_codec, 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; + + 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 (fd->version == CRAM_1_VERS) { + r |= c->comp_hdr->IN_codec + ? c->comp_hdr->IN_codec->decode(s, c->comp_hdr->IN_codec, + blk, &seq[pos-1], &out_sz2) + : (seq[pos-1] = 'N', out_sz2 = 1, 0); + } else { + r |= c->comp_hdr->SC_codec + ? c->comp_hdr->SC_codec->decode(s, c->comp_hdr->SC_codec, + 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 (!c->comp_hdr->BS_codec) return -1; + r |= c->comp_hdr->BS_codec->decode(s, c->comp_hdr->BS_codec, 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 (!c->comp_hdr->BS_codec) return -1; + r |= c->comp_hdr->BS_codec->decode(s, c->comp_hdr->BS_codec, 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_APPENDF_2(s->aux_blk, buf, "%d%c", + md_dist, 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 (!c->comp_hdr->DL_codec) return -1; + r |= c->comp_hdr->DL_codec->decode(s, c->comp_hdr->DL_codec, blk, + (char *)&i32, &out_sz); + if (decode_md) { + BLOCK_APPENDF_1(s->aux_blk, buf, "%d^", md_dist); + 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 (!c->comp_hdr->IN_codec) return -1; + r |= c->comp_hdr->IN_codec->decode(s, c->comp_hdr->IN_codec, 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 (!c->comp_hdr->BA_codec) return -1; + r |= c->comp_hdr->BA_codec->decode(s, c->comp_hdr->BA_codec, blk, + (char *)&seq[pos-1], &out_sz); + cig_op = BAM_CINS; + cig_len++; + seq_pos++; + nm++; + //printf(" %d: BA = %c (ret %d)\n", f, seq[pos-1], r); + 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 (!c->comp_hdr->BA_codec) return -1; + r |= c->comp_hdr->BA_codec->decode(s, c->comp_hdr->BA_codec, blk, + (char *)&seq[pos-1], &out_sz); + if (!c->comp_hdr->QS_codec) return -1; + r |= c->comp_hdr->QS_codec->decode(s, c->comp_hdr->QS_codec, 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 (!c->comp_hdr->QS_codec) return -1; + r |= c->comp_hdr->QS_codec->decode(s, c->comp_hdr->QS_codec, 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 (!c->comp_hdr->HC_codec) return -1; + r |= c->comp_hdr->HC_codec->decode(s, c->comp_hdr->HC_codec, 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 (!c->comp_hdr->PD_codec) return -1; + r |= c->comp_hdr->PD_codec->decode(s, c->comp_hdr->PD_codec, 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 (!c->comp_hdr->RS_codec) return -1; + r |= c->comp_hdr->RS_codec->decode(s, c->comp_hdr->RS_codec, blk, + (char *)&i32, &out_sz); + cig_op = BAM_CREF_SKIP; + cig_len += i32; + ref_pos += i32; + nm += i32; + break; + } + + default: + abort(); + } + } + + /* An implement match op for any unaccounted for bases */ + if (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; + } + if (decode_md) { + BLOCK_APPENDF_1(s->aux_blk, buf, "%d", 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 (!c->comp_hdr->MQ_codec) return -1; + r |= c->comp_hdr->MQ_codec->decode(s, c->comp_hdr->MQ_codec, blk, + (char *)&cr->mqual, &out_sz); + + if (cf & CRAM_FLAG_PRESERVE_QUAL_SCORES) { + int32_t out_sz2 = cr->len; + + if (!c->comp_hdr->Qs_codec) return -1; + r |= c->comp_hdr->Qs_codec->decode(s, c->comp_hdr->Qs_codec, 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->TC_codec) return -1; + r |= c->comp_hdr->TC_codec->decode(s, c->comp_hdr->TC_codec, 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->TN_codec) return -1; + r |= c->comp_hdr->TN_codec->decode(s, c->comp_hdr->TN_codec, + 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; + unsigned char *TN; + + if (!c->comp_hdr->TL_codec) return -1; + r |= c->comp_hdr->TL_codec->decode(s, c->comp_hdr->TL_codec, 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); + + 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 rec; + + 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; + + do { + if (aleft > s->crecs[id2].apos) + aleft = s->crecs[id2].apos; + 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 (s->crecs[id2].aend != aright) + s->crecs[id2].tlen = tlen; + else if (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 (s->crecs[id2].aend != aright) + s->crecs[id2].tlen = tlen; + else if (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, *qual; + int unknown_rg = -1; + int id, embed_ref; + char **refs = NULL; + + for (id = 0; id < s->hdr->num_blocks; id++) { + if (cram_uncompress_block(s->block[id])) + return -1; + } + + 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; + 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; + + 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 (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 (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 (fd->version != CRAM_1_VERS && 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 (!c->comp_hdr->BF_codec) return -1; + r |= c->comp_hdr->BF_codec->decode(s, c->comp_hdr->BF_codec, 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; + + if (fd->version == CRAM_1_VERS) { + /* CF is byte in 1.0, int32 in 2.0 */ + if (!c->comp_hdr->CF_codec) return -1; + r |= c->comp_hdr->CF_codec->decode(s, c->comp_hdr->CF_codec, blk, + (char *)&cf, &out_sz); + cr->cram_flags = cf; + } else { + if (!c->comp_hdr->CF_codec) return -1; + r |= c->comp_hdr->CF_codec->decode(s, c->comp_hdr->CF_codec, blk, + (char *)&cr->cram_flags, + &out_sz); + cf = cr->cram_flags; + } + + if (fd->version != CRAM_1_VERS && ref_id == -2) { + if (!c->comp_hdr->RI_codec) return -1; + r |= c->comp_hdr->RI_codec->decode(s, c->comp_hdr->RI_codec, blk, + (char *)&cr->ref_id, &out_sz); + if (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 = ref_id; // Forced constant in CRAM 1.0 + } + + + if (!c->comp_hdr->RL_codec) return -1; + r |= c->comp_hdr->RL_codec->decode(s, c->comp_hdr->RL_codec, blk, + (char *)&cr->len, &out_sz); + + if (!c->comp_hdr->AP_codec) return -1; + r |= c->comp_hdr->AP_codec->decode(s, c->comp_hdr->AP_codec, blk, + (char *)&cr->apos, &out_sz); + if (c->comp_hdr->AP_delta) + cr->apos += s->last_apos; + s->last_apos= cr->apos; + + if (!c->comp_hdr->RG_codec) return -1; + r |= c->comp_hdr->RG_codec->decode(s, c->comp_hdr->RG_codec, blk, + (char *)&cr->rg, &out_sz); + if (cr->rg == unknown_rg) + 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 (!c->comp_hdr->RN_codec) return -1; + r |= c->comp_hdr->RN_codec->decode(s, c->comp_hdr->RN_codec, blk, + (char *)s->name_blk, &out_sz2); + cr->name_len = out_sz2; + } + + cr->mate_line = -1; + cr->mate_ref_id = -1; + if (cf & CRAM_FLAG_DETACHED) { + if (fd->version == CRAM_1_VERS) { + /* MF is byte in 1.0, int32 in 2.0 */ + unsigned char mf; + if (!c->comp_hdr->MF_codec) return -1; + r |= c->comp_hdr->MF_codec->decode(s, c->comp_hdr->MF_codec, + blk, (char *)&mf, &out_sz); + cr->mate_flags = mf; + } else { + if (!c->comp_hdr->MF_codec) return -1; + r |= c->comp_hdr->MF_codec->decode(s, c->comp_hdr->MF_codec, + blk, + (char *)&cr->mate_flags, + &out_sz); + } + + 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 (!c->comp_hdr->RN_codec) return -1; + r |= c->comp_hdr->RN_codec->decode(s, c->comp_hdr->RN_codec, + blk, (char *)s->name_blk, + &out_sz2); + cr->name_len = out_sz2; + } + + if (!c->comp_hdr->NS_codec) return -1; + r |= c->comp_hdr->NS_codec->decode(s, c->comp_hdr->NS_codec, 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 (!c->comp_hdr->NP_codec) return -1; + r |= c->comp_hdr->NP_codec->decode(s, c->comp_hdr->NP_codec, blk, + (char *)&cr->mate_pos, &out_sz); + if (!c->comp_hdr->TS_codec) return -1; + r |= c->comp_hdr->TS_codec->decode(s, c->comp_hdr->TS_codec, blk, + (char *)&cr->tlen, &out_sz); + } else if (cf & CRAM_FLAG_MATE_DOWNSTREAM) { + if (!c->comp_hdr->NF_codec) return -1; + r |= c->comp_hdr->NF_codec->decode(s, c->comp_hdr->NF_codec, 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 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 (fd->version == CRAM_1_VERS) + 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 */ + 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 */ + r |= cram_decode_seq(fd, c, s, blk, cr, bfd, cf, seq, qual); + } else { + int out_sz2 = cr->len; + + //puts("Unmapped"); + cr->cigar = 0; + cr->ncigar = 0; + cr->aend = cr->apos; + cr->mqual = 0; + + if (!c->comp_hdr->BA_codec) return -1; + r |= c->comp_hdr->BA_codec->decode(s, c->comp_hdr->BA_codec, blk, + (char *)seq, &out_sz2); + + if (cf & CRAM_FLAG_PRESERVE_QUAL_SCORES) { + out_sz2 = cr->len; + if (!c->comp_hdr->Qs_codec) return -1; + r |= c->comp_hdr->Qs_codec->decode(s, c->comp_hdr->Qs_codec, + blk, qual, &out_sz2); + } else { + 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); + + 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_len(fd->rqueue) ? 0 : 1; + + 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; + + /* Assign names if not explicitly set */ + if (cr->name_len) { + name = (char *)BLOCK_DATA(s->name_blk) + cr->name; + name_len = cr->name_len; + } else { + // FIXME: add prefix, container number, slice number, etc + name = name_a; + + if (cr->mate_line >= 0 && cr->mate_line < rec) + name_len = sprintf(name_a, "%s:%"PRId64":%d", + fd->prefix, s->id, cr->mate_line); + else + name_len = sprintf(name_a, "%s:%"PRId64":%d", + fd->prefix, s->id, rec); + } + + /* 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 (!BLOCK_DATA(s->seqs_blk)) + return -1; + if (!BLOCK_DATA(s->qual_blk)) + return -1; + + 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, + (char *)BLOCK_DATA(s->seqs_blk) + cr->seq, + (char *)BLOCK_DATA(s->qual_blk) + cr->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; + } + +#ifndef SAMTOOLS + bam_set_blk_size(*bam, bam_blk_size(*bam) + (aux - aux_orig)); +#endif + + *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; + + fd->eof = 0; + + 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)) + cram_free_slice(s); + + 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) { + if (c->ref_seq_id != fd->range.refid) { + fd->eof = 1; + return NULL; + } + + if (c->ref_seq_start > fd->range.end) { + fd->eof = 1; + return NULL; + } + + 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; + + if (t_pool_results_queue_sz(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; + + 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 new file mode 100644 index 0000000..64b188e --- /dev/null +++ b/htslib/cram/cram_decode.h @@ -0,0 +1,112 @@ +/* +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 new file mode 100644 index 0000000..94c2ceb --- /dev/null +++ b/htslib/cram/cram_encode.c @@ -0,0 +1,2630 @@ +/* +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" + +#ifdef SAMTOOLS +# define bam_copy(dst, src) bam_copy1(*(dst), (src)) +#else +void bam_copy(bam_seq_t **bt, bam_seq_t *bf) { + size_t a; + + if (bf->alloc > (*bt)->alloc) { + a = ((int)((bf->alloc+15)/16))*16; + *bt = realloc(*bt, a); + memcpy(*bt, bf, bf->alloc); + } else { + a = (*bt)->alloc; + memcpy(*bt, bf, bf->alloc); + } + + (*bt)->alloc = a; +} +#endif + +#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 (fd->version == CRAM_1_VERS) { + 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 (fd->version == CRAM_1_VERS) { + 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->BF_codec) { + if (-1 == h->BF_codec->store(h->BF_codec, map, "BF", fd->version)) + return NULL; + mc++; + } + if (h->CF_codec) { + if (-1 == h->CF_codec->store(h->CF_codec, map, "CF", fd->version)) + return NULL; + mc++; + } + if (h->RL_codec) { + if (-1 == h->RL_codec->store(h->RL_codec, map, "RL", fd->version)) + return NULL; + mc++; + } + if (h->AP_codec) { + if (-1 == h->AP_codec->store(h->AP_codec, map, "AP", fd->version)) + return NULL; + mc++; + } + if (h->RG_codec) { + if (-1 == h->RG_codec->store(h->RG_codec, map, "RG", fd->version)) + return NULL; + mc++; + } + if (h->MF_codec) { + if (-1 == h->MF_codec->store(h->MF_codec, map, "MF", fd->version)) + return NULL; + mc++; + } + if (h->NS_codec) { + if (-1 == h->NS_codec->store(h->NS_codec, map, "NS", fd->version)) + return NULL; + mc++; + } + if (h->NP_codec) { + if (-1 == h->NP_codec->store(h->NP_codec, map, "NP", fd->version)) + return NULL; + mc++; + } + if (h->TS_codec) { + if (-1 == h->TS_codec->store(h->TS_codec, map, "TS", fd->version)) + return NULL; + mc++; + } + if (h->NF_codec) { + if (-1 == h->NF_codec->store(h->NF_codec, map, "NF", fd->version)) + return NULL; + mc++; + } + if (h->TC_codec) { + if (-1 == h->TC_codec->store(h->TC_codec, map, "TC", fd->version)) + return NULL; + mc++; + } + if (h->TN_codec) { + if (-1 == h->TN_codec->store(h->TN_codec, map, "TN", fd->version)) + return NULL; + mc++; + } + if (h->TL_codec) { + if (-1 == h->TL_codec->store(h->TL_codec, map, "TL", fd->version)) + return NULL; + mc++; + } + if (h->FN_codec) { + if (-1 == h->FN_codec->store(h->FN_codec, map, "FN", fd->version)) + return NULL; + mc++; + } + if (h->FC_codec) { + if (-1 == h->FC_codec->store(h->FC_codec, map, "FC", fd->version)) + return NULL; + mc++; + } + if (h->FP_codec) { + if (-1 == h->FP_codec->store(h->FP_codec, map, "FP", fd->version)) + return NULL; + mc++; + } + if (h->BS_codec) { + if (-1 == h->BS_codec->store(h->BS_codec, map, "BS", fd->version)) + return NULL; + mc++; + } + if (h->IN_codec) { + if (-1 == h->IN_codec->store(h->IN_codec, map, "IN", fd->version)) + return NULL; + mc++; + } + if (h->DL_codec) { + if (-1 == h->DL_codec->store(h->DL_codec, map, "DL", fd->version)) + return NULL; + mc++; + } + if (h->BA_codec) { + if (-1 == h->BA_codec->store(h->BA_codec, map, "BA", fd->version)) + return NULL; + mc++; + } + if (h->MQ_codec) { + if (-1 == h->MQ_codec->store(h->MQ_codec, map, "MQ", fd->version)) + return NULL; + mc++; + } + if (h->RN_codec) { + if (-1 == h->RN_codec->store(h->RN_codec, map, "RN", fd->version)) + return NULL; + mc++; + } + if (h->QS_codec) { + if (-1 == h->QS_codec->store(h->QS_codec, map, "QS", fd->version)) + return NULL; + mc++; + } + if (h->Qs_codec) { + if (-1 == h->Qs_codec->store(h->Qs_codec, map, "Qs", fd->version)) + return NULL; + mc++; + } + if (h->RI_codec) { + if (-1 == h->RI_codec->store(h->RI_codec, map, "RI", fd->version)) + return NULL; + mc++; + } + if (fd->version != CRAM_1_VERS) { + if (h->SC_codec) { + if (-1 == h->SC_codec->store(h->SC_codec, map, "SC", fd->version)) + return NULL; + mc++; + } + if (h->RS_codec) { + if (-1 == h->RS_codec->store(h->RS_codec, map, "RS", fd->version)) + return NULL; + mc++; + } + if (h->PD_codec) { + if (-1 == h->PD_codec->store(h->PD_codec, map, "PD", fd->version)) + return NULL; + mc++; + } + if (h->HC_codec) { + if (-1 == h->HC_codec->store(h->HC_codec, map, "HC", fd->version)) + return NULL; + mc++; + } + } + if (h->TM_codec) { + if (-1 == h->TM_codec->store(h->TM_codec, map, "TM", fd->version)) + return NULL; + mc++; + } + if (h->TV_codec) { + if (-1 == h->TV_codec->store(h->TV_codec, 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; + + for (k = kh_begin(c->tags_used); k != kh_end(c->tags_used); k++) { + 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(kh_key(c->tags_used, k) & 0xff) { + case 'Z': case 'H': + // string as byte_array_stop + if (fd->version == CRAM_1_VERS) { + BLOCK_APPEND(map, + "\005" // BYTE_ARRAY_STOP + "\005" // len + "\t" // stop-byte is also SAM separator + CRAM_EXT_TAG_S "\000\000\000", + 7); + } else { + BLOCK_APPEND(map, + "\005" // BYTE_ARRAY_STOP + "\002" // len + "\t" // stop-byte is also SAM separator + CRAM_EXT_TAG_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 + CRAM_EXT_TAG_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 + CRAM_EXT_TAG_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 + CRAM_EXT_TAG_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. + BLOCK_APPEND(map, + "\004" // BYTE_ARRAY_LEN + "\006" // length + "\001" // EXTERNAL (len) + "\001" // external-len + "\004" // content-id + "\001" // EXTERNAL (val) + "\001" // external-len + CRAM_EXT_TAG_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 (fd->version != CRAM_1_VERS) + cp += itf8_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 (fd->version != CRAM_1_VERS) { + 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 slice from a container + * FIXME: break into smaller components. + * + * 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; + cram_block *core; + int nblk, embed_ref; + + 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 5 => BA, ifdef BA_external + * ID 6 => tag IDs (TN), ifdef TN_external and CRAM_1_VERS + * ID 7 => TD tag dictionary, if !CRAM_1_VERS + */ + + /* Create cram slice header, num_blocks etc */ + s->hdr->ref_base_id = embed_ref ? CRAM_EXT_REF : -1; + s->hdr->record_counter = c->num_records + c->record_counter; + c->num_records += s->hdr->num_records; + nblk = (fd->version == CRAM_1_VERS) ? 5 : 6; +#ifdef BA_external + nblk++; +#endif +#ifdef TN_external + if (fd->version == CRAM_1_VERS) { + nblk++; + } +#endif + if (embed_ref) + nblk++; + + s->hdr->num_content_ids = nblk; + s->hdr->num_blocks = s->hdr->num_content_ids+1; + s->block = calloc(s->hdr->num_blocks, sizeof(s->block[0])); + s->hdr->block_content_ids = malloc(s->hdr->num_content_ids * + sizeof(int32_t)); + if (!s->block || !s->hdr->block_content_ids) + return -1; + s->hdr->block_content_ids[0] = 0; // core + s->hdr->block_content_ids[1] = CRAM_EXT_QUAL; + s->hdr->block_content_ids[2] = CRAM_EXT_NAME; + s->hdr->block_content_ids[3] = CRAM_EXT_TS_NP; + s->hdr->block_content_ids[4] = CRAM_EXT_TAG; + s->hdr->block_content_ids[5] = CRAM_EXT_SC; + nblk = (fd->version == CRAM_1_VERS) ? 5 : 6; +#ifdef BA_external + s->hdr->block_content_ids[(s->ba_id = ++nblk)-1] = CRAM_EXT_BA; +#endif +#ifdef TN_external + if (fd->version == CRAM_1_VERS) { + s->hdr->block_content_ids[(s->tn_id = ++nblk)-1] = CRAM_EXT_TN; + } +#endif + if (embed_ref) + s->hdr->block_content_ids[(s->ref_id = ++nblk)-1] = CRAM_EXT_REF; + + if (!(s->block[0] = cram_new_block(CORE, 0))) return -1; + if (!(s->block[1] = cram_new_block(EXTERNAL, CRAM_EXT_IN))) return -1; + if (!(s->block[2] = cram_new_block(EXTERNAL, CRAM_EXT_QUAL))) return -1; + if (!(s->block[3] = cram_new_block(EXTERNAL, CRAM_EXT_NAME))) return -1; + if (!(s->block[4] = cram_new_block(EXTERNAL, CRAM_EXT_TS_NP))) return -1; + if (!(s->block[5] = cram_new_block(EXTERNAL, CRAM_EXT_TAG))) return -1; + if (fd->version != CRAM_1_VERS) { + if (!(s->block[6] = cram_new_block(EXTERNAL, CRAM_EXT_SC))) + return -1; + } +#ifdef BA_external + if (!(s->block[s->ba_id] = cram_new_block(EXTERNAL, CRAM_EXT_BA))) + return -1; +#endif +#ifdef TN_external + if (fd->version == CRAM_1_VERS) { + if (!(s->block[s->tn_id] = cram_new_block(EXTERNAL, CRAM_EXT_TN))) + return -1; + } +#endif + if (embed_ref) { + if (!(s->block[s->ref_id] = cram_new_block(EXTERNAL, CRAM_EXT_REF))) + return -1; + BLOCK_APPEND(s->block[s->ref_id], + c->ref + c->first_base - c->ref_start, + c->last_base - c->first_base + 1); + } + + core = s->block[0]; + + /* Create a formal method for stealing from dstrings! */ + s->block[4]->data = calloc(10, s->hdr->num_records); // NP TS + if (!s->block[4]->data) + return -1; + s->block[4]->comp_size = s->block[4]->uncomp_size = 0; + +#ifdef BA_external + s->block[s->ba_id]->data = calloc(1, s->BA_len); + if (!s->block[s->ba_id]->data) + return -1; + s->block[s->ba_id]->comp_size = s->block[s->ba_id]->uncomp_size = 0; +#endif + + /* Generate core block */ + if (!(s->hdr_block = cram_encode_slice_header(fd, s))) + return -1; + + last_pos = s->hdr->ref_seq_start; + for (rec = 0; rec < s->hdr->num_records; rec++) { + cram_record *cr = &s->crecs[rec]; + 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->BF_codec->encode(s, h->BF_codec, core, (char *)&i32, 1); + + i32 = cr->cram_flags; + r |= h->CF_codec->encode(s, h->CF_codec, core, + (char *)&i32, 1); + + if (fd->version != CRAM_1_VERS) + r |= h->RI_codec->encode(s, h->RI_codec, core, + (char *)&cr->ref_id, 1); + + r |= h->RL_codec->encode(s, h->RL_codec, core, + (char *)&cr->len, 1); + + if (c->pos_sorted) { + i32 = cr->apos - last_pos; + r |= h->AP_codec->encode(s, h->AP_codec, core, (char *)&i32, 1); + last_pos = cr->apos; + } else { + i32 = cr->apos; + r |= h->AP_codec->encode(s, h->AP_codec, core, (char *)&i32, 1); + } + + r |= h->RG_codec->encode(s, h->RG_codec, core, + (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->MF_codec->encode(s, h->MF_codec, core, (char *)&i32, 1); + + if (!c->comp_hdr->read_names_included) { + // RN codec: Already stored in block[3]. + } + +#ifndef NS_external + r |= h->NS_codec->encode(s, h->NS_codec, core, + (char *)&cr->mate_ref_id, 1); +#else + s->block[4]->uncomp_size += + itf8_put(&s->block[4]->data[s->block[4]->uncomp_size], + cr->mate_ref_id); +#endif + +#ifndef TS_external + r |= h->NP_codec->encode(s, h->NP_codec, core, + (char *)&cr->mate_pos, 1); + + r |= h->TS_codec->encode(s, h->TS_codec, core, + (char *)&cr->tlen, 1); +#else + s->block[4]->uncomp_size += + itf8_put((char *)&s->block[4]->data[s->block[4]->uncomp_size], + cr->mate_pos); + s->block[4]->uncomp_size += + itf8_put((char *)&s->block[4]->data[s->block[4]->uncomp_size], + cr->tlen); +#endif + } else if (cr->cram_flags & CRAM_FLAG_MATE_DOWNSTREAM) { + r |= h->NF_codec->encode(s, h->NF_codec, core, + (char *)&cr->mate_line, 1); + } + + /* Aux tags */ + if (fd->version == CRAM_1_VERS) { + uc = cr->ntags; + r |= h->TC_codec->encode(s, h->TC_codec, core, (char *)&uc, 1); +#ifndef TN_external + { + int j; + for (j = 0; j < cr->ntags; j++) { + uint32_t i32 = s->TN[cr->TN_idx + j]; // id + r |= h->TN_codec->encode(s, h->TN_codec, core, + (char *)&i32, 1); + } + } +#endif + } else { + r |= h->TL_codec->encode(s, h->TL_codec, core, (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->FN_codec->encode(s, h->FN_codec, core, + (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->FC_codec->encode(s, h->FC_codec, core, + (char *)&uc, 1); + i32 = f->X.pos - prev_pos; + r |= h->FP_codec->encode(s, h->FP_codec, core, + (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->BS_codec->encode(s, h->BS_codec, core, + (char *)&uc, 1); + break; + case 'S': + //seq = DSTRING_STR(s->seqs_ds) + f->S.seq_idx; + //r |= h->SC_codec->encode(s, h->SC_codec, core, + // seq, f->S.len); + break; + case 'I': + //seq = DSTRING_STR(s->seqs_ds) + f->S.seq_idx; + //r |= h->IN_codec->encode(s, h->IN_codec, core, + // seq, f->S.len); + break; + case 'i': + uc = f->i.base; +#ifdef BA_external + s->block[s->ba_id]->data[s->block[s->ba_id]->uncomp_size++] = uc; +#else + r |= h->BA_codec->encode(s, h->BA_codec, core, + (char *)&uc, 1); +#endif + //seq = DSTRING_STR(s->seqs_ds) + f->S.seq_idx; + //r |= h->IN_codec->encode(s, h->IN_codec, core, + // seq, 1); + break; + case 'D': + i32 = f->D.len; + r |= h->DL_codec->encode(s, h->DL_codec, core, + (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; +#ifdef BA_external + s->block[s->ba_id]->data[s->block[s->ba_id]->uncomp_size++] = uc; +#else + r |= h->BA_codec->encode(s, h->BA_codec, core, + (char *)&uc, 1); +#endif + +// Already added +// uc = f->B.qual; +// r |= h->QS_codec->encode(s, h->QS_codec, core, +// (char *)&uc, 1); + break; + + case 'Q': +// Already added +// uc = f->B.qual; +// r |= h->QS_codec->encode(s, h->QS_codec, core, +// (char *)&uc, 1); + break; + + case 'N': + i32 = f->N.len; + r |= h->RS_codec->encode(s, h->RS_codec, core, + (char *)&i32, 1); + break; + + case 'P': + i32 = f->P.len; + r |= h->PD_codec->encode(s, h->PD_codec, core, + (char *)&i32, 1); + break; + + case 'H': + i32 = f->H.len; + r |= h->HC_codec->encode(s, h->HC_codec, core, + (char *)&i32, 1); + break; + + + default: + fprintf(stderr, "unhandled feature code %c\n", + f->X.code); + return -1; + } + } + + r |= h->MQ_codec->encode(s, h->MQ_codec, core, + (char *)&cr->mqual, 1); + } else { + char *seq = (char *)BLOCK_DATA(s->seqs_blk) + cr->seq; +#ifdef BA_external + memcpy(&s->block[s->ba_id]->data[s->block[s->ba_id]->uncomp_size], + seq, cr->len); + s->block[s->ba_id]->uncomp_size += cr->len; +#else + r |= h->BA_codec->encode(s, h->BA_codec, core, seq, cr->len); +#endif + } + + if (r) + 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; + + // FIXME: we should avoid creating these in the first place and just + // point them to s->base_blk et al. + cram_free_block(s->block[1]); + cram_free_block(s->block[2]); + cram_free_block(s->block[3]); + cram_free_block(s->block[5]); + if (fd->version != CRAM_1_VERS) { + cram_free_block(s->block[6]); + BLOCK_UPLEN(s->soft_blk); + s->block[6] = s->soft_blk; + s->soft_blk = NULL; + } + BLOCK_UPLEN(s->base_blk); s->block[1] = s->base_blk; s->base_blk = NULL; + BLOCK_UPLEN(s->qual_blk); s->block[2] = s->qual_blk; s->qual_blk = NULL; + BLOCK_UPLEN(s->name_blk); s->block[3] = s->name_blk; s->name_blk = NULL; + BLOCK_UPLEN(s->aux_blk); s->block[5] = s->aux_blk; s->aux_blk = NULL; + +#ifdef TN_external + if (fd->version == CRAM_1_VERS) { + cram_free_block(s->block[s->tn_id]); + BLOCK_UPLEN(s->tn_blk); s->block[s->tn_id] = s->tn_blk; + s->tn_blk = NULL; + } +#endif + + s->block[4]->comp_size = s->block[4]->uncomp_size; + +#ifdef BA_external + s->block[s->ba_id]->comp_size = s->block[s->ba_id]->uncomp_size; +#endif + + /* Compress the CORE Block too, with minimal zlib level */ + if (fd->level > 5) + cram_compress_block(fd, s->block[0], NULL, 1, Z_CRAM_STRAT, -1, -1); + +#define USE_METRICS + +#ifdef USE_METRICS +# define LEVEL2 1 +# define STRAT2 Z_RLE +#else +# define LEVEL2 -1 +# define STRAT2 -1 +#endif + + /* Compress the other blocks */ + if (cram_compress_block(fd, s->block[1], NULL, //IN (seq) + fd->level, Z_CRAM_STRAT, + -1, -1)) + return -1; + + if (fd->level == 0) { + /* Do nothing */ + } else if (fd->level == 1) { + if (cram_compress_block(fd, s->block[2], fd->m[1], //qual + 1, Z_RLE, -1, -1)) + return -1; + if (cram_compress_block(fd, s->block[5], fd->m[4], //Tags + 1, Z_RLE, -1, -1)) + return -1; + } else if (fd->level < 3) { + if (cram_compress_block(fd, s->block[2], fd->m[1], //qual + 1, Z_RLE, + 1, Z_HUFFMAN_ONLY)) + return -1; + if (cram_compress_block(fd, s->block[5], fd->m[4], //Tags + 1, Z_RLE, + 1, Z_HUFFMAN_ONLY)) + return -1; + } else { + if (cram_compress_block(fd, s->block[2], fd->m[1], //qual + fd->level, Z_CRAM_STRAT, + LEVEL2, STRAT2)) + return -1; + if (cram_compress_block(fd, s->block[5], fd->m[4], //Tags + fd->level, Z_CRAM_STRAT, + LEVEL2, STRAT2)) + return -1; + } + if (cram_compress_block(fd, s->block[3], NULL, //Name + fd->level, Z_CRAM_STRAT, + -1, -1)) + return -1; + if (cram_compress_block(fd, s->block[4], NULL, //TS, NP + fd->level, Z_CRAM_STRAT, + -1, -1)) + return -1; + if (fd->version != CRAM_1_VERS) { + if (cram_compress_block(fd, s->block[6], NULL, //SC (seq) + fd->level, Z_CRAM_STRAT, + -1, -1)) + return -1; + } +#ifdef BA_external + if (cram_compress_block(fd, s->block[s->ba_id], NULL, + fd->level, Z_CRAM_STRAT, -1, -1)) + return -1; +#endif +#ifdef TN_external + if (fd->version == CRAM_1_VERS) { + if (cram_compress_block(fd, s->block[s->tn_id], NULL, + fd->level, Z_DEFAULT_STRATEGY, -1, -1)) + return -1; + } +#endif + if (embed_ref) { + BLOCK_UPLEN(s->block[s->ref_id]); + if (cram_compress_block(fd, s->block[s->ref_id], NULL, + fd->level, Z_DEFAULT_STRATEGY, -1, -1)) + 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 (c->refs_used) { + for (i = 0; i < nref; i++) { + if (c->refs_used[i]) { + cram_get_ref(fd, i, 1, 0); + } + } + } + + /* 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_seq_id = c->ref_id; // FIXME remove one var! + } + + /* 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; + } + + /* 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->RI_stats); + multi_ref = c->RI_stats->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 (fd->version != CRAM_1_VERS) { + 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->BF_codec = cram_encoder_init(cram_stats_encoding(fd, c->BF_stats), + c->BF_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== CF ===\n"); + h->CF_codec = cram_encoder_init(cram_stats_encoding(fd, c->CF_stats), + c->CF_stats, E_INT, NULL, + fd->version); +// fprintf(stderr, "=== RN ===\n"); +// h->RN_codec = cram_encoder_init(cram_stats_encoding(fd, c->RN_stats), +// c->RN_stats, E_BYTE_ARRAY, NULL, +// fd->version); + + //fprintf(stderr, "=== AP ===\n"); + if (c->pos_sorted) { + h->AP_codec = cram_encoder_init(cram_stats_encoding(fd, c->AP_stats), + c->AP_stats, E_INT, NULL, + fd->version); + } else { + int p[2] = {0, c->max_apos}; + h->AP_codec = cram_encoder_init(E_BETA, NULL, E_INT, p, fd->version); + } + + //fprintf(stderr, "=== RG ===\n"); + h->RG_codec = cram_encoder_init(cram_stats_encoding(fd, c->RG_stats), + c->RG_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== MQ ===\n"); + h->MQ_codec = cram_encoder_init(cram_stats_encoding(fd, c->MQ_stats), + c->MQ_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== NS ===\n"); +#ifdef NS_external + h->NS_codec = cram_encoder_init(E_EXTERNAL, NULL, E_INT, + (void *)CRAM_EXT_NS, + fd->version); +#else + h->NS_codec = cram_encoder_init(cram_stats_encoding(fd, c->NS_stats), + c->NS_stats, E_INT, NULL, + fd->version); +#endif + + //fprintf(stderr, "=== MF ===\n"); + h->MF_codec = cram_encoder_init(cram_stats_encoding(fd, c->MF_stats), + c->MF_stats, E_INT, NULL, + fd->version); + +#ifdef TS_external + h->TS_codec = cram_encoder_init(E_EXTERNAL, NULL, E_INT, + (void *)CRAM_EXT_TS_NP, + fd->version); + h->NP_codec = cram_encoder_init(E_EXTERNAL, NULL, E_INT, + (void *)CRAM_EXT_TS_NP, + fd->version); +#else + //fprintf(stderr, "=== TS ===\n"); + h->TS_codec = cram_encoder_init(cram_stats_encoding(fd, c->TS_stats), + c->TS_stats, E_INT, NULL, + fd->version); + //fprintf(stderr, "=== NP ===\n"); + h->NP_codec = cram_encoder_init(cram_stats_encoding(fd, c->NP_stats), + c->NP_stats, E_INT, NULL, + fd->version); +#endif + + //fprintf(stderr, "=== NF ===\n"); + h->NF_codec = cram_encoder_init(cram_stats_encoding(fd, c->NF_stats), + c->NF_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== RL ===\n"); + h->RL_codec = cram_encoder_init(cram_stats_encoding(fd, c->RL_stats), + c->RL_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== FN ===\n"); + h->FN_codec = cram_encoder_init(cram_stats_encoding(fd, c->FN_stats), + c->FN_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== FC ===\n"); + h->FC_codec = cram_encoder_init(cram_stats_encoding(fd, c->FC_stats), + c->FC_stats, E_BYTE, NULL, + fd->version); + + //fprintf(stderr, "=== FP ===\n"); + h->FP_codec = cram_encoder_init(cram_stats_encoding(fd, c->FP_stats), + c->FP_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== DL ===\n"); + h->DL_codec = cram_encoder_init(cram_stats_encoding(fd, c->DL_stats), + c->DL_stats, E_INT, NULL, + fd->version); + +#ifdef BA_external + h->BA_codec = cram_encoder_init(E_EXTERNAL, NULL, E_BYTE, + (void *)CRAM_EXT_BA, + fd->version); +#else + //fprintf(stderr, "=== BA ===\n"); + h->BA_codec = cram_encoder_init(cram_stats_encoding(fd, c->BA_stats), + c->BA_stats, E_BYTE, NULL, + fd->version); +#endif + + //fprintf(stderr, "=== BS ===\n"); + h->BS_codec = cram_encoder_init(cram_stats_encoding(fd, c->BS_stats), + c->BS_stats, E_BYTE, NULL, + fd->version); + + if (fd->version == CRAM_1_VERS) { + h->TL_codec = NULL; + h->RI_codec = NULL; + h->RS_codec = NULL; + h->PD_codec = NULL; + h->HC_codec = NULL; + h->SC_codec = NULL; + + //fprintf(stderr, "=== TC ===\n"); + h->TC_codec = cram_encoder_init(cram_stats_encoding(fd, c->TC_stats), + c->TC_stats, E_BYTE, NULL, + fd->version); + + //fprintf(stderr, "=== TN ===\n"); +#ifdef TN_external + h->TN_codec = cram_encoder_init(E_EXTERNAL, NULL, E_INT, + (void *)CRAM_EXT_TN, + fd->version); +#else + h->TN_codec = cram_encoder_init(cram_stats_encoding(fd, c->TN_stats), + c->TN_stats, E_INT, NULL, + fd->version); +#endif + } else { + int i2[2] = {0, CRAM_EXT_SC}; + + h->TC_codec = NULL; + h->TN_codec = NULL; + + //fprintf(stderr, "=== TL ===\n"); + h->TL_codec = cram_encoder_init(cram_stats_encoding(fd, c->TL_stats), + c->TL_stats, E_INT, NULL, + fd->version); + + + //fprintf(stderr, "=== RI ===\n"); + h->RI_codec = cram_encoder_init(cram_stats_encoding(fd, c->RI_stats), + c->RI_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== RS ===\n"); + h->RS_codec = cram_encoder_init(cram_stats_encoding(fd, c->RS_stats), + c->RS_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== PD ===\n"); + h->PD_codec = cram_encoder_init(cram_stats_encoding(fd, c->PD_stats), + c->PD_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== HC ===\n"); + h->HC_codec = cram_encoder_init(cram_stats_encoding(fd, c->HC_stats), + c->HC_stats, E_INT, NULL, + fd->version); + + //fprintf(stderr, "=== SC ===\n"); + h->SC_codec = cram_encoder_init(E_BYTE_ARRAY_STOP, NULL, + E_BYTE_ARRAY, (void *)i2, + fd->version); + } + + //fprintf(stderr, "=== IN ===\n"); + { + int i2[2] = {0, CRAM_EXT_IN}; + h->IN_codec = cram_encoder_init(E_BYTE_ARRAY_STOP, NULL, + E_BYTE_ARRAY, (void *)i2, + fd->version); + } + + { + //int i2[2] = {0, 1}; + //h->QS_codec = cram_encoder_init(E_BYTE_ARRAY_STOP, NULL, (void *)i2, + // fd->version); + h->QS_codec = cram_encoder_init(E_EXTERNAL, NULL, E_BYTE, + (void *)CRAM_EXT_QUAL, + fd->version); + } + { + int i2[2] = {0, CRAM_EXT_NAME}; + h->RN_codec = 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 + + 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 + + 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 + + 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 (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->FP_stats, f->X.pos); + } else { + cram_stats_add(c->FP_stats, + f->X.pos - s->features[r->feature + r->nfeature-2].X.pos); + } + cram_stats_add(c->FC_stats, 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->BS_stats, 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->BA_stats, f.B.base); + cram_stats_add(c->QS_stats, f.B.qual); + BLOCK_APPEND_CHAR(s->qual_blk, qual); + } + 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; +#ifdef BA_external + s->BA_len++; +#else + cram_stats_add(c->BA_stats, base); +#endif + cram_stats_add(c->QS_stats, 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->QS_stats, 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->DL_stats, 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; + if (version == CRAM_1_VERS) { + f.S.seq_idx = BLOCK_SIZE(s->base_blk); + BLOCK_APPEND(s->base_blk, base, len); + BLOCK_APPEND_CHAR(s->base_blk, '\0'); + } else { + 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'); + } + 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->HC_stats, 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->RS_stats, 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->PD_stats, 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; +#ifdef BA_external + s->BA_len++; +#else + cram_stats_add(c->BA_stats, b); +#endif + } 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, *tmp_tn; + 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); + +#ifdef TN_external + BLOCK_GROW(s->tn_blk, aux_size); + tmp_tn = (char *)BLOCK_END(s->tn_blk); +#endif + + aux = (char *)bam_aux(b); +#ifndef TN_external + cr->TN_idx = s->nTN; +#endif + 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; + +#ifndef TN_external + 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->TN_stats, i32); +#else + tmp_tn += itf8_put(tmp_tn, i32); +#endif + + 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->TC_stats, 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); + +#ifdef TN_external + cr->tn = BLOCK_SIZE(s->tn_blk); + BLOCK_SIZE(s->tn_blk) = (uc *)tmp_tn - BLOCK_DATA(s->tn_blk); + assert(s->tn_blk->byte <= s->tn_blk->alloc); +#endif + + 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; +#ifdef SAMTOOLS + int aux_size = bam_get_l_aux(b); +#else + int aux_size = bam_blk_size(b) - + ((char *)bam_aux(b) - (char *)&bam_ref(b)); +#endif + 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; + + 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++; + + case 'Z': case 'H': + aux+=3; + 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; + + // 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; + } + } + + // 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->TL_stats, 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 = 0; + char *cp, *rg; + char *ref, *seq, *qual; + + // FIXME: multi-ref containers + + ref = c->ref; + + //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->TC_stats, cr->ntags); + if (fd->version == CRAM_1_VERS) + 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 (fd->version == CRAM_1_VERS) { + SAM_RG *brg = sam_hdr_find_rg(fd->header, "UNKNOWN"); + assert(brg); + } else { + cr->rg = -1; + } + cram_stats_add(c->RG_stats, cr->rg); + + + cr->ref_id = bam_ref(b); cram_stats_add(c->RI_stats, cr->ref_id); + cr->flags = bam_flag(b); + if (bam_cigar_len(b) == 0) + cr->flags |= BAM_FUNMAP; + cram_stats_add(c->BF_stats, fd->cram_flag_swap[cr->flags & 0xfff]); + + if (!fd->no_ref) + cr->cram_flags = CRAM_FLAG_PRESERVE_QUAL_SCORES; + else + cr->cram_flags = 0; + //cram_stats_add(c->CF_stats, cr->cram_flags); + + cr->len = bam_seq_len(b); cram_stats_add(c->RL_stats, cr->len); + 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->AP_stats, cr->apos - s->last_apos); + s->last_apos = cr->apos; + } + } else { + //cram_stats_add(c->AP_stats, 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->RN_stats, 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_ds 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; + for (i = 0; i < cr->len; i++) { + // FIXME: do 2 char at a time for efficiency +#ifdef SAMTOOLS + cp[i] = seq_nt16_str[bam_seqi(bam_seq(b), i)]; +#else + cp[i] = bam_nt16_rev_table[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; + for (l = 0; l < end && seq[spos]; l++, apos++, spos++) { + if (ref[apos] != seq[spos]) { + //fprintf(stderr, "Subst: %d; %c vs %c\n", + // spos, ref[apos], seq[spos]); + if (cram_add_substitution(fd, c, s, cr, spos, + seq[spos], qual[spos], + ref[apos])) + return -1; + } + } + } + + if (l < cig_len && cr->len) { + /* 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) { + 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->FN_stats, 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; +#ifdef BA_external + s->BA_len += cr->len; +#else + for (i = 0; i < cr->len; i++) + cram_stats_add(c->BA_stats, seq[i]); +#endif + } + + /* + * 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->RL_stats, 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) { + cram_stats_add(c->RL_stats, cr->len = cr->aend - cr->apos + 1); + } + } + + /* Now we know apos and aend both, update mate-pair information */ + { + int new; + khint_t k; + + //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, key, &new); + if (-1 == new) + return -1; + else if (new > 0) + kh_val(s->pair, k) = rnum; + } else { + new = 1; + } + + if (new == 0) { + cram_record *p = &s->crecs[kh_val(s->pair, k)]; + + //fprintf(stderr, "paired %"PRId64"\n", kh_val(s->pair, k)); + + // copy from p to cr + cr->mate_pos = p->apos; + cram_stats_add(c->NP_stats, cr->mate_pos); + + cr->tlen = cr->aend - p->apos; + cram_stats_add(c->TS_stats, cr->tlen); + + cr->mate_flags = + ((p->flags & BAM_FMUNMAP) == BAM_FMUNMAP) * CRAM_M_UNMAP + + ((p->flags & BAM_FMREVERSE) == BAM_FMREVERSE) * CRAM_M_REVERSE; + cram_stats_add(c->MF_stats, cr->mate_flags); + + // copy from cr to p + cram_stats_del(c->NP_stats, p->mate_pos); + p->mate_pos = cr->apos; + cram_stats_add(c->NP_stats, p->mate_pos); + + cram_stats_del(c->MF_stats, p->mate_flags); + p->mate_flags = + ((cr->flags & BAM_FMUNMAP) == BAM_FMUNMAP) * CRAM_M_UNMAP + + ((cr->flags & BAM_FMREVERSE) == BAM_FMREVERSE)* CRAM_M_REVERSE; + cram_stats_add(c->MF_stats, p->mate_flags); + + cram_stats_del(c->TS_stats, p->tlen); + p->tlen = p->apos - cr->aend; + cram_stats_add(c->TS_stats, p->tlen); + + // Clear detached from cr flags + //cram_stats_del(c->CF_stats, cr->cram_flags); + cr->cram_flags &= ~CRAM_FLAG_DETACHED; + cram_stats_add(c->CF_stats, cr->cram_flags); + + // Clear detached from p flags and set downstream + cram_stats_del(c->CF_stats, p->cram_flags); + p->cram_flags &= ~CRAM_FLAG_DETACHED; + p->cram_flags |= CRAM_FLAG_MATE_DOWNSTREAM; + cram_stats_add(c->CF_stats, p->cram_flags); + + p->mate_line = rnum - (kh_val(s->pair, k) + 1); + cram_stats_add(c->NF_stats, p->mate_line); + + kh_val(s->pair, k) = rnum; + } else { + //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->MF_stats, cr->mate_flags); + + cr->mate_pos = MAX(bam_mate_pos(b)+1, 0); + cram_stats_add(c->NP_stats, cr->mate_pos); + + cr->tlen = bam_ins_size(b); + cram_stats_add(c->TS_stats, cr->tlen); + + cr->cram_flags |= CRAM_FLAG_DETACHED; + cram_stats_add(c->CF_stats, cr->cram_flags); + } + } + + cr->mqual = bam_map_qual(b); + cram_stats_add(c->MQ_stats, cr->mqual); + + cr->mate_ref_id = bam_mate_ref(b); + cram_stats_add(c->NS_stats, cr->mate_ref_id); + + 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 (fd->version == CRAM_1_VERS || + c->curr_rec == c->max_rec || fd->multi_seq != 1 || !c->slice) + if (NULL == (c = cram_next_container(fd, b))) + 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) { + + 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_copy(&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 new file mode 100644 index 0000000..9131d6e --- /dev/null +++ b/htslib/cram/cram_encode.h @@ -0,0 +1,105 @@ +/* +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 new file mode 100644 index 0000000..d78b3e0 --- /dev/null +++ b/htslib/cram/cram_index.c @@ -0,0 +1,503 @@ +/* +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 + +/* + * 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; + } + + + // Parse it line at a time + do { + int nchars; + char *line = &kstr.s[pos]; + + /* 1.1 layout */ + if (sscanf(line, "%d\t%d\t%d\t%"PRId64"\t%d\t%d%n", + &e.refid, + &e.start, + &e.end, + &e.offset, + &e.slice, + &e.len, + &nchars) != 6) { + 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; + + pos += nchars; + 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; + } + } + + /* 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; + } + + 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 new file mode 100644 index 0000000..5e3b8f5 --- /dev/null +++ b/htslib/cram/cram_index.h @@ -0,0 +1,98 @@ +/* +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 new file mode 100644 index 0000000..8abc59d --- /dev/null +++ b/htslib/cram/cram_io.c @@ -0,0 +1,3652 @@ +/* +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 +#include +#include +#include +#include + +#include "cram/cram.h" +#include "cram/os.h" +#include "cram/md5.h" +#include "cram/open_trace_file.h" + +//#define REF_DEBUG + +#ifdef REF_DEBUG +#include +#define gettid() (int)syscall(SYS_gettid) + +#define RP(...) fprintf (stderr, __VA_ARGS__) +#else +#define RP(...) +#endif + +#ifdef SAMTOOLS +#include "htslib/hfile.h" +#define paranoid_hclose(fp) (hclose(fp)) +#else +#define hclose_abruptly(fp) (fclose(fp)) +#define hflush(fp) (fflush(fp)) +#define hgetc(fp) (getc(fp)) +#define hputc(c, fp) (putc((c), (fp))) +#define hread(fp, buffer, nbytes) (fread((buffer), 1, (nbytes), (fp))) +#define hseek(fp, offset, whence) (fseeko((fp), (offset), (whence))) +#define hwrite(fp, buffer, nbytes) (fwrite((buffer), 1, (nbytes), (fp))) +#define paranoid_hclose(fp) (paranoid_fclose(fp)) +#endif + +/* ---------------------------------------------------------------------- + * 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; +} + +/* ---------------------------------------------------------------------- + * 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; + } + } + + 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; + } + + 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: + b->uncomp_size = b->comp_size; + 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) + 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; + } + 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 + + case BM_ERROR: + default: + return -1; + } + + return 0; +} + +#ifdef HAVE_LIBBZ2 +static int cram_compress_block_bzip2(cram_fd *fd, cram_block *b, + cram_metrics *metrics, int level) { + unsigned int comp_size = b->uncomp_size*1.01 + 600; + char *comp = malloc(comp_size); + char *data = (char *)b->data; + + if (!comp) + return -1; + + if (!data) + data = ""; + + if (BZ_OK != BZ2_bzBuffToBuffCompress(comp, &comp_size, + data, b->uncomp_size, + level, 0, 30)) { + free(comp); + return -1; + } + + free(b->data); + b->data = (unsigned char *)comp; + b->method = BZIP2; + b->comp_size = comp_size; + + if (fd->verbose) + fprintf(stderr, "Compressed block ID %d from %d to %d\n", + b->content_id, b->uncomp_size, b->comp_size); + + return 0; +} +#endif + +/* + * 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 level, int strat, + int level2, int strat2) { + char *comp = NULL; + size_t comp_size = 0; + + if (level == 0) { + b->method = RAW; + b->comp_size = b->uncomp_size; + return 0; + } + + if (b->method != RAW) { + fprintf(stderr, "Attempt to compress an already compressed block.\n"); + return 0; + } + +#ifdef HAVE_LIBBZ2 + if (fd->use_bz2) + // metrics ignored for bzip2 + return cram_compress_block_bzip2(fd, b, metrics, level); +#endif + + pthread_mutex_lock(&fd->metrics_lock); + if (strat2 >= 0) + if (fd->verbose > 1) + fprintf(stderr, "metrics trial %d, next_trial %d, m1 %d, m2 %d\n", + metrics->trial, metrics->next_trial, + metrics->m1, metrics->m2); + + if (strat2 >= 0 && (metrics->trial > 0 || --metrics->next_trial <= 0)) { + char *c1, *c2; + size_t s1, s2; + + if (metrics->next_trial == 0) { + metrics->next_trial = 100; + metrics->trial = 3; + metrics->m1 = metrics->m2 = 0; + } + pthread_mutex_unlock(&fd->metrics_lock); + + c1 = zlib_mem_deflate((char *)b->data, b->uncomp_size, + &s1, level, strat); + c2 = zlib_mem_deflate((char *)b->data, b->uncomp_size, + &s2, level2, strat2); + if (!c1 || !c2) + return -1; + + //fprintf(stderr, "1: %6d 2: %6d %5.1f\n", s1, s2, 100.0*s1/s2); + + pthread_mutex_lock(&fd->metrics_lock); + if (s1 < 0.98 * s2) { // 2nd one should be faster alternative + if (fd->verbose > 1) + fprintf(stderr, "M1 wins %d vs %d\n", (int)s1, (int)s2); + comp = c1; comp_size = s1; + free(c2); + metrics->m1++; + } else { + if (fd->verbose > 1) + fprintf(stderr, "M2 wins %d vs %d\n", (int)s1, (int)s2); + comp = c2; comp_size = s2; + free(c1); + metrics->m2++; + } + metrics->trial--; + pthread_mutex_unlock(&fd->metrics_lock); + } else if (strat2 >= 0) { + int xlevel = metrics->m1 > metrics->m2 ? level : level2; + int xstrat = metrics->m1 > metrics->m2 ? strat : strat2; + pthread_mutex_unlock(&fd->metrics_lock); + comp = zlib_mem_deflate((char *)b->data, b->uncomp_size, &comp_size, + xlevel, xstrat); + } else { + pthread_mutex_unlock(&fd->metrics_lock); + comp = zlib_mem_deflate((char *)b->data, b->uncomp_size, &comp_size, + level, strat); + } + + if (!comp) + return -1; + + free(b->data); + b->data = (unsigned char *)comp; + b->method = GZIP; + b->comp_size = comp_size; + + if (fd->verbose) + fprintf(stderr, "Compressed block ID %d from %d to %d\n", + b->content_id, b->uncomp_size, b->comp_size); + + return 0; +} + +cram_metrics *cram_new_metrics(void) { + cram_metrics *m = malloc(sizeof(*m)); + if (!m) + return NULL; + m->m1 = m->m2 = 0; + m->trial = 2; + m->next_trial = 100; + 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 BM_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) + fclose(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; +} + +/* + * 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); + + 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) + fclose(r->fp); + 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 = fopen(r->fn, "r"))) { + if (is_err) + perror(fn); + 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; + } + } + } + + 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; + + 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. */ + i = r->nref; + if (r->nref < h->nref) + r->nref = h->nref; + + if (!(r->ref_id = realloc(r->ref_id, r->nref * sizeof(*r->ref_id)))) + return -1; + + for (; i < r->nref; i++) + r->ref_id[i] = NULL; + + /* Copy info from h->ref[i] over to r */ + for (i = 0; i < h->nref; i++) { + SAM_hdr_type *ty; + SAM_hdr_tag *tag; + khint_t k; + int n; + + if (r->ref_id[i] && 0 == strcmp(r->ref_id[i]->name, h->ref[i].name)) + continue; + + if (!(r->ref_id[i] = calloc(1, sizeof(ref_entry)))) + return -1; + + if (!h->ref[i].name) + return -1; + + r->ref_id[i]->name = string_dup(r->pool, h->ref[i].name); + r->ref_id[i]->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[i]->fn = string_dup(r->pool, tag->str+3); + //fprintf(stderr, "Tagging @SQ %s / %s\n", r->ref_id[i]->name, r->ref_id[i]->fn); + } + } + + k = kh_put(refs, r->h_meta, r->ref_id[i]->name, &n); + if (n <= 0) // already exists or error + return -1; + kh_val(r->h_meta, k) = r->ref_id[i]; + } + + 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) { + 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 = '/'; +} + +/* + * 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]; + 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 = "."; + + 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; + FILE *fp; + + expand_cache_path(path, local_cache, tag->str+3); + + if (0 == stat(path, &sb) && (fp = fopen(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) + fclose(fd->refs->fp); + 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) { + fclose(fd->refs->fp); + fd->refs->fp = NULL; + } + if (!(refs = refs_load_fai(fd->refs, fn, 0))) + return -1; + fd->refs = refs; + if (fd->refs->fp) { + fclose(fd->refs->fp); + 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 = -1; + } else { + 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(FILE *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 (0 != fseeko(fp, offset, SEEK_SET)) { + perror("fseeko() on reference file"); + return NULL; + } + + if (len == 0 || !(seq = malloc(len))) { + return NULL; + } + + if (len != fread(seq, 1, len, fp)) { + perror("fread() 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) + fclose(r->fp); + r->fn = e->fn; + if (!(r->fp = fopen(r->fn, "r"))) { + perror(r->fn); + 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]; + } + + + /* + * 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) + fclose(fd->refs->fp); + fd->refs->fn = r->fn; + if (!(fd->refs->fp = fopen(fd->refs->fn, "r"))) { + perror(fd->refs->fn); + 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_create())) + return -1; + if (-1 == refs_from_header(fd->refs, fd, fd->header)) + return -1; + } + + 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)); + 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; + + if (!(c->BF_stats = cram_stats_create())) goto err; + if (!(c->CF_stats = cram_stats_create())) goto err; + if (!(c->RN_stats = cram_stats_create())) goto err; + if (!(c->AP_stats = cram_stats_create())) goto err; + if (!(c->RG_stats = cram_stats_create())) goto err; + if (!(c->MQ_stats = cram_stats_create())) goto err; + if (!(c->NS_stats = cram_stats_create())) goto err; + if (!(c->NP_stats = cram_stats_create())) goto err; + if (!(c->TS_stats = cram_stats_create())) goto err; + if (!(c->MF_stats = cram_stats_create())) goto err; + if (!(c->NF_stats = cram_stats_create())) goto err; + if (!(c->RL_stats = cram_stats_create())) goto err; + if (!(c->FN_stats = cram_stats_create())) goto err; + if (!(c->FC_stats = cram_stats_create())) goto err; + if (!(c->FP_stats = cram_stats_create())) goto err; + if (!(c->DL_stats = cram_stats_create())) goto err; + if (!(c->BA_stats = cram_stats_create())) goto err; + if (!(c->QS_stats = cram_stats_create())) goto err; + if (!(c->BS_stats = cram_stats_create())) goto err; + if (!(c->TC_stats = cram_stats_create())) goto err; + if (!(c->TN_stats = cram_stats_create())) goto err; + if (!(c->TL_stats = cram_stats_create())) goto err; + if (!(c->RI_stats = cram_stats_create())) goto err; + if (!(c->RS_stats = cram_stats_create())) goto err; + if (!(c->PD_stats = cram_stats_create())) goto err; + if (!(c->HC_stats = 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) { + 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); + } + + if (c->TS_stats) cram_stats_free(c->TS_stats); + if (c->RG_stats) cram_stats_free(c->RG_stats); + if (c->FP_stats) cram_stats_free(c->FP_stats); + if (c->NS_stats) cram_stats_free(c->NS_stats); + if (c->RN_stats) cram_stats_free(c->RN_stats); + if (c->CF_stats) cram_stats_free(c->CF_stats); + if (c->TN_stats) cram_stats_free(c->TN_stats); + if (c->BA_stats) cram_stats_free(c->BA_stats); + if (c->TV_stats) cram_stats_free(c->TV_stats); + if (c->BS_stats) cram_stats_free(c->BS_stats); + if (c->FC_stats) cram_stats_free(c->FC_stats); + if (c->BF_stats) cram_stats_free(c->BF_stats); + if (c->AP_stats) cram_stats_free(c->AP_stats); + if (c->NF_stats) cram_stats_free(c->NF_stats); + if (c->MF_stats) cram_stats_free(c->MF_stats); + if (c->FN_stats) cram_stats_free(c->FN_stats); + if (c->RL_stats) cram_stats_free(c->RL_stats); + if (c->DL_stats) cram_stats_free(c->DL_stats); + if (c->TC_stats) cram_stats_free(c->TC_stats); + if (c->TL_stats) cram_stats_free(c->TL_stats); + if (c->MQ_stats) cram_stats_free(c->MQ_stats); + if (c->TM_stats) cram_stats_free(c->TM_stats); + if (c->QS_stats) cram_stats_free(c->QS_stats); + if (c->NP_stats) cram_stats_free(c->NP_stats); + if (c->RI_stats) cram_stats_free(c->RI_stats); + if (c->RS_stats) cram_stats_free(c->RS_stats); + if (c->PD_stats) cram_stats_free(c->PD_stats); + if (c->HC_stats) cram_stats_free(c->HC_stats); + + //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; + + memset(&c2, 0, sizeof(c2)); + if (fd->version == CRAM_1_VERS) { + 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) { + 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 (fd->version == CRAM_1_VERS) { + c2.record_counter = 0; + c2.num_bases = 0; + } else { + if ((s = itf8_decode(fd, &c2.record_counter)) == -1) + return NULL; + else + rd += s; + + 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; + } + } + 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 (50 + c->num_landmarks * 5 >= 1024) + buf = malloc(50 + c->num_landmarks * 5); + cp = buf; + + if (fd->version == CRAM_1_VERS) { + 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 (fd->version != CRAM_1_VERS) { + cp += itf8_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 (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); + } + } + + if (hdr->BF_codec) hdr->BF_codec->free(hdr->BF_codec); + if (hdr->CF_codec) hdr->CF_codec->free(hdr->CF_codec); + if (hdr->RL_codec) hdr->RL_codec->free(hdr->RL_codec); + if (hdr->AP_codec) hdr->AP_codec->free(hdr->AP_codec); + if (hdr->RG_codec) hdr->RG_codec->free(hdr->RG_codec); + if (hdr->MF_codec) hdr->MF_codec->free(hdr->MF_codec); + if (hdr->NS_codec) hdr->NS_codec->free(hdr->NS_codec); + if (hdr->NP_codec) hdr->NP_codec->free(hdr->NP_codec); + if (hdr->TS_codec) hdr->TS_codec->free(hdr->TS_codec); + if (hdr->NF_codec) hdr->NF_codec->free(hdr->NF_codec); + if (hdr->TC_codec) hdr->TC_codec->free(hdr->TC_codec); + if (hdr->TN_codec) hdr->TN_codec->free(hdr->TN_codec); + if (hdr->TL_codec) hdr->TL_codec->free(hdr->TL_codec); + if (hdr->FN_codec) hdr->FN_codec->free(hdr->FN_codec); + if (hdr->FC_codec) hdr->FC_codec->free(hdr->FC_codec); + if (hdr->FP_codec) hdr->FP_codec->free(hdr->FP_codec); + if (hdr->BS_codec) hdr->BS_codec->free(hdr->BS_codec); + if (hdr->IN_codec) hdr->IN_codec->free(hdr->IN_codec); + if (hdr->SC_codec) hdr->SC_codec->free(hdr->SC_codec); + if (hdr->DL_codec) hdr->DL_codec->free(hdr->DL_codec); + if (hdr->BA_codec) hdr->BA_codec->free(hdr->BA_codec); + if (hdr->MQ_codec) hdr->MQ_codec->free(hdr->MQ_codec); + if (hdr->RN_codec) hdr->RN_codec->free(hdr->RN_codec); + if (hdr->QS_codec) hdr->QS_codec->free(hdr->QS_codec); + if (hdr->Qs_codec) hdr->Qs_codec->free(hdr->Qs_codec); + if (hdr->RI_codec) hdr->RI_codec->free(hdr->RI_codec); + if (hdr->RS_codec) hdr->RS_codec->free(hdr->RS_codec); + if (hdr->PD_codec) hdr->PD_codec->free(hdr->PD_codec); + if (hdr->HC_codec) hdr->HC_codec->free(hdr->HC_codec); + + 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->base_blk) + cram_free_block(s->base_blk); + + if (s->soft_blk) + cram_free_block(s->soft_blk); + +#ifdef TN_external + if (s->tn_blk) + cram_free_block(s->tn_blk); +#endif + + if (s->cigar) + free(s->cigar); + + if (s->crecs) + free(s->crecs); + + if (s->features) + free(s->features); + +#ifndef TN_external + if (s->TN) + free(s->TN); +#endif + + if (s->pair_keys) + string_pool_destroy(s->pair_keys); + + if (s->pair) + kh_destroy(m_s2i, s->pair); + + 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; + s->id = 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, CRAM_EXT_QUAL))) goto err; + if (!(s->name_blk = cram_new_block(EXTERNAL, CRAM_EXT_NAME))) goto err; + if (!(s->aux_blk = cram_new_block(EXTERNAL, CRAM_EXT_TAG))) goto err; + if (!(s->base_blk = cram_new_block(EXTERNAL, CRAM_EXT_IN))) goto err; + if (!(s->soft_blk = cram_new_block(EXTERNAL, CRAM_EXT_SC))) goto err; +#ifdef TN_external + if (!(s->tn_blk = cram_new_block(EXTERNAL, CRAM_EXT_TN))) goto err; +#endif + + 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 = 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, CRAM_EXT_QUAL))) goto err; + if (!(s->name_blk = cram_new_block(EXTERNAL, CRAM_EXT_NAME))) goto err; + if (!(s->aux_blk = cram_new_block(EXTERNAL, CRAM_EXT_TAG))) goto err; + if (!(s->base_blk = cram_new_block(EXTERNAL, CRAM_EXT_IN))) goto err; + if (!(s->soft_blk = cram_new_block(EXTERNAL, CRAM_EXT_SC))) goto err; +#ifdef TN_external + if (!(s->tn_blk = cram_new_block(EXTERNAL, CRAM_EXT_TN))) goto err; +#endif + + + s->crecs = NULL; + + s->last_apos = s->hdr->ref_seq_start; + + s->id = fd->slice_num++; + + 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 > 2) { + fprintf(stderr, "CRAM version number mismatch\n" + "Expected 1.x or 2.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 (fd->version == CRAM_1_VERS) { + /* 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; + } + + len = b->comp_size + 2 + + 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))) { + cram_free_container(c); + cram_free_block(b); + return NULL; + } + memcpy(header, BLOCK_END(b), header_len); + 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 + + 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 */ +#ifdef SAMTOOLS + hdr = sam_hdr_parse_(header, header_len); +#else + hdr = sam_hdr_parse(header, header_len); +#endif + 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 + */ +//#define BLANK_BLOCK +//#define PADDED_CONTAINER +#define PADDED_BLOCK +int cram_write_SAM_hdr(cram_fd *fd, SAM_hdr *hdr) { + int header_len; + + /* 1.0 requires and UNKNOWN read-group */ + if (fd->version == CRAM_1_VERS) { + 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 (fd->version == CRAM_1_VERS) { + 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 a block 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; + + 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); + +#ifndef BLANK_BLOCK + c->num_blocks = 1; + c->num_landmarks = 1; + if (!(c->landmark = malloc(sizeof(*c->landmark)))) { + cram_free_block(b); + cram_free_container(c); + return -1; + } + c->landmark[0] = 0; + + c->length = b->uncomp_size + 2 + + itf8_size(b->content_id) + + itf8_size(b->uncomp_size) + + itf8_size(b->comp_size); +#else + c->length = b->uncomp_size + 2 + + 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)))) + return -1; + c->landmark[0] = 0; + c->landmark[1] = c->length; + + c->length *= 2; +#endif + +#ifdef PADDED_BLOCK + padded_length = MAX(c->length*1.5, 10000) - c->length; + c->length += padded_length; + 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); +#endif + +#ifdef PADDED_CONTAINER + padded_length = MAX(c->length*2, 10000) - c->length; + c->length += padded_length; +#endif + + if (-1 == cram_write_container(fd, c)) { + cram_free_block(b); + cram_free_container(c); + return -1; + } + + // Keep it uncompressed + if (-1 == cram_write_block(fd, b)) { + cram_free_block(b); + cram_free_container(c); + return -1; + } + +#ifdef BLANK_BLOCK + if (-1 == cram_write_block(fd, b)) { + cram_free_block(b); + cram_free_container(c); + return -1; + } +#endif + + cram_free_block(b); + cram_free_container(c); + +#ifdef PADDED_CONTAINER + // Write out padding to allow for in-line SAM header editing + if (NULL == (pads = calloc(1, padded_length))) + return -1; + if (padded_length != hwrite(fd->fp, pads, padded_length)) + return -1; + free(pads); +#endif + } + + 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 (fd->version == CRAM_1_VERS) { + 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) { + cram_FILE *fp; + cram_fd *fd; + char fmode[3]= { mode[0], '\0', '\0' }; + + if (strlen(mode) > 1 && (mode[1] == 'b' || mode[1] == 'c')) { + fmode[1] = 'b'; + } + +#ifdef SAMTOOLS + fp = hopen(filename, fmode); +#else + if (strcmp(filename, "-") == 0) { + fp = (*fmode == 'r') ? stdin : stdout; + } else { + fp = fopen(filename, fmode); + } +#endif + 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_FILE is either htslib's hFILE or stdio's FILE, depending on how + * cram_structs.h has been configured. + */ +cram_fd *cram_dopen(cram_FILE *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; + if (strlen(mode) > 2 && mode[2] >= '0' && mode[2] <= '9') + fd->level = mode[2] - '0'; + + 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 * 100 + + fd->file_def->minor_version; + + if (!(fd->header = cram_read_SAM_hdr(fd))) + goto err; + + } else { + /* Writer */ + cram_file_def def; + + def.magic[0] = 'C'; + def.magic[1] = 'R'; + def.magic[2] = 'A'; + def.magic[3] = 'M'; + def.major_version = major_version; + def.minor_version = minor_version; + memset(def.file_id, 0, 20); + strncpy(def.file_id, filename, 20); + if (0 != cram_write_file_def(fd, &def)) + goto err; + + fd->version = def.major_version * 100 + def.minor_version; + + /* SAM header written later */ + } + + cram_init_tables(fd); + + fd->prefix = strdup((cp = strrchr(filename, '/')) ? cp+1 : filename); + if (!fd->prefix) + goto err; + fd->slice_num = 0; + 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->multi_seq = 0; + 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; + + for (i = 0; i < 7; 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]; + + 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 (30 != hwrite(fd->fp, "\x0b\x00\x00\x00\xff\xff\xff\xff" + "\xff\xe0\x45\x4f\x46\x00\x00\x00" + "\x00\x01\x00\x00\x01\x00\x06\x06" + "\x01\x00\x01\x00\x01\x00", 30)) + return -1; + +// if (1 != fwrite("\x00\x00\x00\x00\xff\xff\xff\xff" +// "\xff\xe0\x45\x4f\x46\x00\x00\x00" +// "\x00\x00\x00", 19, 1, fd->fp)) +// 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 (paranoid_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 < 7; 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; + + 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_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; + } + 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; + + 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 new file mode 100644 index 0000000..165dc5e --- /dev/null +++ b/htslib/cram/cram_io.h @@ -0,0 +1,532 @@ +/* +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 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 + +/*! 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 level, int strat, + int level2, int strat2); + +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 via sprintf with 1 arg */ +#define BLOCK_APPENDF_1(b,buf,fmt, a1) \ + do { \ + int l = sprintf((buf), (fmt), (a1)); \ + BLOCK_APPEND((b), (buf), l); \ + } while (0) + +/* Append via sprintf with 2 args */ +#define BLOCK_APPENDF_2(b,buf,fmt, a1,a2) \ + do { \ + int l = sprintf((buf), (fmt), (a1), (a2)); \ + BLOCK_APPEND((b), (buf), l); \ + } while (0) + +#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_FILE is either htslib's hFILE or stdio's FILE, depending on how + * cram_structs.h has been configured. + */ +cram_fd *cram_dopen(cram_FILE *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 new file mode 100644 index 0000000..66f2efa --- /dev/null +++ b/htslib/cram/cram_samtools.c @@ -0,0 +1,144 @@ +/* +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; + + memcpy(cp, qual, 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 new file mode 100644 index 0000000..f7949d0 --- /dev/null +++ b/htslib/cram/cram_samtools.h @@ -0,0 +1,97 @@ +/* +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 new file mode 100644 index 0000000..18d0605 --- /dev/null +++ b/htslib/cram/cram_stats.c @@ -0,0 +1,357 @@ +/* +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; + } + + /* + * 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; + + /* We only support huffman now anyway... */ + //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 */ + { + 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); + } + + /* 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 new file mode 100644 index 0000000..b471e68 --- /dev/null +++ b/htslib/cram/cram_stats.h @@ -0,0 +1,59 @@ +/* +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 new file mode 100644 index 0000000..6d3f1a1 --- /dev/null +++ b/htslib/cram/cram_structs.h @@ -0,0 +1,752 @@ +/* +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" + +#ifdef SAMTOOLS +// From within samtools/HTSlib +# 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; +typedef struct hFILE cram_FILE; + +#else +// From within io_lib +# include "cram/bam.h" // For BAM header parsing +typedef FILE cram_FILE; +#endif + +#define SEQS_PER_SLICE 10000 +#define SLICE_PER_CNT 1 + +#define CRAM_SUBST_MATRIX "CGTNAGTNACTNACGNACGT" + +#define TN_external +//#define NS_external +#define TS_external +//#define BA_external + +#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, +}; + +/* "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_1_VERS 100 // 1.0 +#define CRAM_2_VERS 200 // 1.1, or 2.0? + +struct cram_slice; + +enum cram_block_method { + BM_ERROR = -1, + RAW = 0, + GZIP = 1, + BZIP2 = 2, +}; + +enum cram_content_type { + CT_ERROR = -1, + FILE_HEADER = 0, + COMPRESSION_HEADER = 1, + MAPPED_SLICE = 2, + UNMAPPED_SLICE = 3, // CRAM_1_VERS only + EXTERNAL = 4, + CORE = 5, +}; + +/* Compression metrics */ +typedef struct { + int m1; + int m2; + int trial; + int next_trial; +} 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; + 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 *BF_codec; // bam bit flags + struct cram_codec *CF_codec; // compression flags + struct cram_codec *RL_codec; // read length + struct cram_codec *AP_codec; // alignment pos + struct cram_codec *RG_codec; // read group + struct cram_codec *MF_codec; // mate flags + struct cram_codec *NS_codec; // next frag ref ID + struct cram_codec *NP_codec; // next frag pos + struct cram_codec *TS_codec; // template size + struct cram_codec *NF_codec; // next frag distance + struct cram_codec *TC_codec; // tag count CRAM_1_VERS + struct cram_codec *TN_codec; // tag name/type CRAM_1_VERS + struct cram_codec *TL_codec; // tag line CRAM_2_VERS + struct cram_codec *FN_codec; // no. features + struct cram_codec *FC_codec; // feature code + struct cram_codec *FP_codec; // feature pos + struct cram_codec *BS_codec; // base subst feature + struct cram_codec *IN_codec; // insertion feature + struct cram_codec *SC_codec; // soft-clip feature + struct cram_codec *DL_codec; // deletion len feature + struct cram_codec *BA_codec; // base feature + struct cram_codec *RS_codec; // ref skip length feature + struct cram_codec *PD_codec; // padding length feature + struct cram_codec *HC_codec; // hard clip length feature + struct cram_codec *MQ_codec; // mapping quality + struct cram_codec *RN_codec; // read names + struct cram_codec *QS_codec; // quality value (single) + struct cram_codec *Qs_codec; // quality values (string) + struct cram_codec *RI_codec; // ref ID + struct cram_codec *TM_codec; // ? + struct cram_codec *TV_codec; // ? + + char *uncomp; // A single block of uncompressed data + size_t uncomp_size, uncomp_alloc; +} 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; + int32_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; + int32_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 *TS_stats; + cram_stats *RG_stats; + cram_stats *FP_stats; + cram_stats *NS_stats; + cram_stats *RN_stats; + cram_stats *CF_stats; + cram_stats *TN_stats; + cram_stats *BA_stats; + cram_stats *TV_stats; + cram_stats *BS_stats; + cram_stats *FC_stats; + cram_stats *BF_stats; + cram_stats *AP_stats; + cram_stats *NF_stats; + cram_stats *MF_stats; + cram_stats *FN_stats; + cram_stats *RL_stats; + cram_stats *DL_stats; + cram_stats *TC_stats; + cram_stats *TL_stats; + cram_stats *MQ_stats; + cram_stats *TM_stats; + cram_stats *QS_stats; + cram_stats *NP_stats; + cram_stats *RI_stats; + cram_stats *RS_stats; + cram_stats *PD_stats; + cram_stats *HC_stats; + + 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 +} 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 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; + + /* Identifier used for auto-assigning read names */ + uint64_t id; + + /* 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_block *name_blk; + cram_block *seqs_blk; + cram_block *qual_blk; + cram_block *aux_blk; + cram_block *base_blk; // substitutions (soft-clips for 1.0) + cram_block *soft_blk; // soft-clips + + 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 + + string_alloc_t *pair_keys; // Pooled keys for pair hash. + khash_t(m_s2i) *pair; // 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; + +#ifdef BA_external + int BA_len; + int ba_id; +#endif + 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 + FILE *fp; // and the FILE* 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 { + cram_FILE *fp; + int mode; // 'r' or 'w' + int version; + cram_file_def *file_def; + SAM_hdr *header; + + char *prefix; + int record_counter; + int slice_num; + 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[7]; + + // 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 shared_ref; + 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; + +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, +}; + +/* 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 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) + +/* External IDs used by this implementation (only assumed during writing) */ +#define CRAM_EXT_IN 0 +#define CRAM_EXT_QUAL 1 +#define CRAM_EXT_NAME 2 +#define CRAM_EXT_TS_NP 3 +#define CRAM_EXT_TAG 4 +#define CRAM_EXT_TAG_S "\004" +#define CRAM_EXT_BA 5 +#define CRAM_EXT_TN 6 +#define CRAM_EXT_SC 7 +#define CRAM_EXT_REF 8 + +#ifdef __cplusplus +} +#endif + +#endif /* _CRAM_STRUCTS_H_ */ diff --git a/htslib/cram/files.c b/htslib/cram/files.c new file mode 100644 index 0000000..48f5c32 --- /dev/null +++ b/htslib/cram/files.c @@ -0,0 +1,76 @@ +/* +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 new file mode 100644 index 0000000..6407b76 --- /dev/null +++ b/htslib/cram/mFILE.c @@ -0,0 +1,634 @@ +/* +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 new file mode 100644 index 0000000..5ded9a5 --- /dev/null +++ b/htslib/cram/mFILE.h @@ -0,0 +1,88 @@ +/* +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 new file mode 100644 index 0000000..68123c0 --- /dev/null +++ b/htslib/cram/md5.c @@ -0,0 +1,295 @@ +/* + * 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 new file mode 100644 index 0000000..6b065a1 --- /dev/null +++ b/htslib/cram/md5.h @@ -0,0 +1,54 @@ +#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 new file mode 100644 index 0000000..681b28c --- /dev/null +++ b/htslib/cram/misc.h @@ -0,0 +1,110 @@ +/* +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 new file mode 100644 index 0000000..d89815d --- /dev/null +++ b/htslib/cram/open_trace_file.c @@ -0,0 +1,386 @@ +/* +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 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 +#ifdef HAVE_LIBCURL +# include +#endif + +#include "cram/open_trace_file.h" +#include "cram/misc.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; + } + + if (searchpath[i] == path_sep) { + /* Skip blank path components */ + if (j && newsearch[j-1] != 0) + newsearch[j++] = 0; + } else { + newsearch[j++] = searchpath[i]; + } + } + + if (j) + newsearch[j++] = 0; + newsearch[j++] = '.'; + newsearch[j++] = '/'; + newsearch[j++] = 0; + newsearch[j++] = 0; + + return newsearch; +} + +#ifdef HAVE_LIBCURL +mFILE *find_file_url(char *file, char *url) { + char buf[8192], *cp; + mFILE *mf = NULL, *headers = NULL; + int maxlen = 8190 - strlen(file); + static CURL *handle = NULL; + static int curl_init = 0; + char errbuf[CURL_ERROR_SIZE]; + + *errbuf = 0; + + if (!curl_init) { + if (curl_global_init(CURL_GLOBAL_ALL)) + return NULL; + + if (NULL == (handle = curl_easy_init())) + goto error; + + curl_init = 1; + } + + /* Expand %s for the trace name */ + for (cp = buf; *url && cp - buf < maxlen; url++) { + if (*url == '%' && *(url+1) == 's') { + url++; + cp += strlen(strcpy(cp, file)); + } else { + *cp++ = *url; + } + } + *cp++ = 0; + + /* Setup the curl */ + if (NULL == (mf = mfcreate(NULL, 0)) || + NULL == (headers = mfcreate(NULL, 0))) + return NULL; + + if (0 != curl_easy_setopt(handle, CURLOPT_URL, buf)) + goto error; + if (0 != curl_easy_setopt(handle, CURLOPT_CONNECTTIMEOUT, 60L)) + goto error; + if (0 != curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, + (curl_write_callback)mfwrite)) + goto error; + if (0 != curl_easy_setopt(handle, CURLOPT_WRITEDATA, mf)) + goto error; + if (0 != curl_easy_setopt(handle, CURLOPT_HEADERFUNCTION, + (curl_write_callback)mfwrite)) + goto error; + if (0 != curl_easy_setopt(handle, CURLOPT_WRITEHEADER, headers)) + goto error; + if (0 != curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, errbuf)) + goto error; + + /* Fetch! */ + if (0 != curl_easy_perform(handle)) + goto error; + + /* Report errors is approproate. 404 is silent as it may have just been + * a search via RAWDATA path, everything else is worth reporting. + */ + { + float version; + int response; + char nul = 0; + mfwrite(&nul, 1, 1, headers); + if (2 == sscanf(headers->data, "HTTP/%f %d", &version, &response)) { + if (response != 200) { + if (response != 404) + fprintf(stderr, "%.*s\n", + (int)headers->size, headers->data); + goto error; + } + } + } + + if (mftell(mf) == 0) + goto error; + + mfdestroy(headers); + + mrewind(mf); + return mf; + + error: + if (mf) + mfdestroy(mf); + if (headers) + mfdestroy(headers); + if (*errbuf) + fprintf(stderr, "%s\n", errbuf); + return NULL; +} +#endif + +/* + * 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) { + int i; + char *suffix[6] = {"", ".gz", ".bz2", ".sz", ".Z", ".bz2"}; + for (i = 0; i < 6; i++) { + char file2[1024]; + char *ele2; + int valid = 1; + + /* + * '|' prefixing a path component indicates that we do not + * wish to perform the compression extension searching in that + * location. + */ + if (*ele == '|') { + ele2 = ele+1; + valid = (i == 0); + } else { + ele2 = ele; + } + + sprintf(file2, "%s%s", file, suffix[i]); + +#if defined(HAVE_LIBCURL) + if (0 == strncmp(ele2, "URL=", 4)) { + if (valid && (fp = find_file_url(file2, ele2+4))) { + free(newsearch); + return fp; + } + } else +#endif + if (valid && (fp = find_file_dir(file2, 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 new file mode 100644 index 0000000..ee52cb0 --- /dev/null +++ b/htslib/cram/open_trace_file.h @@ -0,0 +1,115 @@ +/* +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 new file mode 100644 index 0000000..b2affe0 --- /dev/null +++ b/htslib/cram/os.h @@ -0,0 +1,306 @@ +/* +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)) +#endif + +#ifdef SP_LITTLE_ENDIAN +#define le_int4(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 new file mode 100644 index 0000000..0d061e7 --- /dev/null +++ b/htslib/cram/pooled_alloc.c @@ -0,0 +1,170 @@ +/* +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 new file mode 100644 index 0000000..fa3c81f --- /dev/null +++ b/htslib/cram/pooled_alloc.h @@ -0,0 +1,56 @@ +/* +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/sam_header.c b/htslib/cram/sam_header.c new file mode 100644 index 0000000..2a8110c --- /dev/null +++ b/htslib/cram/sam_header.c @@ -0,0 +1,1222 @@ +/* +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" + +#ifdef SAMTOOLS +#define sam_hdr_parse sam_hdr_parse_ +#endif + +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 new file mode 100644 index 0000000..b9ea298 --- /dev/null +++ b/htslib/cram/sam_header.h @@ -0,0 +1,452 @@ +/* +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. + * + * Consider using the scram() generic API and calling + * scram_get_header() to obtain the format-specific pointer to the + * SAM_hdr struct. + */ + +/* + * 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 + */ +#ifdef SAMTOOLS +SAM_hdr *sam_hdr_parse_(const char *hdr, int len); +#else +SAM_hdr *sam_hdr_parse(const char *hdr, int len); +#endif + + +/*! 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 new file mode 100644 index 0000000..d543e14 --- /dev/null +++ b/htslib/cram/string_alloc.c @@ -0,0 +1,153 @@ +/* +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 new file mode 100644 index 0000000..71ae26d --- /dev/null +++ b/htslib/cram/string_alloc.h @@ -0,0 +1,69 @@ +/* +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 new file mode 100644 index 0000000..90652a7 --- /dev/null +++ b/htslib/cram/thread_pool.c @@ -0,0 +1,713 @@ +/* +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 "cram/thread_pool.h" + +//#define DEBUG +#define DEBUG_TIME + +#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])) + 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_broadcast(&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 *p = (t_pool *)arg; + 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); +#endif + + p->nwaiting++; + while (!p->head && !p->shutdown) { + if (p->njobs == 0) + pthread_cond_signal(&p->empty_c); +#ifdef DEBUG_TIME + gettimeofday(&t2, NULL); +#endif + + pthread_cond_wait(&p->pending_c, &p->pool_m); + +#ifdef DEBUG_TIME + gettimeofday(&t3, NULL); + p->wait_time += TDIFF(t3,t2); +#endif + } + + p->nwaiting--; + + if (p->shutdown) { + p->total_time += TDIFF(t3,t1); +#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; +#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->pending_c, NULL); + pthread_cond_init(&p->full_c, NULL); + + for (i = 0; i < tsize; i++) { + if (0 != pthread_create(&p->t[i], NULL, t_pool_worker, p)) + return NULL; + } + + 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; + } + + if (p->njobs == 1) { + // First job => tell all worker threads to start up + pthread_cond_broadcast(&p->pending_c); + } + + 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 = 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; + pthread_mutex_unlock(&q->result_m); + } else { + j->serial = 0; + } + +#ifdef DEBUG + fprintf(stderr, "Dispatching job for queue %p, serial %d\n", q, j->serial); +#endif + + pthread_mutex_lock(&p->pool_m); + + if (p->njobs == p->qsize && nonblock == 1) { + pthread_mutex_unlock(&p->pool_m); + errno = EAGAIN; + free(j); + return -1; + } + + 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 + + if (p->njobs == 1) { + // First job => tell all worker threads to start up + pthread_cond_broadcast(&p->pending_c); + } + + 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) { +#ifdef DEBUG + fprintf(stderr, "Flushing pool %p\n", p); +#endif + + // Drains the queue + pthread_mutex_lock(&p->pool_m); + 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 + + pthread_cond_broadcast(&p->pending_c); + 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], NULL); + } else { + for (i = 0; i < p->tsize; i++) + pthread_kill(p->t[i], SIGINT); + } + + pthread_mutex_destroy(&p->pool_m); + pthread_cond_destroy(&p->empty_c); + pthread_cond_destroy(&p->pending_c); + pthread_cond_destroy(&p->full_c); + +#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))); +#endif + + 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 new file mode 100644 index 0000000..18e8b42 --- /dev/null +++ b/htslib/cram/thread_pool.h @@ -0,0 +1,197 @@ +/* +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; + +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 + pthread_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; + + // 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 new file mode 100644 index 0000000..bc7e7d4 --- /dev/null +++ b/htslib/cram/vlen.c @@ -0,0 +1,432 @@ +/* +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, 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 new file mode 100644 index 0000000..6b9b07c --- /dev/null +++ b/htslib/cram/vlen.h @@ -0,0 +1,48 @@ +/* +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 new file mode 100644 index 0000000..0a0ae0c --- /dev/null +++ b/htslib/cram/zfio.c @@ -0,0 +1,185 @@ +/* +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 new file mode 100644 index 0000000..2d0580f --- /dev/null +++ b/htslib/cram/zfio.h @@ -0,0 +1,54 @@ +/* +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 new file mode 100644 index 0000000..9058e51 --- /dev/null +++ b/htslib/faidx.5 @@ -0,0 +1,124 @@ +'\" t +.TH faidx 5 "August 2013" "htslib" "Bioinformatics formats" +.SH NAME +faidx \- an index enabling random access to FASTA files +.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 new file mode 100644 index 0000000..05dff83 --- /dev/null +++ b/htslib/faidx.c @@ -0,0 +1,421 @@ +#include "config.h" + +#include +#include +#include +#include +#include + +#include "htslib/bgzf.h" +#include "htslib/faidx.h" +#include "htslib/khash.h" +#ifdef _USE_KNETFILE +#include "htslib/knetfile.h" +#endif + +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 c, *name; + 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; + } + } + } + fai_insert_index(idx, name, len, line_len, line_blen, offset); + 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 ( 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; +} + +#ifdef _USE_KNETFILE +FILE *download_and_open(const char *fn) +{ + const int buf_size = 1 * 1024 * 1024; + uint8_t *buf; + FILE *fp; + knetFile *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 = knet_open(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); + knet_close(fp_remote); + return NULL; + } + buf = (uint8_t*)calloc(buf_size, 1); + while ((l = knet_read(fp_remote, buf, buf_size)) != 0) + fwrite(buf, 1, l, fp); + free(buf); + fclose(fp); + knet_close(fp_remote); + + return fopen(fn, "r"); +} +#endif + +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); + +#ifdef _USE_KNETFILE + if (strstr(fn, "ftp://") == fn || strstr(fn, "http://") == fn) + { + 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 +#endif + 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, c; + int 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; +} + +char *faidx_fetch_seq(const faidx_t *fai, const char *c_name, int p_beg_i, int p_end_i, int *len) +{ + int l; + char 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; +} + + diff --git a/htslib/hfile.c b/htslib/hfile.c new file mode 100644 index 0000000..0188410 --- /dev/null +++ b/htslib/hfile.c @@ -0,0 +1,526 @@ +/* hfile.c -- buffered 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 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 "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; + } + + 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); + 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); +} diff --git a/htslib/hfile_internal.h b/htslib/hfile_internal.h new file mode 100644 index 0000000..88b0c8e --- /dev/null +++ b/htslib/hfile_internal.h @@ -0,0 +1,75 @@ +/* hfile_internal.h -- internal parts of 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 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. */ + +#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_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_net.c b/htslib/hfile_net.c new file mode 100644 index 0000000..53eda94 --- /dev/null +++ b/htslib/hfile_net.c @@ -0,0 +1,99 @@ +/* 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 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 "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 new file mode 100644 index 0000000..87f88a9 --- /dev/null +++ b/htslib/hts.c @@ -0,0 +1,1326 @@ +#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 + 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"; + +/********************** + *** Basic file I/O *** + **********************/ + +// 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; +} + +// Returns whether the block contains any control characters, i.e., +// characters less than SPACE other than whitespace etc (ASCII BEL..CR). +static int is_binary(unsigned char *s, size_t n) +{ + size_t i; + for (i = 0; i < n; i++) + if (s[i] < 0x07 || (s[i] >= 0x0e && s[i] < 0x20)) return 1; + return 0; +} + +htsFile *hts_open(const char *fn, const char *mode) +{ + htsFile *fp = NULL; + hFILE *hfile = hopen(fn, mode); + if (hfile == NULL) goto error; + + 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')) { + unsigned char s[18]; + if (hpeek(hfile, s, 6) == 6 && memcmp(s, "CRAM", 4) == 0 && + s[4] >= 1 && s[4] <= 2 && s[5] <= 1) { + fp->is_cram = 1; + } + else if (hpeek(hfile, s, 18) == 18 && s[0] == 0x1f && s[1] == 0x8b && + (s[3] & 4) && memcmp(&s[12], "BC\2\0", 4) == 0) { + // The stream is BGZF-compressed. Decompress a few bytes to see + // whether it's in a binary format (e.g., BAM or BCF, starting + // with four bytes of magic including a control character) or is + // a bgzipped SAM or VCF text file. + fp->is_compressed = 1; + if (is_binary(s, decompress_peek(hfile, s, 4))) fp->is_bin = 1; + else fp->is_kstream = 1; + } + else if (hpeek(hfile, s, 2) == 2 && s[0] == 0x1f && s[1] == 0x8b) { + // Plain GZIP header... so a gzipped text file. + fp->is_compressed = 1; + fp->is_kstream = 1; + } + else if (hpeek(hfile, s, 4) == 4 && is_binary(s, 4)) { + // Binary format, but in a raw non-compressed form. + fp->is_bin = 1; + } + else { + fp->is_kstream = 1; + } + } + else if (strchr(mode, 'w') || strchr(mode, 'a')) { + fp->is_write = 1; + if (strchr(mode, 'b')) fp->is_bin = 1; + if (strchr(mode, 'c')) fp->is_cram = 1; + if (strchr(mode, 'z')) fp->is_compressed = 1; + else if (strchr(mode, 'u')) fp->is_compressed = 0; + else fp->is_compressed = 2; // not set, default behaviour + } + else goto error; + + if (fp->is_bin || (fp->is_write && fp->is_compressed==1)) { + fp->fp.bgzf = bgzf_hopen(hfile, mode); + if (fp->fp.bgzf == NULL) goto error; + } + else if (fp->is_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); + + } + else if (fp->is_kstream) { + #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 { + fp->fp.hfile = hfile; + } + + return fp; + +error: + if (hts_verbose >= 2) + fprintf(stderr, "[E::%s] fail to open file '%s'\n", __func__, fn); + + if (hfile) + hclose_abruptly(hfile); + + if (fp) { + free(fp->fn); + free(fp->fn_aux); + free(fp); + } + return NULL; +} + +int hts_close(htsFile *fp) +{ + int ret, save; + + if (fp->is_bin || (fp->is_write && fp->is_compressed==1)) { + ret = bgzf_close(fp->fp.bgzf); + } else if (fp->is_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); + } else if (fp->is_kstream) { + #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 { + ret = hclose(fp->fp.hfile); + } + + save = errno; + free(fp->fn); + free(fp->fn_aux); + free(fp->line.s); + free(fp); + errno = save; + return ret; +} + +int hts_set_threads(htsFile *fp, int n) +{ + // TODO Plug in CRAM and other threading + if (fp->is_bin) { + return bgzf_mt(fp->fp.bgzf, n, 256); + } + 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; + + 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; +} + +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; + // ... etc + + int fd = open(fname, O_RDONLY); + if ( !fd ) return 0; + + uint8_t magic[5]; + if ( read(fd,magic,2)!=2 ) { close(fd); return 0; } + if ( !strncmp((char*)magic,"##",2) ) { close(fd); return FT_VCF; } + if ( !strncmp((char*)magic,"BCF",3) ) { close(fd); return FT_BCF; } + close(fd); + + if ( magic[0]==0x1f && magic[1]==0x8b ) // compressed + { + BGZF *fp = bgzf_open(fname, "r"); + if ( !fp ) return 0; + if ( bgzf_read(fp, magic, 3)!=3 ) { bgzf_close(fp); return 0; } + bgzf_close(fp); + if ( !strncmp((char*)magic,"##",2) ) return FT_VCF; + if ( !strncmp((char*)magic,"BCF",3) ) return FT_BCF_GZ; + } + 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, 16); + } + if (l->n == l->m) { + l->m <<= 1; + l->list = (hts_pair64_t*)realloc(l->list, l->m * 16); + } + 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 * 8); + 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)) + kh_val(bidx, k).loff = kh_key(bidx, k) < idx->n_bins? lidx->offset[hts_bin_bot(kh_key(bidx, k), idx->n_lvls)] : 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 * 16); + } + memcpy(q->list + q->n, p->list, p->n * 16); + 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 >= 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 (tid < 0) { // come to the end of the records having coordinates + hts_idx_finish(idx, offset); + return 0; + } + } + 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 * 16); + 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 << 3); + 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 ((bidx = idx->bidx[tid]) == 0) 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, 16); + 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) : 1<<29; + if (*beg > *end) name_end = l; + } + if (name_end == l) *beg = 0, *end = 1<<29; + 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, 1<<29, 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; + 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) 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; + // FIXME Use is_remote_scheme() helper that's true for ftp/http/irods/etc + if (strstr(fn, "ftp://") == fn || strstr(fn, "http://") == 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 + if ((fp_remote = hopen(fn, "r")) == 0) { + if (hts_verbose >= 1) fprintf(stderr, "[E::%s] fail to open remote file '%s'\n", __func__, fn); + 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/htslib.mk b/htslib/htslib.mk new file mode 100644 index 0000000..28d0a8f --- /dev/null +++ b/htslib/htslib.mk @@ -0,0 +1,127 @@ +# Makefile rules useful for third-party code using htslib's public API. +# +# Copyright (C) 2013-2014 Genome Research Ltd. +# +# Author: John Marshall + +# 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/kstdint.h \ + $(HTSDIR)/htslib/kstring.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_net.c \ + $(HTSDIR)/hts.c \ + $(HTSDIR)/knetfile.c \ + $(HTSDIR)/kstring.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)/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/bgzf.h b/htslib/htslib/bgzf.h new file mode 100644 index 0000000..1edce41 --- /dev/null +++ b/htslib/htslib/bgzf.h @@ -0,0 +1,313 @@ +/* The MIT License + + Copyright (c) 2008 Broad Institute / Massachusetts Institute of Technology + 2011, 2012 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. +*/ + +/* The BGZF library was originally written by Bob Handsaker from the Broad + * Institute. It was later improved by the SAMtools developers. */ + +#ifndef __BGZF_H +#define __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 /[rwa][u0-9]+/: 'r' for reading, 'w' for + * writing, or 'a' for appending, while a 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 new file mode 100644 index 0000000..3153b98 --- /dev/null +++ b/htslib/htslib/faidx.h @@ -0,0 +1,112 @@ +/* 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 , Petr Danecek */ + +#ifndef FAIDX_H +#define 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 Distroy 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); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/htslib/htslib/hfile.h b/htslib/htslib/hfile.h new file mode 100644 index 0000000..68175e7 --- /dev/null +++ b/htslib/htslib/hfile.h @@ -0,0 +1,204 @@ +/* hfile.h -- buffered 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 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. */ + +#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 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 new file mode 100644 index 0000000..8c9fcd8 --- /dev/null +++ b/htslib/htslib/hts.h @@ -0,0 +1,305 @@ +#ifndef HTS_H +#define 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 * + ************/ + +typedef struct { + uint32_t is_bin:1, is_write:1, is_be:1, is_cram:1, is_compressed:2, is_kstream:1, dummy:25; + int64_t lineno; + kstring_t line; + char *fn, *fn_aux; + union { + BGZF *bgzf; + struct cram_fd *cram; + struct hFILE *hfile; + void *voidp; + } fp; +} htsFile; + +/********************** + * Exported functions * + **********************/ + +extern int hts_verbose; + +/*! @abstract Table for converting a nucleotide character to the 4-bit encoding. */ +extern const unsigned char seq_nt16_table[256]; + +/*! @abstract Table for converting a 4-bit encoded nucleotide to a letter. */ +extern const char seq_nt16_str[]; + +#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 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 + u uncompressed + z 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 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); + +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; + 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 + * @fname: the file name + * + * Returns one of the FT_* defines. + * + * This function was added in order to avoid the need for excessive command + * line switches. + */ + #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 new file mode 100644 index 0000000..efc4f6c --- /dev/null +++ b/htslib/htslib/hts_defs.h @@ -0,0 +1,47 @@ +/* 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 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. */ + +#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 new file mode 100644 index 0000000..0a6ad92 --- /dev/null +++ b/htslib/htslib/kfunc.h @@ -0,0 +1,49 @@ +#ifndef __KFUNC_H__ +#define __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 new file mode 100644 index 0000000..2d910de --- /dev/null +++ b/htslib/htslib/khash.h @@ -0,0 +1,617 @@ +/* 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 + +#ifdef _MSC_VER +#define kh_inline __inline +#else +#define kh_inline inline +#endif + +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 { \ + 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) 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) 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 new file mode 100644 index 0000000..db26d72 --- /dev/null +++ b/htslib/htslib/khash_str2int.h @@ -0,0 +1,98 @@ +#ifndef __KHASH_UTILS_H__ +#define __KHASH_UTILS_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. + */ +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. + */ +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; +} + +#endif diff --git a/htslib/htslib/klist.h b/htslib/htslib/klist.h new file mode 100644 index 0000000..8b33f27 --- /dev/null +++ b/htslib/htslib/klist.h @@ -0,0 +1,121 @@ +/* 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 new file mode 100644 index 0000000..c980258 --- /dev/null +++ b/htslib/htslib/knetfile.h @@ -0,0 +1,75 @@ +#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 new file mode 100644 index 0000000..577cdc4 --- /dev/null +++ b/htslib/htslib/kseq.h @@ -0,0 +1,253 @@ +/* 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 < ks->bufsize) ks->is_eof = 1; \ + if (ks->end == 0) 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) \ + { \ + if (dret) *dret = 0; \ + str->l = append? str->l : 0; \ + uint64_t seek_pos = str->l; \ + if (ks->begin >= ks->end && ks->is_eof) return -1; \ + 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 < ks->bufsize) ks->is_eof = 1; \ + if (ks->end == 0) 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++; \ + 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; \ + } \ + } \ + 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 new file mode 100644 index 0000000..aa0bb93 --- /dev/null +++ b/htslib/htslib/ksort.h @@ -0,0 +1,285 @@ +/* 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/kstdint.h b/htslib/htslib/kstdint.h new file mode 100644 index 0000000..e948850 --- /dev/null +++ b/htslib/htslib/kstdint.h @@ -0,0 +1,64 @@ +#ifndef KSTDINT_H +#define KSTDINT_H + +#include + +/* Basic assumptions: 1) "char" is 8-bit; 2) there is a 8-bit, 16-bit, 32-bit + * and 64-bit integer type, respectively; 3) "short" is no less than "char", + * "int" is no less than "short", "long" is no less than "int" and "long long" + * is no less than "long"; 4) "int" is at least 16-bit, "long" at least 32-bit + * and "long long" at least 64-bit. The last two assumptions are enforced by + * the C99 spec. + * + * Following assumptions 1) and 2), we know that "signed char"=="int8_t" and + * "short"=="int16_t" for sure. Further from the assumptions, a 32-bit integer + * type must be either "int" or "long". We can test (UINT16_MAX==UINT_MAX) to + * see which is the case. Similarly, a 64-bit integer must be either "long" or + * "long long". We can test (UINT16_MAX==UINT_MAX) to get the definite answer. + */ + +/* 8-bit integers */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +#define INT8_MIN (-SCHAR_MAX-1) +#define INT8_MAX SCHAR_MAX +#define UINT8_MAX UCHAR_MAX + +/* 16-bit integers */ +typedef signed short int16_t; +typedef unsigned short uint16_t; +#define INT16_MIN (-SHRT_MAX-1) +#define INT16_MAX SHRT_MAX +#define UINT16_MAX USHRT_MAX + +/* 32-bit integers */ +#if UINT16_MAX != UINT_MAX +typedef signed int int32_t; +typedef unsigned int uint32_t; +#define INT32_MIN (-INT_MAX-1) +#define INT32_MAX INT_MAX +#define UINT32_MAX UINT_MAX +#else /* then int is 16-bit and long is 32-bit, which may happen to compilers for embedded CPUs */ +typedef signed long int32_t; +typedef unsigned long uint32_t; +#define INT32_MIN (-LONG_MAX-1) +#define INT32_MAX LONG_MAX +#define UINT32_MAX ULONG_MAX +#endif /* ~UINT16_MAX!=UINT_MAX */ + +/* 64-bit integers */ +#if UINT32_MAX != ULONG_MAX +typedef signed long int64_t; +typedef unsigned long uint64_t; +#define INT64_MIN (-LONG_MAX-1) +#define INT64_MAX LONG_MAX +#define UINT64_MAX ULONG_MAX +#else +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#define INT64_MIN (-LLONG_MAX-1) +#define INT64_MAX LLONG_MAX +#define UINT64_MAX ULLONG_MAX +#endif /* ~UINT32_MAX!=ULONG_MAX */ + +#endif /* ~defined(KSTDINT_H) */ diff --git a/htslib/htslib/kstring.h b/htslib/htslib/kstring.h new file mode 100644 index 0000000..2567efc --- /dev/null +++ b/htslib/htslib/kstring.h @@ -0,0 +1,270 @@ +/* The MIT License + + Copyright (c) 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/sam.h b/htslib/htslib/sam.h new file mode 100644 index 0000000..e046d01 --- /dev/null +++ b/htslib/htslib/sam.h @@ -0,0 +1,401 @@ +#ifndef BAM_H +#define BAM_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 bam1_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 new file mode 100644 index 0000000..2f79a21 --- /dev/null +++ b/htslib/htslib/synced_bcf_reader.h @@ -0,0 +1,255 @@ +/* + 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) + +/** + * 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. + */ +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); + +#endif diff --git a/htslib/htslib/tbx.h b/htslib/htslib/tbx.h new file mode 100644 index 0000000..71b4ac2 --- /dev/null +++ b/htslib/htslib/tbx.h @@ -0,0 +1,52 @@ +#ifndef TBX_H +#define 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 new file mode 100644 index 0000000..ef95ee0 --- /dev/null +++ b/htslib/htslib/vcf.h @@ -0,0 +1,824 @@ +/* + todo: + - make the function names consistent + - provide calls to abstract away structs as much as possible + */ + +#ifndef BCF_H +#define BCF_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 for BCF_HL_FLT,INFO,FMT + 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; + 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 + uint8_t *unpack_ptr; // position of the last unpack call + 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, const 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); + + /** + * 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(). */ + void 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. After all samples have been added, NULL + * must be passed to update internal header structures. + */ + 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, ...); + + 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 */ + 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_hrec_t *bcf_hdr_get_hrec(const bcf_hdr_t *hdr, int type, const char *id); // type is one of BCF_HL_FLT,..,BCF_HL_CTG + 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 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 + */ + 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_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,type,int_id) ((hdr)->id[(type)==BCF_DT_CTG?BCF_DT_CTG:BCF_DT_ID][int_id].val->hrec[(type)==BCF_DT_CTG?0: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 new file mode 100644 index 0000000..9d21d8a --- /dev/null +++ b/htslib/htslib/vcf_sweep.h @@ -0,0 +1,15 @@ +#ifndef __VCF_SWEEP_H__ +#define __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 new file mode 100644 index 0000000..18b9503 --- /dev/null +++ b/htslib/htslib/vcfutils.h @@ -0,0 +1,94 @@ +/* + Time will show if this module will be merged into others + or perhaps removed completely. +*/ +#ifndef VCF_UTILS_H +#define VCF_UTILS_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. + * + * todo: BCF output + */ +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 + * + * todo: BCF output + */ +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 new file mode 100644 index 0000000..73ac5eb --- /dev/null +++ b/htslib/htslib_vars.mk @@ -0,0 +1,20 @@ +# Makefile variables useful for third-party code using htslib's public API. +# +# Copyright (C) 2013-2014 Genome Research Ltd. +# +# Author: John Marshall + +# 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_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 new file mode 100644 index 0000000..10c0973 --- /dev/null +++ b/htslib/kfunc.c @@ -0,0 +1,254 @@ +#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 new file mode 100644 index 0000000..64b3fa6 --- /dev/null +++ b/htslib/knetfile.c @@ -0,0 +1,622 @@ +/* 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 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 (getaddrinfo(host, port, &hints, &res) != 0) __err_connect("getaddrinfo"); + 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 ( sscanf(fp->response,"%*d %lld", &file_size) != 1 ) + { + fprintf(stderr,"[kftp_connect_file] %s\n", fp->response); + 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 ) 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 + 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) { + free(buf); + fprintf(stderr, "[khttp_connect_file] fail to open file (HTTP code: %d).\n", ret); + netclose(fp->fd); + 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 new file mode 100644 index 0000000..b4202f5 --- /dev/null +++ b/htslib/kstring.c @@ -0,0 +1,229 @@ +#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/sam.5 b/htslib/sam.5 new file mode 100644 index 0000000..4c86aa8 --- /dev/null +++ b/htslib/sam.5 @@ -0,0 +1,45 @@ +'\" t +.TH sam 5 "August 2013" "htslib" "Bioinformatics formats" +.SH NAME +sam \- Sequence Alignment/Map file format +.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 new file mode 100644 index 0000000..bc5e3ca --- /dev/null +++ b/htslib/sam.c @@ -0,0 +1,1797 @@ +#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, 4); + 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(4 * 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, 4); + 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; + if (fp->is_cram) { + ret = cram_index_build(fp->fp.cram, fn); + } else { + idx = bam_index(fp->fp.bgzf, min_shift); + if ( !idx ) + { + hts_close(fp); + return -1; + } + hts_idx_save(idx, fn, min_shift > 0 + ? HTS_FMT_CSI : HTS_FMT_BAI); + hts_idx_destroy(idx); + } + 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; + if (fp->is_bin) return bam_read1(bgzfp, b); + else if (fp->is_cram) return cram_get_bam_seq(fp->fp.cram, &b); + else { + // 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) +{ + if (fp->is_bin) return bam_index_load(fn); + else if (fp->is_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; + } + else 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) +{ + if (fp->is_bin) { + return bam_hdr_read(fp->fp.bgzf); + } else if (fp->is_cram) { + return cram_header_to_bam(fp->fp.cram->header); + } else { + 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; + } +} + +int sam_hdr_write(htsFile *fp, const bam_hdr_t *h) +{ + if (fp->is_bin) { + bam_hdr_write(fp->fp.bgzf, h); + } else if (fp->is_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; + } else { + 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; + } + 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') { + long x; + x = strtol(q, &q, 10); + if (x < 0) { + 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 { + 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) +{ + if (fp->is_bin) { + 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; + } else if (fp->is_cram) { + return cram_get_bam_seq(fp->fp.cram, &b); + } else { + 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; + } +} + +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) +{ + if (fp->is_bin) { + return bam_write1(fp->fp.bgzf, b); + } else if (fp->is_cram) { + return cram_put_bam_seq(fp->fp.cram, (bam1_t *)b); + } else { + 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; + } +} + +/************************ + *** 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 ) { (*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 ) + { + 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 ) { (*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 ) { (*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, 8); + 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 new file mode 100644 index 0000000..5fc9594 --- /dev/null +++ b/htslib/synced_bcf_reader.c @@ -0,0 +1,1183 @@ +#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); + +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, 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 ); + 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) +{ + 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 = hts_open(fname, "r"); + if ( !reader->file ) return 0; + + reader->type = reader->file->is_bin? FT_BCF : FT_VCF; + if (reader->file->is_compressed) reader->type |= FT_GZ; + + if ( files->require_index ) + { + if ( reader->type==FT_VCF_GZ ) + { + reader->tbx_idx = tbx_index_load(fname); + if ( !reader->tbx_idx ) + { + fprintf(stderr,"[add_reader] Could not load the index of %s\n", fname); + return 0; + } + + reader->header = bcf_hdr_read(reader->file); + } + else if ( reader->type==FT_BCF_GZ ) + { + reader->header = bcf_hdr_read(reader->file); + + reader->bcf_idx = bcf_index_load(fname); + if ( !reader->bcf_idx ) + { + fprintf(stderr,"[add_reader] Could not load the index of %s\n", fname); + return 0; // not indexed..? + } + } + else + { + fprintf(stderr,"Index required, expected .vcf.gz or .bcf file: %s\n", fname); + return 0; + } + } + else + { + if ( reader->type & FT_BCF ) + { + reader->header = bcf_hdr_read(reader->file); + } + else if ( reader->type & FT_VCF ) + { + reader->header = bcf_hdr_read(reader->file); + } + else + { + fprintf(stderr,"File type not recognised: %s\n", fname); + return 0; + } + files->streaming = 1; + } + if ( files->streaming && files->nreaders>1 ) + { + 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 ) + { + fprintf(stderr,"[%s:%d %s] Error: cannot tabix-jump in streaming mode\n", __FILE__,__LINE__,__FUNCTION__); + return 0; + } + if ( !reader->header ) 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->type & FT_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->type & FT_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; + } + + // 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 ) + { + if ( bcf_sr_regions_overlap(files->targets, chr, min_pos, min_pos)<0 ) + { + // 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; + int ft_type = hts_file_type(regions); + if ( ft_type & FT_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 ) 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 new file mode 100644 index 0000000..1bd9533 --- /dev/null +++ b/htslib/tabix.1 @@ -0,0 +1,132 @@ +.TH tabix 1 "11 May 2010" "tabix-0.2.0" "Bioinformatics tools" +.SH NAME +.PP +bgzip - Block compression/decompression utility +.PP +tabix - Generic indexer for TAB-delimited genome position files +.SH SYNOPSIS +.PP +.B bgzip +.RB [ \-cdhB ] +.RB [ \-b +.IR virtualOffset ] +.RB [ \-s +.IR size ] +.RI [ file ] +.PP +.B tabix +.RB [ \-0lf ] +.RB [ \-p +.R 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 +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 OPTIONS OF TABIX +.TP 10 +.BI "-p " STR +Input format for indexing. Valid values are: gff, bed, sam, vcf and +psltab. 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 " 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 "-b " INT +Column of start chromosomal position. [4] +.TP +.BI "-e " INT +Column of end chromosomal position. The end column can be the same as the +start column. [5] +.TP +.BI "-S " INT +Skip first INT lines in the data file. [0] +.TP +.BI "-c " CHAR +Skip lines started with character CHAR. [#] +.TP +.B -0 +Specify that the position in the data file is 0-based (e.g. UCSC files) +rather than 1-based. +.TP +.B -h +Print the header/meta lines. +.TP +.B -B +The second argument is a BED file. When this option is in use, the input +file may not be sorted or indexed. The entire input will be read sequentially. Nonetheless, +with this option, the format of the input must be specificed correctly on the command line. +.TP +.B -f +Force to overwrite the index file if it is present. +.TP +.B -l +List the sequence names stored in the index file. +.RE + +.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 new file mode 100644 index 0000000..2a30fed --- /dev/null +++ b/htslib/tabix.c @@ -0,0 +1,374 @@ +#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" + +typedef struct +{ + int min_shift; +} +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_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; + return 0; +} + +#define PRINT_HEADER 1 +#define HEADER_ONLY 2 +static int query_regions(char **argv, int argc, int mode) +{ + char *fname = argv[0]; + int i, ftype = file_type(fname); + + if ( ftype & IS_TXT || !ftype ) + { + htsFile *fp = hts_open(fname,"r"); + if ( !fp ) error("Could not read %s\n", fname); + tbx_t *tbx = tbx_index_load(fname); + if ( !tbx ) error("Could not load .tbi index of %s\n", fname); + kstring_t str = {0,0,0}; + if ( mode ) + { + while ( hts_getline(fp, KS_SEP_LINE, &str) >= 0 ) + { + if ( !str.l || str.s[0]!=tbx->conf.meta_char ) break; + puts(str.s); + } + } + if ( mode!=HEADER_ONLY ) + { + for (i=1; i= 0) puts(str.s); + tbx_itr_destroy(itr); + } + } + free(str.s); + if ( hts_close(fp) ) error("hts_close returned non-zero status: %s\n", fname); + tbx_destroy(tbx); + } + else if ( ftype==IS_BCF ) // output uncompressed VCF + { + htsFile *fp = hts_open(fname,"r"); + if ( !fp ) error("Could not read %s\n", fname); + 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 ( mode ) + { + bcf_hdr_write(out,hdr); + } + if ( mode!=HEADER_ONLY ) + { + bcf1_t *rec = bcf_init(); + for (i=1; i=0 ) bcf_write(out,hdr,rec); + tbx_itr_destroy(itr); + } + bcf_destroy(rec); + } + if ( hts_close(fp) ) error("hts_close returned non-zero status: %s\n", fname); + if ( hts_close(out) ) error("hts_close returned non-zero status for stdout\n"); + bcf_hdr_destroy(hdr); + hts_idx_destroy(idx); + } + else if ( ftype==IS_BAM ) // todo: BAM + error("Please use \"samtools view\" for querying BAM files.\n"); + return 0; +} +static int query_chroms(char *fname) +{ + const char **seq; + int i, nseq, ftype = file_type(fname); + if ( ftype & IS_TXT || !ftype ) + { + tbx_t *tbx = tbx_index_load(fname); + if ( !tbx ) error("Could not load .tbi index of %s\n", fname); + seq = tbx_seqnames(tbx, &nseq); + 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, "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, " -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, " -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, " -m, --min-shift INT set the minimal interval size to 1<= 0) + { + switch (c) + { + case 'r': reheader = optarg; break; + case 'h': mode = PRINT_HEADER; break; + case 'H': mode = HEADER_ONLY; 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 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 || mode==HEADER_ONLY ) + return query_regions(&argv[optind], argc-optind, mode); + + 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; + else if ( ftype==IS_BCF ) + { + if ( min_shift <= 0 ) min_shift = 14; + } + else if ( ftype==IS_BAM ) + { + if ( min_shift <= 0 ) min_shift = 14; + } + } + if ( reheader ) + return reheader_file(fname, reheader, ftype, conf_ptr); + + if ( conf_ptr ) + conf = *conf_ptr; + + char *suffix = min_shift <= 0 ? ".tbi" : (ftype==IS_BAM ? ".bai" : ".csi"); + 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 ( min_shift > 0 ) // CSI index + { + 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 + { + 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 new file mode 100644 index 0000000..035cb68 --- /dev/null +++ b/htslib/tbx.c @@ -0,0 +1,290 @@ +#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); + 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); k +#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.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 ) + { + bcf_hdr_sync(h); + return 0; + } + + const char *ss = s; + while ( !*ss && isspace(*ss) ) ss++; + if ( !*ss ) + { + fprintf(stderr,"[W::%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, "[W::%s] Duplicated sample name '%s'. Skipped.\n", __func__, s); + free(sdup); + return -1; + } + int n = kh_size(d); + h->samples = (char**) realloc(h->samples,sizeof(char*)*n); + h->samples[n-1] = sdup; + return 0; +} + +void bcf_hdr_parse_sample_line(bcf_hdr_t *h, const char *str) +{ + 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; + bcf_hdr_add_sample(h,s); + free(s); + } + if (*q == 0 || *q == '\n') break; + p = q + 1; + } + bcf_hdr_add_sample(h,NULL); +} + +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); + } + } + 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--; // 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 && *q!='=' ) q++; + n = q-p; + if ( *q!='=' || !n ) { *len = q-line+1; bcf_hrec_destroy(hrec); return NULL; } // wrong format + 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 ) return 0; + 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] = i; + 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], "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; + 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) +{ + 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; + + return hrec->type==BCF_HL_GEN ? 0 : 1; +} + +bcf_hrec_t *bcf_hdr_get_hrec(const bcf_hdr_t *hdr, int type, const char *id) +{ + int i; + if ( type==BCF_HL_GEN ) + { + for (i=0; inhrec; i++) + { + if ( hdr->hrec[i]->type!=BCF_HL_GEN ) continue; + if ( !strcmp(hdr->hrec[i]->key,id) ) 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, id); + 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->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; + } + bcf_hdr_parse_sample_line(hdr,p); + if ( needs_sync ) bcf_hdr_sync(hdr); + bcf_hdr_check_sanity(hdr); + return 0; +} + +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; + if ( bcf_hdr_add_hrec(hdr, hrec) ) + bcf_hdr_sync(hdr); + 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, key); + 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 ( !strcmp(hdr->hrec[i]->key,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); + + bcf_hdr_sync(hdr); + } +} + +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"); + 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"); + 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); + } + bcf_hdr_sync(hdr); +} + +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->is_bin) + 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, const bcf_hdr_t *h) +{ + if (!hfp->is_bin) 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; + v->unpack_ptr = NULL; + 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->is_bin) 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]); + line->rlen = line->n_allele ? strlen(line->d.allele[0]) : 0; // beware: this neglects SV's END tag +} +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) +{ + kstring_t tmp = {0,0,0}; + if ( !line->shared.l ) + { + // New line, get ready for BCF output + tmp = line->shared; + bcf1_sync_id(line, &tmp); + bcf1_sync_alleles(line, &tmp); + bcf1_sync_filter(line, &tmp); + 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; + + // 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]; + + // 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); + line->rlen = line->n_allele ? strlen(line->d.allele[0]) : 0; // beware: this neglects SV's END tag + } + ptr_ori += line->unpack_size[1]; + + // 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]; + + // INFO: pairs of typed vectors + if ( line->d.shared_dirty & BCF1_DIRTY_INF ) + bcf1_sync_info(line, &tmp); + else + { + int size = line->shared.l - (size_t)ptr_ori + (size_t)line->shared.s; + kputsn_(ptr_ori, size, &tmp); + } + free(line->shared.s); + line->shared = tmp; + } + 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; + } + if ( !line->n_sample ) line->n_fmt = 0; + line->d.shared_dirty = line->d.indiv_dirty = 0; + return 0; +} + +bcf1_t *bcf_dup(bcf1_t *src) +{ + bcf1_sync(src); + + bcf1_t *out = bcf_init1(); + + out->rid = src->rid; + out->pos = src->pos; + out->rlen = src->rlen; + out->qual = src->qual; + out->n_info = src->n_info; out->n_allele = src->n_allele; + out->n_fmt = src->n_fmt; out->n_sample = src->n_sample; + + out->shared.m = out->shared.l = src->shared.l; + out->shared.s = (char*) malloc(out->shared.l); + memcpy(out->shared.s,src->shared.s,out->shared.l); + + out->indiv.m = out->indiv.l = src->indiv.l; + out->indiv.s = (char*) malloc(out->indiv.l); + memcpy(out->indiv.s,src->indiv.s,out->indiv.l); + + return out; +} + +int bcf_write(htsFile *hfp, const bcf_hdr_t *h, bcf1_t *v) +{ + 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->is_bin ) 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_hrec_add_key(hrec, "length", strlen("length")); + bcf_hrec_set_val(hrec, hrec->nkeys-1, "2147483647", strlen("2147483647"), 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); kis_compressed==1 ) + 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=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 * 4); + // 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; + 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<<2); + 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<<2); + 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->unpack_ptr = ptr; + b->unpacked |= BCF_UN_STR; + } + if ((which&BCF_UN_FLT) && !(b->unpacked&BCF_UN_FLT)) { // FILTER + ptr = b->unpack_ptr; + 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->unpack_ptr = ptr; + b->unpacked |= BCF_UN_FLT; + } + if ((which&BCF_UN_INFO) && !(b->unpacked&BCF_UN_INFO)) { // INFO + ptr = b->unpack_ptr; + 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 (memcmp(&v->qual, &bcf_float_missing, 4) == 0) 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) { + if (z->type == BCF_BT_FLOAT) ksprintf(s, "%g", z->v1.f); + else if (z->type != BCF_BT_CHAR) kputw(z->v1.i, s); + else kputc(z->v1.i, s); + } 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->is_compressed==1 ) + 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->is_compressed==1 ) + 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->fp.bgzf->is_compressed ) { 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 *** + *****************/ + +void bcf_hdr_combine(bcf_hdr_t *dst, const bcf_hdr_t *src) +{ + int i, ndst_ori = dst->nhrec, need_sync = 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; + if ( !strcmp(src->hrec[i]->key,dst->hrec[j]->key) && !strcmp(src->hrec[i]->value,dst->hrec[j]->value) ) break; + } + if ( j>=ndst_ori ) + need_sync += bcf_hdr_add_hrec(dst, bcf_hrec_dup(src->hrec[i])); + } + else + { + bcf_hrec_t *rec = bcf_hdr_get_hrec(dst, src->hrec[i]->type, src->hrec[i]->vals[0]); + if ( !rec ) + need_sync += bcf_hdr_add_hrec(dst, bcf_hrec_dup(src->hrec[i])); + } + } + if ( need_sync ) bcf_hdr_sync(dst); +} +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 ( 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]; + } + + // 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); + 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); + 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; + 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) { + imap[i] = bcf_hdr_id2int(h0, BCF_DT_SAMPLE, samples[i]); + if (imap[i] < 0) continue; + kputc('\t', &str); + kputs(samples[i], &str); + } + } 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); + 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 (strlen(v->d.allele[i]) != 1) 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; + } + + 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); + 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 i, 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 + 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(const bcf_hdr_t *hdr, bcf1_t *line, const char *key) +{ + int i, 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 + 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 *((int32_t*)*dst) = info->v1.i; + 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 new file mode 100644 index 0000000..2598460 --- /dev/null +++ b/htslib/vcf_sweep.c @@ -0,0 +1,158 @@ +#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 new file mode 100644 index 0000000..a4a9c2f --- /dev/null +++ b/htslib/vcfutils.c @@ -0,0 +1,642 @@ +#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 + assert( an>=nac ); // sanity check for missing values + 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,missing,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 ( !(p[ial]>>1) || p[ial]==missing ) continue; /* missing allele */ \ + ac[(p[ial]>>1)-1]++; \ + } \ + } \ + } + switch (fmt_gt->type) { + case BCF_BT_INT8: BRANCH_INT(int8_t, bcf_int8_missing, bcf_int8_vector_end); break; + case BCF_BT_INT16: BRANCH_INT(int16_t, bcf_int16_missing, bcf_int16_vector_end); break; + case BCF_BT_INT32: BRANCH_INT(int32_t, bcf_int32_missing, 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,missing,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 ( !p[i] || p[i] == missing ) 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_missing, bcf_int8_vector_end); break; + case BCF_BT_INT16: BRANCH_INT(int16_t, bcf_int16_missing, bcf_int16_vector_end); break; + case BCF_BT_INT32: BRANCH_INT(int32_t, bcf_int32_missing, 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,missing,vector_end) { \ + for (i=0; in_sample; i++) \ + { \ + type_t *p = (type_t*) (gt->p + i*gt->size); \ + int ial; \ + for (ial=0; ialsize; ial++) \ + { \ + if ( p[ial]==vector_end ) break; /* smaller ploidy */ \ + if ( !(p[ial]>>1) || p[ial]==missing ) continue; /* missing allele */ \ + assert((p[ial]>>1)-1n_allele); \ + ac[(p[ial]>>1)-1]++; \ + } \ + } \ + } + switch (gt->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, "[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 ntop, inc = 0; + if ( vlen==BCF_VL_A ) + { + assert( nori==nA_ori ); // todo: will fail if all values are missing + ntop = nA_ori; + ndat = nA_new*line->n_sample; + inc = 1; + } + else + { + assert( nori==nR_ori ); // todo: will fail if all values are missing + ntop = nR_ori; + ndat = nR_new*line->n_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*nA_new; \ + 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/loadGTF.cpp b/loadGTF.cpp new file mode 100644 index 0000000..281ff4a --- /dev/null +++ b/loadGTF.cpp @@ -0,0 +1,215 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "ErrorWarning.h" +#include "serviceFuns.cpp" +#include "SjdbClass.h" + +#include + + +#define GTF_exonLoci_size 3 +#define GTF_exonTrID(ii) ((ii)*GTF_exonLoci_size) +#define GTF_exonStart(ii) ((ii)*GTF_exonLoci_size+1) +#define GTF_exonEnd(ii) ((ii)*GTF_exonLoci_size+2) + +#define GTF_extrLoci_size 5 +#define GTF_extrTrStart(ii) ((ii)*GTF_extrLoci_size) +#define GTF_extrTrEnd(ii) ((ii)*GTF_extrLoci_size+1) +#define GTF_extrTrID(ii) ((ii)*GTF_extrLoci_size+2) +#define GTF_extrExStart(ii) ((ii)*GTF_extrLoci_size+3) +#define GTF_extrExEnd(ii) ((ii)*GTF_extrLoci_size+4) + + +uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions to P->sjdb + //returns number of added junctions + if (P->sjdbOverhang>0 && P->sjdbGTFfile!="-") { + ifstream sjdbStreamIn ( P->sjdbGTFfile.c_str() ); + if (sjdbStreamIn.fail()) { + ostringstream errOut; + errOut << "FATAL error, could not open file sjdbGTFfile=" << P->sjdbGTFfile <<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + std::map transcriptIDnumber; + + uint exonN=0; + while (sjdbStreamIn.good()) {//count the number of exons + string chr1,ddd2,featureType; + sjdbStreamIn >> chr1 >> ddd2 >> featureType; + if (chr1.substr(0,1)!="#" && featureType==P->sjdbGTFfeatureExon) { + exonN++; + }; + sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line + }; + uint* exonLoci=new uint [exonN*GTF_exonLoci_size]; + char* transcriptStrand = new char [exonN]; + vector transcriptID; + + exonN=0;//re-calculate + sjdbStreamIn.clear(); + sjdbStreamIn.seekg(0,ios::beg); + while (sjdbStreamIn.good()) { + + string oneLine,chr1,ddd2,featureType; + getline(sjdbStreamIn,oneLine); + istringstream oneLineStream (oneLine); + + oneLineStream >> chr1 >> ddd2 >> featureType; + if (chr1.substr(0,1)!="#" && featureType==P->sjdbGTFfeatureExon) {//exonic line, process + + if (P->sjdbGTFchrPrefix!="-") chr1=P->sjdbGTFchrPrefix + chr1; + + if (P->chrNameIndex.count(chr1)==0) {//chr not in Genome + P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": chromosome '"<inOut->logMain << oneLine <<"\n"<> ex1 >> ex2 >> ddd2 >> str1 >> ddd2; //read all fields except the last + + string oneLine1; + getline(oneLineStream, oneLine1);//get the last field + replace(oneLine1.begin(),oneLine1.end(),';',' ');//to separate attributes + replace(oneLine1.begin(),oneLine1.end(),'=',' ');//for GFF3 processing + oneLineStream.str(oneLine1); + oneLineStream.clear(); + + string trID(""), attr1(""); + while (oneLineStream.good()) { + oneLineStream >> attr1; + if (attr1==P->sjdbGTFtagExonParentTranscript) { + oneLineStream >> trID; + trID.erase(remove(trID.begin(),trID.end(),'"'),trID.end()); + trID.erase(remove(trID.begin(),trID.end(),';'),trID.end()); +// cout <inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": no transcript_id for exon feature for line:\n"; + P->inOut->logMain << oneLine <<"\n"< (trID,(uint) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value + if (transcriptID.size() < transcriptIDnumber.size()) transcriptID.push_back(trID); + if (str1=='+') { + transcriptStrand[transcriptIDnumber[trID]]=1; + } else if (str1=='-') { + transcriptStrand[transcriptIDnumber[trID]]=2; + } else { + transcriptStrand[transcriptIDnumber[trID]]=0; + }; + }; + + exonLoci[GTF_exonTrID(exonN)]=transcriptIDnumber[trID]; + exonLoci[GTF_exonStart(exonN)]=ex1+P->chrStart[P->chrNameIndex[chr1]]-1; + exonLoci[GTF_exonEnd(exonN)]=ex2+P->chrStart[P->chrNameIndex[chr1]]-1; + ++exonN; + + };//if (chr1.substr(0,1)!="#" && featureType=="exon") + };// + + //sort exonLoci by transcript ID and exon coordinates + qsort((void*) exonLoci, exonN, sizeof(uint)*GTF_exonLoci_size, funCompareUint2); + + {// transctipt data structures + //re-sort transcripts by transcript start/end + uint* extrLoci=new uint [exonN*GTF_extrLoci_size]; //this also contains transcripts start and end + + uint trex1=0; + for (uint iex=0; iex<=exonN; iex++) { + if (exonLoci[GTF_exonTrID(iex)] != exonLoci[GTF_exonTrID(trex1)] || iex==exonN) { + for (uint iex1=trex1; iex1); + + ofstream trOut ((P->genomeDir+"/transcriptInfo.tab").c_str()); + trOut<genomeDir+"/exonInfo.tab").c_str()); + exOut<chrBin[exonLoci[GTF_exonStart(exI)] >> P->genomeChrBinNbits]; + if ( exonLoci[GTF_exonStart(exI)]<=exonLoci[GTF_exonEnd(exI-1)]+1 ) { + P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": overlapping or touching exons:\n"; + P->inOut->logMain << P->chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-P->chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-P->chrStart[chr1] <<"\n"; + P->inOut->logMain << P->chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-P->chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-P->chrStart[chr1] <<"\n"; + } else { + sjLoci[sjN*3]=exonLoci[GTF_exonEnd(exI-1)]+1; + sjLoci[sjN*3+1]=exonLoci[GTF_exonStart(exI)]-1; + sjLoci[sjN*3+2]=(uint) transcriptStrand[trIDn]; + sjN++; + }; + } else { + trIDn=exonLoci[GTF_exonTrID(exI)]; + }; + }; + + qsort((void*) sjLoci, sjN, sizeof(uint)*3, funCompareUint2); + + char strandChar[3]={'.','+','-'}; + uint sjdbN1=sjdbLoci.chr.size(); + for (uint ii=0;iichrBin[sjLoci[ii*3] >> P->genomeChrBinNbits]; + sjdbLoci.chr.push_back(P->chrName[chr1]); + sjdbLoci.start.push_back(sjLoci[ii*3]+1-P->chrStart[chr1]); + sjdbLoci.end.push_back(sjLoci[ii*3+1]+1-P->chrStart[chr1]); + sjdbLoci.str.push_back(strandChar[sjLoci[ii*3+2]]); + }; + }; + + ofstream sjdbList ((P->genomeDir+"/sjdbList.fromGTF.out.tab").c_str()); + for (uint ii=sjdbN1;iiinOut->logMain << "Processing sjdbGTFfile=" << P->sjdbGTFfile <<", found:\n"; + P->inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; + + return sjdbLoci.chr.size()-sjdbN1; + } else { + return 0; + }; +}; diff --git a/loadGTF.h b/loadGTF.h new file mode 100644 index 0000000..226222b --- /dev/null +++ b/loadGTF.h @@ -0,0 +1,7 @@ +#ifndef DEF_loadGTF +#define DEF_loadGTF +#include "Parameters.h" +#include "SjdbClass.h" +uint loadGTF(SjdbClass &sjdbLoci, Parameters *P); +#endif + diff --git a/mapThreadsSpawn.cpp b/mapThreadsSpawn.cpp new file mode 100644 index 0000000..8ecb83f --- /dev/null +++ b/mapThreadsSpawn.cpp @@ -0,0 +1,29 @@ +#include "mapThreadsSpawn.h" +#include "ThreadControl.h" +#include "GlobalVariables.h" +#include "ErrorWarning.h" + +void mapThreadsSpawn (Parameters *P, ReadAlignChunk** RAchunk) { + for (int ithread=1;ithreadrunThreadN;ithread++) {//spawn threads + int threadStatus=pthread_create(&g_threadChunks.threadArray[ithread], NULL, &g_threadChunks.threadRAprocessChunks, (void *) RAchunk[ithread]); + if (threadStatus>0) {//something went wrong with one of threads + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: phtread error while creating thread # " << ithread <<", error code: "<inOut->logMain, 1, *P); + }; + P->inOut->logMain << "Created thread # " <processChunks(); //start main thread + + for (int ithread=1;ithreadrunThreadN;ithread++) {//wait for all threads to complete + int threadStatus = pthread_join(g_threadChunks.threadArray[ithread], NULL); + if (threadStatus>0) {//something went wrong with one of threads + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: phtread error while joining thread # " << ithread <<", error code: "<inOut->logMain, 1, *P); + }; + P->inOut->logMain << "Joined thread # " < +#include "ErrorWarning.h" + +int compareUint(const void* i1, const void* i2) {//compare uint arrays + uint s1=*( (uint*)i1 ); + uint s2=*( (uint*)i2 ); + + if (s1>s2) { + return 1; + } else if (s1> Log.timing.out"); + + + Junction oneSJ; + char** sjChunks = new char* [P->runThreadN+1]; + #define OUTSJ_limitScale 5 + OutSJ allSJ (P->limitOutSJcollapsed*OUTSJ_limitScale,P); + + if (P->outFilterBySJoutStage!=1) {//chunkOutSJ + for (int ic=0;icrunThreadN;ic++) {//populate sjChunks with links to data + sjChunks[ic]=RAchunk[ic]->chunkOutSJ->data; + memset(sjChunks[ic]+RAchunk[ic]->chunkOutSJ->N*oneSJ.dataSize,255,oneSJ.dataSize);//mark the junction after last with big number + }; + } else {//chunkOutSJ1 + for (int ic=0;icrunThreadN;ic++) {//populate sjChunks with links to data + sjChunks[ic]=RAchunk[ic]->chunkOutSJ1->data; + memset(sjChunks[ic]+RAchunk[ic]->chunkOutSJ1->N*oneSJ.dataSize,255,oneSJ.dataSize);//mark the junction after last with big number + }; + }; + + while (true) { + int icOut=-1;//chunk from which the junction is output + for (int ic=0;icrunThreadN;ic++) {//scan through all chunks, find the "smallest" junction + if ( *(uint*)(sjChunks[ic])runThreadN;ic++) {//scan through all chunks, find the junctions equal to icOut-junction + if (ic!=icOut && compareSJ((void*) sjChunks[ic], (void*) sjChunks[icOut])==0) { + oneSJ.collapseOneSJ(sjChunks[icOut],sjChunks[ic],P);//collapse ic-junction into icOut + sjChunks[ic] += oneSJ.dataSize;//shift ic-chunk by one junction + }; + }; + + //write out the junction + oneSJ.junctionPointer(sjChunks[icOut],0);//point to the icOut junction + //filter the junction + bool sjFilter; + sjFilter=*oneSJ.annot>0 \ + || ( ( *oneSJ.countUnique>=(uint) P->outSJfilterCountUniqueMin[(*oneSJ.motif+1)/2] \ + || (*oneSJ.countMultiple+*oneSJ.countUnique)>=(uint) P->outSJfilterCountTotalMin[(*oneSJ.motif+1)/2] )\ + && *oneSJ.overhangLeft >= (uint) P->outSJfilterOverhangMin[(*oneSJ.motif+1)/2] \ + && *oneSJ.overhangRight >= (uint) P->outSJfilterOverhangMin[(*oneSJ.motif+1)/2] \ + && ( (*oneSJ.countMultiple+*oneSJ.countUnique)>P->outSJfilterIntronMaxVsReadN.size() || *oneSJ.gap<=(uint) P->outSJfilterIntronMaxVsReadN[*oneSJ.countMultiple+*oneSJ.countUnique-1]) ); + + if (sjFilter || P->outFilterBySJoutStage==2) {//record the junction in all SJ + memcpy(allSJ.data+allSJ.N*oneSJ.dataSize,sjChunks[icOut],oneSJ.dataSize); + allSJ.N++; + if (allSJ.N == P->limitOutSJcollapsed*OUTSJ_limitScale ) { + ostringstream errOut; + errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; + errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + }; + + sjChunks[icOut] += oneSJ.dataSize;//shift icOut-chunk by one junction + }; + + bool* sjFilter=new bool[allSJ.N]; + if (P->outFilterBySJoutStage!=2) { + //filter non-canonical junctions that are close to canonical + uint* sjA = new uint [allSJ.N*3]; + for (uint ii=0;ii0) x1=*( (uint*)(allSJ.data+(ii-1)*oneSJ.dataSize) ); //previous junction donor + if (ii+1= (uint) P->outSJfilterDistToOtherSJmin[(*oneSJ.motif+1)/2]; + sjA[ii*3]=*oneSJ.start+(uint)*oneSJ.gap;//acceptor + sjA[ii*3+1]=ii; + + if (*oneSJ.annot==0) { + sjA[ii*3+2]=*oneSJ.motif; + } else { + sjA[ii*3+2]=SJ_MOTIF_SIZE+1; + }; + + }; + qsort((void*) sjA, allSJ.N, sizeof(uint)*3, compareUint); + for (uint ii=0;ii0) x1=sjA[ii*3-3]; //previous junction donor + if (ii+1= (uint) P->outSJfilterDistToOtherSJmin[(sjA[ii*3+2]+1)/2] ); + }; + }; + }; + + //output junctions + if (P->outFilterBySJoutStage!=1) {//output file + ofstream outSJfileStream((P->outFileNamePrefix+"SJ.out.tab").c_str()); + for (uint ii=0;iioutFilterBySJoutStage==2 ) { + oneSJ.junctionPointer(allSJ.data,ii); + oneSJ.outputStream(outSJfileStream, P);//write to file + }; + }; + outSJfileStream.close(); + } else {//make sjNovel array in P + for (uint ii=0;iisjNovelN++; + }; + }; + P->sjNovelStart = new uint [P->sjNovelN]; + P->sjNovelEnd = new uint [P->sjNovelN]; + P->inOut->logMain <<"Detected " <sjNovelN<<" novel junctions that passed filtering, will proceed to filter reads that contained unannotated junctions"<sjNovelStart[isj]=*oneSJ.start; + P->sjNovelEnd[isj]=*oneSJ.start+(uint)(*oneSJ.gap)-1; + isj++; + }; + }; + }; + }; +}; diff --git a/outputSJ.h b/outputSJ.h new file mode 100644 index 0000000..5dbecae --- /dev/null +++ b/outputSJ.h @@ -0,0 +1,4 @@ +#ifndef OUTPUTSJ_DEF +#define OUTPUTSJ_DEF +void outputSJ(ReadAlignChunk** RAchunk, Parameters* P); +#endif diff --git a/parametersDefault b/parametersDefault new file mode 100644 index 0000000..133e633 --- /dev/null +++ b/parametersDefault @@ -0,0 +1,470 @@ +### versions +versionSTAR 020201 + int>0: STAR release numeric ID. Please do not change this value! +versionGenome 020101 020200 + int>0: oldest value of the Genome version compatible with this STAR release. Please do not change this value! + +### PARAMETER FILES +parametersFiles - + string: name of a user-defined parameters file, "-": none. Can only be defined on the command line. + +### RUN PARAMETERS + +runMode alignReads + string: type of the run: + alignReads ... map reads + genomeGenerate ... generate genome files + inputAlignmentsFromBAM ... input alignments from BAM. Presently only works with --outWigType and --bamRemoveDuplicates. + +runThreadN 1 + int: number of threads to run STAR + + + +### GENOME PARAMETERS + +genomeDir ./GenomeDir/ + string: path to the directory where genome files are stored (if runMode!=generateGenome) or will be generated (if runMode==generateGenome) + +genomeLoad NoSharedMemory + string: mode of shared memory usage for the genome files + LoadAndKeep ... load genome into shared and keep it in memory after run + LoadAndRemove ... load genome into shared but remove it after run + LoadAndExit ... load genome into shared memory and exit, keeping the genome in memory for future runs + Remove ... do not map anything, just remove loaded genome from memory + NoSharedMemory ... do not use shared memory, each job will have its own private copy of the genome + + + +### GENOME GENERATION PARAMETERS + +genomeFastaFiles - + fasta files with genomic sequence for genome files generation, only used if runMode==genomeGenerate + string(s): path(s) to the files from the working directory (separated by spaces) + +genomeChrBinNbits 18 + int: =log2(chrBin), where chrBin is the size of the bins for genome storage: each chromosome will occupy an integer number of bins + +genomeSAindexNbases 14 + int: length (bases) of the SA pre-indexing string. Typically between 10 and 15. Longer strings will use much more memory, but allow faster searches. + +genomeSAsparseD 1 + int>0: suffux array sparsity, i.e. distance between indices: use bigger numbers to decrease needed RAM at the cost of mapping speed reduction + +### INPUT FROM BAM +inputBAMfile - + string: path to BAM input file, to be used with --runMode inputAlignmentsFromBAM + +### READ PARAMETERS + +readFilesIn Read1 Read2 + string(s): paths to files that contain input read1 (and, if needed, read2) + +readFilesCommand - + string(s): command line to execute for each of the input file. This command should generate FASTA or FASTQ text and send it to stdout + For example: zcat - to uncompress .gz files, bzcat - to uncompress .bz2 files, etc. + +readMapNumber -1 + int: number of reads to map from the beginning of the file + -1: map all reads + +readMatesLengthsIn NotEqual + string: Equal/NotEqual - lengths of names,sequences,qualities for both mates are the same / not the same. NotEqual is safe in all situations. + +clip3pNbases 0 + int(s): number(s) of bases to clip from 3p of each mate. If one value is given, it will be assumed the same for both mates. + +clip5pNbases 0 + int(s): number(s) of bases to clip from 5p of each mate. If one value is given, it will be assumed the same for both mates. + +clip3pAdapterSeq - + string(s): adapter sequences to clip from 3p of each mate. If one value is given, it will be assumed the same for both mates. + +clip3pAdapterMMp 0.1 + double(s): max proportion of mismatches for 3p adpater clipping for each mate. If one value is given, it will be assumed the same for both mates. + +clip3pAfterAdapterNbases 0 + int(s): number of bases to clip from 3p of each mate after the adapter clipping. If one value is given, it will be assumed the same for both mates. + + +### LIMITS + +limitGenomeGenerateRAM 31000000000 + int>0: maximum available RAM (bytes) for genome generation + +limitIObufferSize 150000000 + int>0: max available buffers size (bytes) for input/output, per thread + +limitOutSAMoneReadBytes 100000 + int>0: max size of the SAM record for one read. Recommended value: >(2*(LengthMate1+LengthMate2+100)*outFilterMultimapNmax + +limitOutSJoneRead 1000 + int>0: max number of junctions for one read (including all multi-mappers) + +limitOutSJcollapsed 1000000 + int>0: max number of collapsed junctions + +limitBAMsortRAM 0 + int>=0: maximum available RAM for sorting BAM. If =0, it will be set to the genome index size + +### OUTPUT: GENERAL +outFileNamePrefix ./ + string: output files name prefix (including full or relative path). Can only be defined on the command line. + +outTmpDir - + string: path to a directory that will be used as temporary by STAR. All contents of this directory will be removed! + - the temp directory will default to outFileNamePrefix_STARtmp + +outStd Log + string: which output will be directed to stdout (standard out) + Log ... log messages + SAM ... alignments in SAM format (which normally are output to Aligned.out.sam file), normal standard output will go into Log.std.out + BAM_Unsorted ... alignments in BAM format, unsorted. Requires --outSAMtype BAM Unsorted + BAM_SortedByCoordinate ... alignments in BAM format, unsorted. Requires --outSAMtype BAM SortedByCoordinate + BAM_Quant ... alignments to transcriptome in BAM format, unsorted. Requires --quantMode TranscriptomeSAM + +outReadsUnmapped None + string: output of unmapped reads (besides SAM) + None ... no output + Fastx ... output in separate fasta/fastq files, Unmapped.out.mate1/2 + +outQSconversionAdd 0 + int: add this number to the quality score (e.g. to convert from Illumina to Sanger, use -31) + + +### OUTPUT: SAM/BAM +outSAMtype SAM + strings: type of SAM/BAM output + 1st word: + BAM ... output BAM without sorting + SAM ... output SAM without sorting + None ... no SAM/BAM output + 2nd, 3rd: + Unsorted ... standard unsorted + SortedByCoordinate ... sorted by coordinate + +outSAMmode Full + string: mode of SAM output + None ... no SAM output + Full ... full SAM output + NoQS ... full SAM but without quality scores + +outSAMstrandField None + string: Cufflinks-like strand field flag + None ... not used + intronMotif ... strand derived from the intron motif. Reads with inconsistent and/or non-canonical introns are filtered out. + +outSAMattributes Standard + string: a string of desired SAM attributes, in the order desired for the output SAM + NH HI AS nM NM MD jM jI XS ... any combination in any order + Standard ... NH HI AS nM + All ... NH HI AS nM NM MD jM jI + None ... no attributes + +outSAMunmapped None + string: output of unmapped reads in the SAM format + None ... no output + Within ... output unmapped reads within the main SAM file (i.e. Aligned.out.sam) + +outSAMorder Paired + string: type of sorting for the SAM output + Paired: one mate after the other for all paired alignments + PairedKeepInputOrder: one mate after the other for all paired alignments, the order is kept the same as in the input FASTQ files + +outSAMprimaryFlag OneBestScore + string: which alignments are considered primary - all others will be marked with 0x100 bit in the FLAG + OneBestScore ... only one alignment with the best score is primary + AllBestScore ... all alignments with the best score are primary + +outSAMreadID Standard + string: read ID record type + Standard ... first word (until space) from the FASTx read ID line, removing /1,/2 from the end + Number ... read number (index) in the FASTx file + +outSAMmapqUnique 255 + int: 0 to 255: the MAPQ value for unique mappers + +outSAMattrRGline - + string(s): SAM/BAM read group line. The first word contains the read group identifier and must start with "ID:", e.g. --outSAMattrRGline ID:xxx CN:yy "DS:z z z". + xxx will be added as RG tag to each output alignment. Any spaces in the tag values have to be double quoted. + Comma separated RG lines correspons to different (comma separated) input files in --readFilesIn. + +outSAMheaderHD - + strings: @HD (header) line of the SAM header + +outSAMheaderPG - + strings: extra @PG (software) line of the SAM header (in addition to STAR) + +outSAMheaderCommentFile - + string: path to the file with @CO (comment) lines of the SAM header + +outBAMcompression -1 + int: -1 to 10 BAM compression level, -1=default compression, 0=no compression, 10=maximum compression + + +### BAM processing + +bamRemoveDuplicatesType - + string: mark duplicates in the BAM file, for now only works with sorted BAM feeded with inputBAMfile + - ... no duplicate removal/marking + UniqueIdentical ... mark all multimappers, and duplicate unique mappers. The coordinates, FLAG, CIGAR must be identical + +bamRemoveDuplicatesMate2basesN 0 + int>0: number of bases from the 5' of mate 2 to use in collapsing (e.g. for RAMPAGE) + +### OUTPUT WIGGLE +outWigType None + string(s): type of signal output, e.g. "bedGraph" OR "bedGraph read1_5p" + 1st word: + None ... no signal output + bedGraph ... bedGraph format + wiggle ... wiggle format + 2nd word: + read1_5p ... signal from only 5' of the 1st read, useful for CAGE/RAMPAGE etc + read2 ... signal from only 2nd read + +outWigStrand Stranded + string: strandedness of wiggle/bedGraph output + Stranded ... separate strands, str1 and str2 + Unstranded ... collapsed strands + +outWigReferencesPrefix - + string: prefix matching reference names to include in the output wiggle file, e.g. "chr", default "-" - include all references + +outWigNorm RPM + string: type of normalization for the signal + RPM ... reads per million of mapped reads + None ... no normalization, "raw" counts + +### OUTPUT FILTERING +outFilterType Normal + string: type of filtering + Normal ... standard filtering using only current alignment + BySJout ... keep only those reads that contain junctions that passed filtering into SJ.out.tab + +outFilterMultimapScoreRange 1 + int: the score range below the maximum score for multimapping alignments + +outFilterMultimapNmax 10 + int: read alignments will be output only if the read maps fewer than this value, otherwise no alignments will be output + +outFilterMismatchNmax 10 + int: alignment will be output only if it has fewer mismatches than this value + +outFilterMismatchNoverLmax 0.3 + int: alignment will be output only if its ratio of mismatches to *mapped* length is less than this value + +outFilterMismatchNoverReadLmax 1 + int: alignment will be output only if its ratio of mismatches to *read* length is less than this value + + +outFilterScoreMin 0 + int: alignment will be output only if its score is higher than this value + +outFilterScoreMinOverLread 0.66 + float: outFilterScoreMin normalized to read length (sum of mates' lengths for paired-end reads) + +outFilterMatchNmin 0 + int: alignment will be output only if the number of matched bases is higher than this value + +outFilterMatchNminOverLread 0.66 + float: outFilterMatchNmin normalized to read length (sum of mates' lengths for paired-end reads) + +outFilterIntronMotifs None + string: filter alignment using their motifs + None ... no filtering + RemoveNoncanonical ... filter out alignments that contain non-canonical junctions + RemoveNoncanonicalUnannotated ... filter out alignments that contain non-canonical unannotated junctions when using annotated splice junctions database. The annotated non-canonical junctions will be kept. + + + +### OUTPUT FILTERING: SPLICE JUNCTIONS +outSJfilterReads All + string: which reads to consider for collapsed splice junctions output + All: all reads, unique- and multi-mappers + Unique: uniquely mapping reads only + +outSJfilterOverhangMin 30 12 12 12 + 4 integers: minimum overhang length for splice junctions on both sides for: (1) non-canonical motifs, (2) GT/AG and CT/AC motif, (3) GC/AG and CT/GC motif, (4) AT/AC and GT/AT motif. -1 means no output for that motif + does not apply to annotated junctions + +outSJfilterCountUniqueMin 3 1 1 1 + 4 integers: minimum uniquely mapping read count per junction for: (1) non-canonical motifs, (2) GT/AG and CT/AC motif, (3) GC/AG and CT/GC motif, (4) AT/AC and GT/AT motif. -1 means no output for that motif + Junctions are output if one of outSJfilterCountUniqueMin OR outSJfilterCountTotalMin conditions are satisfied + does not apply to annotated junctions + +outSJfilterCountTotalMin 3 1 1 1 + 4 integers: minimum total (multi-mapping+unique) read count per junction for: (1) non-canonical motifs, (2) GT/AG and CT/AC motif, (3) GC/AG and CT/GC motif, (4) AT/AC and GT/AT motif. -1 means no output for that motif + Junctions are output if one of outSJfilterCountUniqueMin OR outSJfilterCountTotalMin conditions are satisfied + does not apply to annotated junctions + +outSJfilterDistToOtherSJmin 10 0 5 10 + 4 integers>=0: minimum allowed distance to other junctions' donor/acceptor + does not apply to annotated junctions + +outSJfilterIntronMaxVsReadN 50000 100000 200000 + N integers>=0: maximum gap allowed for junctions supported by 1,2,3,,,N reads + i.e. by default junctions supported by 1 read can have gaps <=50000b, by 2 reads: <=100000b, by 3 reads: <=200000. by >=4 reads any gap <=alignIntronMax + does not apply to annotated junctions + +### SCORING +scoreGap 0 + gap open penalty + +scoreGapNoncan -8 + non-canonical gap open penalty (in addition to scoreGap) + +scoreGapGCAG -4 + GC/AG and CT/GC gap open penalty (in addition to scoreGap) + +scoreGapATAC -8 + AT/AC and GT/AT gap open penalty (in addition to scoreGap) + +scoreGenomicLengthLog2scale -0.25 + extra score logarithmically scaled with genomic length of the alignment: scoreGenomicLengthLog2scale*log2(genomicLength) + +scoreDelOpen -2 + deletion open penalty + +scoreDelBase -2 + deletion extension penalty per base (in addition to scoreDelOpen) + +scoreInsOpen -2 + insertion open penalty + +scoreInsBase -2 + insertion extension penalty per base (in addition to scoreInsOpen) + +scoreStitchSJshift 1 + maximum score reduction while searching for SJ boundaries inthe stitching step + + +### ALIGNMENT and SEED PARAMETERS + +seedSearchStartLmax 50 + int>0: defines the search start point through the read - the read is split into pieces no longer than this value + +seedSearchStartLmaxOverLread 1.0 + float: seedSearchStartLmax normalized to read length (sum of mates' lengths for paired-end reads) + +seedSearchLmax 0 + int>=0: defines the maximum length of the seeds, if =0 max seed lengthis infinite + +seedMultimapNmax 10000 + int>0: only pieces that map fewer than this value are utilized in the stitching procedure + +seedPerReadNmax 1000 + int>0: max number of seeds per read + +seedPerWindowNmax 50 + int>0: max number of seeds per window + +seedNoneLociPerWindow 10 + int>0: max number of one seed loci per window + +alignIntronMin 21 + minimum intron size: genomic gap is considered intron if its length>=alignIntronMin, otherwise it is considered Deletion + +alignIntronMax 0 + maximum intron size, if 0, max intron size will be determined by (2^winBinNbits)*winAnchorDistNbins + +alignMatesGapMax 0 + maximum gap between two mates, if 0, max intron gap will be determined by (2^winBinNbits)*winAnchorDistNbins + +alignSJoverhangMin 5 + int>0: minimum overhang (i.e. block size) for spliced alignments + +alignSJDBoverhangMin 3 + int>0: minimum overhang (i.e. block size) for annotated (sjdb) spliced alignments + +alignSplicedMateMapLmin 0 + int>0: minimum mapped length for a read mate that is spliced + +alignSplicedMateMapLminOverLmate 0.66 + float>0: alignSplicedMateMapLmin normalized to mate length + +alignWindowsPerReadNmax 10000 + int>0: max number of windows per read + +alignTranscriptsPerWindowNmax 100 + int>0: max number of transcripts per window + +alignTranscriptsPerReadNmax 10000 + int>0: max number of different alignments per read to consider + +alignEndsType Local + string: type of read ends alignment + Local ...standard local alignment with soft-clipping allowed + EndToEnd: force end-to-end read alignment, do not soft-clip + +### SPLICE JUNCTIONS DATABASE PARAMETERS +sjdbFileChrStartEnd - + string: path to the file with genomic coordinates (chr start end strand) for the introns + +sjdbGTFfile - + string: path to the GTF file with annotations + +sjdbGTFchrPrefix - + string: prefix for chromosome names in a GTF file (e.g. 'chr' for using ENSMEBL annotations with UCSC geneomes) + +sjdbGTFfeatureExon exon + string: feature type in GTF file to be used as exons for building transcripts + +sjdbGTFtagExonParentTranscript transcript_id + string: tag name to be used as exons' parents for building transcripts + +sjdbOverhang 0 + int>=0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1) + if =0, splice junction database is not used +sjdbScore 2 + int: extra alignment score for alignmets that cross database junctions + +### WINDOWS, ANCHORS, BINNING + +winAnchorMultimapNmax 50 + int>0: max number of loci anchors are allowed to map to + +winBinNbits 16 + int>0: =log2(winBin), where winBin is the size of the bin for the windows/clustering, each window will occupy an integer number of bins. + +winAnchorDistNbins 9 + int>0: max number of bins between two anchors that allows aggregation of anchors into one window + +winFlankNbins 4 + int>0: log2(winFlank), where win Flank is the size of the left and right flanking regions for each window + + + +### CHIMERIC ALIGNMENTS + +chimSegmentMin 0 + int>=0: minimum length of chimeric segment length, if ==0, no chimeric output + +chimScoreMin 0 + int>=0: minimum total (summed) score of the chimeric segments + +chimScoreDropMax 20 + int>=0: max drop (difference) of chimeric score (the sum of scores of all chimeric segements) from the read length + +chimScoreSeparation 10 + int>=0: minimum difference (separation) between the best chimeric score and the next one + +chimScoreJunctionNonGTAG -1 + int: penalty for a non-GT/AG chimeric junction + +chimJunctionOverhangMin 20 + int>=0: minimum overhang for a chimeric junction + +### QUANTIFICATION OF ANNOTATIONS +quantMode - + string(s): types of qunatification requested + - ... none + TranscriptomeSAM ... output SAM/BAM alignments to transcriptome into a separate file + +### 2-PASS +twopass1readsN 0 + int>0: number of reads to process for the 1st step. 0: 1-step only, no 2nd pass; use very large number to map all reads in the first step + +twopassSJlimit 1000000 + int>=0: maximum number of junction detected in the 1st step + diff --git a/readLoad.cpp b/readLoad.cpp new file mode 100644 index 0000000..a8ca2a9 --- /dev/null +++ b/readLoad.cpp @@ -0,0 +1,151 @@ +#include "readLoad.h" +#include "ErrorWarning.h" + +int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& LreadOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter){ + //load one read from a stream + int readFileType=0; + +// readInStream.getline(readName,DEF_readNameLengthMax); //extract name + + if (readInStream.peek()!='@' && readInStream.peek()!='>') return -1; //end of the stream + + readName[0]=0;//clear char array + readInStream >> readName; //TODO check that it does not overflow the array + if (strlen(readName)>=DEF_readNameLengthMax-1) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR in reads input: read name is too long:" << readInStream.gcount()<<"\n"; + errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + readInStream >> iReadAll >> readFilter >> readFilesIndex; //extract read number + readInStream.ignore(DEF_readNameSeqLengthMax,'\n');//ignore the resit of the line - just in case + + readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence + + Lread=(uint) readInStream.gcount(); + if (Lread<=1) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR in reads input: short read sequence line: " << Lread <<"\n"; + errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + --Lread;//do not count /n in the read length + LreadOriginal=Lread; + + if (Lread>DEF_readSeqLengthMax) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; + errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + +// //was trying to read multi-line +// char nextChar='A'; +// Lread=0; +// while (nextChar!='@' && nextChar!='>' && nextChar!='+' && nextChar!=' ' && nextChar!='\n' && !readInStream.eof()) {//read multi-line fasta +// readInStream.getline(Seq+Lread,DEF_readSeqLengthMax+1); //extract sequence +// Lread+=(uint) readInStream.gcount() - 1; //count chars in the sequence line, but do not read yet +// nextChar=readInStream.peek(); +// }; +// if (Lread>DEF_readSeqLengthMax) { +// ostringstream errOut; +// errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; +// errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); +// }; +// LreadOriginal=Lread; + + if ( Lread>(P->clip5pNbases[iMate]+P->clip3pNbases[iMate]) ) { + Lread=Lread-(P->clip5pNbases[iMate]+P->clip3pNbases[iMate]); + } else { + Lread=0; + }; + convertNucleotidesToNumbers(Seq+P->clip5pNbases[iMate],SeqNum,Lread); + + //clip the adapter + if (P->clip3pAdapterSeq.at(iMate).length()>0) { + clip3pAdapterN = Lread-localSearch(SeqNum,Lread,P->clip3pAdapterSeqNum[iMate],P->clip3pAdapterSeq.at(iMate).length(),P->clip3pAdapterMMp[iMate]); + Lread = Lread>clip3pAdapterN ? Lread-clip3pAdapterN : 0; + } else { + clip3pAdapterN = 0; + }; + + //final read length, trim 3p after the adapter was clipped + if (Lread>P->clip3pAfterAdapterNbases[iMate]) { + Lread =Lread - P->clip3pAfterAdapterNbases[iMate]; + } else { + Lread=0; + }; + + clip3pNtotal=P->clip3pNbases[iMate] + clip3pAdapterN + P->clip3pAfterAdapterNbases[iMate]; + clip5pNtotal=P->clip5pNbases[iMate]; + + if (readName[0]=='@') {//fastq format, read qualities + readFileType=2; + readInStream.ignore(DEF_readNameLengthMax,'\n'); //extract header line + readInStream.getline(Qual,DEF_readSeqLengthMax);//read qualities + if ((uint) readInStream.gcount() != LreadOriginal+1) {//inconsistent read sequence and quality + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR in reads input: quality string length is not equal to sequence length\n"; + errOut << readName<<"\n"; + errOut << Seq <<"\n"; + errOut << Qual <<"\n"; + errOut << "SOLUTION: fix your fastq file\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + if (P->outQSconversionAdd!=0) { + for (uint ii=0;iioutQSconversionAdd; + if (qs<33) { + qs=33; + } else if (qs>126) { + qs=126; + }; + Qual[ii]=qs; + }; + }; + + } else if (readName[0]=='>') {//fasta format, assign Qtop to all qualities + readFileType=1; + for (uint ii=0;ii : "<< readName<<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + for (uint ii=0;iiclip5pNbases[iMate]] > P->QasciiSubtract) ? (Qual[ii+P->clip5pNbases[iMate]] - P->QasciiSubtract) : 0; //substract QasciiSubtract +// QualNum[ii]=P->QSconv[(int) QualNum[ii]]; +// QualNum[ii]=min(QualNum[ii], P->Qtop);//cut QSs at the Qtop +// // if (QualNum[ii]==2) QualNum[ii]=P->Qtop; +// if (SeqNum[ii]>3) QualNum[ii]=0; //QS=0 for Ns +// Qual1[1][Lread-ii-1]=QualNum[ii]; //reverse +// }; + + + //trim read name + char* pSlash=strchr(readName,' '); //trim everything after ' ' + if (pSlash!=NULL) *pSlash=0; + pSlash=strchr(readName,'/'); //trim everything after / + if (pSlash!=NULL) *pSlash=0; + + return readFileType; +}; diff --git a/readLoad.h b/readLoad.h new file mode 100644 index 0000000..f531f86 --- /dev/null +++ b/readLoad.h @@ -0,0 +1,10 @@ +#ifndef READLOAD_DEF +#define READLOAD_DEF + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "SequenceFuns.h" + +int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& readLengthPairOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter); + +#endif diff --git a/serviceFuns.cpp b/serviceFuns.cpp new file mode 100644 index 0000000..d6399d2 --- /dev/null +++ b/serviceFuns.cpp @@ -0,0 +1,68 @@ +#ifndef DEF_serviceFuns +#define DEF_serviceFuns + +template + T sum1D(T* a, uint N) { + T s=0; + for (uint ii=0;iivb) { + return 1; + } else if (va==vb && va1>vb1) { + return 1; + } else if (va==vb && va1==vb1) { + return 0; + } else { + return -1; + }; +}; + +template +inline int funCompareArrays (const void *a, const void *b) { + arrayType* va= (uint*) a; + arrayType* vb= (uint*) b; + + for (int ii=0;iivb[ii]) { + return 1; + } else if (va[ii] +inline uint32 binarySearch1(argType x, argType *X, uint32 N) { + //binary search in the sorted list + //check the boundaries first + if (x>X[N-1] || xi1+1) {//binary search + i3=(i1+i2)/2; + if (X[i3]>x) { + i2=i3; + } else { + i1=i3; + }; + }; + + while (i1 +#include + +void signalFromBAM(const string bamFileName, const string sigFileName, Parameters P) { + + bam1_t *bamA; + bamA=bam_init1(); + + double nMult=0, nUniq=0; + + if (P.outWigFlags.norm==1) {//count reads in the BAM file + BGZF *bamIn=bgzf_open(bamFileName.c_str(),"r"); + bam_hdr_t *bamHeader=bam_hdr_read(bamIn); + while ( true ) {//until the end of file + int bamBytes1=bam_read1(bamIn, bamA); + if (bamBytes1<0) break; //end of file + if (bamA->core.tid<0) continue; //unmapped read +// if ( !std::regex_match(chrName.at(bamA->core.tid),std::regex(P.outWigReferencesPrefix))) continue; //reference does not mathc required references + if ( P.outWigReferencesPrefix!="-" && (P.outWigReferencesPrefix.compare(0,P.outWigReferencesPrefix.size(),bamHeader->target_name[bamA->core.tid],P.outWigReferencesPrefix.size())!=0) ) continue; //reference does not match required references + + uint8_t* aNHp=bam_aux_get(bamA,"NH"); + if (aNHp!=NULL) { + uint32_t aNH=bam_aux2i(aNHp); + if (aNH==1) {//unique mappers + ++nUniq; + } else if (aNH>1) { + nMult+=1.0/aNH; + }; + }; + }; + bgzf_close(bamIn); + }; + + BGZF *bamIn=bgzf_open(bamFileName.c_str(),"r"); + bam_hdr_t *bamHeader=bam_hdr_read(bamIn); + + int sigN=P.outWigFlags.strand ? 4 : 2; + + double *normFactor=new double[sigN]; + + ofstream **sigOutAll=new ofstream* [sigN]; + + string* sigOutFileName=new string[sigN]; + sigOutFileName[0]=sigFileName+".Unique.str1.out"; + sigOutFileName[1]=sigFileName+".UniqueMultiple.str1.out"; + if (P.outWigFlags.strand) { + sigOutFileName[2]=sigFileName+".Unique.str2.out"; + sigOutFileName[3]=sigFileName+".UniqueMultiple.str2.out"; + }; + + for (int ii=0; iicore.tid!=iChr || bamBytes1<0) { + //output to file + if (iChr!=-999) {//iChr=-999 marks chromosomes that are not output, including unmapped reads + for (uint32_t is=0;istarget_name[iChr] <<"\t"<< ig <<"\t"; //0-based beginning + }; + prevSig=newSig; + }; + } else if (P.outWigFlags.format==1){//wiggle + if (newSig!=0) { + *sigOutAll[is] <core.tid; + if ( iChr==-1 || (P.outWigReferencesPrefix!="-" && (P.outWigReferencesPrefix.compare(0,P.outWigReferencesPrefix.size(),bamHeader->target_name[bamA->core.tid],P.outWigReferencesPrefix.size())!=0) ) ) { + iChr=-999; + continue; //reference does not match required references + }; + + chrLen=bamHeader->target_len[iChr]+1;//one extra base at the end which sohuld always be 0 + delete [] sigAll; + sigAll= new double[sigN*chrLen]; + memset(sigAll, 0, sizeof(*sigAll)*sigN*chrLen); + }; + +// uint32_t nCigar =(bamA->core.flag<<16)>>16; +// uint32_t mapFlag=bamA->core.flag>>16; +// uint32_t mapQ=(bamA->core.flag<<16)>>24; + + #define BAM_CIGAR_OperationShift 4 + #define BAM_CIGAR_LengthBits 28 + #define BAM_CIGAR_M 0 + #define BAM_CIGAR_I 1 + #define BAM_CIGAR_D 2 + #define BAM_CIGAR_N 3 + #define BAM_CIGAR_S 4 + #define BAM_CIGAR_H 5 + #define BAM_CIGAR_P 6 + #define BAM_CIGAR_EQ 7 + #define BAM_CIGAR_X 8 + + //by default, alignments marked as duplicate are not processed + if ( (bamA->core.flag & 0x400) > 0 ) continue; + + //NH attribute + uint8_t* aNHp=bam_aux_get(bamA,"NH"); + if (aNHp==NULL) continue; //do not process lines without NH field + uint32_t aNH=bam_aux2i(bam_aux_get(bamA,"NH")); //write a safer function allowing for lacking NH tag + if (aNH==0) continue; //do not process lines without NH=0 + uint32_t aG=bamA->core.pos; + uint32_t iStrand=0; + if (P.outWigFlags.strand) {//strand for stranded data from SAM flag + iStrand= ( (bamA->core.flag & 0x10) > 0 ) == ( (bamA->core.flag & 0x80) == 0 );//0/1 for +/- + }; + if (P.outWigFlags.type==1) {//5' of the1st read signal only, RAMPAGE/CAGE + if ( (bamA->core.flag & 0x80)>0) continue; //skip if this the second mate + if (iStrand==0) { + if (aNH==1) {//unique mappers + sigAll[aG*sigN+0+2*iStrand]++; + }; + sigAll[aG*sigN+1+2*iStrand]+=1.0/aNH;//U+M, normalized by the number of multi-mapping loci + continue; //record only the first position + }; + }; + + uint32_t* cigar=(uint32_t*) (bamA->data+bamA->core.l_qname); + + for (uint32_t ic=0; iccore.n_cigar; ic++) { + uint32_t cigOp=(cigar[ic]<>BAM_CIGAR_LengthBits; + uint32_t cigL=cigar[ic]>>BAM_CIGAR_OperationShift; + switch (cigOp) { + case(BAM_CIGAR_D): + case(BAM_CIGAR_N): + aG+=cigL; + break; + case(BAM_CIGAR_M): + if (P.outWigFlags.type==0 || (P.outWigFlags.type==2 && (bamA->core.flag & 0x80)>0 )) {//full signal, or second mate onyl signal + for (uint32_t ig=0;ig=chrLen) { + cerr << "BUG: alignment extends past chromosome in signalFromBAM.cpp\n"; + exit(-1); + }; + if (aNH==1) {//unique mappers + sigAll[aG*sigN+0+2*iStrand]++; + }; + sigAll[aG*sigN+1+2*iStrand]+=1.0/aNH;//U+M, normalized by the number of multi-mapping loci + aG++; + }; + } else { + aG+=cigL; + }; + }; + }; + if (P.outWigFlags.type==1) {//full signal + --aG; + if (aNH==1) {//unique mappers + sigAll[aG*sigN+0+2*iStrand]++; + }; + sigAll[aG*sigN+1+2*iStrand]+=1.0/aNH;//U+M, normalized by the number of multi-mapping loci + }; + }; + delete [] sigAll; + + for (int is=0; isflush(); + sigOutAll[is]->close(); + }; +}; diff --git a/signalFromBAM.h b/signalFromBAM.h new file mode 100644 index 0000000..0406fdc --- /dev/null +++ b/signalFromBAM.h @@ -0,0 +1,13 @@ +#ifndef CODE_signalFromBAM +#define CODE_signalFromBAM +#include "htslib/htslib/sam.h" +#include +#include +#include "Stats.h" +#include "Parameters.h" + +using namespace std; + +void signalFromBAM(const string bamFileName, const string sigFileName, Parameters P); + +#endif diff --git a/sjSplitAlign.cpp b/sjSplitAlign.cpp new file mode 100644 index 0000000..53d7f5b --- /dev/null +++ b/sjSplitAlign.cpp @@ -0,0 +1,13 @@ +bool sjAlignSplit(uint a1,uint aLength,Parameters* P, uint &a1D, uint &aLengthD, uint &a1A, uint &aLengthA, uint &isj) { + uint sj1=(a1-P->sjGstart)%P->sjdbLength; + if (sj1sjdbOverhang && sj1+aLength>P->sjdbOverhang) {//align crosses the junctions + isj=(a1-P->sjGstart)/P->sjdbLength; + aLengthD=P->sjdbOverhang-sj1; + aLengthA=aLength-aLengthD; + a1D=P->sjDstart[isj]+sj1; + a1A=P->sjAstart[isj]; + return true; + } else { + return false; + }; +}; diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp new file mode 100644 index 0000000..8abdf23 --- /dev/null +++ b/sjdbBuildIndex.cpp @@ -0,0 +1,269 @@ +#include "sjdbBuildIndex.h" +#include "sjdbLoadFromStream.h" +#include "sjdbPrepare.h" +#include "ErrorWarning.h" +#include "SuffixArrayFuns.h" +#include "SequenceFuns.h" +#include "serviceFuns.cpp" +#include "IncludeDefine.h" +#include "streamFuns.h" + +char* globalG1; + + +inline int funCompareUintAndSuffixes ( const void *a, const void *b){ + uint va= *((uint*) a); + uint vb= *((uint*) b); + + if (va>vb) { + return 1; + } else if (vagb[ig]) { // second condition: reached the end of ga, it's >= than any character, but = does not matter + return 1; + } else if (ga[ig]3) { + return -ind1; + } else { + ind1 <<= 2; + ind1 += g; + }; + }; + return ind1; +}; + + +void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { + ifstream sjdbStreamIn ( P->twopassSJpass1file.c_str() ); + if (sjdbStreamIn.fail()) { + ostringstream errOut; + errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P->twopassSJpass1file <<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + SjdbClass sjdbLoci; + sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); + P->inOut->logMain << "Loaded database junctions from the 1st pass file: " << P->twopassSJpass1file <<": "<nGenome, P->twopassDir);//P->nGenome - change when replacing junctions +// time ( &rawtime ); +// cout << timeMonthDayTime(rawtime) << "prepare" <sjdbLength*P->sjdbN; + globalG1=new char[nGsj*2+1]; + memcpy(globalG1,G+P->nGenome,nGsj); + for (uint ii=1; ii<=P->sjdbN; ii++) globalG1[ii*P->sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char + globalG1[nGsj*2]=SPACER_CHAR+1;//mark the end of the text + + for (uint ii=0; iisjdbOverhang; //use P->sjdbLength-1 to keep all indices +// nIndicesSJ1=P->sjdbLength; + uint64* indArray=new uint64[2*P->sjdbN*nIndicesSJ1*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndeices per junction * 2 for reverse compl + + #pragma omp parallel num_threads(P->runThreadN) + #pragma omp for schedule (dynamic,1000) + for (uint isj=0; isj<2*P->sjdbN; isj++) {//find insertion points for each of the sequences + + char** seq1=new char*[2]; + seq1[0]=globalG1+isj*P->sjdbLength; + seq1[1]=G1c+isj*P->sjdbLength; + + + for (uint istart=0; istart3) {//no index for suffices starting with N + indArray[ind1]=-1; + continue; + }; + indArray[ind1] = suffixArraySearch(seq1, istart, 10000, G, SA, true, 0, P->nSA-1, 0, P) ; + indArray[ind1+1] = isj*P->sjdbLength+istart; + }; + }; + +// time ( &rawtime ); +// cout << timeMonthDayTime(rawtime) << "SAsearch" <sjdbN*nIndicesSJ1; ii++) { + if (indArray[ii*2]!= (uint) -1) { + indArray[nInd*2]=indArray[ii*2]; + indArray[nInd*2+1]=indArray[ii*2+1]; + ++nInd; + }; + }; + +// time ( &rawtime ); +// cout << timeMonthDayTime(rawtime) << "remove -1, nInd="<nSA+=nInd; + SA2.defineBits(P->GstrandBit+1,P->nSA); + uint N2bit= 1LLU << P->GstrandBit; + uint isj=0, isa2=0; + for (uint isa=0;isanSA;isa++) { + uint ind1=SA[isa]; + if ( (ind1 & N2bit)>0 ) ind1+=nGsj; //reverse complementary indices are all shifted by the length of junctions + SA2.writePacked(isa2,ind1); //TODO make sure that the first sj index is not before the first array index + ++isa2; + while (isa==indArray[isj*2]) {//insert sj index + uint ind1=indArray[isj*2+1]; + if (ind1nGenome; + } else { + ind1=( (ind1-nGsj) | N2bit); + }; + SA2.writePacked(isa2,ind1); + ++isa2; ++isj; + }; + }; +// time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SA2" <<" "<genomeSAindexNbases; iL++) { + uint iSJ=0; + uint ind0=P->genomeSAindexStart[iL]-1; + for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index + uint iSA1=SAi[ii]; + uint iSA2=iSA1 & P->SAiMarkNmask & P->SAiMarkAbsentMask; + + if ( (iSA1 & P->SAiMarkAbsentMaskC)>0 ) {//index missing from the old genome + uint iSJ1=iSJ; + int64 ind1=funCalcSAi(globalG1+indArray[2*iSJ+1],iL); + while (ind1 < (int64)(ii-P->genomeSAindexStart[iL]) && indArray[2*iSJ]genomeSAindexStart[iL]) ) { + SAi.writePacked(ii,indArray[2*iSJ]+iSJ+1); + for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); + }; + ++iSJ; + ind0=ii; + } else { + iSJ=iSJ1; + }; + } else { + while (indArray[2*iSJ]+1= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index + break; + }; + ++iSJ; + }; + SAi.writePacked(ii,iSA1+iSJ); + for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); + }; + ind0=ii; + }; + }; + + }; +// time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SAi first" <genomeSAindexNbases; iL++) { + uint g=(uint) globalG1[indArray[2*isj+1]+iL]; + ind1 <<= 2; + if (g>3) {//this iSA contains N, need to mark the previous + for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { + ind1+=3; + int64 ind2=P->genomeSAindexStart[iL1]+ind1; + for (; ind2>=0; ind2--) {//find previous index that is not absent + if ( (SAi[ind2] & P->SAiMarkAbsentMaskC)==0 ) { + break; + }; + }; + SAi.writePacked(ind2,SAi[ind2] | P->SAiMarkNmaskC); + ind1 <<= 2; + }; + break; + } else { + ind1 += g; + }; + }; + }; +// time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SAi finished " <sjGstart=P->nGenome; + P->nGenome+=nGsj; + + /* testing + PackedArray SAio=SAi; + SAio.allocateArray(); + ifstream oldSAin("/dev/shm/dobin/STAR2pass/SAindex"); + oldSAin.read(SAio.charArray,128);//skip 128 bytes + oldSAin.read(SAio.charArray,SAio.lengthByte); + oldSAin.close(); + + PackedArray SAo; + SAo.defineBits(P->GstrandBit+1,P->nSA+nInd); + SAo.allocateArray(); + oldSAin.open("/dev/shm/dobin/STAR2pass/SA"); + oldSAin.read(SAo.charArray,SAo.lengthByte); + oldSAin.close(); + + for (uint ii=0;iinSA;ii++) { + if (SA2[ii]!=SAo[ii]) { + cout <genomeSAindexNbases; iL++) { + for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index + if ( SAio[ii]!=SAi[ii] ) { + cout <twopassDir+("/Genome")).c_str()); + fstreamWriteBig(genomeOut,G,P->nGenome+nGsj); + genomeOut.close(); + genomeOut.open((P->twopassDir+("/SA")).c_str()); + fstreamWriteBig(genomeOut,SA2.charArray,SA2.lengthByte); + genomeOut.close(); + */ + +}; diff --git a/sjdbBuildIndex.h b/sjdbBuildIndex.h new file mode 100644 index 0000000..bbbf3ec --- /dev/null +++ b/sjdbBuildIndex.h @@ -0,0 +1,10 @@ +#ifndef CODE_sjdbBuildIndex +#define CODE_sjdbBuildIndex + +#include "SjdbClass.h" +#include "Parameters.h" +#include "PackedArray.h" + +void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi); + +#endif diff --git a/sjdbLoadFromStream.cpp b/sjdbLoadFromStream.cpp new file mode 100644 index 0000000..2290600 --- /dev/null +++ b/sjdbLoadFromStream.cpp @@ -0,0 +1,29 @@ +#include "sjdbLoadFromStream.h" +void sjdbLoadFromStream(ifstream &sjdbStreamIn, SjdbClass &sjdbLoci) { + while (sjdbStreamIn.good()) { + string oneLine,chr1; + uint u1,u2; + char str1; + getline(sjdbStreamIn,oneLine); + istringstream oneLineStream (oneLine); + oneLineStream >> chr1 >> u1 >> u2 >> str1; + if (chr1!="") { + sjdbLoci.chr.push_back(chr1); + sjdbLoci.start.push_back(u1); + sjdbLoci.end.push_back(u2); + switch (str1) {//convert numbers to symbols + case '1': + case '+': + str1='+'; + break; + case '2': + case '-': + str1='-'; + break; + default: + str1='.'; + }; + sjdbLoci.str.push_back(str1); + }; + }; +}; \ No newline at end of file diff --git a/sjdbLoadFromStream.h b/sjdbLoadFromStream.h new file mode 100644 index 0000000..a92dfff --- /dev/null +++ b/sjdbLoadFromStream.h @@ -0,0 +1,8 @@ +#ifndef CODE_sjdbLoadFromStream +#define CODE_sjdbLoadFromStream + +#include +#include "SjdbClass.h" +void sjdbLoadFromStream(ifstream &sjdbStreamIn, SjdbClass &sjdbLoci); + +#endif diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp new file mode 100644 index 0000000..e5f30b9 --- /dev/null +++ b/sjdbPrepare.cpp @@ -0,0 +1,202 @@ +#include "sjdbPrepare.h" +#include "ErrorWarning.h" +#include "serviceFuns.cpp" + +void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, char *G, uint nGenomeReal, string outDir) { + uint *sjdbS=new uint [sjdbLoci.chr.size()]; + uint *sjdbE=new uint [sjdbLoci.chr.size()]; + + uint8 *sjdbMotif=new uint8 [sjdbLoci.chr.size()]; + uint8 *sjdbShiftLeft=new uint8 [sjdbLoci.chr.size()]; + uint8 *sjdbShiftRight=new uint8 [sjdbLoci.chr.size()]; + + + string chrOld=""; + uint iChr=0; + for (uint ii=0;iinChrReal;iChr++) { + if (sjdbLoci.chr.at(ii)==P->chrName[iChr]) break; + }; + if (iChr>=P->nChrReal) { + ostringstream errOut; + errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; + errOut << "SOLUTION: fix your file sjdbFileChrStartEnd=" << P->sjdbFileChrStartEnd <<" at line #" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + chrOld=sjdbLoci.chr.at(ii); + }; + + sjdbS[ii] = sjdbLoci.start.at(ii) + P->chrStart[iChr] - 1;//sj names contain 1-based intron loci + sjdbE[ii] = sjdbLoci.end.at(ii) + P->chrStart[iChr] - 1; + + //motifs + if ( G[sjdbS[ii]]==2 && G[sjdbS[ii]+1]==3 && G[sjdbE[ii]-1]==0 && G[sjdbE[ii]]==2 ) {//GTAG + sjdbMotif[ii]=1; + } else if ( G[sjdbS[ii]]==1 && G[sjdbS[ii]+1]==3 && G[sjdbE[ii]-1]==0 && G[sjdbE[ii]]==1 ) {//CTAC + sjdbMotif[ii]=2; + } else if ( G[sjdbS[ii]]==2 && G[sjdbS[ii]+1]==1 && G[sjdbE[ii]-1]==0 && G[sjdbE[ii]]==2 ) {//GCAG + sjdbMotif[ii]=3; + } else if ( G[sjdbS[ii]]==1 && G[sjdbS[ii]+1]==3 && G[sjdbE[ii]-1]==2 && G[sjdbE[ii]]==1 ) {//CTGC + sjdbMotif[ii]=4; + } else if ( G[sjdbS[ii]]==0 && G[sjdbS[ii]+1]==3 && G[sjdbE[ii]-1]==0 && G[sjdbE[ii]]==1 ) {//ATAC + sjdbMotif[ii]=5; + } else if ( G[sjdbS[ii]]==2 && G[sjdbS[ii]+1]==3 && G[sjdbE[ii]-1]==0 && G[sjdbE[ii]]==3 ) {//GTAT + sjdbMotif[ii]=6; + } else { + sjdbMotif[ii]=0; + }; + //repeat length: go back and forth around jR to find repeat length + uint jjL=0,jjR=0; + while ( jjL <= sjdbS[ii]-1 && G[sjdbS[ii]-1-jjL]==G[sjdbE[ii]-jjL] && G[sjdbS[ii]-1-jjL]<4 && jjL<255) {//go back + jjL++; + }; + sjdbShiftLeft[ii]=jjL; + + while ( sjdbS[ii]+jjR < nGenomeReal && G[sjdbS[ii]+jjR]==G[sjdbE[ii]+1+jjR] && G[sjdbS[ii]+jjR]<4 && jjR<255) {//go forward + jjR++; + }; + sjdbShiftRight[ii]=jjR; + + + if (jjR==255 || jjL==255) { + P->inOut->logMain << "WARNING: long repeat for junction # " << ii+1 <<" : " \ + << sjdbLoci.chr.at(ii) <<" "<chrStart[iChr] + 1 <<" "<< sjdbE[ii] - P->chrStart[iChr] + 1 \ + << "; left shift = "<< (int) sjdbShiftLeft[ii] <<"; right shift = "<< (int) sjdbShiftRight[ii] <<"\n"; + }; + + sjdbS[ii]-=sjdbShiftLeft[ii]; + sjdbE[ii]-=sjdbShiftLeft[ii]; + }; + + //sort sjdb + uint *sjdbSort=new uint [sjdbLoci.chr.size()*3]; + for (uint ii=0;ii0 && sjdbLoci.str.at(isj)==0 ) {//old junction has defined strand, new - does not, keep old junctions +// } else if (sjdbLoci.str.at(isj0)==0 && sjdbLoci.str.at(isj)>0) {//new junction has defined strand, old - does not, replaces +// I[nsj-1]=isj;//replace the old junction + } else if ( (sjdbMotif[isj]>0 && sjdbMotif[isj0]==0) \ + || ( ((sjdbMotif[isj]>0) == (sjdbMotif[isj0]>0)) && sjdbShiftLeft[isj]sjdbStart=new uint [nsj]; + P->sjdbEnd=new uint [nsj]; + P->sjdbMotif=new uint8 [nsj]; + P->sjdbShiftLeft=new uint8 [nsj]; + P->sjdbShiftRight=new uint8 [nsj]; + P->sjdbStrand=new uint8 [nsj]; + + uint nsj1=0; + for (uint ii=0;ii0 && P->sjdbStart[nsj1-1]==sjdbSort[ii*3] && P->sjdbEnd[nsj1-1]==sjdbSort[ii*3+1] ) {//same loci on opposite strands + //if only one of the strands is defined, keep that junction + if (P->sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') { + continue; + } else if (P->sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') { + nsj1--; //replace old with new, keep strand of the new + } else if (P->sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) { + //both are non-canonical (on opposite strand) + P->sjdbStrand[nsj1-1]=0;//do not record new junction, keep old with undefined strand + continue; + } else if ( (P->sjdbMotif[nsj1-1]>0 && sjdbMotif[isj]==0) ||(P->sjdbMotif[nsj1-1]%2 == (2-P->sjdbStrand[nsj1-1])) ){//both strands defined, both junctions canonical + //old junction is canonical, new is not, OR old junction is on correct strand + continue; + } else { + //new junction is on correct strand, replace the old one + nsj1--; + }; + }; + + //record junction + P->sjdbStart[nsj1]=sjdbSort[ii*3]; + P->sjdbEnd[nsj1]=sjdbSort[ii*3+1]; + P->sjdbMotif[nsj1]=sjdbMotif[isj]; + P->sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; + P->sjdbShiftRight[nsj1]=sjdbShiftRight[isj]; + if (sjdbLoci.str.at(isj)=='+') { + P->sjdbStrand[nsj1]=1; + } else if (sjdbLoci.str.at(isj)=='-') { + P->sjdbStrand[nsj1]=2; + } else { + if (P->sjdbMotif[nsj1]==0) {//strand un-defined + P->sjdbStrand[nsj1]=0; + } else { + P->sjdbStrand[nsj1]=2-P->sjdbMotif[nsj1]%2; + }; + }; + nsj1++; + }; + P->sjdbN=nsj1; + P->sjDstart = new uint [P->sjdbN]; + P->sjAstart = new uint [P->sjdbN]; + + ofstream sjdbInfo((outDir+"/sjdbInfo.txt").c_str()); + ofstream sjdbList ((outDir+"/sjdbList.out.tab").c_str()); + char strandChar[3]={'.','+','-'}; + //first line is some general useful information + sjdbInfo << P->sjdbN <<"\t"<< P->sjdbOverhang <<"\n"; + uint sjGstart=P->chrStart[P->nChrReal]; + for (uint ii=0;iisjdbN;ii++) { + //add sjdb sequence to genome + P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; + P->sjAstart[ii] = P->sjdbEnd[ii] + 1; + if (P->sjdbMotif[ii]==0) {//shinon-canonical junctions back to their true coordinates + P->sjDstart[ii] += P->sjdbShiftLeft[ii]; + P->sjAstart[ii] += P->sjdbShiftLeft[ii]; + }; + memcpy(G+sjGstart,G+P->sjDstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci + memcpy(G+sjGstart+P->sjdbOverhang,G+P->sjAstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci + sjGstart += P->sjdbLength; + G[sjGstart-1]=GENOME_spacingChar;//spacing char between the sjdb seqs + sjdbInfo << P->sjdbStart[ii] <<"\t"<< P->sjdbEnd[ii] <<"\t"<<(int) P->sjdbMotif[ii] <<"\t"<<(int) P->sjdbShiftLeft[ii] <<"\t"<<(int) P->sjdbShiftRight[ii]<<"\t"<<(int) P->sjdbStrand[ii] <<"\n"; + uint chr1=P->chrBin[ P->sjdbStart[ii] >> P->genomeChrBinNbits]; + sjdbList << P->chrName[chr1]<< "\t" << P->sjdbStart[ii]-P->chrStart[chr1] + 1 + (P->sjdbMotif[ii]>0 ? 0:P->sjdbShiftLeft[ii]) \ + << "\t"<< P->sjdbEnd[ii]-P->chrStart[chr1] + 1 + (P->sjdbMotif[ii]>0 ? 0:P->sjdbShiftLeft[ii]) \ + << "\t"<< strandChar[P->sjdbStrand[ii]]<<"\n"; + }; + sjdbInfo.close(); + sjdbList.close(); + +}; + diff --git a/sjdbPrepare.h b/sjdbPrepare.h new file mode 100644 index 0000000..3ca500d --- /dev/null +++ b/sjdbPrepare.h @@ -0,0 +1,9 @@ +#ifndef CODE_sjdbPrepare +#define CODE_sjdbPrepare + +#include "SjdbClass.h" +#include "Parameters.h" + +void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, char *G, uint nGenomeReal, string outDir); + +#endif \ No newline at end of file diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp new file mode 100644 index 0000000..1ee2ba7 --- /dev/null +++ b/stitchAlignToTranscript.cpp @@ -0,0 +1,385 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "extendAlign.h" +#include "binarySearch2.h" +// #include "stitchGapIndel.cpp" + +intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters* P, char* R, char* Q, char* G, Transcript *trA, const uint outFilterMismatchNmaxTotal) { + //stitch together A and B, extend in the gap, returns max score + //Q is assumed modified already + + int Score=0; +// int score2; + + if (sjAB!=((uint) -1) && trA->exons[trA->nExons-1][EX_sjA]==sjAB \ + && trA->exons[trA->nExons-1][EX_iFrag]==iFragB && rBstart==rAend+1 && gAend+1sjdbMotif[sjAB]==0 && (L<=P->sjdbShiftRight[sjAB] || trA->exons[trA->nExons-1][EX_L]<=P->sjdbShiftLeft[sjAB]) ) { + return -1000006; //too large repeats around non-canonical junction + }; + trA->exons[trA->nExons][EX_L] = L; //new exon length + trA->exons[trA->nExons][EX_R] = rBstart; //new exon r-start + trA->exons[trA->nExons][EX_G] = gBstart; //new exon g-start + trA->canonSJ[trA->nExons-1]=P->sjdbMotif[sjAB]; //mark sj-db + trA->shiftSJ[trA->nExons-1][0]=P->sjdbShiftLeft[sjAB]; + trA->shiftSJ[trA->nExons-1][1]=P->sjdbShiftRight[sjAB]; + trA->sjAnnot[trA->nExons-1]=1; + trA->sjStr[trA->nExons-1]=P->sjdbStrand[sjAB];; + trA->nExons++; + trA->nMatch+=L; + for (uint ii=rBstart;iisjdbScore; + } else {//general stitching + trA->sjAnnot[trA->nExons-1]=0; + trA->sjStr[trA->nExons-1]=0; + + if (trA->exons[trA->nExons-1][EX_iFrag]==iFragB) {//stitch aligns on the same fragment + uint gBend=gBstart+L-1; + uint rBend=rBstart+L-1; + + //check if r-overlapping fully and exit + if (rBend<=rAend) return -1000001; + if (gBend<=gAend && trA->exons[trA->nExons-1][EX_iFrag]==iFragB) return -1000002; + + //shift the B 5' if overlaps A 3' + if (rBstart<=rAend) { + gBstart+=rAend-rBstart+1; + rBstart=rAend+1; + L=rBend-rBstart+1; + }; + + for (uint ii=rBstart;ii<=rBend;ii++) Score+=int(Q[ii]); //add QS for mapped portions + + int gGap=gBstart-gAend-1; //could be < 0 for insertions + int rGap=rBstart-rAend-1;//>0 always since we removed overlap + + uint nMatch=L; + uint nMM=0; + uint Del=0, Ins=0; + uint nIns=0, nDel=0; + int jR=0; //junction location in R-space + int jCan=999; //canonical junction type + uint gBstart1=gBstart-rGap-1;//the last base of the intron if all read gap belongs to acceptor, i.e. jR=0 + + + // check all the different combinations of gGap and rGap + if ( gGap==0 && rGap==0 ) {//just joined the pieces, w/o stiching or gaps + //do nothing for now + } else if ( gGap>0 && rGap>0 && rGap==gGap ) {//no gaps, just try to fill space + //simple stitching, assuming no insertion in the read + + for (int ii=1;ii<=rGap;ii++) { + if (G[gAend+ii]<4 && R[rAend+ii]<4) {//only score genome bases that are not Ns + if ( R[rAend+ii]==G[gAend+ii] ) { + Score+=int(Q[rAend+ii]); + nMatch++; + // if (Q[rAend+ii]>=P->Qgood) nMatchGood++; + } else { + Score-=int(Q[rAend+ii]); +// trA->rMM[trA->nMM + nMM] = rAend+ii; + nMM++; + // if (Q[rAend+ii]>=P->Qgood) nMMgood++; + }; + }; + }; + + } else if ( gGap>rGap ) {//genomic gap (Deletion) + + nDel=1; + Del=gGap-rGap; //gGap>0 here + + if (Del>P->alignIntronMax && P->alignIntronMax>0) { + return -1000003; //large gaps not allowed + }; + + int Score1=0; + int jR1=1; //junction location in R-space + do { // 1. move left, until the score for MM is less than canonical advantage + jR1--; + if ( R[rAend+jR1]!=G[gBstart1+jR1] && G[gBstart1+jR1]<4) Score1 -= int(Q[rAend+jR1]); + } while ( Score1+P->scoreStitchSJshift >= 0 && int(trA->exons[trA->nExons-1][EX_L]) + jR1 > 1);//>=P->alignSJoverhangMin); //also check that we are still within the exon + + int maxScore2=-999999; + Score1=0; + int jPen=0; + do { // 2. scan to the right to find the best junction locus + // ?TODO? if genome base is N, how to score? + if ( R[rAend+jR1]==G[gAend+jR1] && R[rAend+jR1]!=G[gBstart1+jR1] ) Score1+=int(Q[rAend+jR1]); + if ( R[rAend+jR1]!=G[gAend+jR1] && R[rAend+jR1]==G[gBstart1+jR1] ) Score1-=int(Q[rAend+jR1]); + + int jCan1=-1; //this marks Deletion + int jPen1=0; + int Score2=Score1; + + if (Del>=P->alignIntronMin) {//only check intron motif for large gaps= non-Dels + //check if the intron is canonical, or semi-canonical + if ( G[gAend+jR1+1]==2 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==2 ) {//GTAG + jCan1=1; + } else if ( G[gAend+jR1+1]==1 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==1 ) {//CTAC + jCan1=2; + } else if ( G[gAend+jR1+1]==2 && G[gAend+jR1+2]==1 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==2 ) {//GCAG + jCan1=3; + jPen1=P->scoreGapGCAG; + } else if ( G[gAend+jR1+1]==1 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==2 && G[gBstart1+jR1]==1 ) {//CTGC + jCan1=4; + jPen1=P->scoreGapGCAG; + } else if ( G[gAend+jR1+1]==0 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==1 ) {//ATAC + jCan1=5; + jPen1=P->scoreGapATAC; + } else if ( G[gAend+jR1+1]==2 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==3 ) {//GTAT + jCan1=6; + jPen1=P->scoreGapATAC; + } else { + jCan1=0; + jPen1=P->scoreGapNoncan; + }; + + Score2 += jPen1; + }; + + if (maxScore2 < Score2 ) {//check if the score is the highest. TODO: record the next highest score + maxScore2=Score2; + jR=jR1; //this is the last base of donor + jCan=jCan1; + jPen=jPen1; + }; + jR1++; + } while ( jR1 < int(rBend) - int(rAend) );// - int(P->alignSJoverhangMin) );//TODO: do not need to search the full B-transcript, can stop as soon as Score goes down by more than + + //repeat length: go back and forth around jR to find repeat length + uint jjL=0,jjR=0; + while ( gAend+jR>=jjL && G[gAend-jjL+jR]==G[gBstart1-jjL+jR] && G[gAend-jjL+jR]<4 && jjL<=MAX_SJ_REPEAT_SEARCH) {//go back + jjL++; + }; + + while ( gAend+jjR+jR+1nGenome && G[gAend+jjR+jR+1]==G[gBstart1+jjR+jR+1] && G[gAend+jjR+jR+1]<4 && jjR<=MAX_SJ_REPEAT_SEARCH) {//go forward + jjR++; + }; + + if (jCan<=0) {//flush deletions and non-canonical junction to the left + jR-=jjL; + if (int(trA->exons[trA->nExons-1][EX_L])+jR<1) return -1000005; + jjR+=jjL; + jjL=0; + }; + + //TODO check here if the internal exon length < minDa, if so exit w/o stitiching + + for (int ii=min(1,jR+1);ii<=max(rGap,jR);ii++) {//score donor and acceptor + uint g1=(ii<=jR) ? (gAend+ii):(gBstart1+ii); + if (G[g1]<4 && R[rAend+ii]<4) {//only penalize non-N bases + if ( R[rAend+ii]==G[g1] ) { + if (ii>=1 && ii <=rGap) {//only add +score and matches within the gap + Score+=int(Q[rAend+ii]); + nMatch++; + }; + } else {//add -score and MM for all bases + Score-=int(Q[rAend+ii]); + nMM++; + if (ii<1 || ii>rGap) {//subtract previuosly presumed matches + Score-=int(Q[rAend+ii]); + nMatch--; +// if (ii<=jR) nMM--; + }; + }; + }; + }; + + //score the gap + if (P->sjdbN>0) {//check if the junction is annotated + uint jS=gAend+jR+1, jE=gBstart1+jR;//intron start/end + int sjdbInd=binarySearch2(jS,jE,P->sjdbStart,P->sjdbEnd,P->sjdbN); + if (sjdbInd<0) { + if (Del>=P->alignIntronMin) { + Score += P->scoreGap + jPen; //genome gap penalty + non-canonical penalty + } else {//deletion + Score += Del*P->scoreDelBase + P->scoreDelOpen; + jCan=-1; +// jjR-=jjL; +// jR-=jjL; +// jjL=0; +// trA->shiftSJ[trA->nExons-1][0]=0; +// trA->shiftSJ[trA->nExons-1][1]=jjR; + }; + } else {//anotated + jCan=P->sjdbMotif[sjdbInd]; + if (P->sjdbMotif[sjdbInd]==0) {//shift to match annotations + if (L<=P->sjdbShiftLeft[sjdbInd] || trA->exons[trA->nExons-1][EX_L]<=P->sjdbShiftLeft[sjdbInd]) { + return -1000006; + }; + jR += (int) P->sjdbShiftLeft[sjdbInd]; + jjL=P->sjdbShiftLeft[sjdbInd]; + jjR=P->sjdbShiftRight[sjdbInd]; + }; + trA->sjAnnot[trA->nExons-1]=1; + trA->sjStr[trA->nExons-1]=P->sjdbStrand[sjdbInd]; + Score += P->sjdbScore; + }; + } else {//no annotation + if (Del>=P->alignIntronMin) {//junction, not short deletion + Score += P->scoreGap + jPen; + } else { + Score += Del*P->scoreDelBase + P->scoreDelOpen; + jCan=-1; + }; + }; + + trA->shiftSJ[trA->nExons-1][0]=jjL; + trA->shiftSJ[trA->nExons-1][1]=jjR; + trA->canonSJ[trA->nExons-1]=jCan; + + if (trA->sjAnnot[trA->nExons-1]==0) {//strand for unannotated junctions + if (jCan>0) { + trA->sjStr[trA->nExons-1]=2-jCan%2; //1=+,2=- + } else { + trA->sjStr[trA->nExons-1]=0; + }; + }; + + } else if ( rGap>gGap ) {//insertion: if also gGap>0, need to stitch + Ins=rGap-gGap; + nIns=1; + if (gGap==0) {//simple insertion, no need to stitch + jR=0; + } else if (gGap<0) {//reduce the score + + jR=0; + for (int ii=0; ii<-gGap; ii++) Score -= int(Q[rBstart+ii]); + + } else {//stitch: define the exon boundary jR + int Score1=0; int maxScore1=0; + for (int jR1=1;jR1<=gGap;jR1++) {//scan to the right to find the best score + + if (G[gAend+jR1]<4) {//only penalize goog genome bases + Score1+=( R[rAend+jR1]==G[gAend+jR1] ) ? int(Q[rAend+jR1]):-int(Q[rAend+jR1]); + Score1+=( R[rAend+Ins+jR1]==G[gAend+jR1] ) ? -int(Q[rAend+Ins+jR1]):+int(Q[rAend+Ins+jR1]); + }; + + if (Score1>maxScore1) { + maxScore1=Score1; + jR=jR1; + }; + }; + + + for (int ii=1;ii<=gGap;ii++) {//score donor and acceptor + uint r1=rAend+ii+(ii<=jR ? 0:Ins); + if (G[gAend+ii]<4 && R[r1]<4) { + if ( R[r1]==G[gAend+ii] ) { + Score+=int(Q[r1]); + nMatch++; + } else {//add -score and MM for all bases + Score-=int(Q[r1]); + nMM++; + }; + }; + }; + }; + + Score += Ins*P->scoreInsBase + P->scoreInsOpen; + jCan=-3; + }; //different types of gaps selection + + + + #ifdef COMPILE_FOR_LONG_READS + if ( (trA->nMM + nMM)<=outFilterMismatchNmaxTotal ) +// if ( Score>0 && nMM<=200 ) + + #else + if ( (trA->nMM + nMM)<=outFilterMismatchNmaxTotal \ + && (nMM==0 || jCan<0 || jCan==1 || jCan==2) ) + #endif + {//stitching worked only if there no mis-matches for non-GT/AG junctions + trA->nMM += nMM; + trA->nMatch += nMatch; + + if (Del>=P->alignIntronMin) { + trA->nGap += nDel; + trA->lGap += Del; + } else { + trA->nDel += nDel; + trA->lDel += Del; + }; + + //modify exons + if (Del==0 && Ins==0) {//no gap => no new exon, extend the boundary of the previous exon + trA->exons[trA->nExons-1][EX_L] += rBend-rAend; + } else if (Del>0) { //deletion:ca only have Del> or Ins>0 + trA->exons[trA->nExons-1][EX_L] += jR; //correct the previous exon boundary + trA->exons[trA->nExons][EX_L] = rBend-rAend-jR; //new exon length + trA->exons[trA->nExons][EX_R] = rAend+jR+1; //new exon r-start + trA->exons[trA->nExons][EX_G] = gBstart1+jR+1; //new exon g-start + trA->nExons++; + } else if (Ins>0) { //Ins>0; + trA->nIns += nIns; + trA->lIns += Ins; + trA->exons[trA->nExons-1][EX_L] += jR; //correct the previous exon boundary + trA->exons[trA->nExons][EX_L] = rBend-rAend-jR-Ins; //new exon length + trA->exons[trA->nExons][EX_R] = rAend+jR+Ins+1; //new exon r-start + trA->exons[trA->nExons][EX_G] = gAend+1+jR; //new exon g-start + trA->canonSJ[trA->nExons-1]=-2; //mark insertion + trA->nExons++; + }; + } else {//stitching was not accepted + return -1000007; + }; + } else if (gBstart+trA->exons[0][EX_R] >= trA->exons[0][EX_G] || trA->exons[0][EX_G] < trA->exons[0][EX_R]){//if (iFragA==iFragB) stitch aligns from different fragments + + if (P->alignMatesGapMax>0 && gBstart > trA->exons[trA->nExons-1][EX_G] + trA->exons[trA->nExons-1][EX_L] + P->alignMatesGapMax) { + return -1000004; //gap between mates too large + }; + //extend the fragments inside + //note, that this always works, i.e. Score>0 + + for (uint ii=rBstart;ii1 + //TTCTGTGTCTCCCCCTCCCCCACTGGCTACATGGAGACAGGGGGGGGGGGCCGGGCGGTTCCCGGGCAGAAAAAAA + //>1 + //AATATTTGGAACACTTATGTGAAAAATGATTTGTTTTTCTGAAATTTACGTTTCTCTCTGAGTCCTGTAACTGTCC + + + trExtend.reset(); + if ( extendAlign(R, Q, G, rAend+1, gAend+1, 1, 1, DEF_readSeqLengthMax, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trExtend) ) { + + trA->add(&trExtend); + Score += trExtend.maxScore; + + trA->exons[trA->nExons-1][EX_L] += trExtend.extendL; + };// if extendAlign for read A + + trA->exons[trA->nExons][EX_R] = rBstart; + trA->exons[trA->nExons][EX_G] = gBstart; + trA->exons[trA->nExons][EX_L] = L; + trA->nMatch += L; + + trExtend.reset(); + if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trExtend) ) { + + trA->add(&trExtend); + Score += trExtend.maxScore; + + trA->exons[trA->nExons][EX_R] -= trExtend.extendL; + trA->exons[trA->nExons][EX_G] -= trExtend.extendL; + trA->exons[trA->nExons][EX_L] += trExtend.extendL; + }; //if extendAlign B + + trA->canonSJ[trA->nExons-1]=-3; //mark different fragments junction + + trA->nExons++; + } else {//no stitching possible + return -1000008; + }; + }; + + trA->exons[trA->nExons-1][EX_iFrag]=iFragB; //the new exon belongs to fragment iFragB + trA->exons[trA->nExons-1][EX_sjA]=sjAB; + + return Score; +}; diff --git a/stitchAlignToTranscript.h b/stitchAlignToTranscript.h new file mode 100644 index 0000000..a382daf --- /dev/null +++ b/stitchAlignToTranscript.h @@ -0,0 +1,6 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" + +intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters* P, char* R, char* Q, char* G, Transcript *trA, uint outFilterMismatchNmaxTotal); + diff --git a/stitchGapIndel.cpp b/stitchGapIndel.cpp new file mode 100644 index 0000000..3f0986f --- /dev/null +++ b/stitchGapIndel.cpp @@ -0,0 +1,56 @@ +int stitchGapIndel (uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint gapStart, uint gapEnd, char* R, char* G, Parameters* P,\ + uint &iRbest, uint &nMM){//returns stitch score + + uint gapLength = gapEnd-gapStart+1; + sint inDel= (sint) (gBstart-gAend-1) - (sint) gapLength - (sint) (rBstart-rAend-1); //>0: deletion; <0: insertion + + if (inDel==0) {//this should not happen, it should have been caught in the first stitching + return -1; + }; + int score2best; + int score2; + + if (inDel>0) {// + score2=0; + score2best=-1; + iRbest=0; + for (uint iR=1; iR=gapStart) iG1 += gapLength;//exclude gap + if (iG2>=gapStart) iG2 += gapLength; + + if ( R[rAend+iR]==G[iG1] && R[rAend+iR]!=G[iG2] ) { + score2++; + } else if ( R[rAend+iR]!=G[iG1] && R[rAend+iR]==G[iG2] ) { + score2--; + }; + + if (score2>score2best) { + score2best=score2; + iRbest=iR; + }; + }; + + //score the alignment with inDel at iRbest + nMM=0; + score2= L - inDel*P->scoreDelBase - P->scoreDelOpen; //score B and deletion + for (uint iR=1; iRiRbest) iG += (uint) inDel; + if (iG>=gapStart) iG += gapLength;//exclude gap + + if ( R[rAend+iR]==G[iG] ) { + score2++; + } else if (R[rAend+iR]!=G[iG] && R[rAend+iR]<4 && G[iG]<4) {//only penalize mismatches for non-N bases + score2--; + nMM++; + }; + }; + + } else { + return -1; + }; + + return score2; +}; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp new file mode 100644 index 0000000..4f186be --- /dev/null +++ b/stitchWindowAligns.cpp @@ -0,0 +1,342 @@ +#include "stitchWindowAligns.h" +#include +#include +#include "blocksOverlap.h" +#include "ErrorWarning.h" +#include "binarySearch2.h" + +void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ + uint Lread, uiWA* WA, char* R, char* Q, char* G, char* sigG,\ + Parameters* P, Transcript** wTr, uint* nWinTr, ReadAlign *RA) { + //recursively stitch aligns for one gene + //*nWinTr - number of transcripts for the current window + + if (iA>=nA && tR2==0) return; //no aligns in the transcript + + if (iA>=nA) {//no more aligns to add, finalize the transcript + + //extend first + Transcript trAstep1; + + int vOrder[2]; //decide in which order to extend: extend the 5' of the read first + + #if EXTEND_ORDER==1 + if ( trA.roStr==0 ) {//decide in which order to extend: extend the 5' of the read first + vOrder[0]=0; vOrder[1]=1; + } else { + vOrder[0]=1; vOrder[1]=0; + }; + #elif EXTEND_ORDER==2 + vOrder[0]=0; vOrder[1]=1; + #else + #error "EXTEND_ORDER value unrecognized" + #endif + + for (int iOrd=0;iOrd<2;iOrd++) { + + switch (vOrder[iOrd]) { + + case 0: //extend at start + + if (trA.rStart>0) {// if transcript does not start at base, extend to the read start + + //calculate # of allowed mismatches that has been left + + trAstep1.reset(); + // //avoid extending before Chr start + if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, min(trA.rStart, trA.gStart - P->chrStart[trA.Chr]), tR2-trA.rStart+1, trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trAstep1) ) {//if could extend + + trA.add(&trAstep1); + Score += trAstep1.maxScore; + + trA.exons[0][EX_R] = trA.rStart = trA.rStart - trAstep1.extendL; + trA.exons[0][EX_G] = trA.gStart = trA.gStart - trAstep1.extendL; + trA.exons[0][EX_L] += trAstep1.extendL; + + }; + //TODO penalize the unmapped bases at the start + }; + break; + + case 1: //extend at end + + if ( tR2+1chrStart[trA.Chr+1]-tG2-2), tR2-trA.rStart+1, trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trAstep1) ) {//if could extend + + trA.add(&trAstep1); + Score += trAstep1.maxScore; + + tR2 += trAstep1.extendL; + tG2 += trAstep1.extendL; + + trA.exons[trA.nExons-1][EX_L] += trAstep1.extendL;//extend the length of the last exon + + }; + //TODO penalize unmapped bases at the end + }; + }; + }; + + trA.rLength = 0; + for (uint isj=0;isj=0 ) {//junction + if (trA.sjAnnot[isj]==1) {//sjdb + if ( ( trA.exons[isj][EX_L] < P->alignSJDBoverhangMin && (isj==0 || trA.canonSJ[isj-1]==-3 || (trA.sjAnnot[isj-1]==0 && trA.canonSJ[isj-1]>=0) ) )\ + || ( trA.exons[isj+1][EX_L] < P->alignSJDBoverhangMin && (isj==trA.nExons-2 || trA.canonSJ[isj+1]==-3 || (trA.sjAnnot[isj+1]==0 && trA.canonSJ[isj+1]>=0) ) ) )return; + } else {//non-sjdb + if ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] \ + || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1] ) return; + }; + }; + }; + if (trA.sjAnnot[trA.nExons-2]==1 && trA.exons[trA.nExons-1][EX_L] < P->alignSJDBoverhangMin) return; //this exon was not checkedin the cycle above + + trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; + for (uint iex=0;iex0) { + ++trA.intronMotifs[2-trA.canonSJ[iex]%2]; + }; + }; + + //filter strand consistency + trA.sjMotifStrand=0; + uint sjN=0; + for (uint iex=0;iex=0) sjN++; + if (trA.sjStr[iex]>0) {//only these sjs have defined strand + if (trA.sjMotifStrand==0) { + trA.sjMotifStrand=trA.sjStr[iex]; + } else if (trA.sjMotifStrand != trA.sjStr[iex]) {//inconsistent strand + return; //kill this transcript + }; + }; + }; + + if (sjN>0 && trA.sjMotifStrand==0 && P->outSAMstrandField=="intronMotif") {//strand not defined for a junction + return; + }; + + if (P->outFilterIntronMotifs=="None") {//no filtering + + } else if (P->outFilterIntronMotifs=="RemoveNoncanonical") { + for (uint iex=0;iexoutFilterIntronMotifs=="RemoveNoncanonicalUnannotated") { + for (uint iex=0;iexinOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + {//check mapped length for each mate + uint nsj=0,exl=0; + for (uint iex=0;iex0 && (exlalignSplicedMateMapLmin || exl < (uint) (P->alignSplicedMateMapLminOverLmate*RA->readLength[trA.exons[iex][EX_iFrag]])) ) { + return; //do not record this transcript + }; + exl=0;nsj=0; + } else if (trA.canonSJ[iex]>=0) { + nsj++; + }; + }; + }; + + if (P->outFilterBySJoutStage==2) {//junctions have to be present in the filtered set P->sjnovel + for (uint iex=0;iex=0 && trA.sjAnnot[iex]==0) { + uint jS=trA.exons[iex][EX_G]+trA.exons[iex][EX_L]; + uint jE=trA.exons[iex+1][EX_G]-1; + if ( binarySearch2(jS,jE,P->sjNovelStart,P->sjNovelEnd,P->sjNovelN) < 0 ) return; + }; + }; + + }; + + if ( trA.exons[0][EX_iFrag]!=trA.exons[trA.nExons-1][EX_iFrag] ) {//check for correct overlap between mates + if (trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] <= trA.exons[0][EX_G]) return; //to avoid negative insert size + uint iexM2=trA.nExons; + for (uint iex=0;iex trA.exons[iexM2][EX_G] ) {//mates overlap - check consistency of junctions + + if (trA.exons[0][EX_G] > trA.exons[iexM2][EX_G]+trA.exons[0][EX_R]) return; //LeftMateStart > RightMateStart + if (trA.exons[iexM2-1][EX_G]+trA.exons[iexM2-1][EX_L] > trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]) return; //LeftMateEnd > RightMateEnd + + //check for junctions consistency + uint iex1=1, iex2=iexM2+1; //last exons of the junction + for (; iex1= trA.exons[iex2-1][EX_G] + trA.exons[iex2-1][EX_L]) break; + }; + while (iex1scoreGenomicLengthLog2scale!=0) {//add gap length score + Score += int(ceil( log2( (double) ( trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] - trA.exons[0][EX_G]) ) \ + * P->scoreGenomicLengthLog2scale - 0.5)); + Score = max(0,Score); + }; + + //calculate some final values for the transcript + trA.roStart = (trA.roStr == 0) ? trA.rStart : Lread - trA.rStart - trA.rLength; + trA.maxScore=Score; + + if (trA.exons[0][EX_iFrag]==trA.exons[trA.nExons-1][EX_iFrag]) {//mark single fragment transcripts + trA.iFrag=trA.exons[0][EX_iFrag]; + RA->maxScoreMate[trA.iFrag] = max (RA->maxScoreMate[trA.iFrag] , Score); + } else { + trA.iFrag=-1; + }; + + if ( Score+P->outFilterMultimapScoreRange >= wTr[0]->maxScore \ + || ( trA.iFrag>=0 && Score+P->outFilterMultimapScoreRange >= RA->maxScoreMate[trA.iFrag] ) \ + || P->chimSegmentMin>0) { + //only record the transcripts within the window that are in the Score range + //OR within the score range of each mate + //OR all transcript if chimeric detection is activated + + if (P->outFilterMismatchNoverLmax1<0) {//check that the alignment is end-to-end + uint rTotal=trA.rLength+trA.lIns; +// for (uint iex=1;iexreadLength[0]+RA->readLength[1])) || (trA.iFrag>=0 && rTotalreadLength[trA.iFrag])) return; + }; + + uint iTr=0; //transcript insertion/replacement place + + trA.mappedLength=0; + for (uint iex=0;iexmappedLength-nOverlap; + + if (uNew==0 && Score < wTr[iTr]->maxScore) {//new transript is a subset of the old ones + break; + } else if (uOld==0) {//old transcript is a subset of the new one, remove old transcript + Transcript *pTr=wTr[iTr]; + for (uint ii=iTr+1;ii<*nWinTr;ii++) wTr[ii-1]=wTr[ii]; //shift transcripts + (*nWinTr)--; + wTr[*nWinTr]=pTr; + } else if (uOld>0 && (uNew>0 || Score >= wTr[iTr]->maxScore) ) {//check next transcript + iTr++; + }; + + }; + + if (iTr==*nWinTr) {//insert the new transcript + for (iTr=0;iTr<*nWinTr;iTr++) {//find inseriton location + if (Score>wTr[iTr]->maxScore || (Score==wTr[iTr]->maxScore && trA.gLengthgLength) ) break; + }; + + Transcript *pTr=wTr[*nWinTr]; + for (int ii=*nWinTr; ii> int(iTr); ii--) {//shift all the transcript pointers down from iTr + wTr[ii]=wTr[ii-1]; + }; + wTr[iTr]=pTr; //the new transcript pointer is now at *nWinTr+1, move it into the iTr + *(wTr[iTr])=trA; + if (*nWinTralignTranscriptsPerWindowNmax) { + (*nWinTr)++; //increment number of transcripts per window; + } else { + //"WARNING: too many recorded transcripts per window: iRead="<iRead<< "\n"; + }; + }; + }; + + + return; + }; + + /////////////////////////////////////////////////////////////////////////////////// + int dScore=0; + Transcript trAi=trA; //trA copy with this align included, to be used in the 1st recursive call of StitchAlign + if (trA.nExons>0) {//stitch, a transcript has already been originated + + dScore=stitchAlignToTranscript(tR2, tG2, WA[iA][WA_rStart], WA[iA][WA_gStart], WA[iA][WA_Length], WA[iA][WA_iFrag], WA[iA][WA_sjA], P, R, Q, G, &trAi, RA->outFilterMismatchNmaxTotal); + //TODO check if the new stitching creates too many MM, quit this transcript if so + + } else { //this is the first align in the transcript + trAi.exons[0][EX_R]=trAi.rStart=WA[iA][WA_rStart]; //transcript start/end + trAi.exons[0][EX_G]=trAi.gStart=WA[iA][WA_gStart]; + trAi.exons[0][EX_L]=WA[iA][WA_Length]; + trAi.exons[0][EX_iFrag]=WA[iA][WA_iFrag]; + trAi.exons[0][EX_sjA]=WA[iA][WA_sjA]; + + trAi.nExons=1; //recorded first exon + + for (uint ii=0;ii-1000000) {//include this align + WAincl[iA]=true; + + if ( WA[iA][WA_Nrep]==1 ) trAi.nUnique++; //unique piece + if ( WA[iA][WA_Anchor]>0 ) trAi.nAnchor++; //anchor piece piece + + stitchWindowAligns(iA+1, nA, Score+dScore, WAincl, WA[iA][WA_rStart]+WA[iA][WA_Length]-1, WA[iA][WA_gStart]+WA[iA][WA_Length]-1, trAi, Lread, WA, R, Q, G, sigG, P, wTr, nWinTr, RA); + } else { + + }; + + //also run a transcript w/o including this align + if (WA[iA][WA_Anchor]!=2 || trA.nAnchor>0) {//only allow exclusion if this is not the last anchor, or other anchors have been used + WAincl[iA]=false; + stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, G, sigG, P, wTr, nWinTr, RA); + }; + return; +}; + + diff --git a/stitchWindowAligns.h b/stitchWindowAligns.h new file mode 100644 index 0000000..9195912 --- /dev/null +++ b/stitchWindowAligns.h @@ -0,0 +1,12 @@ +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "extendAlign.h" +#include "stitchAlignToTranscript.h" +#include "ReadAlign.h" + +void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ + uint Lread, uiWA* WA, char* R, char* Q, char* G, char* sigG,\ + Parameters* P, Transcript** wTr, uint* nWinTr, ReadAlign *RA); + //recursively stitch aligns for one gene + //*nWinTr - number of transcripts for the current window diff --git a/streamFuns.cpp b/streamFuns.cpp new file mode 100644 index 0000000..46d3b97 --- /dev/null +++ b/streamFuns.cpp @@ -0,0 +1,60 @@ +#include "streamFuns.h" +#include "ErrorWarning.h" +#include +#include +#include +#define fstream_Chunk_Max 2147483647 +unsigned long long fstreamReadBig(std::ifstream &S, char* A, unsigned long long N) { + unsigned long long C=0; + for (unsigned long long ii=0; iiinOut->logMain << "Writing " << N << " bytes into " <inOut->logMain, EXIT_CODE_FILE_WRITE, *P); + }; + P->inOut->logMain << " done\n" <inOut->logMain, EXIT_CODE_FILE_OPEN, *P); + }; +}; diff --git a/streamFuns.h b/streamFuns.h new file mode 100644 index 0000000..e168530 --- /dev/null +++ b/streamFuns.h @@ -0,0 +1,12 @@ +#ifndef CODE_streamFuns +#define CODE_streamFuns + +#include "Parameters.h" +#include + +unsigned long long fstreamReadBig(std::ifstream &S, char* A, unsigned long long N); +void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::string fileName, std::string errorID, Parameters *P) ; + +void ofstrOpen (std::string fileName, std::string errorID, Parameters *P, ofstream & ofStream); + +#endif diff --git a/stringSubstituteAll.cpp b/stringSubstituteAll.cpp new file mode 100644 index 0000000..f14fb09 --- /dev/null +++ b/stringSubstituteAll.cpp @@ -0,0 +1,10 @@ +#include "stringSubstituteAll.h" + +void stringSubstituteAll(std::string& str, const std::string& from, const std::string& to) { + if(from.empty()) return; + size_t start_pos = 0; + while((start_pos = str.find(from, start_pos)) != std::string::npos) { + str.replace(start_pos, from.length(), to); + start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx' + }; +}; diff --git a/stringSubstituteAll.h b/stringSubstituteAll.h new file mode 100644 index 0000000..bf86023 --- /dev/null +++ b/stringSubstituteAll.h @@ -0,0 +1,8 @@ +#ifndef DEF_stringReplaceAll +#define DEF_stringReplaceAll + +#include + +void stringSubstituteAll(std::string& str, const std::string& from, const std::string& to); + +#endif diff --git a/sysRemoveDir.cpp b/sysRemoveDir.cpp new file mode 100644 index 0000000..c3de76c --- /dev/null +++ b/sysRemoveDir.cpp @@ -0,0 +1,22 @@ +#include +#include +//#define _XOPEN_SOURCE 500 +#include +#include + +int removeFileOrDir(const char *fpath,const struct stat *sb, int typeflag, struct FTW *ftwbuf) { + if (typeflag==FTW_F) {//file + remove(fpath); + } else if (typeflag==FTW_DP) {//dir + rmdir(fpath); + } else {//something went wrong, stop the removal + return -1; + }; + return 0; +}; + + +void sysRemoveDir(std::string dirName) {//remove directory and all its contents + int nftwFlag=FTW_DEPTH; + nftw(dirName.c_str(), removeFileOrDir, 100, nftwFlag); +}; diff --git a/sysRemoveDir.h b/sysRemoveDir.h new file mode 100644 index 0000000..d254b4e --- /dev/null +++ b/sysRemoveDir.h @@ -0,0 +1,8 @@ +#ifndef DEF_sysRemoveDir +#define DEF_sysRemoveDir + +#include + +void sysRemoveDir(std::string dirName); + +#endif \ No newline at end of file From 13c4e85c42e177793bdb11cf8bb2e4f401a9b5cb Mon Sep 17 00:00:00 2001 From: alexdobin Date: Tue, 21 Oct 2014 18:43:22 -0400 Subject: [PATCH 002/536] Releasing the new manual --- VERSION | 1 + parametersDefault | 81 ++++++++++++++++++++++++----------------------- 2 files changed, 42 insertions(+), 40 deletions(-) create mode 100644 VERSION diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..dc6bb5c --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +#define STAR_VERSION "STAR_2.4.0e" diff --git a/parametersDefault b/parametersDefault index 133e633..d9c778e 100644 --- a/parametersDefault +++ b/parametersDefault @@ -4,11 +4,11 @@ versionSTAR 020201 versionGenome 020101 020200 int>0: oldest value of the Genome version compatible with this STAR release. Please do not change this value! -### PARAMETER FILES +### Parameter Files parametersFiles - string: name of a user-defined parameters file, "-": none. Can only be defined on the command line. -### RUN PARAMETERS +### Run Parameters runMode alignReads string: type of the run: @@ -21,7 +21,7 @@ runThreadN 1 -### GENOME PARAMETERS +### Genome Parameters genomeDir ./GenomeDir/ string: path to the directory where genome files are stored (if runMode!=generateGenome) or will be generated (if runMode==generateGenome) @@ -36,11 +36,10 @@ genomeLoad NoSharedMemory -### GENOME GENERATION PARAMETERS +### Genome Generation Parameters genomeFastaFiles - - fasta files with genomic sequence for genome files generation, only used if runMode==genomeGenerate - string(s): path(s) to the files from the working directory (separated by spaces) + string(s): path(s) to the fasta files with genomic sequences for genome generation, separated by spaces. Only used if runMode==genomeGenerate. genomeChrBinNbits 18 int: =log2(chrBin), where chrBin is the size of the bins for genome storage: each chromosome will occupy an integer number of bins @@ -51,11 +50,33 @@ genomeSAindexNbases 14 genomeSAsparseD 1 int>0: suffux array sparsity, i.e. distance between indices: use bigger numbers to decrease needed RAM at the cost of mapping speed reduction -### INPUT FROM BAM +### Splice Junctions Database +sjdbFileChrStartEnd - + string: path to the file with genomic coordinates (chr start end strand) for the introns + +sjdbGTFfile - + string: path to the GTF file with annotations + +sjdbGTFchrPrefix - + string: prefix for chromosome names in a GTF file (e.g. 'chr' for using ENSMEBL annotations with UCSC geneomes) + +sjdbGTFfeatureExon exon + string: feature type in GTF file to be used as exons for building transcripts + +sjdbGTFtagExonParentTranscript transcript_id + string: tag name to be used as exons' parents for building transcripts + +sjdbOverhang 0 + int>=0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1) + if =0, splice junction database is not used +sjdbScore 2 + int: extra alignment score for alignmets that cross database junctions + +### Input Files inputBAMfile - string: path to BAM input file, to be used with --runMode inputAlignmentsFromBAM -### READ PARAMETERS +### Read Parameters readFilesIn Read1 Read2 string(s): paths to files that contain input read1 (and, if needed, read2) @@ -87,7 +108,7 @@ clip3pAfterAdapterNbases 0 int(s): number of bases to clip from 3p of each mate after the adapter clipping. If one value is given, it will be assumed the same for both mates. -### LIMITS +### Limits limitGenomeGenerateRAM 31000000000 int>0: maximum available RAM (bytes) for genome generation @@ -107,7 +128,7 @@ limitOutSJcollapsed 1000000 limitBAMsortRAM 0 int>=0: maximum available RAM for sorting BAM. If =0, it will be set to the genome index size -### OUTPUT: GENERAL +### Output: general outFileNamePrefix ./ string: output files name prefix (including full or relative path). Can only be defined on the command line. @@ -132,7 +153,7 @@ outQSconversionAdd 0 int: add this number to the quality score (e.g. to convert from Illumina to Sanger, use -31) -### OUTPUT: SAM/BAM +### Output: SAM and BAM outSAMtype SAM strings: type of SAM/BAM output 1st word: @@ -212,7 +233,7 @@ bamRemoveDuplicatesType - bamRemoveDuplicatesMate2basesN 0 int>0: number of bases from the 5' of mate 2 to use in collapsing (e.g. for RAMPAGE) -### OUTPUT WIGGLE +### Output Wiggle outWigType None string(s): type of signal output, e.g. "bedGraph" OR "bedGraph read1_5p" 1st word: @@ -236,7 +257,7 @@ outWigNorm RPM RPM ... reads per million of mapped reads None ... no normalization, "raw" counts -### OUTPUT FILTERING +### Output Filtering outFilterType Normal string: type of filtering Normal ... standard filtering using only current alignment @@ -278,7 +299,7 @@ outFilterIntronMotifs None -### OUTPUT FILTERING: SPLICE JUNCTIONS +### Output Filtering: Splice Junctions outSJfilterReads All string: which reads to consider for collapsed splice junctions output All: all reads, unique- and multi-mappers @@ -307,7 +328,7 @@ outSJfilterIntronMaxVsReadN 50000 100000 200000 i.e. by default junctions supported by 1 read can have gaps <=50000b, by 2 reads: <=100000b, by 3 reads: <=200000. by >=4 reads any gap <=alignIntronMax does not apply to annotated junctions -### SCORING +### Scoring scoreGap 0 gap open penalty @@ -339,7 +360,7 @@ scoreStitchSJshift 1 maximum score reduction while searching for SJ boundaries inthe stitching step -### ALIGNMENT and SEED PARAMETERS +### Alignments and Seeding seedSearchStartLmax 50 int>0: defines the search start point through the read - the read is split into pieces no longer than this value @@ -397,29 +418,9 @@ alignEndsType Local Local ...standard local alignment with soft-clipping allowed EndToEnd: force end-to-end read alignment, do not soft-clip -### SPLICE JUNCTIONS DATABASE PARAMETERS -sjdbFileChrStartEnd - - string: path to the file with genomic coordinates (chr start end strand) for the introns - -sjdbGTFfile - - string: path to the GTF file with annotations - -sjdbGTFchrPrefix - - string: prefix for chromosome names in a GTF file (e.g. 'chr' for using ENSMEBL annotations with UCSC geneomes) - -sjdbGTFfeatureExon exon - string: feature type in GTF file to be used as exons for building transcripts - -sjdbGTFtagExonParentTranscript transcript_id - string: tag name to be used as exons' parents for building transcripts -sjdbOverhang 0 - int>=0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1) - if =0, splice junction database is not used -sjdbScore 2 - int: extra alignment score for alignmets that cross database junctions -### WINDOWS, ANCHORS, BINNING +### Windows, Anchors, Binning winAnchorMultimapNmax 50 int>0: max number of loci anchors are allowed to map to @@ -435,7 +436,7 @@ winFlankNbins 4 -### CHIMERIC ALIGNMENTS +### Chimeric Alignments chimSegmentMin 0 int>=0: minimum length of chimeric segment length, if ==0, no chimeric output @@ -455,13 +456,13 @@ chimScoreJunctionNonGTAG -1 chimJunctionOverhangMin 20 int>=0: minimum overhang for a chimeric junction -### QUANTIFICATION OF ANNOTATIONS +### Quantification of Annotations quantMode - string(s): types of qunatification requested - ... none TranscriptomeSAM ... output SAM/BAM alignments to transcriptome into a separate file -### 2-PASS +### 2-pass Mapping twopass1readsN 0 int>0: number of reads to process for the 1st step. 0: 1-step only, no 2nd pass; use very large number to map all reads in the first step From 0a8389a2f40a89cd1b0ef3e2cf14384a87bb197f Mon Sep 17 00:00:00 2001 From: alexdobin Date: Thu, 23 Oct 2014 19:06:54 -0400 Subject: [PATCH 003/536] Ready for 2.4.0e --- Makefile | 40 +++++++++++++++++++++----------- Parameters_openReadsFiles.cpp | 24 ++++++++++++++----- ReadAlignChunk_processChunks.cpp | 11 ++++++--- STAR.cpp | 3 ++- ThreadControl.h | 2 +- mapThreadsSpawn.cpp | 8 +++++-- 6 files changed, 61 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 2203dce..86dbb74 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,10 @@ OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o Seq SOURCES := $(wildcard *.cpp) $(wildcard *.c) LDFLAGS := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -LDFLAGS_static := -static -static-libgcc $(LDFLAGS) +LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz +LDFLAGS_Mac :=-pthread -lz htslib/libhts.a +LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a + LDFLAGS_gdb := $(LDFLAGS) COMPTIMEPLACE := -D'COMPILATION_TIME_PLACE="$(shell echo `date` $(HOSTNAME):`pwd`)"' @@ -26,14 +29,14 @@ CCFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) $(OPT CCFLAGS_main := -O3 $(CCFLAGS_common) CCFLAGS_gdb := -O0 -g $(CCFLAGS_common) -CC :=g++ +CXX :=g++ %.o : %.cpp - $(CC) -c $(CCFLAGS) $< + $(CXX) -c $(CCFLAGS) $< %.o : %.c - $(CC) -c $(CCFLAGS) $< + $(CXX) -c $(CCFLAGS) $< all: STAR @@ -53,16 +56,20 @@ cleanRelease: ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),cleanRelease) +ifneq ($(MAKECMDGOALS),CLEAN) ifneq ($(MAKECMDGOALS),STARforMac) ifneq ($(MAKECMDGOALS),STARforMacGDB) Depend.list: $(SOURCES) parametersDefault.xxd htslib echo $(SOURCES) /bin/rm -f ./Depend.list - $(CC) $(CCFLAGS_common) -MM $^ >> Depend.list + $(CXX) $(CCFLAGS_common) -MM $^ >> Depend.list include Depend.list endif endif endif +endif +endif htslib : htslib/libhts.a @@ -74,39 +81,44 @@ parametersDefault.xxd: parametersDefault STAR : CCFLAGS=$(CCFLAGS_main) STAR : Depend.list parametersDefault.xxd $(OBJECTS) - $(CC) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) + $(CXX) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) STARstatic : CCFLAGS=$(CCFLAGS_main) STARstatic : Depend.list parametersDefault.xxd $(OBJECTS) - $(CC) -o STARstatic $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) + $(CXX) -o STARstatic $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) STARlong : CCFLAGS=-D'COMPILE_FOR_LONG_READS' $(CCFLAGS_main) STARlong : Depend.list parametersDefault.xxd $(OBJECTS) - $(CC) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) + $(CXX) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) STARlongStatic : CCFLAGS=-D'COMPILE_FOR_LONG_READS' $(CCFLAGS_main) STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS) - $(CC) -o STARstatic $(CCFLAGS) $(LDFLAGS_static) $(OBJECTS) + $(CXX) -o STARstatic $(CCFLAGS) $(LDFLAGS_static) $(OBJECTS) STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) STARforMac : parametersDefault.xxd $(OBJECTS) - $(CC) -o STAR $(CCFLAGS) $(LDFLAGS) $(OBJECTS) + $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac) $(OBJECTS) + +STARforMacStatic : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) +STARforMacStatic : parametersDefault.xxd $(OBJECTS) + $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac_static) $(OBJECTS) + STARforMacGDB : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_gdb) STARforMacGDB : parametersDefault.xxd $(OBJECTS) - $(CC) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) + $(CXX) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) gdb : CCFLAGS= $(CCFLAGS_gdb) gdb : Depend.list parametersDefault.xxd $(OBJECTS) - $(CC) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) + $(CXX) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) gdb-long : CCFLAGS= -D'COMPILE_FOR_LONG_READS' $(CCFLAGS_gdb) gdb-long : Depend.list parametersDefault.xxd $(OBJECTS) - $(CC) -o STAR $(CCFLAGS) $(LDFLAGS_gdb) $(OBJECTS) + $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_gdb) $(OBJECTS) localChains : CCFLAGS=-D'OUTPUT_localChains' $(CCFLAGS_main) localChains : Depend.list parametersDefault.xxd $(OBJECTS) - $(CC) -o STAR $(CCFLAGS) $(LDFLAGS) $(OBJECTS) + $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS) $(OBJECTS) diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index 4db7116..aefc57a 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -33,11 +33,16 @@ void Parameters::openReadsFiles() { remove(readFilesInTmp.at(imate).c_str()); mkfifo(readFilesInTmp.at(imate).c_str(), S_IRUSR | S_IWUSR ); - inOut->logMain << "Input read files for mate "<< imate+1 <<", from input string " << readFilesIn.at(imate) <logMain << "\n Input read files for mate "<< imate+1 <<", from input string " << readFilesIn.at(imate) < \""<logMain <& "+ outFileTmp+"/readFilesIn.info").c_str()); + ifstream readFilesIn_info((outFileTmp+"/readFilesIn.info").c_str()); + inOut->logMain < " << ("\""+readFilesInTmp.at(imate)+"\"") << "\n"; - readsCommandFile << readFilesCommandString << " " <<("\""+file1+"\"") << (" > \""+readFilesInTmp.at(imate)+"\"") <<"\n"; + readsCommandFile << "echo FILE " <logMain <<"\n readsCommandsFile:\n"<runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexInRead); uint chunkInSizeBytesTotal[2]={0,0}; - while (chunkInSizeBytesTotal[0] < P->chunkInSizeBytes && chunkInSizeBytesTotal[1] < P->chunkInSizeBytes && !P->inOut->readIn[0].eof() && !P->inOut->readIn[1].eof()) { + while (chunkInSizeBytesTotal[0] < P->chunkInSizeBytes && chunkInSizeBytesTotal[1] < P->chunkInSizeBytes && P->inOut->readIn[0].good() && P->inOut->readIn[1].good()) { char nextChar=P->inOut->readIn[0].peek(); if (P->iReadAll==P->readMapNumber) {//do nto read any more reads break; @@ -82,7 +82,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks // P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); // }; nextChar=P->inOut->readIn[imate].peek(); - while (nextChar!='@' && nextChar!='>' && nextChar!=' ' && nextChar!='\n' && !P->inOut->readIn[0].eof()) {//read multi-line fasta + while (nextChar!='@' && nextChar!='>' && nextChar!=' ' && nextChar!='\n' && P->inOut->readIn[0].good()) {//read multi-line fasta P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readSeqLengthMax + 1 ); if (P->inOut->readIn[imate].gcount()<2) break; //no more input chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount()-1; @@ -91,19 +91,22 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n'; chunkInSizeBytesTotal[imate] ++; }; - } else if (nextChar==' ' || nextChar=='\n' || P->inOut->readIn[0].eof()) {//end of stream + } else if (nextChar==' ' || nextChar=='\n' || !P->inOut->readIn[0].good()) {//end of stream + P->inOut->logMain << "Thread #" <inOut->readIn[0] >> P->readFilesIndex; + pthread_mutex_lock(&g_threadChunks.mutexLogMain); P->inOut->logMain << "Starting to map file # " << P->readFilesIndex<<"\n"; for (uint imate=0; imatereadNmates; imate++) { P->inOut->logMain << "mate " <readFilesNames.at(imate).at(P->readFilesIndex) <<"\n"; P->inOut->readIn[imate].ignore(numeric_limits::max(),'\n'); }; P->inOut->logMain<readNmates==2) {//skip the FILE line for the second read // getline(P->inOut->readIn[1],word1); // }; @@ -162,6 +165,8 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks }; }; }; + if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexLogMain); P->inOut->logMain << "Completed: thread #" <runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexLogMain); }; diff --git a/STAR.cpp b/STAR.cpp index a4a30a3..c9d9dab 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -221,8 +221,9 @@ int main(int argInN, char* argIn[]) { }; mapThreadsSpawn(P, RAchunk); - + if (P->outFilterBySJoutStage==1) {//completed stage 1, go to stage 2 + P->inOut->logMain << "Completed stage 1 mapping of outFilterBySJout mapping\n"<readFilesIndex=-1; diff --git a/ThreadControl.h b/ThreadControl.h index 4a01c28..dd5bfae 100644 --- a/ThreadControl.h +++ b/ThreadControl.h @@ -11,7 +11,7 @@ class ThreadControl { bool threadBool; pthread_t *threadArray; - pthread_mutex_t mutexInRead, mutexOutSAM, mutexOutBAM1, mutexOutChimSAM, mutexOutChimJunction, mutexOutUnmappedFastx, mutexOutFilterBySJout, mutexStats; + pthread_mutex_t mutexInRead, mutexOutSAM, mutexOutBAM1, mutexOutChimSAM, mutexOutChimJunction, mutexOutUnmappedFastx, mutexOutFilterBySJout, mutexStats, mutexLogMain; uint chunkInN,chunkOutN; diff --git a/mapThreadsSpawn.cpp b/mapThreadsSpawn.cpp index 8ecb83f..833ffb5 100644 --- a/mapThreadsSpawn.cpp +++ b/mapThreadsSpawn.cpp @@ -11,7 +11,9 @@ void mapThreadsSpawn (Parameters *P, ReadAlignChunk** RAchunk) { errOut << "EXITING because of FATAL ERROR: phtread error while creating thread # " << ithread <<", error code: "<inOut->logMain, 1, *P); }; - P->inOut->logMain << "Created thread # " <inOut->logMain << "Created thread # " <processChunks(); //start main thread @@ -23,7 +25,9 @@ void mapThreadsSpawn (Parameters *P, ReadAlignChunk** RAchunk) { errOut << "EXITING because of FATAL ERROR: phtread error while joining thread # " << ithread <<", error code: "<inOut->logMain, 1, *P); }; - P->inOut->logMain << "Joined thread # " <inOut->logMain << "Joined thread # " < Date: Fri, 24 Oct 2014 11:14:48 -0400 Subject: [PATCH 004/536] STAR_2.4.0e --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index dc6bb5c..ec5441e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0e" +#define STAR_VERSION "STAR_2.4.0e" From 62e042602be0d2e0639e5edf945442302f798ebf Mon Sep 17 00:00:00 2001 From: "Brett T. Hannigan" Date: Fri, 24 Oct 2014 15:20:07 -0700 Subject: [PATCH 005/536] Adding RG data to transcriptome bam. --- Parameters.cpp | 1 + STAR.cpp | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 277fb04..d1ad9a1 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -720,6 +720,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.jI=true; } else if (vAttr1.at(ii)== "RG") { outSAMattrOrder.push_back(ATTR_RG); + outSAMattrOrderQuant.push_back(ATTR_RG); outSAMattrPresent.RG=true; } else if (vAttr1.at(ii)== "XS") { outSAMattrOrder.push_back(ATTR_XS); diff --git a/STAR.cpp b/STAR.cpp index c9d9dab..0b81d38 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -198,7 +198,10 @@ int main(int argInN, char* argIn[]) { uint32 iex1=mainTranscriptome->trExI[ii]+mainTranscriptome->trExN[ii]-1; //last exon of the transcript trlength.push_back(mainTranscriptome->exLenCum[iex1]+mainTranscriptome->exSE[2*iex1+1]-mainTranscriptome->exSE[2*iex1]+1); samHeaderStream << "@SQ\tSN:"<< mainTranscriptome->trID.at(ii) <<"\tLN:"<outSAMattrRGlineSplit.size();ii++) {//@RG lines + samHeaderStream << "@RG\t" << P->outSAMattrRGlineSplit.at(ii) <<"\n"; + }; outBAMwriteHeader(P->inOut->outQuantBAMfile,samHeaderStream.str(),mainTranscriptome->trID,trlength); }; From 990022ea9fd06730e97dfc5001d5ec5616b50e0b Mon Sep 17 00:00:00 2001 From: "Brett T. Hannigan" Date: Mon, 27 Oct 2014 08:53:32 -0700 Subject: [PATCH 006/536] Getting the proper ID for RG's. --- Parameters.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index d1ad9a1..ea74bd1 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -578,10 +578,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"EXITING because of FATAL INPUT ERROR: the first word of a line from --outSAMattrRGline="<logMain, EXIT_CODE_PARAMETER, *this); - }; - outSAMattrRG.push_back(outSAMattrRGlineSplit.back().substr(3)); + }; + size_t pos = outSAMattrRGlineSplit.back().find("\t"); + pos = (pos == string::npos) ? outSAMattrRGlineSplit.back().size() : pos; + outSAMattrRG.push_back(outSAMattrRGlineSplit.back().substr(3, pos-3)); }; - outSAMattrRGlineSplit.back()+="\t" + outSAMattrRGline.at(ii); + //outSAMattrRGlineSplit.back()+="\t" + outSAMattrRGline.at(ii); }; }; }; @@ -739,6 +741,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (outSAMattrRG.size()>0 && !outSAMattrPresent.RG) { outSAMattrOrder.push_back(ATTR_RG); + outSAMattrOrderQuant.push_back(ATTR_RG); inOut->logMain << "WARNING --outSAMattrRG defines a read group, therefore STAR will output RG attribute" < Date: Mon, 27 Oct 2014 11:45:23 -0700 Subject: [PATCH 007/536] Going back to allowing RG's to be non-quoted, but making sure the RG ID portion is only inserted once. --- Parameters.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index ea74bd1..115741e 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -579,11 +579,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR with all lines in --outSAMattrRGline starting with ID:xxx\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - size_t pos = outSAMattrRGlineSplit.back().find("\t"); - pos = (pos == string::npos) ? outSAMattrRGlineSplit.back().size() : pos; - outSAMattrRG.push_back(outSAMattrRGlineSplit.back().substr(3, pos-3)); - }; - //outSAMattrRGlineSplit.back()+="\t" + outSAMattrRGline.at(ii); + outSAMattrRG.push_back(outSAMattrRGlineSplit.back().substr(3)); + + } + else + outSAMattrRGlineSplit.back()+="\t" + outSAMattrRGline.at(ii); }; }; }; From bf36c529ded21a764874bf0ecf7fad0a57165a38 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 30 Oct 2014 15:18:43 -0400 Subject: [PATCH 008/536] Fixed problems with RAM allocation for BAM sorting, 2-pass method. --- BAMbinSortByCoordinate.cpp | 2 +- Genome.cpp | 25 ++++++++++++++----------- Genome.h | 8 +++++--- PackedArray.cpp | 14 ++++++++++++++ PackedArray.h | 3 +++ STAR.cpp | 3 ++- sjdbBuildIndex.cpp | 36 +++++++++++++++++++----------------- 7 files changed, 58 insertions(+), 33 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index eca4052..0b8d662 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -4,7 +4,7 @@ #include "BAMfunctions.h" void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters *P) { - + if (binS==0) return; //nothing to do for empty bins //allocate arrays char *bamIn=new char[binS]; diff --git a/Genome.cpp b/Genome.cpp index b6cdb98..8e1766b 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -35,7 +35,17 @@ Genome::~Genome() { shmctl(shmID,IPC_RMID,&shmStat); P->inOut->logMain <<"No other jobs are attached to the shared memory segement, removing it."<genomeLoad=="NoSharedMemory") {//cannot deallocate for shared memory + delete[] G1; + G1=NULL; + SA.deallocateArray(); + SA2.deallocateArray(); + SAi.deallocateArray(); + }; }; void Genome::genomeLoad(){//allocate and load Genome @@ -46,7 +56,6 @@ void Genome::genomeLoad(){//allocate and load Genome uint *shmNG=NULL, *shmNSA=NULL; //pointers to shm stored values , *shmSG, *shmSSA uint64 shmSize=0;//, shmStartG=0; shmStartSA=0; - uint L=200,K=6; time_t rawtime; @@ -213,11 +222,6 @@ void Genome::genomeLoad(){//allocate and load Genome P->nSA=(P->nSAbyte*8)/(P->GstrandBit+1); SA.defineBits(P->GstrandBit+1,P->nSA); - if (P->twopass1readsN>0) {//2-pass: reserve extra memory - P->nGenome2=P->nGenome+P->twopassSJlimit*P->sjdbOverhang*2; - SA2.defineBits(P->GstrandBit+1,P->nSA+P->sjdbOverhang*2); - }; - P->SAiMarkNbit=P->GstrandBit+1; P->SAiMarkAbsentBit=P->GstrandBit+2; @@ -245,10 +249,10 @@ void Genome::genomeLoad(){//allocate and load Genome /////////////////////////////////////// allocate arrays if (P->genomeLoad=="NoSharedMemory") {// simply allocate memory, do not use shared memory try { - if (P->twopass1readsN==0) {//2-pass: reserve extra memory + if (P->twopass1readsN==0) {//1-pass, no extra memory G1=new char[P->nGenome+L+L]; SA.allocateArray(); - } else { + } else {//2-pass: reserve extra memory P->nGenome2=P->nGenome+P->twopassSJlimit*P->sjdbLength; SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->twopassSJlimit*P->sjdbLength); G1=new char[P->nGenome2+L+L]; @@ -257,8 +261,7 @@ void Genome::genomeLoad(){//allocate and load Genome }; SAi.allocateArray(); P->inOut->logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000 << " bytes\n"; diff --git a/Genome.h b/Genome.h index 1a139c4..2b32bc0 100644 --- a/Genome.h +++ b/Genome.h @@ -9,11 +9,13 @@ class Genome { char *G, *sigG; PackedArray SA,SA2; PackedArray SAi; - void genomeLoad(); Genome (Parameters* Pin ) : P(Pin) {}; - Genome () {}; - ~Genome(); + Genome () {};//empty constructor + ~Genome (); + void freeMemory(); + void genomeLoad(); + private: char *G1; //pointer -200 of G Parameters* P; diff --git a/PackedArray.cpp b/PackedArray.cpp index c47ef1d..92ed3ad 100644 --- a/PackedArray.cpp +++ b/PackedArray.cpp @@ -1,5 +1,10 @@ # include "PackedArray.h" +PackedArray::PackedArray() { + charArray=NULL; + arrayAllocated=false; +}; + void PackedArray::defineBits(uint Nbits, uint lengthIn){ wordLength=Nbits; wordCompLength=sizeof(uint)*8LLU-wordLength; @@ -24,4 +29,13 @@ void PackedArray::pointArray(char* pointerCharIn) { void PackedArray::allocateArray() { charArray=new char[lengthByte]; + arrayAllocated=true; +}; + +void PackedArray::deallocateArray() { + if (arrayAllocated) { + delete[] charArray; + arrayAllocated=false; + }; + charArray=NULL; }; diff --git a/PackedArray.h b/PackedArray.h index 0fd6090..af479aa 100644 --- a/PackedArray.h +++ b/PackedArray.h @@ -6,14 +6,17 @@ class PackedArray { private: uint bitRecMask, wordCompLength; + bool arrayAllocated; //true if charArray was allocated public: uint wordLength, length, lengthByte; uint operator [] (uint ii); char* charArray; + PackedArray(); void defineBits (uint Nbits, uint lengthIn); void writePacked(uint jj, uint x); void allocateArray(); + void deallocateArray(); void pointArray(char* pointerCharIn); // PackedArray(uint N); }; diff --git a/STAR.cpp b/STAR.cpp index c9d9dab..268dd68 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -246,7 +246,8 @@ int main(int argInN, char* argIn[]) { }; //no need for genome anymore, free the memory - mainGenome.~Genome(); //need explicit call because of the delete P->inOut below +// mainGenome.~Genome(); //need explicit call because of the delete P->inOut below + mainGenome.freeMemory(); if (P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files RAchunk[0]->chunkFilesCat(P->inOut->outSAM, P->outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 8abdf23..1a8e053 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -59,15 +59,14 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, }; SjdbClass sjdbLoci; sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); - P->inOut->logMain << "Loaded database junctions from the 1st pass file: " << P->twopassSJpass1file <<": "<inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twopassSJpass1file <<": "<nGenome, P->twopassDir);//P->nGenome - change when replacing junctions -// time ( &rawtime ); -// cout << timeMonthDayTime(rawtime) << "prepare" <inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search" <sjdbN*nIndicesSJ1; ii++) { if (indArray[ii*2]!= (uint) -1) { @@ -124,10 +123,11 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, // cout << timeMonthDayTime(rawtime) << "remove -1, nInd="<inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indicesL nInd="<nSA+=nInd; SA2.defineBits(P->GstrandBit+1,P->nSA); @@ -149,14 +149,14 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, ++isa2; ++isj; }; }; -// time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SA2" <<" "<inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" <genomeSAindexNbases; iL++) { uint iSJ=0; uint ind0=P->genomeSAindexStart[iL]-1; - for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index + for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index uint iSA1=SAi[ii]; uint iSA2=iSA1 & P->SAiMarkNmask & P->SAiMarkAbsentMask; @@ -221,10 +221,12 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, }; }; }; -// time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SAi finished " <inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <GstrandBit+1,P->nSA);//same as SA2 + SA.pointArray(SA2.charArray); P->sjGstart=P->nGenome; P->nGenome+=nGsj; From 0851286c4467659fb4a2727da76e7e2843b2b1e2 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 30 Oct 2014 16:32:15 -0400 Subject: [PATCH 009/536] Fixed a bug with double ID field in the RG header line. Added read group (RG) BAM attrboutes to transcriptome BAM. Both contributed by https://github.com/godotgildor. --- Parameters.cpp | 9 ++++----- VERSION | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 115741e..070068a 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -572,18 +572,17 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters for (uint ii=0;ii0) ++ii;//skip comma - outSAMattrRGlineSplit.push_back(outSAMattrRGline.at(ii)); //star new RG line with an empty string + outSAMattrRGlineSplit.push_back(outSAMattrRGline.at(ii)); //star new RG line with the first field which must be ID:xxx if (outSAMattrRGlineSplit.back().substr(0,3)!="ID:") { ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: the first word of a line from --outSAMattrRGline="<logMain, EXIT_CODE_PARAMETER, *this); }; - outSAMattrRG.push_back(outSAMattrRGlineSplit.back().substr(3)); - - } - else + outSAMattrRG.push_back(outSAMattrRGlineSplit.back().substr(3)); //this adds the ID field + } else {//keep adding fields to this RG line, until the next comma outSAMattrRGlineSplit.back()+="\t" + outSAMattrRGline.at(ii); + }; }; }; }; diff --git a/VERSION b/VERSION index ec5441e..fe2490f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0e" +#define STAR_VERSION "STAR_2.4.0e_modified" From 570f49c0de753ce11fd00643d745e4834cf41004 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 30 Oct 2014 18:18:36 -0400 Subject: [PATCH 010/536] Ready for 2.4.0f --- BAMbinSortByCoordinate.cpp | 2 +- Parameters.cpp | 10 ++++++++++ Parameters.h | 2 +- STAR.cpp | 24 +++++++++++++----------- Transcriptome.cpp | 10 +++++++++- VERSION | 2 +- parametersDefault | 4 ++-- streamFuns.cpp | 11 +++++++++++ 8 files changed, 48 insertions(+), 17 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index 0b8d662..ec35650 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -43,7 +43,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st BGZF *bgzfBin; bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P->outBAMcompression)).c_str()); - outBAMwriteHeader(bgzfBin,P->samHeader,P->chrName,P->chrLength); + outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrName,P->chrLength); //send ordered aligns to bgzf one-by-one for (uint ia=0;ia 10000000000 (i.e 10GB).\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + inOut->logMain<<"WARNING: --limitBAMsortRAM=0, will use genome sizeas RAM linit foro BAM sorting\n"; + }; inOut->logMain << "Finished loading and checking parameters\n" < outSAMattributes, outSAMheaderHD, outSAMheaderPG; vector outSAMattrRGline,outSAMattrRGlineSplit,outSAMattrRG; diff --git a/STAR.cpp b/STAR.cpp index c5ce731..2d8327b 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -136,16 +136,6 @@ int main(int argInN, char* argIn[]) { //open SAM/BAM files for output if (P->outSAMmode != "None") {//open SAM file and write header ostringstream samHeaderStream; - - if (P->outSAMheaderHD.at(0)!="-") { - samHeaderStream << P->outSAMheaderHD.at(0); - for (uint ii=1;iioutSAMheaderHD.size(); ii++) { - samHeaderStream << "\t" << P->outSAMheaderHD.at(ii); - }; - samHeaderStream << "\n"; - } else { - samHeaderStream << "@HD\tVN:1.4\n"; - }; for (uint ii=0;iinChrReal;ii++) { samHeaderStream << "@SQ\tSN:"<< P->chrName.at(ii) <<"\tLN:"<chrLength[ii]<<"\n"; @@ -179,7 +169,19 @@ int main(int argInN, char* argIn[]) { samHeaderStream << "@CO\t" <<"user command line: " << P->commandLine <<"\n"; - P->samHeader=samHeaderStream.str(); + if (P->outSAMheaderHD.at(0)!="-") { + P->samHeaderHD = P->outSAMheaderHD.at(0); + for (uint ii=1;iioutSAMheaderHD.size(); ii++) { + P->samHeaderHD +="\t" + P->outSAMheaderHD.at(ii); + }; + } else { + P->samHeaderHD = "@HD\tVN:1.4"; + }; + + + P->samHeader=P->samHeaderHD+"\n"+samHeaderStream.str(); + //for the sorted BAM, need to add SO:cooridnate to the header line + P->samHeaderSortedCoord=P->samHeaderHD + (P->outSAMheaderHD.size()==0 ? "" : "\tSO:coordinate") + "\n" + samHeaderStream.str(); if (P->outSAMbool) {// *P->inOut->outSAM << P->samHeader; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 4b52392..3ab695d 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -1,11 +1,19 @@ #include "Transcriptome.h" +#include "ErrorWarning.h" Transcriptome::Transcriptome (Parameters* Pin) { P=Pin; - //load tr ans ex info + //load tr and ex info ifstream trinfo((P->genomeDir+"/transcriptInfo.tab").c_str()); + if (trinfo.fail()) {//could not open file + ostringstream errOut; + errOut << "ERROR_01101: exiting because of *INPUT FILE* error: could not open for reading "<< (P->genomeDir+"/transcriptInfo.tab") <<"\n"; + errOut << "SOLUTION: if this file is missing from the genome directory, you will need to *re-generate the genome*, \n"; + errOut << " if this file is present, check its read permissions\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_FILE_OPEN, *P); + }; trinfo >> nTr; trS=new uint [nTr]; diff --git a/VERSION b/VERSION index fe2490f..1959f98 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0e_modified" +#define STAR_VERSION "STAR_2.4.0f" diff --git a/parametersDefault b/parametersDefault index d9c778e..0539378 100644 --- a/parametersDefault +++ b/parametersDefault @@ -126,7 +126,7 @@ limitOutSJcollapsed 1000000 int>0: max number of collapsed junctions limitBAMsortRAM 0 - int>=0: maximum available RAM for sorting BAM. If =0, it will be set to the genome index size + int>=0: maximum available RAM for sorting BAM. If =0, it will be set to the genome index size. 0 value can only be used with --genomeLoad NoSharedMemory option. ### Output: general outFileNamePrefix ./ @@ -162,7 +162,7 @@ outSAMtype SAM None ... no SAM/BAM output 2nd, 3rd: Unsorted ... standard unsorted - SortedByCoordinate ... sorted by coordinate + SortedByCoordinate ... sorted by coordinate. This option will allocate extra memory for sorting which can be specified by --limitBAMsortRAM. outSAMmode Full string: mode of SAM output diff --git a/streamFuns.cpp b/streamFuns.cpp index 46d3b97..37117ca 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -58,3 +58,14 @@ void ofstrOpen (std::string fileName, std::string errorID, Parameters *P, ofstre exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_FILE_OPEN, *P); }; }; + + +// void ifstrOpen (std::string fileName, std::string errorID, Parameters *P, ifstream & ofStream) {//open file 'fileName', generate error if cannot open +// ifStream.open(fileName.c_str()); +// if (ifStream.fail()) {// +// ostringstream errOut; +// errOut << errorID<<": exiting because of *INPUT FILE* error: could not open input file "<< fileName <<"\n"; +// errOut << "Solution: check that the path exists and you have write permission for this file\n"; +// exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_FILE_OPEN, *P); +// }; +// }; \ No newline at end of file From 5f53dc0ac3a8c945fa22bf41a76b25d37b16af75 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 30 Oct 2014 19:16:13 -0400 Subject: [PATCH 011/536] Ready for 2.4.0f1 --- Parameters.cpp | 2 +- VERSION | 2 +- parametersDefault | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 57f7ac0..26c4bcd 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -839,7 +839,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters sjdbLength=sjdbOverhang*2+1; }; - if (limitBAMsortRAM==0) {//check limitBAMsortRAM + if (outBAMcoord && limitBAMsortRAM==0) {//check limitBAMsortRAM if (genomeLoad!="NoSharedMemory") { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETERS error: limitBAMsortRAM=0 (default) cannot be used with --genomeLoad="<0: number of reads to process for the 1st step. 0: 1-step only, no 2nd pass; use very large number to map all reads in the first step + int>0: number of reads to process for the 1st step. 0: 1-step only, no 2nd pass; use very large number (or -1) to map all reads in the first step twopassSJlimit 1000000 int>=0: maximum number of junction detected in the 1st step From 44956fd760198cc24e731254006c7c60c10a3cb9 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 1 Nov 2014 14:11:23 -0400 Subject: [PATCH 012/536] Started gene quantification --- Parameters.cpp | 1 + Parameters.h | 2 +- genomeGenerate.cpp | 11 ++++++-- loadGTF.cpp | 69 +++++++++++++++++++++++++++++++++++++++++----- parametersDefault | 7 +++-- 5 files changed, 78 insertions(+), 12 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 26c4bcd..a693433 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -178,6 +178,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFchrPrefix", &sjdbGTFchrPrefix)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfeatureExon", &sjdbGTFfeatureExon)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentTranscript", &sjdbGTFtagExonParentTranscript)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentGene", &sjdbGTFtagExonParentGene)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &sjdbOverhang)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &sjdbScore)); diff --git a/Parameters.h b/Parameters.h index 70590b7..b09c97d 100644 --- a/Parameters.h +++ b/Parameters.h @@ -175,7 +175,7 @@ class Parameters { //SJ database parameters string sjdbFileChrStartEnd; - string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript; + string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer int sjdbScore; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 297b15a..262d1e1 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -165,6 +165,7 @@ void genomeGenerate(Parameters *P) { genomePar << "sjdbGTFchrPrefix\t" << P->sjdbGTFchrPrefix <<"\n"; genomePar << "sjdbGTFfeatureExon\t" << P->sjdbGTFfeatureExon <<"\n"; genomePar << "sjdbGTFtagExonParentTranscript\t" << P->sjdbGTFtagExonParentTranscript <<"\n"; + genomePar << "sjdbGTFtagExonParentGene\t" << P->sjdbGTFtagExonParentGene <<"\n"; genomePar.close(); @@ -189,9 +190,15 @@ void genomeGenerate(Parameters *P) { char *G=NULL, *G1=NULL; uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to fins all the sizes P->chrBinFill(); - + + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Starting GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Starting GTF processing\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished GTF processing\n" <sjdbLength+L)*2; G1=new char[nG1alloc]; diff --git a/loadGTF.cpp b/loadGTF.cpp index 281ff4a..e3558c0 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -3,14 +3,16 @@ #include "ErrorWarning.h" #include "serviceFuns.cpp" #include "SjdbClass.h" +#include "streamFuns.h" #include -#define GTF_exonLoci_size 3 +#define GTF_exonLoci_size 4 #define GTF_exonTrID(ii) ((ii)*GTF_exonLoci_size) #define GTF_exonStart(ii) ((ii)*GTF_exonLoci_size+1) #define GTF_exonEnd(ii) ((ii)*GTF_exonLoci_size+2) +#define GTF_exonGeID(ii) ((ii)*GTF_exonLoci_size+3) #define GTF_extrLoci_size 5 #define GTF_extrTrStart(ii) ((ii)*GTF_extrLoci_size) @@ -19,6 +21,14 @@ #define GTF_extrExStart(ii) ((ii)*GTF_extrLoci_size+3) #define GTF_extrExEnd(ii) ((ii)*GTF_extrLoci_size+4) +#define GTF_exgeLoci_size 5 +#define GTF_exgeExStart(ii) ((ii)*GTF_exgeLoci_size+0) +#define GTF_exgeExEnd(ii) ((ii)*GTF_exgeLoci_size+1) +#define GTF_exgeExStrand(ii) ((ii)*GTF_exgeLoci_size+2) +#define GTF_exgeGeID(ii) ((ii)*GTF_exgeLoci_size+3) +#define GTF_exgeTrID(ii) ((ii)*GTF_exgeLoci_size+4) + + uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions to P->sjdb //returns number of added junctions @@ -30,7 +40,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - std::map transcriptIDnumber; + std::map transcriptIDnumber, geneIDnumber; uint exonN=0; while (sjdbStreamIn.good()) {//count the number of exons @@ -43,7 +53,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions }; uint* exonLoci=new uint [exonN*GTF_exonLoci_size]; char* transcriptStrand = new char [exonN]; - vector transcriptID; + vector transcriptID, geneID; exonN=0;//re-calculate sjdbStreamIn.clear(); @@ -76,18 +86,21 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions oneLineStream.str(oneLine1); oneLineStream.clear(); - string trID(""), attr1(""); + string trID(""), gID(""), attr1(""); while (oneLineStream.good()) { oneLineStream >> attr1; if (attr1==P->sjdbGTFtagExonParentTranscript) { oneLineStream >> trID; trID.erase(remove(trID.begin(),trID.end(),'"'),trID.end()); trID.erase(remove(trID.begin(),trID.end(),';'),trID.end()); -// cout <sjdbGTFtagExonParentGene) { + oneLineStream >> gID; + gID.erase(remove(gID.begin(),gID.end(),'"'),gID.end()); + gID.erase(remove(gID.begin(),gID.end(),';'),gID.end()); }; }; if (trID=="") {//no transcript ID - P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": no transcript_id for exon feature for line:\n"; + P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": no transcript_id for line:\n"; P->inOut->logMain << oneLine <<"\n"< (trID,(uint) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value @@ -101,9 +114,18 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions }; }; + if (gID=="") {//no gene ID + P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": no gene_id for line:\n"; + P->inOut->logMain << oneLine <<"\n"< (gID,(uint) geneIDnumber.size()));//insert new element if necessary with a $ + if (geneID.size() < geneIDnumber.size()) geneID.push_back(gID); + }; + exonLoci[GTF_exonTrID(exonN)]=transcriptIDnumber[trID]; exonLoci[GTF_exonStart(exonN)]=ex1+P->chrStart[P->chrNameIndex[chr1]]-1; exonLoci[GTF_exonEnd(exonN)]=ex2+P->chrStart[P->chrNameIndex[chr1]]-1; + exonLoci[GTF_exonGeID(exonN)]=geneIDnumber[gID]; ++exonN; };//if (chr1.substr(0,1)!="#" && featureType=="exon") @@ -111,8 +133,41 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions //sort exonLoci by transcript ID and exon coordinates qsort((void*) exonLoci, exonN, sizeof(uint)*GTF_exonLoci_size, funCompareUint2); + + {//exon-gene data structures: exon start/end/strand/gene/transcript + //re-sort exons by exons loci + uint* exgeLoci=new uint [exonN*GTF_exgeLoci_size]; //this also contains transcripts start and end + + for (uint iex=0; iex<=exonN; iex++) { + exgeLoci[GTF_exgeExStart(iex)]=exonLoci[GTF_exonStart(iex)]; + exgeLoci[GTF_exgeExEnd(iex)]=exonLoci[GTF_exonEnd(iex)]; + exgeLoci[GTF_exgeExStrand(iex)]=transcriptStrand[exonLoci[GTF_exonTrID(iex)]]; + exgeLoci[GTF_exgeGeID(iex)]=exonLoci[GTF_exonGeID(iex)]; + exgeLoci[GTF_exgeTrID(iex)]=exonLoci[GTF_exonTrID(iex)]; + }; + + qsort((void*) exgeLoci, exonN, sizeof(uint)*GTF_exgeLoci_size, funCompareArrays); + + ofstream exgeOut; + ofstrOpen(P->genomeDir+"/exonGeTrInfo.tab","ERROR_00201",P,exgeOut); + exgeOut<genomeDir+"/geneInfo.tab","ERROR_00202",P,geOut); + geOut << geneID.size() << "\n"; + for (uint ig=0; ig=0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1) @@ -458,7 +461,7 @@ chimJunctionOverhangMin 20 ### Quantification of Annotations quantMode - - string(s): types of qunatification requested + string(s): types of quantification requested - ... none TranscriptomeSAM ... output SAM/BAM alignments to transcriptome into a separate file From 18721fcb797e6c2b6c7a3b865f4781598872f0f4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 7 Nov 2014 17:13:05 -0500 Subject: [PATCH 013/536] Implementing gene counts --- Makefile | 2 +- Parameters.cpp | 16 ++++++++-- Parameters.h | 8 +++-- ReadAlign.cpp | 4 +-- ReadAlign.h | 4 +-- ReadAlignChunk.cpp | 15 +++++++--- ReadAlignChunk.h | 4 ++- ReadAlign_outputAlignments.cpp | 9 ++++-- STAR.cpp | 8 ++--- Transcriptome.cpp | 53 +++++++++++++++++++++++++++------- Transcriptome.h | 29 +++++++++++++++---- parametersDefault | 5 ++-- serviceFuns.cpp | 25 ++++++++++++++++ streamFuns.cpp | 28 ++++++++++++------ streamFuns.h | 2 ++ 15 files changed, 161 insertions(+), 51 deletions(-) diff --git a/Makefile b/Makefile index 86dbb74..41924a6 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o Seq ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o genomeGenerate.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ - Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o \ + Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o \ diff --git a/Parameters.cpp b/Parameters.cpp index a693433..0ee70c5 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -527,6 +527,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; + if (!outBAMcoord && outWigFlags.yes && runMode=="alignReads") { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETER error: generating signal with --outWigType requires sorted BAM\n"; + errOut <<"SOLUTION: re-run STAR with with --outSAMtype BAM SortedByCoordinate, or, id you also need unsroted BAM, with --outSAMtype BAM SortedByCoordinate Unsorted\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; //versions for (uint ii=0;ii<2;ii++) { @@ -792,24 +798,28 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //quantification parameters - quantModeI=0; if (quantMode.at(0) != "-") { + quant.yes=true; for (uint32 ii=0; iioutQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) outBAMcompression)).c_str()); + } else if (quantMode.at(ii)=="GeneCounts") { + quant.geCount.yes=true; } else { ostringstream errOut; - errOut << "EXITING because of FATAL INPUT ERROR: unrecognized option in --quantMode=" << quantMode.at(ii) << "\n"; + errOut << "EXITING because of fatal INPUT error: unrecognized option in --quantMode=" << quantMode.at(ii) << "\n"; errOut << "SOLUTION: use one of the allowed values of --quantMode : TranscriptomeSAM or - .\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; + } else { + quant.yes=false; //no quantification }; //two-pass diff --git a/Parameters.h b/Parameters.h index b09c97d..681c010 100644 --- a/Parameters.h +++ b/Parameters.h @@ -9,8 +9,6 @@ #include #include -#define PAR_quantModeI_TranscritomeSAM 0x1 - class Parameters { public: @@ -191,7 +189,11 @@ class Parameters { //quantification parameters //input vector quantMode; //quantification mode input string - uint32 quantModeI; //quantification mode integer + struct { + bool yes; //if any quantification is done + struct {bool yes;} trSAM; + struct {bool yes;} geCount; + } quant; //chimeric uint chimSegmentMin, chimJunctionOverhangMin; //min chimeric donor/acceptor length diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 9392d14..8bfd2c4 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -3,7 +3,7 @@ #include "Transcript.h" #include "ReadAlign.h" -ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn) : P(Pin), Tr(TrIn) {//allocate arrays +ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn) : P(Pin), chunkTr(TrIn) {//allocate arrays G=genomeIn.G; SA=genomeIn.SA; @@ -17,7 +17,7 @@ ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *Tr memset(winBin[1],255,sizeof(winBin[0][0])*P->winBinN); //transcriptome - if ( (P->quantModeI & PAR_quantModeI_TranscritomeSAM) > 0) { + if ( P->quant.trSAM.yes ) { alignTrAll=new Transcript [P->alignTranscriptsPerReadNmax]; }; diff --git a/ReadAlign.h b/ReadAlign.h index f906697..a8dd49a 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -10,7 +10,7 @@ #include #include "Transcriptome.h" #include "BAMoutput.h" - +#include "Quantifications.h" class ReadAlign : public Genome { public: @@ -20,7 +20,7 @@ class ReadAlign : public Genome { Stats statsRA; //quantification - Transcriptome *Tr; + Transcriptome *chunkTr; //mapping time time_t timeStart, timeFinish; diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 5b337a8..823112b 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -2,11 +2,18 @@ #include #include "ErrorWarning.h" -ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin),Tr(TrIn) {//initialize chunk +ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin) {//initialize chunk iThread=iChunk; + + if ( P->quant.yes ) {//allocate transcriptome structures + chunkTr=new Transcriptome(*TrIn); + chunkTr->quantsAllocate(); + } else { + chunkTr=NULL; + }; - RA = new ReadAlign(P,genomeIn, Tr);//new local copy of RA for each chunk + RA = new ReadAlign(P, genomeIn, chunkTr);//new local copy of RA for each chunk RA->iRead=0; @@ -48,14 +55,14 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome RA->outBAMcoord=NULL; }; - if ( (P->quantModeI & PAR_quantModeI_TranscritomeSAM) > 0) { + if ( P->quant.trSAM.yes ) { chunkOutBAMquant = new BAMoutput (P->chunkOutBAMsizeBytes,P->inOut->outQuantBAMfile); RA->outBAMquant = chunkOutBAMquant; } else { chunkOutBAMquant=NULL; RA->outBAMquant=NULL; }; - + chunkOutSJ=new OutSJ (P->limitOutSJcollapsed, P); chunkOutSJ1=new OutSJ (P->limitOutSJcollapsed, P); diff --git a/ReadAlignChunk.h b/ReadAlignChunk.h index e3a5571..5d68f06 100644 --- a/ReadAlignChunk.h +++ b/ReadAlignChunk.h @@ -7,19 +7,21 @@ #include "OutSJ.h" #include "Transcriptome.h" #include "BAMoutput.h" +#include "Quantifications.h" class ReadAlignChunk {//chunk of reads and alignments public: Parameters* P; ReadAlign* RA; - Transcriptome *Tr; + Transcriptome *chunkTr; char **chunkIn; //space for the chunk of input reads char *chunkOutBAM, *chunkOutBAM1;//space for the chunk of output SAM OutSJ *chunkOutSJ, *chunkOutSJ1; BAMoutput *chunkOutBAMcoord, *chunkOutBAMunsorted, *chunkOutBAMquant; + Quantifications *chunkQuants; istringstream** readInStream; ostringstream* chunkOutBAMstream; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 4027220..5676538 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -103,9 +103,12 @@ void ReadAlign::outputAlignments() { mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) unmapType=4; - if ( P->quantModeI > 0) { - quantTranscriptome(Tr, nTr, trMult, alignTrAll); + if ( P->quant.trSAM.yes ) { + quantTranscriptome(chunkTr, nTr, trMult, alignTrAll); }; + if ( P->quant.geCount.yes ) { + chunkTr->geneCountsAddAlign(nTr, trMult); + }; }; }; @@ -115,7 +118,7 @@ void ReadAlign::outputAlignments() { for (uint imate=0; imatereadNmates; imate++) {//output each mate if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); //TODO clean for single-end alignments of PE reads - if ( (P->quantModeI & PAR_quantModeI_TranscritomeSAM) > 0 && unmapType!=4) outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + if ( P->quant.trSAM.yes && unmapType!=4) outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], 0, iReadAll); }; }; diff --git a/STAR.cpp b/STAR.cpp index 2d8327b..74936cb 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -52,7 +52,7 @@ int main(int argInN, char* argIn[]) { P->winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; Transcriptome *mainTranscriptome=NULL; - if (P->quantModeI>0) {//load transcriptome + if ( P->quant.yes ) {//load transcriptome mainTranscriptome=new Transcriptome(P); }; /////////////////////////////////////////////////////////////////////////////////////////////////START @@ -80,7 +80,7 @@ int main(int argInN, char* argIn[]) { P1->outBAMcoord=false; P1->chimSegmentMin=0; - P1->quantModeI=0; + P1->quant.yes=false; P1->outFilterBySJoutStage=0; P1->outReadsUnmapped="None"; @@ -193,7 +193,7 @@ int main(int argInN, char* argIn[]) { // outBAMwriteHeader(P->inOut->outBAMfileCoord,P->samHeader,P->chrName,P->chrLength); // }; - if ( (P->quantModeI & PAR_quantModeI_TranscritomeSAM) > 0) { + if ( P->quant.trSAM.yes ) { samHeaderStream.str(""); vector trlength; for (uint32 ii=0;iitrID.size();ii++) { @@ -332,7 +332,7 @@ int main(int argInN, char* argIn[]) { signalFromBAM(P->outBAMfileCoordName, wigOutFileNamePrefix, *P); }; - //aggregate output (junctions, signal, etc) + //aggregate output junctions //collapse splice junctions from different threads/chunks, and output them outputSJ(RAchunk,P); diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 3ab695d..44d14a0 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -1,19 +1,16 @@ #include "Transcriptome.h" -#include "ErrorWarning.h" +#include "streamFuns.h" + +//"ERROR_011000" Transcriptome::Transcriptome (Parameters* Pin) { P=Pin; +if ( P->quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info - ifstream trinfo((P->genomeDir+"/transcriptInfo.tab").c_str()); - if (trinfo.fail()) {//could not open file - ostringstream errOut; - errOut << "ERROR_01101: exiting because of *INPUT FILE* error: could not open for reading "<< (P->genomeDir+"/transcriptInfo.tab") <<"\n"; - errOut << "SOLUTION: if this file is missing from the genome directory, you will need to *re-generate the genome*, \n"; - errOut << " if this file is present, check its read permissions\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_FILE_OPEN, *P); - }; + ifstream trinfo; + ifstrOpenGenomeFile("transcriptInfo.tab", "ERROR_011001", P, trinfo); trinfo >> nTr; trS=new uint [nTr]; @@ -33,7 +30,8 @@ Transcriptome::Transcriptome (Parameters* Pin) { trinfo.close(); - ifstream exinfo((P->genomeDir+"/exonInfo.tab").c_str()); + ifstream exinfo; + ifstrOpenGenomeFile("exonInfo.tab", "ERROR_011002", P, exinfo); exinfo >> nEx; exSE = new uint32 [2*nEx]; @@ -48,4 +46,37 @@ Transcriptome::Transcriptome (Parameters* Pin) { // Ptr=Pin; -}; \ No newline at end of file +} else if ( P->quant.geCount.yes ) {//load exon-gene structures + ifstream exinfo; + ifstrOpenGenomeFile("exonGeTrInfo.tab", "ERROR_011003", P, exinfo); + exinfo >> exG.nEx; + + exG.s=new uint64[exG.nEx]; + exG.e=new uint64[exG.nEx]; + exG.str=new uint8[exG.nEx]; + exG.g=new uint32[exG.nEx]; + exG.t=new uint32[exG.nEx]; + + for (uint ii=0;ii> exG.s[ii] >> exG.e[ii] >> exG.str[ii] >> exG.g[ii] >> exG.t[ii]; + }; + exinfo.close(); + + ifstream geStream; + ifstrOpenGenomeFile("geneInfo.tab", "ERROR_011004", P, geStream); + geStream >> nGe; + geID.resize(nGe); + for (uint ii=0;ii> geID[ii]; + }; + geStream.close(); + +}; + +}; + +void Transcriptome::quantsAllocate() { + if ( P->quant.geCount.yes ) { + quants = new Quantifications (nGe); + }; +}; diff --git a/Transcriptome.h b/Transcriptome.h index 05287ef..c1169c8 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -4,23 +4,40 @@ #include "IncludeDefine.h" #include "Parameters.h" #include "Transcript.h" +#include "Quantifications.h" class Transcriptome { public: - - Parameters* Ptr; //transcriptomic parameters (i.e. chrName,...), to be used with RAtr for output + + //methods: Transcriptome (Parameters* Pin); //create transcriptome structure, load and initialize parameters uint32 quantAlign (Transcript &aG, Transcript *aTall);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr - vector trID; //transcript IDs - uint *trS, *trE, *trEmax; //transcripts start,end,end-max - - uint32 nTr, nEx; //number of transcript/exons + void geneCountsAddAlign(uint nA, Transcript **aAll); //add one alignment to gene counts + void quantsAllocate(); //allocate quants structure + + Parameters* Ptr; //transcriptomic parameters (i.e. chrName,...), to be used with RAtr for output + + vector trID, geID; //transcript IDs + uint32 nTr, nGe; //number of transcript/genes + + uint *trS, *trE, *trEmax; //transcripts start,end,end-max + + uint32 nEx; //number of exons uint16 *trExN; //number of exons per transcript uint32 *trExI; //index of the first exon for each transcript in exSE uint8 *trStr; //transcript strand uint32 *exSE; //exons start/end uint32 *exLenCum; //cumulative length of previous exons + struct {//exon-gene structure for GeneCounts + uint64 nEx;//number of exons/genes + uint64 *s,*e; //exon start/end + uint8 *str; //strand + uint32 *g, *t; //gene/transcript IDs + } exG; + + Quantifications *quants; + private: Parameters* P; //normal "genomic" parameters diff --git a/parametersDefault b/parametersDefault index 9be46e9..4b1e237 100644 --- a/parametersDefault +++ b/parametersDefault @@ -39,7 +39,7 @@ genomeLoad NoSharedMemory ### Genome Generation Parameters genomeFastaFiles - - string(s): path(s) to the fasta files with genomic sequences for genome generation, separated by spaces. Only used if runMode==genomeGenerate. + string(s): path(s) to the fasta files with genomic sequences for genome generation, separated by spaces. Only used if runMode==genomeGenerate. These files should be plain text FASTA files, they *cannot* be zipped. genomeChrBinNbits 18 int: =log2(chrBin), where chrBin is the size of the bins for genome storage: each chromosome will occupy an integer number of bins @@ -238,7 +238,7 @@ bamRemoveDuplicatesMate2basesN 0 ### Output Wiggle outWigType None - string(s): type of signal output, e.g. "bedGraph" OR "bedGraph read1_5p" + string(s): type of signal output, e.g. "bedGraph" OR "bedGraph read1_5p". Requires sorted BAM: --outSAMtype BAM SortedByCoordinate . 1st word: None ... no signal output bedGraph ... bedGraph format @@ -464,6 +464,7 @@ quantMode - string(s): types of quantification requested - ... none TranscriptomeSAM ... output SAM/BAM alignments to transcriptome into a separate file + GeneCounts ... count reads per gene ### 2-pass Mapping twopass1readsN 0 diff --git a/serviceFuns.cpp b/serviceFuns.cpp index d6399d2..e11af2e 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -63,6 +63,31 @@ inline uint32 binarySearch1(argType x, argType *X, uint32 N) { return i1; }; +template +inline int32 binarySearch1a(argType x, argType *X, int32 N) { + //binary search in the sorted list + //check the boundaries first + + if (x>X[N-1]) { + return N-1; + } else if (xi1+1) {//binary search + i3=(i1+i2)/2; + if (X[i3]>x) { + i2=i3; + } else { + i1=i3; + }; + }; + + while (i1 #include #define fstream_Chunk_Max 2147483647 + unsigned long long fstreamReadBig(std::ifstream &S, char* A, unsigned long long N) { unsigned long long C=0; for (unsigned long long ii=0; iiinOut->logMain, EXIT_CODE_FILE_OPEN, *P); -// }; -// }; \ No newline at end of file +void ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P, ifstream & ifStream) { + //open file 'fileName', generate error if cannot open + ifStream.open(fileName.c_str()); + if (ifStream.fail()) {// + ostringstream errOut; + errOut << errorID<<": exiting because of *INPUT FILE* error: could not open input file "<< fileName <<"\n"; + errOut << "Solution: check that the file exists and you have read permission for this file\n"; + if (solutionString.size()>0) { + errOut << " "<< solutionString <<"\n"; + }; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_FILE_OPEN, *P); + }; +}; + +void ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P, ifstream & ifStream) { + //open one of the genome files + ifstrOpen(P->genomeDir+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P, ifStream); +}; diff --git a/streamFuns.h b/streamFuns.h index e168530..77f581c 100644 --- a/streamFuns.h +++ b/streamFuns.h @@ -8,5 +8,7 @@ unsigned long long fstreamReadBig(std::ifstream &S, char* A, unsigned long long void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::string fileName, std::string errorID, Parameters *P) ; void ofstrOpen (std::string fileName, std::string errorID, Parameters *P, ofstream & ofStream); +void ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P, ifstream & ofStream); +void ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P, ifstream & ifStream); #endif From 66addeb44abbe48550153a4cb366d0c438f603a4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 7 Nov 2014 18:17:48 -0500 Subject: [PATCH 014/536] Added --sysShell option to specify path to bash, in cases where bash is not the default shell. --outBAMcompression default changed 1, which apparently does not change deflation ratio, but is much faster. Add --outBAMsortingThreadN option tp specify number of threads for BAM sorting. By default (0) it's equal to min(6,runThreadN). --- Parameters.cpp | 12 +++++++- Parameters.h | 5 +++- Parameters_openReadsFiles.cpp | 6 +++- Quantifications.cpp | 14 +++++++++ Quantifications.h | 18 ++++++++++++ STAR.cpp | 2 +- Transcriptome_geneCounts.cpp | 14 +++++++++ Transcriptome_geneCountsAddAlign.cpp | 43 ++++++++++++++++++++++++++++ VERSION | 2 +- parametersDefault | 11 +++++-- 10 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 Quantifications.cpp create mode 100644 Quantifications.h create mode 100644 Transcriptome_geneCounts.cpp create mode 100644 Transcriptome_geneCountsAddAlign.cpp diff --git a/Parameters.cpp b/Parameters.cpp index 0ee70c5..42ba7ad 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -26,6 +26,9 @@ Parameters::Parameters() {//initalize parameters info //parameters parArray.push_back(new ParameterInfoVector (-1, 2, "parametersFiles", ¶metersFiles)); + //system + parArray.push_back(new ParameterInfoScalar (-1, -1, "sysShell", &sysShell)); + //run parArray.push_back(new ParameterInfoScalar (-1, -1, "runMode", &runMode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "runThreadN", &runThreadN)); @@ -81,6 +84,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMheaderPG", &outSAMheaderPG)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMheaderCommentFile", &outSAMheaderCommentFile)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMcompression", &outBAMcompression)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMsortingThreadN", &outBAMsortingThreadN)); //output SJ filtering @@ -505,7 +509,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outBAMfileCoordName=outFileNamePrefix + "Aligned.sortedByCoord.out.bam"; }; inOut->outBAMfileCoord = bgzf_open(outBAMfileCoordName.c_str(),("w"+to_string((long long) outBAMcompression)).c_str()); - outBAMcoordNbins=max(runThreadN*3,10); + if (outBAMsortingThreadN==0) { + outBAMsortingThreadNactual=min(6, runThreadN); + } else { + outBAMsortingThreadNactual=outBAMsortingThreadN; + }; + outBAMcoordNbins=max(outBAMsortingThreadNactual*3,10); outBAMsortTmpDir=outFileTmp+"/BAMsort/"; mkdir(outBAMsortTmpDir.c_str(),S_IRWXU); }; @@ -859,6 +868,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; inOut->logMain<<"WARNING: --limitBAMsortRAM=0, will use genome sizeas RAM linit foro BAM sorting\n"; }; + inOut->logMain << "Finished loading and checking parameters\n" < versionGenome; + //system parameters + string sysShell; //shell for executing system commands + // run parameters string runMode; int runThreadN; @@ -108,7 +111,7 @@ class Parameters { string outBAMsortTmpDir; string bamRemoveDuplicatesType; uint bamRemoveDuplicatesMate2basesN; - + int outBAMsortingThreadN, outBAMsortingThreadNactual; string outReadsUnmapped; int outQSconversionAdd; diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index aefc57a..e5a7511 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -79,7 +79,11 @@ void Parameters::openReadsFiles() { case 0: //this is the child - execlp(readsCommandFileName.at(imate).c_str(), readsCommandFileName.at(imate).c_str(), (char*) NULL); + if (sysShell!="-") {//executed via specified shell + execlp(sysShell.c_str(), "-c", readsCommandFileName.at(imate).c_str(), (char*) NULL); + } else {//execute the command directly with default shell + execlp(readsCommandFileName.at(imate).c_str(), readsCommandFileName.at(imate).c_str(), (char*) NULL); + }; exit(0); default: diff --git a/Quantifications.cpp b/Quantifications.cpp new file mode 100644 index 0000000..2aa06f0 --- /dev/null +++ b/Quantifications.cpp @@ -0,0 +1,14 @@ +#include "Quantifications.h" + +Quantifications::Quantifications (uint32 nGeIn) { + + geneCounts.nGe=nGeIn; + geneCounts.uStr = new uintQ* [2]; + + for (int istr=0; istr<2; istr++) { + geneCounts.uStr[istr] = new uintQ [geneCounts.nGe]; + for (uint32 ii=0; iiinOut->logMain << "Started sorting BAM ..." <runThreadN) + #pragma omp parallel num_threads(P->outBAMsortingThreadNactual) #pragma omp for schedule (dynamic,1) for (uint32 ibin=0; ibinchunkOutBAMcoord->nBins; ibin++) { diff --git a/Transcriptome_geneCounts.cpp b/Transcriptome_geneCounts.cpp new file mode 100644 index 0000000..a105976 --- /dev/null +++ b/Transcriptome_geneCounts.cpp @@ -0,0 +1,14 @@ +#include "Transcriptome.h" +#include "ReadAlign.h" +#include "serviceFuns.cpp" +#include "Quantifications.h" + +void Transcriptome::geneCounts(Transcript &a, Quantifications &q) { + + //search end of alignment among the starts of exons + uint64 g1=a.exons[a.nExons][EX_G];//end of the alignment + uint64 ex1=binarySearch1(g1, exG.s, exG.nEx); + + + +}; diff --git a/Transcriptome_geneCountsAddAlign.cpp b/Transcriptome_geneCountsAddAlign.cpp new file mode 100644 index 0000000..eb52ed8 --- /dev/null +++ b/Transcriptome_geneCountsAddAlign.cpp @@ -0,0 +1,43 @@ +#include "Transcriptome.h" +#include "serviceFuns.cpp" + +void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignments from one read to gene counts + if (nA>1) { + quants->geneCounts.cMulti++; + } else { + Transcript& a=*aAll[0];//the unique alignment + + int32 gene1=-1; + for (int ib=a.nExons-1; ib>=0; ib--) {//scan through all blocks of the alignments + + uint64 g1=a.exons[ib][EX_G]+a.exons[ib][EX_L]-1;//end of the block + //search end of the block among the starts of exons + int64 e1=-1; + if (ib==a.nExons-1) {//binary search for the first time + e1=binarySearch1a(g1, exG.s, (int32) exG.nEx); + } else {//simple backwards scan + while (e1>=0 && exG.s[e1]>a.exons[ib][EX_G]) {//stop when exon start is less than block end + --e1; + }; + }; + + while (e1>=0 && exG.e[e1]>=a.exons[ib][EX_G]) {//these exons overlap this block + if (gene1==-1) {//first gene overlapping this read + gene1=exG.g[e1]; + } else if (gene1!=exG.g[e1]) {//another gene overlaps this read + quants->geneCounts.cAmbig++; + return; + };//otherwise it's the same gene + --e1; + }; + }; + + if (gene1!=-1) { + quants->geneCounts.uStr[a.Str][gene1]++; + }; + + + }; +}; + + diff --git a/VERSION b/VERSION index 2dabc7b..c1a36ed 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0f1" +#define STAR_VERSION "STAR_2.4.0f1_modified" diff --git a/parametersDefault b/parametersDefault index 4b1e237..847bcb8 100644 --- a/parametersDefault +++ b/parametersDefault @@ -8,6 +8,11 @@ versionGenome 020101 020200 parametersFiles - string: name of a user-defined parameters file, "-": none. Can only be defined on the command line. +### System +sysShell - + string: path to the shell binary, preferrably bash, e.g. /bin/bash. + - ... the default shell is executed, typically /bin/sh. This was reported to fail on some Ubuntu systems - then you need to specify path to bash. + ### Run Parameters runMode alignReads @@ -222,9 +227,11 @@ outSAMheaderPG - outSAMheaderCommentFile - string: path to the file with @CO (comment) lines of the SAM header -outBAMcompression -1 - int: -1 to 10 BAM compression level, -1=default compression, 0=no compression, 10=maximum compression +outBAMcompression 1 + int: -1 to 10 BAM compression level, -1=default compression (6?), 0=no compression, 10=maximum compression +outBAMsortingThreadN 0 + int: >=0: number of threads for BAM sorting. 0 will default to min(6,--runThreadN). ### BAM processing From dd443e4700bbd45614eed6dea1227eb89a9e8c39 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 11 Nov 2014 14:04:24 -0500 Subject: [PATCH 015/536] Added CPP directives for speed optimization --- Makefile | 3 ++- ReadAlign_mapOneRead.cpp | 11 +++++++++++ ReadAlign_oneRead.cpp | 4 ++++ ReadAlign_stitchPieces.cpp | 14 +++++++++++++- ReadAlign_storeAligns.cpp | 20 ++++++++++++++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 41924a6..a6d941e 100644 --- a/Makefile +++ b/Makefile @@ -24,8 +24,9 @@ LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a LDFLAGS_gdb := $(LDFLAGS) COMPTIMEPLACE := -D'COMPILATION_TIME_PLACE="$(shell echo `date` $(HOSTNAME):`pwd`)"' +EXTRAFLAGS := -CCFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) $(OPTIMFLAGS) $(OPTIMFLAGS1) +CCFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) $(OPTIMFLAGS) $(OPTIMFLAGS1) $(EXTRAFLAGS) CCFLAGS_main := -O3 $(CCFLAGS_common) CCFLAGS_gdb := -O0 -g $(CCFLAGS_common) diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index e5b284a..e7b52d1 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -4,6 +4,12 @@ int ReadAlign::mapOneRead() { + #ifdef OFF_BEFORE_SEEDING + #warning OFF_BEFORE_SEEDING + nW=0; + return 0; + #endif + revertStrand = false; //the 2nd read is awlays on opposite strand. 1st and 2nd reads have already been reversed. if (Lread>0) { @@ -71,6 +77,11 @@ int ReadAlign::mapOneRead() { }; }; + #ifdef OFF_AFTER_SEEDING + #warning OFF_AFTER_SEEDING + return 0; + #endif + nTr=0;//nothing mapped yet if (LreadoutFilterMatchNmin) {//read is too short (trimmed too much?) mapMarker=MARKER_READ_TOO_SHORT; diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index aa7db93..32bc87c 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -69,6 +69,10 @@ int ReadAlign::oneRead() {//process one read: load, map, write //map the read mapOneRead(); + #ifdef OFF_BEFORE_OUTPUT + #warning OFF_BEFORE_OUTPUT + return 0; + #endif //write out alignments outputAlignments(); diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index b850f22..95da624 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -118,6 +118,13 @@ void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint nWall=nW; + #ifdef OFF_BEFORE_SEEDdistribution + #warning OFF_BEFORE_SEEDdistribution + nW=0; + nTr=0; + return; + #endif + for (uint iP=0; iPnWAmax=0; trBest = trNext = trInit; //initialize next/best diff --git a/ReadAlign_storeAligns.cpp b/ReadAlign_storeAligns.cpp index f6f3433..fd2c266 100644 --- a/ReadAlign_storeAligns.cpp +++ b/ReadAlign_storeAligns.cpp @@ -14,6 +14,11 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indStartEnd[2], uint iFrag) {//fill in alignment data + #ifdef OFF_BEFORE_STORE + #warning OFF_BEFORE_STORE + return; + #endif + if ( Nrep > P->seedMultimapNmax ) {// if a piece maps too many times, do not store it if ( Nrep < multNmin || multNmin==0 ) {multNmin=Nrep; multNminL=L;}; return; @@ -36,6 +41,21 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS iP=iP+1; //this is the insertion place +// int iP2=nP-1; +// bool replacePiece=false; +// // for (int iP1=0; iP1=0; iP1--) { +// if ( (PC[iP1][PC_rStart]==rStart) && PC[iP1][PC_Length]==L ) return; //same alignment as before, do not store! +// if ( rStart>=PC[iP1][PC_rStart] && +// +// if ( iP2==nP-1 && rStart > PC[iP1][0] || (rStart == PC[iP1][0] && L<=PC[iP1][PC_Length]) ) { +// iP2=iP1; +// // break; +// }; +// }; +// +// int iP=iP2+1; //this is the insertion place + for (int ii=nP-1;ii>=iP;ii--) {//move old entries to free space for the new one for (int jj=0;jj Date: Wed, 12 Nov 2014 18:47:33 -0500 Subject: [PATCH 016/536] Playing with optimizations --- ReadAlign_mapOneRead.cpp | 2 + ReadAlign_storeAligns.cpp | 123 +++++++++++++++++++++++++++++++------- 2 files changed, 103 insertions(+), 22 deletions(-) diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index e7b52d1..bd231fb 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -1,6 +1,7 @@ #include "ReadAlign.h" #include "SequenceFuns.h" #include "Stats.h" +#include "serviceFuns.cpp" int ReadAlign::mapOneRead() { @@ -96,6 +97,7 @@ int ReadAlign::mapOneRead() { trBest->rLength=multNminL; nW=0; } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped +// qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length stitchPieces(Read1, Qual1, G, SA, Lread); if (nW>0) multMapSelect(); //check all the windows and transcripts for multiple mappers }; diff --git a/ReadAlign_storeAligns.cpp b/ReadAlign_storeAligns.cpp index fd2c266..9f0af3a 100644 --- a/ReadAlign_storeAligns.cpp +++ b/ReadAlign_storeAligns.cpp @@ -1,9 +1,4 @@ /** ReadAlign - one read, all alignments - * - * - * A longer description. - * - * @see something */ #include "IncludeDefine.h" @@ -29,6 +24,7 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS uint rStart=iDir==0 ? Shift : Shift+1-L;//alignment read-start + #ifdef OPTIM_STOREaligns_SIMPLE //find the place to insert the new entry to keep it sorted int iP; for (iP=nP-1; iP>=0; iP--) { @@ -40,34 +36,117 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS }; iP=iP+1; //this is the insertion place - -// int iP2=nP-1; -// bool replacePiece=false; -// // for (int iP1=0; iP1=0; iP1--) { -// if ( (PC[iP1][PC_rStart]==rStart) && PC[iP1][PC_Length]==L ) return; //same alignment as before, do not store! -// if ( rStart>=PC[iP1][PC_rStart] && -// -// if ( iP2==nP-1 && rStart > PC[iP1][0] || (rStart == PC[iP1][0] && L<=PC[iP1][PC_Length]) ) { -// iP2=iP1; -// // break; -// }; -// }; -// -// int iP=iP2+1; //this is the insertion place - for (int ii=nP-1;ii>=iP;ii--) {//move old entries to free space for the new one for (int jj=0;jj P->seedPerReadNmax) {// +// + if (nP > P->seedPerReadNmax) { ostringstream errOut; errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_RUNTIME, *P); + }; + #else + int iP3; + for (iP3=nP-1; iP3>=0; iP3--) { + if ( PC[iP3][0]<=rStart ) { + if ( (PC[iP3][PC_rStart]==rStart) && PC[iP3][PC_Length]= PC[iP1][PC_rStart] ) { + if ( rStart+L <= PC[iP1][PC_rStart]+PC[iP1][PC_Length] ) {//new piece is within the old piece + //decide whether to keep the old one + if ( false && (PC[iP1][PC_Nrep]>P->winAnchorMultimapNmax || Nrep<=P->winAnchorMultimapNmax)) {//old piece is not anchor, or new piece is anchor + PC[iP1][PC_Dir]=-1;//do not keep the old piece + ++nRemove; + if (iP2==-1) { + iP2=iP1; //insertion point: before iP1; + }; + } else { + //keep the old piece + if (iP2==-1) { + iP2=iP1+1; //insertion point: after iP1; + }; + }; + } else {//new end extends past old end + //this is the insertion point for the new piece + if (iP2==-1) { + iP2=iP1+1; //insertion point: after iP1 + }; + }; + }; + if ( rStart <= PC[iP1][PC_rStart] ) {// rStart <= PC[iP1][PC_rStart] + if ( rStart+L >= PC[iP1][PC_rStart]+PC[iP1][PC_Length] ) {//old piece is within the new piece + //decide whether to keep the new piece + if ( false && (Nrep>P->winAnchorMultimapNmax || PC[iP1][PC_Nrep]<=P->winAnchorMultimapNmax) ) {//new piece is not anchor, or old piece is an anchor + if (nRemove>0) {//debug + cout << "BUG: nRemove="<seedPerReadNmax) { + ostringstream errOut; + errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; + errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_RUNTIME, *P); + }; + for (int ii=nP-1;ii>=iP;ii--) {//move old entries to free space for the new one + for (int jj=0;jj1) {//replace in place + int iP3=iP2+1; + for (int ii=iP2+1; ii Date: Thu, 13 Nov 2014 18:46:30 -0500 Subject: [PATCH 017/536] Experimenting with optimization, replacing long seed with overlapping short seeds does not work --- ReadAlign_storeAligns.cpp | 85 +++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 49 deletions(-) diff --git a/ReadAlign_storeAligns.cpp b/ReadAlign_storeAligns.cpp index 9f0af3a..3fa80ba 100644 --- a/ReadAlign_storeAligns.cpp +++ b/ReadAlign_storeAligns.cpp @@ -49,79 +49,60 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_RUNTIME, *P); }; #else - int iP3; - for (iP3=nP-1; iP3>=0; iP3--) { - if ( PC[iP3][0]<=rStart ) { - if ( (PC[iP3][PC_rStart]==rStart) && PC[iP3][PC_Length]=0; iP3--) { +// if ( PC[iP3][0]<=rStart ) { +// if ( (PC[iP3][PC_rStart]==rStart) && PC[iP3][PC_Length]= PC[iP1][PC_rStart] ) { + if ( rStart >= PC[iP1][PC_rStart] ) {//is new seed within an old seed if ( rStart+L <= PC[iP1][PC_rStart]+PC[iP1][PC_Length] ) {//new piece is within the old piece //decide whether to keep the old one - if ( false && (PC[iP1][PC_Nrep]>P->winAnchorMultimapNmax || Nrep<=P->winAnchorMultimapNmax)) {//old piece is not anchor, or new piece is anchor + if ( (PC[iP1][PC_Nrep]>P->winAnchorMultimapNmax || Nrep<=P->winAnchorMultimapNmax)) {//old piece is not anchor, or new piece is anchor PC[iP1][PC_Dir]=-1;//do not keep the old piece ++nRemove; - if (iP2==-1) { - iP2=iP1; //insertion point: before iP1; - }; - } else { - //keep the old piece - if (iP2==-1) { - iP2=iP1+1; //insertion point: after iP1; - }; - }; - } else {//new end extends past old end - //this is the insertion point for the new piece - if (iP2==-1) { - iP2=iP1+1; //insertion point: after iP1 }; }; }; - if ( rStart <= PC[iP1][PC_rStart] ) {// rStart <= PC[iP1][PC_rStart] + + if ( rStart <= PC[iP1][PC_rStart] ) {//is old seed within new seed if ( rStart+L >= PC[iP1][PC_rStart]+PC[iP1][PC_Length] ) {//old piece is within the new piece //decide whether to keep the new piece - if ( false && (Nrep>P->winAnchorMultimapNmax || PC[iP1][PC_Nrep]<=P->winAnchorMultimapNmax) ) {//new piece is not anchor, or old piece is an anchor + if ( (Nrep>P->winAnchorMultimapNmax || PC[iP1][PC_Nrep]<=P->winAnchorMultimapNmax) ) {//new piece is not anchor, or old piece is an anchor if (nRemove>0) {//debug - cout << "BUG: nRemove="<PC[iP1][PC_Length]) ) ) { + iP2=iP1; + }; + }; - if (nP==0) iP2=0; + if (iP2==-1 && iP1==nP) iP2=nP;// if (nP==0) iP2=0; if (iP2==-1) {//debug cout << "BUG: iP2=-1 iRead="<seedPerReadNmax) { @@ -134,11 +115,17 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS for (int jj=0;jj1) {//replace in place - int iP3=iP2+1; - for (int ii=iP2+1; ii Date: Thu, 13 Nov 2014 19:03:14 -0500 Subject: [PATCH 018/536] Removed old PacBio code --- ReadAlign_stitchPieces.cpp | 108 ------------------------------------- ReadAlign_storeAligns.cpp | 22 ++++---- 2 files changed, 11 insertions(+), 119 deletions(-) diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 95da624..6baf0f9 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -197,114 +197,6 @@ void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint // }; // }; // }; - -#define PacBio -#if defined PacBio - if (P->swMode==1) {//stitching is done with Smith-Waterman against the windows - uint swWinCovMax=0; - for (uint iWin=0;iWin0) { - //select good windows by coverage - uint rLast=0; - swWinGleft[iWin]=P->chrStart[P->nChrReal]; swWinGright[iWin]=0; swWinRleft[iWin]=0; swWinRright[iWin]=0; - - for (uint ia=0; iarLast+1) { - if (r1>rLast) { - swWinCov[iWin] += L1; - } else { - swWinCov[iWin] += r1+L1-(rLast+1); - }; - rLast=r1+L1-1; - }; - };//for (uint ia=0; ia0) - };//for (uint iWin=0;iWin> oneChar >> trChr >> oneChar >>trStart >> oneChar >> trEnd >> oneChar >>trStr; - trStart += P->chrStart[trChr]; - trEnd += P->chrStart[trChr]; - - uint trNtotal=0, iW1=0; - trBest = trNext = trInit; //initialize next/best - for (uint iWin=0;iWin= P->swWinCoverageMinP) {//S-W on all good windows, record the transcripts - //full S-W against the window - trA=*trInit; //that one is initialized - trA.Chr = WC[iWin][WC_Chr]; - trA.Str = WC[iWin][WC_Str]; - trA.roStr = revertStrand ? 1-trA.Str : trA.Str; //original strand of the read - trA.maxScore=0; - - uint winLeft =swWinGleft[iWin] -5000; - uint winRight=swWinGright[iWin]+5000; - - //debug: process only correct windows - if (!( winLefttrEnd && trA.Str==trStr) ) continue; - - intSWscore swScore=alignSmithWaterman(R[trA.roStr==0 ? 0:2],Lread,G+winLeft,winRight-winLeft,\ - (intSWscore) 200, (intSWscore) 200, (intSWscore) 200, (intSWscore) 1, swT, P->swHsize, trA); - - trA.maxScore = (uint) swScore; - - trA.cStart = trA.exons[0][EX_G] + winLeft - P->chrStart[trA.Chr]; - trA.gLength = trA.exons[trA.nExons-1][EX_G]+1; - for (uint ii=0;iiP->alignIntronMin) { -// trA.canonSJ[ii-1]=0; //sj -// } else if (gg>0) { -// trA.canonSJ[ii-1]=-1;//deletion -// }; -// if (rg>0) trA.canonSJ[ii-1]=-2; - - trA.rLength=1; - trA.nMatch=1; - - trAll[iW1]=trArrayPointer+trNtotal; - *(trAll[iW1][0])=trA; - - if (trAll[iW1][0]->maxScore > trBest->maxScore || (trAll[iW1][0]->maxScore == trBest->maxScore && trAll[iW1][0]->gLength < trBest->gLength ) ) { - trNext=trBest; - trBest=trAll[iW1][0]; - }; - - - nWinTr[iW1]=1; - trNtotal++; - iW1++; - //output all windows - P->inOut->logMain << iRead <<"\t"<< swWinCov[iWin]*100/Lread <<"\t"<< WC[iWin][WC_Str]<<"\t"<< WC[iWin][WC_gStart] \ - <<"\t"<< WC[iWin][WC_gEnd] <<"\t"<< WA[iWin][0][WA_rStart] <<"\t"<< swWinRright[iWin] \ - <<"\t"<inOut->outBED); - }; - }; - nW=iW1;//number of windows with recorded transcripts - return; - };//if (P->swMode==1) -#endif //#if defined PacBio #ifdef COMPILE_FOR_LONG_READS uint swWinCovMax=0; diff --git a/ReadAlign_storeAligns.cpp b/ReadAlign_storeAligns.cpp index 3fa80ba..5c63447 100644 --- a/ReadAlign_storeAligns.cpp +++ b/ReadAlign_storeAligns.cpp @@ -63,11 +63,14 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS for (iP1=0; iP1= PC[iP1][PC_rStart] ) {//is new seed within an old seed - if ( rStart+L <= PC[iP1][PC_rStart]+PC[iP1][PC_Length] ) {//new piece is within the old piece - //decide whether to keep the old one - if ( (PC[iP1][PC_Nrep]>P->winAnchorMultimapNmax || Nrep<=P->winAnchorMultimapNmax)) {//old piece is not anchor, or new piece is anchor - PC[iP1][PC_Dir]=-1;//do not keep the old piece - ++nRemove; + if ( rStart+L <= PC[iP1][PC_rStart]+PC[iP1][PC_Length] ) {//new seed is within the old piece + //decide whether to keep the new one + if ( (PC[iP1][PC_Nrep]==Nrep)) {//seeds map the same number of times == to the same loci + if (nRemove>0) {//debug + cout << "BUG: nRemove="<outBAMunsorted || P->outBAMcoord) {//BAM output + if (P->outBAMunsorted || P->outBAMcoord || P->quant.trSAM.yes) {//BAM output alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder); for (uint imate=0; imatereadNmates; imate++) {//output each mate if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 5e14061..80e77cc 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -55,6 +55,15 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; }; + + if (nAlignT==0 && P->outSAMunmapped=="Within") {//read could not be mapped to transcriptome + uint unmapType=5; + bool mateMapped[2]={false,false}; + alignBAM(*alignG[0], 0, 0, P->chrStart[alignG[0]->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder); + for (uint imate=0; imatereadNmates; imate++) {//output each mate + outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + }; + }; return nAlignT; }; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 6baf0f9..b78523b 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -269,17 +269,11 @@ std::time(&timeStart); for (uint iW=0; iW(g1, exSE1, 2*exN1); - if (ex1%2==1) {//beginning of the read in the middle of the exon? - return 0; //align does not belong to this transcript - } else { - ex1=ex1/2; //this is the first exon of the alignment + if (ex1%2==1) {//beginning of the read >=end of an exon + if (exSE1[ex1]==g1) {//first base of the read is exactly the last base of the exon + --ex1; + } else { + return 0;//beginning of the read is past the end of an exon, align does not belong to this transcript + }; }; + ex1=ex1/2; //this is the first exon of the alignment aT.nExons=0; diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 1ee2ba7..1506b2f 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -37,6 +37,15 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst uint gBend=gBstart+L-1; uint rBend=rBstart+L-1; +// {//debug +// if (sjAB!=((uint) -1) && trA->exons[trA->nExons-1][EX_sjA]!=((uint) -1) && rBend<=rAend) {// +// Score -= rAend-rBstart+1; +// gAend -= rAend-rBstart+1; +// rAend = rBstart-1; +// trA->exons[trA->nExons-1][EX_L] =rAend-trA->exons[trA->nExons-1][EX_R]+1; +// }; +// }; + //check if r-overlapping fully and exit if (rBend<=rAend) return -1000001; if (gBend<=gAend && trA->exons[trA->nExons-1][EX_iFrag]==iFragB) return -1000002; From dccafad89027af5c12729437a777253ae9babeef Mon Sep 17 00:00:00 2001 From: alexdobin Date: Wed, 26 Nov 2014 16:38:33 -0500 Subject: [PATCH 020/536] Fixed the header of the Log.progress.out. --sjdbFileChrStartEnd can now accept multiple files which will be concatenated. Added --outSAMflagOR, --outSAMflagAND options to set specific bits of the SAM FLAG. Fixed wrong output of chimeric junctions boundaries in the Chimeric.out.junction file. Added --alignSoftClipAtReferenceEnds No option which prevents soft clipping of alignments at the reference (chromosome) ends, for compatibility with Cufflinks/cuffmerge. --- Genome.cpp | 4 ++-- Makefile | 2 +- Parameters.cpp | 6 +++++- Parameters.h | 5 +++-- ReadAlign_alignBAM.cpp | 4 ++-- ReadAlign_chimericDetection.cpp | 6 +++--- ReadAlign_outputTranscriptSAM.cpp | 4 ++-- STAR.cpp | 3 ++- genomeGenerate.cpp | 32 ++++++++----------------------- loadGTF.cpp | 11 +++++++++++ parametersDefault | 20 ++++++++++++++----- sjdbPrepare.cpp | 2 +- stitchWindowAligns.cpp | 9 ++++++++- 13 files changed, 63 insertions(+), 45 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 8e1766b..8d2ba4b 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -86,9 +86,9 @@ void Genome::genomeLoad(){//allocate and load Genome errOut << "EXITING because of FATAL ERROR: read no value for the versionGenome parameter from genomeParameters.txt file\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - } else if (P->sjdbFileChrStartEnd=="-" && P->versionGenome.at(0) >= versionGenomeMin.at(0)) {// + } else if (P->sjdbFileChrStartEnd.at(0)=="-" && P->versionGenome.at(0) >= versionGenomeMin.at(0)) {// P->inOut->logMain << "Genome version is compatible with current STAR version\n"; - } else if (P->sjdbFileChrStartEnd!="-" && P->versionGenome.at(0) >= versionGenomeMin.at(1)) {// + } else if (P->sjdbFileChrStartEnd.at(0)!="-" && P->versionGenome.at(0) >= versionGenomeMin.at(1)) {// P->inOut->logMain << "Genome version is compatible with current STAR version\n"; } else { ostringstream errOut; diff --git a/Makefile b/Makefile index a6d941e..f524d35 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o Seq stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o genomeGenerate.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ - sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o mapThreadsSpawn.o \ + sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o \ bam_cat.o diff --git a/Parameters.cpp b/Parameters.cpp index 42ba7ad..4308095 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -79,6 +79,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMprimaryFlag", &outSAMprimaryFlag)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMreadID", &outSAMreadID)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmapqUnique", &outSAMmapqUnique)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMflagOR", &outSAMflagOR)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMflagAND", &outSAMflagAND)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMattrRGline", &outSAMattrRGline)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMheaderHD", &outSAMheaderHD)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMheaderPG", &outSAMheaderPG)); @@ -167,6 +169,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "alignWindowsPerReadNmax", &alignWindowsPerReadNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerWindowNmax", &alignTranscriptsPerWindowNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignEndsType", &alignEndsType)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSoftClipAtReferenceEnds", &alignSoftClipAtReferenceEnds)); + //chimeric parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &chimSegmentMin)); @@ -177,7 +181,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); //sjdb - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); + parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfile", &sjdbGTFfile)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFchrPrefix", &sjdbGTFchrPrefix)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfeatureExon", &sjdbGTFfeatureExon)); diff --git a/Parameters.h b/Parameters.h index 1b951a1..c019f42 100644 --- a/Parameters.h +++ b/Parameters.h @@ -77,7 +77,7 @@ class Parameters { uint alignIntronMin;//min length to call a gap an intron uint alignIntronMax;//max length to call uint alignMatesGapMax;//max gap between the mates (if paired-end) - string alignEndsType; + string alignEndsType, alignSoftClipAtReferenceEnds; //seed parameters uint seedMultimapNmax; //max number of multiple alignments per piece @@ -112,6 +112,7 @@ class Parameters { string bamRemoveDuplicatesType; uint bamRemoveDuplicatesMate2basesN; int outBAMsortingThreadN, outBAMsortingThreadNactual; + uint16 outSAMflagOR, outSAMflagAND; string outReadsUnmapped; int outQSconversionAdd; @@ -175,7 +176,7 @@ class Parameters { string annotSignalFile;//binary file with annotation signal //SJ database parameters - string sjdbFileChrStartEnd; + vector sjdbFileChrStartEnd; string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer int sjdbScore; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 5655bba..1088f32 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -133,7 +133,7 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint //for SAM output need to split mates uint iExMate=0; //last exon of the first mate - uint samFLAG=0; + uint16 samFLAG=0; uint leftMate=0; //the mate (0 or 1) which is on the left bool flagPaired = P->readNmates==2; @@ -385,7 +385,7 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint }; //4: FLAG<<16|n cigar op; n cigar op is the number of operations in CIGAR. - pBAM[4]=( ( samFLAG << 16 ) | (nCIGAR) ); + pBAM[4]=( ( ((samFLAG & P->outSAMflagAND) | P->outSAMflagOR) << 16 ) | (nCIGAR) ); //5: l seq Length of SEQ pBAM[5]=readLengthOriginal[Mate]; diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 262bdaf..f0e0558 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -133,18 +133,18 @@ void ReadAlign::chimericDetection() { chimN=2; chimRepeat=0; chimMotif=-1; - if (trChim[0].Str==1) { + if (trChim[0].Str==1) {//negative strand chimJ0=trChim[0].exons[e0][EX_G]-1; } else { chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; }; - if (trChim[1].Str==1) { + if (trChim[1].Str==0) {//positive strand chimJ1=trChim[1].exons[e1][EX_G]-1; } else { chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; }; } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - if (trChim[0].exons[e0][EX_L]>=P->chimJunctionOverhangMin && trChim[1].exons[e1][EX_L]>=P->chimJunctionOverhangMin ) {//large enough overhanh required + if (trChim[0].exons[e0][EX_L]>=P->chimJunctionOverhangMin && trChim[1].exons[e1][EX_L]>=P->chimJunctionOverhangMin ) {//large enough overhang required uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 344bf77..cc21bc5 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -11,7 +11,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i if (unmapType>=0) {//unmapped reads: SAM for (uint imate=0;imatereadNmates;imate++) {//cycle over mates if (!mateMapped[imate]) { - int samFLAG=0x4; + uint16 samFLAG=0x4; if (P->readNmates==2) {//paired read samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); if (mateMapped[1-imate]) {//mate mapped @@ -185,7 +185,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i MAPQ=3; }; - *outStream << readName+1 <<"\t"<< samFLAG <<"\t"<< P->chrName[trOut.Chr] <<"\t"<< trOut.exons[iEx1][EX_G] + 1 - P->chrStart[trOut.Chr] + *outStream << readName+1 <<"\t"<< ((samFLAG & P->outSAMflagAND) | P->outSAMflagOR) <<"\t"<< P->chrName[trOut.Chr] <<"\t"<< trOut.exons[iEx1][EX_G] + 1 - P->chrStart[trOut.Chr] <<"\t"<< MAPQ <<"\t"<< CIGAR; if (nMates>1) { diff --git a/STAR.cpp b/STAR.cpp index be6504a..e804b84 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -123,11 +123,12 @@ int main(int argInN, char* argIn[]) { //reopen reads files P->closeReadsFiles(); P->openReadsFiles(); + } else {//not 2-pass + //nothing for now }; //initialize Stats g_statsAll.resetN(); - g_statsAll.progressReportHeader(P->inOut->logProgress); time(&g_statsAll.timeStartMap); *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... Started mapping\n" <sjdbOverhang==0 && (P->sjdbFileChrStartEnd!="-" || P->sjdbGTFfile!="-")) { + if (P->sjdbOverhang==0 && (P->sjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-")) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; errOut << "you need to specify non-zero --sjdbOverhang\n"; @@ -160,7 +160,11 @@ void genomeGenerate(Parameters *P) { genomePar << "genomeChrBinNbits\t" << P->genomeChrBinNbits << "\n"; genomePar << "genomeSAsparseD\t" << P->genomeSAsparseD <<"\n"; genomePar << "sjdbOverhang\t" << P->sjdbOverhang <<"\n"; - genomePar << "sjdbFileChrStartEnd\t" << P->sjdbFileChrStartEnd <<"\n"; + + genomePar << "sjdbFileChrStartEnd\t"; + for (uint ii=0;iisjdbFileChrStartEnd.size();ii++) genomePar<< P->sjdbFileChrStartEnd.at(ii) << " "; + genomePar<<"\n"; + genomePar << "sjdbGTFfile\t" << P->sjdbGTFfile <<"\n"; genomePar << "sjdbGTFchrPrefix\t" << P->sjdbGTFchrPrefix <<"\n"; genomePar << "sjdbGTFfeatureExon\t" << P->sjdbGTFfeatureExon <<"\n"; @@ -171,33 +175,13 @@ void genomeGenerate(Parameters *P) { //add the sjdb sequences to the genome SjdbClass sjdbLoci; - - - if (P->sjdbOverhang>0 && P->sjdbFileChrStartEnd!="-") { - ifstream sjdbStreamIn ( P->sjdbFileChrStartEnd.c_str() ); - if (sjdbStreamIn.fail()) { - ostringstream errOut; - errOut << "FATAL INPUT error, could not open input file sjdbFileChrStartEnd=" << P->sjdbFileChrStartEnd <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - - sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); - - P->inOut->logMain << "Loaded database junctions from file: " << P->sjdbFileChrStartEnd <<": "<sjdbFileChrStartEnd!="-") + sjdbLoadFromFiles(P, sjdbLoci); char *G=NULL, *G1=NULL; uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to fins all the sizes P->chrBinFill(); - time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Starting GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Starting GTF processing\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished GTF processing\n" <sjdbLength+L)*2; diff --git a/loadGTF.cpp b/loadGTF.cpp index e3558c0..1f315ca 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -4,6 +4,8 @@ #include "serviceFuns.cpp" #include "SjdbClass.h" #include "streamFuns.h" +#include "TimeFunctions.h" +#include #include @@ -33,6 +35,11 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions to P->sjdb //returns number of added junctions if (P->sjdbOverhang>0 && P->sjdbGTFfile!="-") { + time_t rawTime; + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Starting GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Starting GTF processing\n" <sjdbGTFfile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; @@ -262,6 +269,10 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions P->inOut->logMain << "Processing sjdbGTFfile=" << P->sjdbGTFfile <<", found:\n"; P->inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished GTF processing\n" < start end strand) for the introns + string(s): path to the files with genomic coordinates (chr start end strand) for the splice junction introns. Multiple files can be supplied wand will be concatenated. sjdbGTFfile - string: path to the GTF file with annotations @@ -213,10 +213,17 @@ outSAMreadID Standard outSAMmapqUnique 255 int: 0 to 255: the MAPQ value for unique mappers +outSAMflagOR 0 + int: 0 to 65535: sam FLAG will be bitwise OR'd with this value, i.e. FLAG=FLAG | outSAMflagOR. This is applied after all flags have been set by STAR, and after outSAMflagAND. Can be used to set specific bits that are not set otherwise. + +outSAMflagAND 65535 + int: 0 to 65535: sam FLAG will be bitwise AND'd with this value, i.e. FLAG=FLAG & outSAMflagOR. This is applied after all flags have been set by STAR, but before outSAMflagOR. Can be used to unset specific bits that are not set otherwise. + outSAMattrRGline - string(s): SAM/BAM read group line. The first word contains the read group identifier and must start with "ID:", e.g. --outSAMattrRGline ID:xxx CN:yy "DS:z z z". xxx will be added as RG tag to each output alignment. Any spaces in the tag values have to be double quoted. - Comma separated RG lines correspons to different (comma separated) input files in --readFilesIn. + Comma separated RG lines correspons to different (comma separated) input files in --readFilesIn. Commas have to be surrounded by spaces, e.g. + --outSAMattrRGline ID:xxx , ID:zzz "DS:z z" , ID:yyy DS:yyyy outSAMheaderHD - strings: @HD (header) line of the SAM header @@ -425,10 +432,13 @@ alignTranscriptsPerReadNmax 10000 alignEndsType Local string: type of read ends alignment - Local ...standard local alignment with soft-clipping allowed - EndToEnd: force end-to-end read alignment, do not soft-clip - + Local ... standard local alignment with soft-clipping allowed + EndToEnd ... force end-to-end read alignment, do not soft-clip +alignSoftClipAtReferenceEnds Yes + string: allow the soft-clipping of the alignments past the end of the chromosomes + Yes ... allow + No ... prohibit, useful for compatibility with Cufflinks ### Windows, Anchors, Binning diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index e5f30b9..a871676 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -21,7 +21,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, char *G, uint nGenomeReal, if (iChr>=P->nChrReal) { ostringstream errOut; errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; - errOut << "SOLUTION: fix your file sjdbFileChrStartEnd=" << P->sjdbFileChrStartEnd <<" at line #" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; chrOld=sjdbLoci.chr.at(ii); diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 4f186be..27cba8e 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -81,7 +81,14 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; }; }; - + + if (P->alignSoftClipAtReferenceEnds=="No" && \ + ( (trA.exons[trA.nExons-1][EX_G] + Lread-trA.exons[trA.nExons-1][EX_R]) > (P->chrStart[trA.Chr]+P->chrLength[trA.Chr]) || \ + trA.exons[0][EX_G]<(P->chrStart[trA.Chr]+trA.exons[0][EX_R]) ) ) { + return; //no soft clipping past the ends of the chromosome + }; + + trA.rLength = 0; for (uint isj=0;isj Date: Wed, 26 Nov 2014 18:30:36 -0500 Subject: [PATCH 021/536] Fixed a bug with output score (AS attribute) of some chimeric alignments. --- Makefile | 3 +- ReadAlign_chimericDetection.cpp | 3 ++ ReadAlign_outputAlignments.cpp | 11 +++++++ Transcript.h | 1 + Transcript_alignScore.cpp | 53 +++++++++++++++++++++++++++++++++ VERSION | 2 +- sjdbLoadFromFiles.cpp | 22 ++++++++++++++ sjdbLoadFromFiles.h | 10 +++++++ 8 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 Transcript_alignScore.cpp create mode 100644 sjdbLoadFromFiles.cpp create mode 100644 sjdbLoadFromFiles.h diff --git a/Makefile b/Makefile index f524d35..1e1d0f4 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ -OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Transcript.o Stats.o \ +OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ + Transcript.o Transcript_alignScore.o \ ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ ReadAlignChunk.o ReadAlignChunk_processChunks.o ReadAlignChunk_mapChunk.o \ OutSJ.o outputSJ.o blocksOverlap.o ThreadControl.o sysRemoveDir.o \ diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index f0e0558..5ed1a43 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -311,6 +311,9 @@ void ReadAlign::chimericDetection() { trChim[1].primaryFlag=false; }; + trChim[0].alignScore(Read1, G, P); + trChim[1].alignScore(Read1, G, P); + for (uint iTr=0;iTrreadNmates==2) { outputTranscriptSAM(trChim[iTr], chimN, iTr, trChim[1-iTr].Chr, trChim[1-iTr].exons[0][EX_G], (int) (trChim[1-iTr].Str!=trChim[1-iTr].exons[0][EX_iFrag]), -1, NULL, &chunkOutChimSAM); diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index c638ad8..ab4f764 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -80,6 +80,7 @@ void ReadAlign::outputAlignments() { }; for (uint iTr=0;iTroutBAMunsorted || P->outBAMcoord) {//BAM output alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder); for (uint imate=0; imatereadNmates; imate++) {//output each mate @@ -91,6 +92,16 @@ void ReadAlign::outputAlignments() { if (P->outSAMbool){//SAM output outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); }; + +// {//debug +// intScore as=trMult[iTr]->maxScore; +// uint nmm=trMult[iTr]->nMM; +// trMult[iTr]->alignScore(Read1, G, P); +// if (as!=trMult[iTr]->maxScore || nmm!=trMult[iTr]->nMM) { +// cout << readName<<" "<maxScore <<" "<< nmm<<" "<nMM<outSJfilterReads=="All" || nTr==1) { diff --git a/Transcript.h b/Transcript.h index 062f38d..7fe3d14 100644 --- a/Transcript.h +++ b/Transcript.h @@ -55,6 +55,7 @@ class Transcript { void resetMapG(); // reset map to 0 void resetMapG(uint); // reset map to 0 for Lread bases void add(Transcript*); // add + void alignScore(char **Read1, char *G, Parameters *P); }; #endif diff --git a/Transcript_alignScore.cpp b/Transcript_alignScore.cpp new file mode 100644 index 0000000..fc1f255 --- /dev/null +++ b/Transcript_alignScore.cpp @@ -0,0 +1,53 @@ +#include "Transcript.h" +#include + +void Transcript::alignScore(char **Read1, char *G, Parameters *P) {//re-calculates score and number of mismatches + maxScore=0; + nMM=0; + char* R=Read1[roStr==0 ? 0:2]; + for (uint iex=0;iex3 || g1>3) {//nothing to do + } else if (r1==g1) {//match + ++maxScore; + } else {//mismatch + ++nMM; + --maxScore; + }; + }; + }; + for (uint iex=0;iexsjdbScore; + } else { + switch (canonSJ[iex]) { + case -3: //mate pair, no scoring + break; + case -2: //insertion + maxScore += (exons[iex+1][EX_R]-exons[iex][EX_R]-exons[iex][EX_L])*P->scoreInsBase + P->scoreInsOpen; + break; + case -1: //deletion + maxScore += (exons[iex+1][EX_G]-exons[iex][EX_G]-exons[iex][EX_L])*P->scoreDelBase + P->scoreDelOpen; + break; + case 0: //non-canonical + maxScore += P->scoreGapNoncan+P->scoreGap; + break; + case 1: case 2: //GTAG + maxScore += P->scoreGap; + break; + case 3: case 4: //GCAG + maxScore += P->scoreGapGCAG+P->scoreGap; + break; + case 5: case 6: //ATAC + maxScore += P->scoreGapATAC+P->scoreGap; + break; + }; + }; + }; + if (P->scoreGenomicLengthLog2scale!=0) {//add gap length score + maxScore += int(ceil( log2( (double) ( exons[nExons-1][EX_G]+exons[nExons-1][EX_L] - exons[0][EX_G]) ) \ + * P->scoreGenomicLengthLog2scale - 0.5)); + }; +}; \ No newline at end of file diff --git a/VERSION b/VERSION index c1a36ed..0fb26f2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0f1_modified" +#define STAR_VERSION "STAR_2.4.0g" diff --git a/sjdbLoadFromFiles.cpp b/sjdbLoadFromFiles.cpp new file mode 100644 index 0000000..f588262 --- /dev/null +++ b/sjdbLoadFromFiles.cpp @@ -0,0 +1,22 @@ +#include "sjdbLoadFromFiles.h" +#include "sjdbLoadFromStream.h" +#include "ErrorWarning.h" + +void sjdbLoadFromFiles(Parameters *P, SjdbClass &sjdbLoci) { + + if (P->sjdbFileChrStartEnd.at(0)!="-") { + for (uint ifile=0;ifilesjdbFileChrStartEnd.size(); ifile++) { + ifstream sjdbStreamIn ( P->sjdbFileChrStartEnd.at(ifile).c_str() ); + if (sjdbStreamIn.fail()) { + ostringstream errOut; + errOut << "FATAL INPUT error, could not open input file sjdbFileChrStartEnd=" << P->sjdbFileChrStartEnd.at(ifile) <<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); + + P->inOut->logMain << "Loaded database junctions from file: " << P->sjdbFileChrStartEnd.at(ifile) <<", total number of junctions: "<sjdbFileChrStartEnd!="-") + +}; \ No newline at end of file diff --git a/sjdbLoadFromFiles.h b/sjdbLoadFromFiles.h new file mode 100644 index 0000000..f79e684 --- /dev/null +++ b/sjdbLoadFromFiles.h @@ -0,0 +1,10 @@ +#ifndef CODE_sjdbLoadFromFiles +#define CODE_sjdbLoadFromFiles + +#include +#include "SjdbClass.h" +#include "Parameters.h" + +void sjdbLoadFromFiles(Parameters *P, SjdbClass &sjdbLoci); + +#endif From efd61b3ae3c591b49cd33e817f8332255ae782c8 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 27 Nov 2014 10:51:05 -0500 Subject: [PATCH 022/536] STAR_2.4.0g1 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 0fb26f2..48aa371 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0g" +#define STAR_VERSION "STAR_2.4.0g1" From d8bc08d679cda34e678cc084034b0cc61d8924c8 Mon Sep 17 00:00:00 2001 From: Alex Rolfe Date: Thu, 4 Dec 2014 18:16:57 -0500 Subject: [PATCH 023/536] fix bug in parsing of paired FASTA files call to .good() was always on the first read file, which meant that the last line of the second (aka right reads) FASTA file wasn't being read, so reading pairs of FASTA files would fail at the end. Fix is to call .good() on the P->inOut->readIn[imate] instead. --- ReadAlignChunk_processChunks.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index ffbb0ee..df10dc1 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -82,7 +82,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks // P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); // }; nextChar=P->inOut->readIn[imate].peek(); - while (nextChar!='@' && nextChar!='>' && nextChar!=' ' && nextChar!='\n' && P->inOut->readIn[0].good()) {//read multi-line fasta + while (nextChar!='@' && nextChar!='>' && nextChar!=' ' && nextChar!='\n' && P->inOut->readIn[imate].good()) {//read multi-line fasta P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readSeqLengthMax + 1 ); if (P->inOut->readIn[imate].gcount()<2) break; //no more input chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount()-1; From adb65f44c0735f3ad702f03db3fe67b10940f267 Mon Sep 17 00:00:00 2001 From: Daniel Nicorici Date: Fri, 5 Dec 2014 08:54:45 +0200 Subject: [PATCH 024/536] add newline at the end of STAR_VERSION string Adding a newline to the version string of STAR. --- Parameters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 4308095..a3c1b6e 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -238,7 +238,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters string oneArg=string(argIn[iarg]); if (oneArg=="--version") {//print version and exit - std::cout << STAR_VERSION; + std::cout << STAR_VERSION < Date: Fri, 5 Dec 2014 12:52:41 -0500 Subject: [PATCH 025/536] Still trying to fix the Ubuntu shell (dash) problem with --sysShell command --- Parameters_openReadsFiles.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index e5a7511..7d84b1e 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -39,10 +39,12 @@ void Parameters::openReadsFiles() { fstream readsCommandFile( readsCommandFileName.at(imate).c_str(), ios::out); readsCommandFile.close(); readsCommandFile.open( readsCommandFileName.at(imate).c_str(), ios::in | ios::out); - //first line in the commands file: redirect stdout to temp fifo files - readsCommandFile << "exec > \""< \""< Date: Fri, 5 Dec 2014 18:34:53 -0500 Subject: [PATCH 026/536] Added --quantTranscriptomeBAMcompression option. Rolled back the output for transcriptome BAM: if a read can be mapped to the genome, but cannot be translated into transcriptomic coordinates, it will not be output as unmapped to transcriptome BAM --- Parameters.cpp | 5 +++-- Parameters.h | 2 +- ReadAlign_quantTranscriptome.cpp | 20 +++++++++++--------- parametersDefault | 4 ++++ 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index a3c1b6e..53e6804 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -192,7 +192,8 @@ Parameters::Parameters() {//initalize parameters info //quant parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quantMode)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quantTranscriptomeBAMcompression)); + //2-pass parArray.push_back(new ParameterInfoScalar (-1, -1, "twopass1readsN", &twopass1readsN)); parArray.push_back(new ParameterInfoScalar (-1, -1, "twopassSJlimit", &twopassSJlimit)); @@ -821,7 +822,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { outQuantBAMfileName=outFileNamePrefix + "Aligned.toTranscriptome.out.bam"; }; - inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) outBAMcompression)).c_str()); + inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quantTranscriptomeBAMcompression)).c_str()); } else if (quantMode.at(ii)=="GeneCounts") { quant.geCount.yes=true; } else { diff --git a/Parameters.h b/Parameters.h index c019f42..b6b3190 100644 --- a/Parameters.h +++ b/Parameters.h @@ -104,7 +104,7 @@ class Parameters { int outSAMmapqUnique; struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS;} outSAMattrPresent, outSAMattrPresentQuant; vector outSAMattrOrder, outSAMattrOrderQuant; - int outBAMcompression; + int outBAMcompression, quantTranscriptomeBAMcompression; vector outSAMtype; bool outBAMunsorted, outBAMcoord, outSAMbool; uint32 outBAMcoordNbins; diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 80e77cc..0cfb036 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -56,14 +56,16 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript }; }; - if (nAlignT==0 && P->outSAMunmapped=="Within") {//read could not be mapped to transcriptome - uint unmapType=5; - bool mateMapped[2]={false,false}; - alignBAM(*alignG[0], 0, 0, P->chrStart[alignG[0]->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder); - for (uint imate=0; imatereadNmates; imate++) {//output each mate - outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); - }; - - }; + //not used anymore, at Colin Dewey's request +// if (nAlignT==0 && P->outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped +// uint unmapType=5; +// bool mateMapped[2]={false,false}; +// alignBAM(*alignG[0], 0, 0, P->chrStart[alignG[0]->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder); +// for (uint imate=0; imatereadNmates; imate++) {//output each mate +// outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); +// }; +// +// }; + return nAlignT; }; diff --git a/parametersDefault b/parametersDefault index 0f42afc..f9e0fa4 100644 --- a/parametersDefault +++ b/parametersDefault @@ -483,6 +483,10 @@ quantMode - TranscriptomeSAM ... output SAM/BAM alignments to transcriptome into a separate file GeneCounts ... count reads per gene +quantTranscriptomeBAMcompression 1 1 + int: -1 to 10 transcriptome BAM compression level, -1=default compression (6?), 0=no compression, 10=maximum compression + + ### 2-pass Mapping twopass1readsN 0 int>0: number of reads to process for the 1st step. 0: 1-step only, no 2nd pass; use very large number (or -1) to map all reads in the first step From a7cc68e8091ab23ddb0dc0813ce579731e6f8ca2 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 9 Dec 2014 11:27:17 -0500 Subject: [PATCH 027/536] Fixed the problem causing Ubuntu error: sh: 1: Syntax error: Bad fd number. Ready for 2.4.0h --- Parameters_openReadsFiles.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index 7d84b1e..3abe98b 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -54,7 +54,7 @@ void Parameters::openReadsFiles() { readFilesInString.erase(0, pos + 1); readFilesNames.at(imate).push_back(file1); - system(("ls -lL " + file1 + " >& "+ outFileTmp+"/readFilesIn.info").c_str()); + system(("ls -lL " + file1 + " > "+ outFileTmp+"/readFilesIn.info 2>&1").c_str()); ifstream readFilesIn_info((outFileTmp+"/readFilesIn.info").c_str()); inOut->logMain < Date: Tue, 9 Dec 2014 15:57:45 -0500 Subject: [PATCH 028/536] STAR_2.4.0h --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 48aa371..d518428 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0g1" +#define STAR_VERSION "STAR_2.4.0h" From da915ac12cf0714b2278060d20fd2ade6b257c9d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 9 Dec 2014 16:02:11 -0500 Subject: [PATCH 029/536] Before 2.4.0h --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 48aa371..d518428 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0g1" +#define STAR_VERSION "STAR_2.4.0h" From 8c57359c93d3c100e1601a32766bd0779768cfa5 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Thu, 11 Dec 2014 13:18:08 -0800 Subject: [PATCH 030/536] initial posix shared memory implementation --- Genome.cpp | 236 +++++++++++++++++++++++++++++++++++++----------- Genome.h | 15 ++- IncludeDefine.h | 2 + Makefile | 6 +- STAR | Bin 0 -> 2019903 bytes 5 files changed, 204 insertions(+), 55 deletions(-) create mode 100755 STAR diff --git a/Genome.cpp b/Genome.cpp index 8d2ba4b..d599adc 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -17,27 +17,187 @@ // //first available byt of the shm // #define SHM_startSHM 32 + //arbitrary number for ftok function #define SHM_projectID 23 -// Genome::Genome(Parameters* Pin) { -// P=Pin; -// }; +Genome::Genome (Parameters* Pin ): P(Pin) { + shmKey=ftok(P->genomeDir.c_str(),SHM_projectID); + }; Genome::~Genome() { P->inOut->logMain << "--genomeLoad=" << P->genomeLoad <<" ."<genomeLoad=="LoadAndRemove") {//mark genome for removal after the jobs complete, if there are no other jobs attached to it - struct shmid_ds shmStat; - shmctl(shmID,IPC_STAT,&shmStat); - if (shmStat.shm_nattch>1) { - P->inOut->logMain << shmStat.shm_nattch-1 << " other job(s) are attached to the shared memory segment, will not remove it." < 0) { + P->inOut->logMain << inUse-1 << " other job(s) are attached to the shared memory segment, will not remove it." <inOut->logMain <<"No other jobs are attached to the shared memory segement, removing it."<inOut->logMain, EXIT_CODE_MemoryAllocation, *P); + }; + + #ifdef POSIX_SHARED_MEM + int err = ftruncate(shmID, shmSize); + if (err == -1) + { + ostringstream errOut; + errOut <<"EXITING: fatal error from ftruncate() error shared memory: error type: " << strerror(errno) << endl; + errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes\n"; + void * ptr = NULL; + Genome::RemoveSharedObject(shmID, &ptr, shmKey); + + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_MemoryAllocation, *P); + } + #endif + + return shmID; +} + +bool Genome::GetSharedObjectByKey(key_t shmKey, int * shmID) +{ + #ifdef POSIX_SHARED_MEM + *shmID=shm_open(Genome::GetPosixObjectKey(shmKey), O_RDWR, 0); + #else + *shmID=shmget(shmKey,0,0); + #endif + + bool shmLoadError=(*shmID==-1); + if (shmLoadError && errno !=ENOENT) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open(): " << strerror(errno) << "\n" << flush; + errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <inOut->logMain, EXIT_CODE_SHM, *P); + } + return shmLoadError; +} + +int Genome::SharedObjectsUseCount(int shmID) +{ + #ifdef POSIX_SHARED_MEM + return -1; + #else + struct shmid_ds shmStat; + shmctl(shmID,IPC_STAT,&shmStat); + return shmStat.shm_nattch; + #endif +} + +void Genome::RemoveSharedObject(int shmID, void * * ptr, key_t shmKey) +{ + #ifdef POSIX_SHARED_MEM + + if (*ptr != NULL) + { + struct stat buf = Genome::GetSharedObjectInfo(shmID); + int ret = munmap(*ptr, (size_t) buf.st_size); + *ptr = NULL; + if (ret == -1) + { + ostringstream errOut; + errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); + } + } + + int ret = shm_unlink(Genome::GetPosixObjectKey(shmKey)); + if (ret == -1) + { + ostringstream errOut; + errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); + } + + #else + ptr=ptr; // squash build warning :(! + shmKey = shmKey; + + struct shmid_ds *buf=NULL; + int shmStatus=shmctl(shmID,IPC_RMID,buf); + if (shmStatus==-1) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmctl() while trying to remove shared memory piece: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + }; + #endif +} + +struct stat Genome::GetSharedObjectInfo(int shmID) +{ + struct stat buf; + int err = fstat(shmID, &buf); + if (err == -1) + { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not stat file: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + } + return buf; +} + +void * Genome::MapSharedObjectToMemory(int shmID) +{ + void * ret = NULL; + + #ifdef POSIX_SHARED_MEM + struct stat buf = Genome::GetSharedObjectInfo(shmID); + ret = mmap(NULL,(size_t) buf.st_size, PROT_READ | PROT_WRITE,MAP_ANONYMOUS| MAP_SHARED | MAP_LOCKED | MAP_NORESERVE, 0, (off_t) 0); + if (ret == (void*) -1) + { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not map the shared object to memory: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + } + int err = close(shmID); + if (err == -1) + { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not close the shared memory object: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + } + + #else + ret= shmat(shmID, NULL, 0); + if (ret==((void *) -1)) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmat() while trying to get address of the shared memory piece: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + }; + #endif + + return ret; +} + void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array if (P->genomeLoad=="NoSharedMemory") {//cannot deallocate for shared memory delete[] G1; @@ -50,9 +210,7 @@ void Genome::freeMemory(){//free big chunks of memory used by genome and suffix void Genome::genomeLoad(){//allocate and load Genome shmID=0; - bool shmLoad=false; - key_t shmKey=ftok(P->genomeDir.c_str(),SHM_projectID);; - char *shmStart=NULL; + bool shmLoadError=false; uint *shmNG=NULL, *shmNSA=NULL; //pointers to shm stored values , *shmSG, *shmSSA uint64 shmSize=0;//, shmStartG=0; shmStartSA=0; @@ -135,39 +293,26 @@ void Genome::genomeLoad(){//allocate and load Genome P->nSAi=P->genomeSAindexStart[P->genomeSAindexNbases]; P->inOut->logMain << "Read from SAindex: genomeSAindexNbases=" << P->genomeSAindexNbases <<" nSAi="<< P->nSAi <genomeLoad=="LoadAndKeep" || P->genomeLoad=="LoadAndRemove" || P->genomeLoad=="Remove" || P->genomeLoad=="LoadAndExit") {// find shared memory fragment - shmID=shmget(shmKey,0,0); - shmLoad=(shmID==-1); - if (shmLoad && errno !=ENOENT) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget():" << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - }; - if (!shmLoad) {//genome is already in shm + shmLoadError = Genome::GetSharedObjectByKey(shmKey, &shmID); + + if (!shmLoadError) {//genome is already in shm P->inOut->logMain <<"Found genome in shared memory\n"<genomeLoad=="Remove") {//kill the genome and exit - if (shmLoad) {//did not find genome in shared memory, nothing to kill + if (shmLoadError) {//did not find genome in shared memory, nothing to kill ostringstream errOut; errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); } else { - struct shmid_ds *buf=NULL; - int shmStatus=shmctl(shmID,IPC_RMID,buf); - if (shmStatus==-1) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmctl() while trying to remove shared memory piece:" << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - }; + Genome::RemoveSharedObject(shmID, (void**)&shmStart, shmKey); P->inOut->logMain <<"DONE: removed the genome from shared memory\n"<genomeLoad=="NoSharedMemory" || shmLoad) {//find the size of the genome and SAs from files - the genome is not in shared memory + } else if (P->genomeLoad=="NoSharedMemory" || shmLoadError) {//find the size of the genome and SAs from files - the genome is not in shared memory GenomeIn.seekg (0, ios::end); P->nGenome=(uint) GenomeIn.tellg(); @@ -185,13 +330,7 @@ void Genome::genomeLoad(){//allocate and load Genome } else {//genome is in shared memory, attach it and record the sizes - shmStart = (char*) shmat(shmID, NULL, 0); - if (shmStart==((void *) -1)) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmat() while trying to get address of the shared memory piece:" << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - }; + shmStart = (char*) Genome::MapSharedObjectToMemory(shmID); shmNG= (uint*) (shmStart+SHM_sizeG); shmNSA= (uint*) (shmStart+SHM_sizeSA); @@ -242,7 +381,7 @@ void Genome::genomeLoad(){//allocate and load Genome // } else {//2-pass // ostringstream errOut; // errOut << "EXITING because of FATAL ERROR: 2-pass procedure cannot be used with genome already loaded im memory' "\n" ; -// errOut << "SOLUTION: check shared memory settigns as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <inOut->logMain, EXIT_CODE_SHM, *P); // }; @@ -270,22 +409,13 @@ void Genome::genomeLoad(){//allocate and load Genome }; } else {//using shared memeory - if (shmLoad) {//genome was not in shared memory: allocate shm + if (shmLoadError) {//genome was not in shared memory: allocate shm shmSize=SA.lengthByte + P->nGenome+L+L+SHM_startG+8; shmSize+= SAi.lengthByte; if (P->annotScoreScale>0) shmSize+=P->nGenome; - shmID = shmget(shmKey, shmSize, IPC_CREAT | SHM_NORESERVE | 0666); // shmID = shmget(shmKey, shmSize, IPC_CREAT | SHM_NORESERVE | SHM_HUGETLB | 0666); - if (shmID < 0) { - ostringstream errOut; - errOut <<"EXITING: fatal error from shmget() trying to allocate shared memory piece: error type" << strerror(errno) <<"\n"; - errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM of at least" << shmSize+2000000000 << " bytes\n"; - errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << shmSize+2000000000 <<"\n"; - errOut <<"Possible cause 3: allowed shared memory size is not large enough. SOLUTIONS: (i) consult STAR manual on how to increase shared memory allocation; " \ - "(ii) ask your system administrator to increase shared memory allocation; (iii) run STAR with --genomeLoad NoSharedMemory\n"<inOut->logMain, EXIT_CODE_MemoryAllocation, *P); - }; - shmStart = (char*) shmat(shmID, NULL, 0); + shmID = Genome::CreateSharedObject(shmKey, shmSize); + shmStart = (char*) Genome::MapSharedObjectToMemory(shmID); shmNG= (uint*) (shmStart+SHM_sizeG); shmNSA= (uint*) (shmStart+SHM_sizeSA); }; @@ -305,7 +435,7 @@ void Genome::genomeLoad(){//allocate and load Genome G=G1+L; - if (P->genomeLoad=="NoSharedMemory" || shmLoad) {//load genome and SAs from files + if (P->genomeLoad=="NoSharedMemory" || shmLoadError) {//load genome and SAs from files //load genome P->inOut->logMain <<"Genome file size: "<nGenome <<" bytes; state: good=" <genomeLoad=="LoadAndKeep" || P->genomeLoad=="LoadAndRemove" || P->genomeLoad=="LoadAndExit") ) {//record sizes. This marks the end of genome loading + if (shmLoadError && (P->genomeLoad=="LoadAndKeep" || P->genomeLoad=="LoadAndRemove" || P->genomeLoad=="LoadAndExit") ) {//record sizes. This marks the end of genome loading *shmNG=P->nGenome; *shmNSA=P->nSAbyte; }; diff --git a/Genome.h b/Genome.h index 2b32bc0..f9f5d20 100644 --- a/Genome.h +++ b/Genome.h @@ -4,21 +4,34 @@ #include "IncludeDefine.h" #include "Parameters.h" #include "PackedArray.h" + + class Genome { public: char *G, *sigG; PackedArray SA,SA2; PackedArray SAi; - Genome (Parameters* Pin ) : P(Pin) {}; + Genome (Parameters* Pin ); + Genome () {};//empty constructor ~Genome (); void freeMemory(); void genomeLoad(); private: + key_t shmKey; + char *shmStart=NULL; char *G1; //pointer -200 of G Parameters* P; int shmID; + + bool GetSharedObjectByKey(key_t shmKey, int * shmID); + int CreateSharedObject(key_t shmKey, uint64 shmSize); + int SharedObjectsUseCount(int shmID); + void * MapSharedObjectToMemory(int shmID); + const char * GetPosixObjectKey(key_t shmKey); + struct stat GetSharedObjectInfo(int shmID); + void RemoveSharedObject(int shmID, void * * ptr, key_t shmKey); }; #endif diff --git a/IncludeDefine.h b/IncludeDefine.h index 8cc9aaf..a7466d1 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -16,6 +16,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/Makefile b/Makefile index 1e1d0f4..ae08d2f 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o Seq bam_cat.o SOURCES := $(wildcard *.cpp) $(wildcard *.c) -LDFLAGS := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz +LDFLAGS := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -lrt LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz LDFLAGS_Mac :=-pthread -lz htslib/libhts.a LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a @@ -85,6 +85,10 @@ STAR : CCFLAGS=$(CCFLAGS_main) STAR : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) +POSIXSHARED : CCFLAGS=$(CCFLAGS_main) +POSIXSHARED : Depend.list parametersDefault.xxd $(OBJECTS) + $(CXX) -o STAR $(CCFLAGS) -DPOSIX_SHARED_MEM $(OBJECTS) $(LDFLAGS) + STARstatic : CCFLAGS=$(CCFLAGS_main) STARstatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STARstatic $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) diff --git a/STAR b/STAR new file mode 100755 index 0000000000000000000000000000000000000000..9c8e3394ea2987532f7305d37a359a0202b83939 GIT binary patch literal 2019903 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 z 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%0D_6Zw9xy-(#J3oX)JVy5$4rt!6mXr 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 z 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

(=i49?;#S=| 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�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

    7Lbz%9 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�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

    IX#joPU9ECf)p4yoRK_q#z9 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

    FzL1xX6;U`h|)JFrGtIF%_qMOa4oX(GLR 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%0DJ8C^Bua^EBvq8y#+8ARl#oc;9>FAw0;?2xiQ6-f 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

    C&W=wx+Ut#8ZK?NWVPrf%!?ZIQa=ml=3g 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�ywW>`H2cZId2EiuDnJByW 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 %#qzZ=hMker4Fq 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

    ^-fyOzz%P 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

    3#3S$tQ6np-SHPp(ZV&JX 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

    fkVzDI6Qdhv+wW=3?F=Z#Z=z+&Dwz%R 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�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[N-1] || xX[N-1] || xi1+1) {//binary search diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 3eab9ec..c3dd744 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -480,14 +480,19 @@ void genomeGenerate(Parameters *P) { {//insert junctions SjdbClass sjdbLoci; - Parameters *P1=new Parameters; - *P1=*P; + Genome mainGenome; mainGenome.G=G; mainGenome.SA=SA1; mainGenome.SApass1=SA2; mainGenome.SAi=SAip; P->sjdbInsert.outDir=P->genomeDir; + P->sjdbN=0;//no junctions are loaded yet + P->twoPass.pass2=false; + + Parameters *P1=new Parameters; + *P1=*P; + sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); }; diff --git a/outputSJ.cpp b/outputSJ.cpp index 4a1b268..f81923c 100644 --- a/outputSJ.cpp +++ b/outputSJ.cpp @@ -122,7 +122,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr if (P->outFilterBySJoutStage!=1) {//output file ofstream outSJfileStream((P->outFileNamePrefix+"SJ.out.tab").c_str()); for (uint ii=0;iioutFilterBySJoutStage==2 ) { + if ( P->outFilterBySJoutStage==2 || sjFilter[ii] ) { oneSJ.junctionPointer(allSJ.data,ii); oneSJ.outputStream(outSJfileStream, P);//write to file }; From dddb199ae4563083c3d07c6a6c7dd3512387fcc7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 14 Apr 2015 17:17:55 -0400 Subject: [PATCH 084/536] More valgrind errors fixed. --- ReadAlign_oneRead.cpp | 3 +++ binarySearch2.cpp | 4 ++-- genomeGenerate.cpp | 6 +++++- sjdbBuildIndex.cpp | 6 +++--- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index 32bc87c..d75343d 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -76,6 +76,9 @@ int ReadAlign::oneRead() {//process one read: load, map, write //write out alignments outputAlignments(); + //debug +// cout <<"READ="<=0;jj--) {//go back if (x!=X[jj]) { - return -1; + break;//next try forward } else if (y==Y[jj]) { return jj; }; @@ -39,5 +39,5 @@ int binarySearch2(uint x, uint y, uint *X, uint *Y, int N) { }; }; - return -2; //this should not happen! + return -2; //this will happen if jj went past N }; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index c3dd744..acb231b 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -228,7 +228,7 @@ void genomeGenerate(Parameters *P) { PackedArray SA1;//SA without sjdb SA1.defineBits(P->GstrandBit+1,P->nSA); PackedArray SA2;//SA with sjdb, reserve more space - SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitOnTheFlySJ*P->sjdbLength); + SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitOnTheFlySJ*P->sjdbOverhang);//TODO: this allocation is wasteful, get a better estimate of the number of junctions P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<nSA,0); }; //write genome to disk diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 47cfec9..6d0e29c 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -118,7 +118,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; }; }; - //for (int ii=0;iisjdbN;ii++) {if ( oldSJind[ii]==0){cout <sjdbN;ii++) {if ( oldSJind[ii]==0){cout <SAiMarkAbsentMaskC); }; ind0=ii; @@ -292,7 +292,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr PackedArray SAio=SAi; SAio.allocateArray(); ifstream oldSAin("./DirTrue/SAindex"); - oldSAin.read(SAio.charArray,128);//skip 128 bytes + oldSAin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes oldSAin.read(SAio.charArray,SAio.lengthByte); oldSAin.close(); From 54687ad88a314be3a4370894d4e8c9646ec0a747 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 15 Apr 2015 19:12:20 -0400 Subject: [PATCH 085/536] More valgrind clean-up. --- Genome.cpp | 1 + ReadAlign_oneRead.cpp | 2 +- SequenceFuns.cpp | 2 +- Transcriptome.cpp | 8 ++++---- genomeGenerate.cpp | 3 ++- sjdbBuildIndex.cpp | 17 +++++++++++------ 6 files changed, 20 insertions(+), 13 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 0eac0d0..32cc97e 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -85,6 +85,7 @@ void Genome::genomeLoad(){//allocate and load Genome ifstream parFile((P->genomeDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { P->inOut->logMain << "Reading genome generation parameters:\n"; + P1->inOut = P->inOut; P1->scanAllLines(parFile,3,-1); parFile.close(); } else { diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index d75343d..f2468b7 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -77,7 +77,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write outputAlignments(); //debug -// cout <<"READ="<3) ) && (iR3) ) ) { if (r[iR]==MARK_FRAG_SPACER_BASE) iFrag++; //count read fragments iR++; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 20fdcf4..36f797b 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -12,7 +12,7 @@ if ( P->quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info ifstream trinfo; - ifstrOpen(trInfoDir+"transcriptInfo.tab", "ERROR_011001", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P, trinfo); + ifstrOpen(trInfoDir+"/transcriptInfo.tab", "ERROR_011001", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P, trinfo); trinfo >> nTr; trS=new uint [nTr]; @@ -33,7 +33,7 @@ if ( P->quant.trSAM.yes ) {//load exon-transcript structures trinfo.close(); ifstream exinfo; - ifstrOpen(trInfoDir+"exonInfo.tab", "ERROR_011002", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); + ifstrOpen(trInfoDir+"/exonInfo.tab", "ERROR_011002", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); exinfo >> nEx; exSE = new uint32 [2*nEx]; @@ -50,7 +50,7 @@ if ( P->quant.trSAM.yes ) {//load exon-transcript structures } else if ( P->quant.geCount.yes ) {//load exon-gene structures ifstream exinfo; - ifstrOpen(trInfoDir+"exonGeTrInfo.tab", "ERROR_011003", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); + ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", "ERROR_011003", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); exinfo >> exG.nEx; exG.s=new uint64[exG.nEx]; @@ -65,7 +65,7 @@ if ( P->quant.trSAM.yes ) {//load exon-transcript structures exinfo.close(); ifstream geStream; - ifstrOpen(trInfoDir+"geneInfo.tab", "ERROR_011004", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, geStream); + ifstrOpen(trInfoDir+"/geneInfo.tab", "ERROR_011004", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, geStream); geStream >> nGe; geID.resize(nGe); for (uint ii=0;iisjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-") {//insert junctions SjdbClass sjdbLoci; - Genome mainGenome; + Genome mainGenome(P); mainGenome.G=G; mainGenome.SA=SA1; mainGenome.SApass1=SA2; diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 6d0e29c..081bab6 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -212,12 +212,13 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr //SAi insertions for (uint iL=0; iL < P->genomeSAindexNbases; iL++) { uint iSJ=0; - uint ind0=P->genomeSAindexStart[iL]-1; + uint ind0=P->genomeSAindexStart[iL]-1;//last index that was present in the old genome for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index uint iSA1=SAi[ii]; uint iSA2=iSA1 & P->SAiMarkNmask & P->SAiMarkAbsentMask; - if ( (iSA1 & P->SAiMarkAbsentMaskC)>0 ) {//index missing from the old genome + if ( iSJSAiMarkAbsentMaskC)>0 ) + {//index missing from the old genome uint iSJ1=iSJ; int64 ind1=funCalcSAi(Gsj+indArray[2*iSJ+1],iL); while (ind1 < (int64)(ii-P->genomeSAindexStart[iL]) && indArray[2*iSJ]= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index break; }; ++iSJ; - }; + }; + SAi.writePacked(ii,iSA1+iSJ); + for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); }; From adbc28543a0eca878575b22588a411e05cf27e7d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 17 Apr 2015 10:38:56 -0400 Subject: [PATCH 086/536] 2.4.1a --- Genome.cpp | 8 ++--- Parameters.cpp | 2 +- Parameters.h | 2 +- SuffixArrayFuns.cpp | 73 ++++++++++++++++++++++++--------------------- genomeGenerate.cpp | 2 +- parametersDefault | 4 +-- sjdbBuildIndex.cpp | 51 +++++++++++++++++-------------- 7 files changed, 77 insertions(+), 65 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 32cc97e..01c6c0e 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -278,15 +278,15 @@ void Genome::genomeLoad(){//allocate and load Genome nSApass1=P->nSA; if (P->sjdbInsert.pass1) { - nGenomePass1+=P->limitOnTheFlySJ*P->sjdbLength; - nSApass1+=2*P->limitOnTheFlySJ*P->sjdbLength; + nGenomePass1+=P->limitSjdbInsertNsj*P->sjdbLength; + nSApass1+=2*P->limitSjdbInsertNsj*P->sjdbLength; }; nGenomePass2=nGenomePass1; nSApass2=nSApass1; if (P->sjdbInsert.pass2) { - nGenomePass2+=P->limitOnTheFlySJ*P->sjdbLength; - nSApass2+=2*P->limitOnTheFlySJ*P->sjdbLength; + nGenomePass2+=P->limitSjdbInsertNsj*P->sjdbLength; + nSApass2+=2*P->limitSjdbInsertNsj*P->sjdbLength; }; G1=new char[nGenomePass2+L+L]; diff --git a/Parameters.cpp b/Parameters.cpp index b9c18d2..4767ac4 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -61,7 +61,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSJcollapsed", &limitOutSJcollapsed)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSJoneRead", &limitOutSJoneRead)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitBAMsortRAM", &limitBAMsortRAM)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOnTheFlySJ", &limitOnTheFlySJ)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitSjdbInsertNsj", &limitSjdbInsertNsj)); //output diff --git a/Parameters.h b/Parameters.h index 51ffcbf..3a479bc 100644 --- a/Parameters.h +++ b/Parameters.h @@ -175,7 +175,7 @@ class Parameters { uint limitOutSAMoneReadBytes; uint limitOutSJoneRead, limitOutSJcollapsed; uint limitBAMsortRAM; - uint limitOnTheFlySJ; + uint limitSjdbInsertNsj; // penalties intScore scoreGap, scoreGapNoncan, scoreGapGCAG, scoreGapATAC, scoreDelBase, scoreDelOpen, scoreInsBase, scoreInsOpen; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index baa5f6e..3db8ea4 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -188,7 +188,7 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint return i2-i1+1; }; -uint suffixArraySearch(char** s, uint S, uint N, char* g, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P) { +uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P) { // binary search in SA space // s[0],s[1] - sequence, complementary sequence // S - start offset @@ -214,40 +214,45 @@ uint suffixArraySearch(char** s, uint S, uint N, char* g, PackedArray& SA, bool uint i3=i1,L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+1>P->GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P->GstrandMask; + -// register int64 ii; -// -// uint SAstr=SA[i3]; -// bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome -// SAstr &= P->GstrandMask; -// -// -// if (dirG) -// {//forward on read, forward on genome -// char* s = s2[0] + S + L; -// char* g = G + SAstr + L; -// for (ii=0;(uint) ii < N-L; ii++) -// { -// if (s[ii]!=g[ii]) break; -// }; -// if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; -// L3=ii+L; -// } else -// { -// char* s = s2[1] + S + L; -// char* g = G + P->nGenome-1-SAstr - L; -// for (ii=0; (uint) ii < N-L; ii++) -// { -// if (s[ii]!=g[-ii]) break; -// }; -// -// char s1=s[ii],g1=g[-ii]; -// if (s1<4) s1=3-s1; -// if (g1<4) g1=3-g1; -// if (s1>g1) {compRes=true;} else {compRes=false;}; -// L3=ii+L; -// }; + if (dirG) + {//forward on read, forward on genome + char* s = s2[0] + S + L; + char* g = G + SAstr + L; + for (ii=0;(uint) ii < N-L; ii++) + { + if (s[ii]!=g[ii]) + { + if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; + break; + }; + }; + L3=ii+L; + } else + { + char* s = s2[1] + S + L; + char* g = G + P->nGenome-1-SAstr - L; + for (ii=0; (uint) ii < N-L; ii++) + { + if (s[ii]!=g[-ii]) + { + char s1=s[ii],g1=g[-ii]; + if (s1<4) s1=3-s1; + if (g1<4) g1=3-g1; + if (s1>g1) {compRes=true;} else {compRes=false;}; + break; + }; + }; + L3=ii+L; + }; if (L3==N) { L=N; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index c94cba1..a45dc98 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -228,7 +228,7 @@ void genomeGenerate(Parameters *P) { PackedArray SA1;//SA without sjdb SA1.defineBits(P->GstrandBit+1,P->nSA); PackedArray SA2;//SA with sjdb, reserve more space - SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitOnTheFlySJ*P->sjdbOverhang);//TODO: this allocation is wasteful, get a better estimate of the number of junctions + SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitSjdbInsertNsj*P->sjdbOverhang);//TODO: this allocation is wasteful, get a better estimate of the number of junctions P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<=0: maximum available RAM for sorting BAM. If =0, it will be set to the genome index size. 0 value can only be used with --genomeLoad NoSharedMemory option. -limitOnTheFlySJ 1000000 +limitSjdbInsertNsj 1000000 int>=0: maximum number of junction to be inserted to the genome on the fly at the mapping stage, including those from annotations and those detected in the 1st step of the 2-pass run @@ -512,5 +512,5 @@ twopassMode None Basic ... basic 2-pass mapping, with all 1st pass junctions inserted into the genome indices on the fly twopass1readsN -1 - int>0: number of reads to process for the 1st step. Use very large number (or default -1) to map all reads in the first step. + int: number of reads to process for the 1st step. Use very large number (or default -1) to map all reads in the first step. diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 081bab6..c1344af 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -31,8 +31,8 @@ inline int funCompareUintAndSuffixes ( const void *a, const void *b){ return 1; } else if (ga[ig]sjdbN]; - uint nIndicesSJ1=P->sjdbOverhang; -// uint nIndicesSJ1=P->sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome +// uint nIndicesSJ1=P->sjdbOverhang; + uint nIndicesSJ1=P->sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome uint64* indArray=new uint64[2*P->sjdbN*(nIndicesSJ1+1)*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndices per junction * 2 for reverse compl uint64 sjNew=0; @@ -105,15 +105,16 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr for (uint istart1=0; istart1sjdbN ? istart1 : istart1+1; //for rev-compl junction, shift by one base to start with the 1st non-spacer base + uint istart=istart1; +// uint istart=isjsjdbN ? istart1 : istart1+1; //for rev-compl junction, shift by one base to start with the 1st non-spacer base uint ind1=2*(isj*nIndicesSJ1+istart1); if (sjdbInd>=0 || seq1[0][istart]>3) {//no index for already included junctions, or suffices starting with N indArray[ind1]=-1; } else { - indArray[ind1] = suffixArraySearch(seq1, istart, P->sjdbLength-istart1, G, SA, true, 0, P->nSA-1, 0, P) ; + //indArray[ind1] = suffixArraySearch(seq1, istart, P->sjdbLength-istart1, G, SA, true, 0, P->nSA-1, 0, P) ; + indArray[ind1] = suffixArraySearch(seq1, istart, 10000, G, SA, true, 0, P->nSA-1, 0, P) ; indArray[ind1+1] = isj*P->sjdbLength+istart; }; }; @@ -160,9 +161,21 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr uint N2bit= 1LLU << P->GstrandBit; uint strandMask=~N2bit; + //testing +// PackedArray SAo; +// SAo.defineBits(P->GstrandBit+1,P->nSA); +// SAo.allocateArray(); +// ifstream oldSAin("./DirTrue/SA"); +// oldSAin.read(SAo.charArray,SAo.lengthByte); +// oldSAin.close(); + uint isj=0, isa2=0; for (uint isa=0;isanSA;isa++) { + //testing +// if (isa2>0 && SA2[isa2-1]!=SAo[isa2-1]) { +// cout <genomeSAindexNbases+2));//skip first bytes - oldSAin.read(SAio.charArray,SAio.lengthByte); - oldSAin.close(); + ifstream oldSAiin("./DirTrue/SAindex"); +// oldSAin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes + oldSAiin.read(SAio.charArray,SAio.lengthByte); + oldSAiin.close(); - PackedArray SAo; - SAo.defineBits(P->GstrandBit+1,P->nSA+nInd); - SAo.allocateArray(); - oldSAin.open("./DirTrue/SA"); - oldSAin.read(SAo.charArray,SAo.lengthByte); - oldSAin.close(); - for (uint ii=0;iinSA;ii++) { - if (SA2[ii]!=SAo[ii]) { - cout <nSA;ii++) { +// if (SA2[ii]!=SAo[ii]) { +// cout <genomeSAindexNbases; iL++) { From b48d0df2c3f777e2507880932807a4014ad7a916 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 17 Apr 2015 10:45:43 -0400 Subject: [PATCH 087/536] 2.4.1a final --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 57e932e..a69d81f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0j_modified" +#define STAR_VERSION "STAR_2.4.1a" From cc249b683017e19ff1f5a1986168cd29d29f06c4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 21 Apr 2015 23:30:03 -0400 Subject: [PATCH 088/536] Fixed a bug causing seg-faults with --chimOutType WithinBAM for single-end reads. Fixed a bug with required --sjdbOverhang at the mapping step. --- Genome.cpp | 2 +- Parameters.cpp | 1 + Parameters.h | 1 + ReadAlign_chimericDetection.cpp | 2 +- VERSION | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 01c6c0e..0c8f804 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -127,7 +127,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (P->sjdbOverhang==0) {//sjdbOverhang may be defined at the genome generation step P->sjdbOverhang=P1->sjdbOverhang; - } else if (P1->sjdbOverhang>0 && P->sjdbOverhang!=P1->sjdbOverhang) + } else if (P1->sjdbOverhang>0 && P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang!=P1->sjdbOverhang) {//if sjdbOverhang was defined at the genome geneation step,the mapping step value has to agree with it ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: present --sjdbOverhang="<sjdbOverhang << " is not equal to the value at the genome generation step ="<< P1->sjdbOverhang << "\n"; diff --git a/Parameters.cpp b/Parameters.cpp index 4767ac4..b7deebd 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -191,6 +191,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentTranscript", &sjdbGTFtagExonParentTranscript)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentGene", &sjdbGTFtagExonParentGene)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &sjdbOverhang)); + sjdbOverhang_par=parArray.size()-1; parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &sjdbScore)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &sjdbInsert.save)); diff --git a/Parameters.h b/Parameters.h index 3a479bc..18b7112 100644 --- a/Parameters.h +++ b/Parameters.h @@ -198,6 +198,7 @@ class Parameters { vector sjdbFileChrStartEnd; string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer + int sjdbOverhang_par; int sjdbScore; uint sjChrStart,sjdbN; //first sj-db chr diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index eb8825a..598f09f 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -343,7 +343,7 @@ bool ReadAlign::chimericDetection() { mateChr=-1;mateStart=-1;mateStrand=0;//no need fot mate info unless this is the supplementary alignment if (chimRepresent==itr) { alignType=-1; //this is representative part of chimeric alignment, record is as normal; if encompassing chimeric junction, both are recorded as normal - bamIrepr=( (itr%2)==(trChim[itr].Str) ) ? bamN+1 : bamN;//this is the mate that is chimerically split + bamIrepr=( (itr%2)==(trChim[itr].Str) && chimType!=3) ? bamN+1 : bamN;//this is the mate that is chimerically split } else {//"supplementary" chimeric segment alignType=( (itr%2)==(trChim[itr].Str) ) ? -12 : -11; //right:left chimeric junction bamIsuppl=bamN; diff --git a/VERSION b/VERSION index a69d81f..7777657 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.1a" +#define STAR_VERSION "STAR_2.4.1a_modified" From 04281d7a28aa85c1428e6618fa76c982b496d88e Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 21 Apr 2015 23:30:25 -0400 Subject: [PATCH 089/536] Fixed a bug causing seg-faults with --chimOutType WithinBAM for single-end reads. Fixed a bug with required --sjdbOverhang at the mapping step. --- STAR | Bin 0 -> 1792798 bytes STARstatic | Bin 0 -> 3646356 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 STAR create mode 100755 STARstatic diff --git a/STAR b/STAR new file mode 100755 index 0000000000000000000000000000000000000000..5f27ff21264f90fe2d9712f0ac2e6bb5d11171a6 GIT binary patch literal 1792798 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 >J+Br!bdd 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

    V2<}_-Wj~0R@S|iHZeC9reE!nH~(LtLBJb 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

    W)QjC~`xc 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⪙#)`Be$mj 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ΫEnm_;R2|&o_r?d+CtdrYTdL>& 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

    @CD%H?}(Ex;hVw9+Y^80!$%>0 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%0Axs_YMo)yRZQbbA@O2&p z{1Bz~bf*Q;YFBr9I7YqIo!-Gdc6a(NCjCST9capHZ{IalA9SHP&D6VHXnAw>W*6Gg zTy5(@$C{^q-kDCd*bun5Gwq90N4n5gaq9gP+R>h)UBK11Df|uDcgb`-{+tDC3p*%i z#dl$dx4%OxMBC9(f&VA3f6VI?izF=Q%#4Fc{Cu`sOFYkX8_67ASv#B(3UqxcKT*~A z{~;>_0fpBbYt1)R^M?2}XIkOHW1OKwXExuO+X^iYm2OT@&Lh&OQ0;u`U_1W2^ITgx z7ZN@<4!2vWoo(p1Q1y5lzA5F;mb9nVDQsQsuQ&3+7W8`LHf%WDA2Z@eGkT~gHV6(i zQ$YXI4CYof4}-+d&BMUB4|grKp!F@l{-s4@Si2_{=#kh~@L^dipzpS71>bIK4Rmws zR`B>7qo>-aHF31Cty&yM-?vqtx1*2RfsM3Xz8C$E+v_i>s}KX}KbuB(q1yJ~%hwjC zVTKvE5*(-6fD1RVyNe4@aZ`6M3^66^d(#70HNmB)YT`$I=`WXB-k0VFs=0m9qdtnB z5SP5Zluk#v)BMYG^_Fy6Y?8B12b;(tF680e!n`pkfezxuK# zUGl51dh(7nR%jourGD>8&(~7((&^_~h=l8CHuR#$>Zlic(M#A|N~aHT{w|%qtfMM= z(Jyt>0^HCVrZ%V2Cs?aW<*V6_cc(wY)F0hxO#8k1=??71rPAtp z>ZMeAt)5zfRoZ%LUQfC!Ty5$>>%!GbJ!p5hx}yhoo`|(NLhVnXO%ZBMGQAt2-b|*i zBh-OpT327~PNA3UbKS?MwhL0|e0^?KuVDWqnGYX)jb-debv~KDvYm%!)j;jDwot#o zNDH;QFRgFc6mKsr)wk)ii)-nr*sQ0!(d(@h>cy9>S<9u?&9PJ4rVl*&sI7wX&)X_k zKGROYi$A!AZs*m}ZQL$@O2K0bcj-U#iudh3@YutT1!;JE))S9S>CEHDhrRH)zc(JJ z;`6L*^#Kk|;M#*agtN!%>tJvHDWv&QfLeje?Of_u9eTjk5hozA>497AaANYqFrI^5 z#FcV9=-=T{&(!5BmloB*Z^Ni9Vf0tf!%(micmCC-$3s*_U3xjBq|EMABTFoHV=v?Yg@SU z9^1(aaRGEa>v*tw0hcC*qD1)k!=k#@(OS%TwKmJ_z|HWrofUP|U183rapa+n6UT_K zJ&Jpz!1*o=$Ie#QRqxluC5^1$jNmwq^-DPK@cvMbPViZyd2;L_oat)m`!m4$C7_l1 zxjS8z^BwLg#wq9Sgfq))Q~5_5z=5;tyITiw5Eleyyrcc zNXWW@e2Fw<&Uw|F19|0~cNcLwss|qv#?H_CeuX~uXMgfX=wEB8JNnV`I!i4Oo5R$p zblM%pJ<*Xc^>8oxAx!<&lW*=K|^(WSK8JvVP03d*ifzLO7}HVPj#iI&>3{4t&P;)uJlnOb*w9$Y^2V1r3;PJ z?cL~TV|6l#4_JJfO!J#?H?t~A-JU|PN2&YJAw_k0D}|npPW&qcJx0r~deO@1^nC2EV_cXh@VXgg{@0T?D;F)Vg1mZ z6`W`ENDqauM|!fa-=*{O^sw=y8|Y>7h4W>bx5V>N_It zx74c3w&Xs=p?>#P&kgQo>z3QW3@G3@u6(e9mzi= zBL>yXNei%Vg%7LneTRb{!&eLVXbMNm@OiGInV7v&26Ru^i^hvRzq4-o*1ir({Z6k%>*<0FVT_8l~<3My8 zZHQIdQ|aC|FR?%ES;dd-UxDh|I;-cq;R4I{Fz`$_wpfuo6qo1?t}nR8W6{U$yY@z)>8_3sQeZ z(8i$U*8ci@{QYbLIu*PTDSIU(W=;g%7OKwIqZOg*FC6y624FaC3suX*X;-K^QJ*Ko z3&Ln|E&lyF9v*+gfj9y;Nr!;>TRVap)4Kf$?dGQkQV}&ZXXLh*#z=2>dK?8@m3-!_}O|v?*MjZA723 zr60o83ytWva6SV1QN-8q{I|&W@cf6op4ABF2NXCNN>SzS5udTj`pv85DV`hQwJA$6% z^uNUCmfqk@cq;;rE4uK1_dRl{V-O4%$9&eDH;O-Q&MV~~G^bNoBX7>vUB29$?!fkR zbAFLN+l)WD!Dxylt`=BBQX8V^bDaIc;clgl#ZZMy?Tw*j=qO@nEw(&k=oPGS#n3Js zE{VbS7iv)q{peEjW9aTcwYd>}h)qI17_L5x;s*F~6fMU$4$=Ij!~N0pmPgHr#?Sbv zucGKjkDAwlo(@tAThK1Nz(&(zulg>Ujs~~;Fq+=O>nRQ~;g+3f`YuF07fnBhsJC%) zEA((6g8vLxhg#t1;3EMbDjKU5QM9A60=|rAyQiXA5$5~27aw!yn#`_YWmE7HH^BpkHo7Or{U6E4bwJi zcxJbT{_iy0^n->KXHEEd4Wlj?`l5#MuD+soUvmxP(=@D@sNu0P4L3cZ;lA}I{8bHC zZ`aWOo#CH1wCX2%mxgO71Ri#MuxT4&1|ff!!_AlR-@J_Ohtul(XUEIEjGkAwX82>5 z(GJXj_z#C~ zS^jMM7cc4bl%%8yALSzHv-O-Yw7;7U7oqx46HRW>Dz|#g^G%(~^?Pp^H z;|xqSFvGwx1{N7O)4(MLt}<|=f!ht-Yv54>PaAmAz>w>VeFNhROf@jWz%d3E8939x zB?hiCaHE0S4cu$sQ3FpKc+tR+>y3Q_;|xqSFvGwx1{N7O)4(MLt}<|=f!ht-Yv54> zPaAmAz>ph^eFNhROf@jWz%d3E8939xB?hiCaHE0S4cu$sQ3FpKc+tR+F~+`uaR#Ou zm|@@;1B(otY2XqAR~fj`!0iU^HSnl`rwzPlU`Up+Z(y8(sRm{kIL5#t17{kz#K2Vs zZZvSafqM-+YT#)DFB%v!*4Q^N&cIXyGYlMKV3C0{4P0X2Dg!qfxZS|L1|Bu=w1F25 z49Pb34U97|)xZn`#~4^-;7kLT7`V#7jRtNvaIb+!4Loh&MFT^|8T$st8JKEdhJj-Y zEHZGWflCZrW#C2ww;QAvtNpe~k@{GceV_33>;%%k%2P}Tw>rV12-DD-N3yD z9yRc^ffo%7nP}`A7-wLrff)vlF|f$MnFcN~aFu}@4cu;|xqSFvGwx1{N7O)4(ML zt}>AD=fwYhy?S+vitU#%vQ<>axQ=mMq7vg165~50bcl)_mODPGe|EX%x9iaAa@o!- zn-JfnLqbj2&Mey&x*cqU-13a?)K6gTP6Gb+(DKLH*z%c^w0wv?alI^tmfxCc%a5I^ zR2YdnRjaWl@Hqz zHKCTjE60{U({g|a4Dr>Jvnefa;j2xZpJ|=6{LX*%f5HV@-oI1JkK{tX!k^aP-{CO& zOWxJ;wg1(hm_%EC=>aYO`4x0COY85IWXqS}qd5L+{jd5r^tI(zf34*=1WB~NJ+%IX z18n)sAGQ1k0e=$}hL#^N)RvDrtK|a*{+s*_xC6}8=M*jYqxEm{3+LMMQK?$~-_v^z zcamxSnS-=EF15PipZ0&+{kHtEp<4bo-RS-nN6R-@St&nE%Ww1lO;i|K{-LLA`PDgE zJ|pPgKj&G!IZLz z)C=$EB5x8hrLcrj8X8_sL2+3wecz~hjI8p~8FZ+zVX@xQT%=`E6Fbht+?>f-eTMd> zkx_=F4dYv2ZHeVgLf6I`-W18z%vOe+kXv4mUzAIKRAc1OnAX)aND04>CvF5qDIP(V zopupT%*!vx%_`0-$evI}qtRX_mP{$nNu(8wijfEpOG)ClF)H3AQVA+A%a$eL7aD=G zmx=gMLgsRbN22^E!Y}9=%&6G0%l!`KNN#0ik1L&0QeH5FaO~Ca$cMt$5u`5M%%m=^ z8E9g<963G6cO-`gu5)PG6VM$?SXNPPIR{f7IJoc=169#n9AfE$?8q+6%E_OQU7C1f z0V+d}r0T3vW<6k7xkckkip%H|LuOBzo|sS3U9~(@d6Zv`>PatFqwxEIhAJs2k%m&3 zJw2zWoD#cf1%;RKXBoc9paj}r7%az`kX1Z2x3nO;q>O&9uA*j8e6rTg+yokGsEOlC zb(?C|qtg4V>=HDF@zgF&vvP_{W+c#JLyezOl0bV5ftH%c)q@gy5|ttUxTRzj7LU)R zWaKP!*g{EmDeC^*-kOtNUYd2|l-$x8W%O{L%UJo8)7P-1Gmy6Z0a#o(McIY9iTUGc z1f~>BvufQQ^3j{w9BD#v=;dq%Jf@qf)24&jZ+Lb#(p~84IFb~A)UG>+YK~Y*pl35R z$tDu$L2M$jxNhyzKhcjPG!K;k9a#aL8L4TuVOQ|aua0U`GS`}om}YgbElVN7mYU)vy$xciF60JXvx_{ z#rfm2^7I^KZi-2Zoend>@M0{zsUUwG@_{=&^az*&?F3UYXbP&hZcRo!93zS@dfn1# zEf^xoJwsLD#ikjy^f*=g_2BFHx`9wE#uzCmL+=1B`gBBH5cAV(Fsm~4O^in(txKRP zAi!>iQm5=hRO=FW2TjN1N+-383NUa9k4sLoPS`A?$1crxF?wCea27f+-qflJqd_1g zg(k=DMBgLr%FuH#Vu`rqU{w+>*5K=m@Y{Wd$PVv0gojIduLf5;o;Sp3)x{r|VMv+b z&AHl8+#jMQ(PP(D2AA8N<_Vj}Rga}|OHoF-)cX2rvQvvo%8{$|b#Y}v0 z&B!urJ;56{){rtEM=wOf@ZUlF_Wc#+nQemfSfvLO?%6oAXdKv*YgK%7(Dba4MmAzx zo06lud)9iVXyteG&)O5UushbW^6YZcCa2frNrlWWnt;nSjVUcVp5Fj0dt@*?%nE#M zYl!8bh|rY2t;xkJ3_C-p14tvU07PR>-WwgS^n3DNg)4zIl{-DZth|i)2va_M#Jrtm zYaCrbZcceIUNrcxm&M9>c_1HC>NXH5%#&BL97aoXr=g$67qG%EMU!T~J`|F>UkeTt zPANiF$f2H$=Vh1Wz;Tz<&iVDMi!G!v%93V5g6XvT}^`rR2mb1mnf%fMX1v zUqrbcmWTc_dfP^G@bmA?m8wDb1P?gZX$tf*Dz)@FLG8KJT|yz*I$u9Gf#rA~rBKup zL@LkCE}$I2b*;xIJEB*rRv)~n6y^!~fS_6v`s3n4$wqX*$VOf@`O<+)8r#Tepu%J3X=IH(pUXqpWlheVK`F>1o5=%)wA;zmn0S|&028>^ zs8WuncF!@5A+Bgbe%_3%?9vHS=@PQVR)wyPUPX4;^c0<@>-<$Lsqo|Q`e@7G&2w^A z$pq>aR>dpL)$@=Fyk6UK;(O@?Dvzk*W%kP&(3@&SR&nG7fIFc^4XT(jNS5Pu&(_5w zqVB4yG1&m_|EiJ_i}GSTsznudD!01xt*aQkkdWDrZf#S8Mf+>gS*)mxa06)>%auBa^#i0iDL=Dino|RpIB@4nm-ZrC%-(8YX6N~_pw^orQ#l;2a zu>+d7~6qs9B zQa*#etP1A$6BGd}r(tN`#+>cb+Ul%=-11yo_N%G@-J67=e%q1r%g_|igm3#hFOeLm zyS7O?J@N|IK>{STLT92kxLnZoYnFtGY_$|*P0L2R=D%qC$B%qq@$h!!b}-6mY941y zFepJ-Xrc)5is9oZ-P#bk$xN)S5u7`$VtPVw>0-EiZ_4BTwNNlwBH5r(tfA14f=Z{@ z9U5-e8AQLA~EH5wNd1nzu z2t8;hCg)u)nU0!NolDbf20C7?5+Aujh8>drx+D4yiBY8*_h)DU z$p}u-BuNpkhxUhujgj=psQc(4iBINE#?%x4aI97HdE_Q1>KzL)K0@%40xXK;6qn{w zFHZH;GBX^#%9Ks8wHHtd`1K*IriR`^6oqbm@WRzY--TGCbKB32s57I;!?`6L$K0PS+{K-RMn#YEm_N}E~-2J|p4O5RAT5`epTMKrvp;lLwV zytn`cqHtn3ufM^xomJ|pQJOn}@FAc!QngytrB9VwUSO77SOF#+#&n~!xGE3v9j2|K#e#2*O`L+ckSX?q;Bmra&c-jb^d{Dnn8R&C4;!a5t8>cAsR`z_EW(M* z%g&d`ob@!;1n6b-du>V@_{nOK^!sHQHOCSaE7Bc8tr41%#MU;I{8xhJj~^GprbZxM-haXbMCSJxbaG2E>q707 zY;Dhq5qIt{W{&LiR}#6 zBNJch(Z^Q`;qtpN%8pW12$GE^HgJqkbup>X`D8n1YOl8Ij`@dRv3<%8z1(+WLgvPi zP5;3UV@QMsTtTQ>K8nore~_uJ=LuWJZYb3~Ie2+s^_Z%eakF~E(@S6-?Vz&iO;v~G z*kRJZt6RILMo4v2Z`dJ~Jx29-XZ{viJ#Lfc|DKytD<8drP*wYrfs%T)xKes0`rCF; z&GbrGzm~TBY8{${?6yNHQ)T>?&_S_wysFw*t$=l9+-D12R(d-0o>sPsYHdIVg|{|A zm9|Ze>frbPA()1=G4U=l$n9rf+bf4j&F|Ol3cg4}GvlrtO#++5Ulv$BiyGN$#ns0O z_Jsci<3E1D5F6v01BgaAF$(e9moyCgf|I873tSKcB+$H?^|xtz-o^TkAmxaLKesgu zvsP=J8;gAy*z6NL>E>h(i#U#84j%9^rkmt+2Yv%7r{x~!0B{7(#yr^>5O`9UuJOWD zE1@hPK(X^qx7q>+9L-@wEzW0crx;zrsB$}cGkB2+m-_)cotA4dlsIbP;YxTKoIoGY z!-1hzKS1{fq2TzfaR?xH2$B$3*ILH7I~kq?))T_-_P}OfxDXNU*H}x05K-0MyA?YB~bPoxyNw4c&jg{3d@ae zS1B;T!u*NmSnjQCJ<(bSowr%;*VtZX>mg7JEcX=F(!;tLl1nZ3a!ycxYaXZ-mU|Ub z1B6;_xz{o^P^k5mdjnI0gxX}eUtnsmg*r~JSnm77KxK%ZJ1loIwvcH(3VS;(@_Ygq z_+ro|_!|+pg;VW)643%*W0bsau%@k?e7AQW^abu12euz&odKT9&E*@+#m@fwxPmd4 z3tG6(+1xtdZUzy;vW}L>0oQe$RSwP}*MtQUZ5*DcZZE+@$6YY&ekY$renk#>5?Oa> zlBaVRDF1a3@pKXNCq|Q4P@8OqaB-vyIrz(8PuB~u8}uu}{hm~Ac;4@UdwMWR-t~;9 zG46(om=cnMGvCvb(V*^#8tWPQ4sh=lJUp4~BY9h+wRo<=e4YZlU6FO3Va#`Xe_(tB z^Mk#ZnvrJ|^Zj1_{K0cA<6&M867RY0T4;-)&{)q9T!}^gXIVHmmr+Suo^T~?6ROfi zNUNl+B{@cO+9tARwcSZKVb96#!4oSx-nRGh95t~fpWFjA}w zgo{(0ZcmO*V0z}<3{Gu!)8&32Xq~Wt(57Djsk;WosP1B*7C96&1SR0rkQ@z>fS|;_ zj1GryK^@s2$1`YEK}lRM903q;xcL=7h|#g$_(pKFULqde1hy35_fx%D2r{H2gz6O{ zzD)*Gy>T#WNRN~1Er)qK)S`NKBHs+jSOq-wCW>aSA1--2Fz)u&W}Siudyg{Skym*A z-sx~n;}PC_S-#Ue$VYkauf$`$hghaF^W(#@I^gZH8}28CW1q*H)Ddz!C>(EFzT@?r=Wep>e-=7_vg+5#GAU8)w_T@FmJS z75V9Gw-xGR>)}dGa>k8=ngFXwymt)>!r7k5j<7l!iX#T%5j@1=;*Rhle(+F>3prvp zVg_egT*?vkpey)l>qD0JgAtr19iHPoSn_4ogHo59t4e+A5=1%!i)1A7bNhk5ghj9F zDWd)GY+#M56k}NmdI}OHzL9k}bNe97cQvErZGxxo8dl}@E&{_h>I87V_Y|D+UCS~N z-a=%B?>d%=@?MWb_^xM}*zm%#3FI5Y*%o9r0Lx%YBSno0N7IDY~CQfqV&jAU19lQWvnu|@iV_9jMi{r9D zeUOfqInqQ0|Wao2+p^e)f{Yv=>Oy={S8rrVo=I2sS|-o*G-*{C3H z?`QDI8pa>@`!VJsLzY^x4z99pI7C(}huC+&g{(D1fIF>jve6n z8}g32)yA<4b|M;L!bw(J$9`CdYB-Iob`D(cO|cEj^T(4F=Qsc&-n|utV6}H}UzyY} zXDV6o4(@`EaY8voF85V11xWJQ^@oX=e-jU z$x36k+j|TSSUsg>LmhWrj;mQ+Iv2WQ3H%S4FJ07PWJ$7vdvy5d0y)QYuwN5EC@ zdz{eTo4_)r1P}1?(xv9Ry}Q|z@Poa3Fm=*V{ob81j5p?N@fNY|-pznV!5uc?a<7%= zU3fZ%OYmzzYx%AISF`1LtaShv7|BC_%c{vVPC#?ZV)vX*%wnUaGA*7*f5S@0$i&7Og|HazuBiH4MJacygfJm_UfCPasGB6_@7 zEZoV~tdVgQT9yssO`^T^J(qLW08y1@;`OPF&u641e%AmUA2AlPhE`6CJFZM4`9)=n zb%+tq7F&r$b}*jLb%Evx13)LN;I5>VlYLl=|A{=^vDygzInzAlvD%7!XNXb<#U^Jv ztYgN^$j<%125;qWwz=63cCY~A9l4LW&A}nNKz3>cvmxB)d7L3(gC!nn)n}+s@^ZmJ zGO=`1$VJ3yYc=9ZS>d$C8Y@dHt?_AaNnC{_E*6@RA)7g8?{G@-+Ols|#+hcvxkKWN z;W(Yw;%Uv22DQ&f&g^2RiBFbyk*;pmI0)Yh*(A=<*_^^JIDUKUQ#`GYwap3>GcMWI z5Qz0=@$+M`IT+cOa1Uqt$4-8i;&zmr(pZ0&_%Cxv%2+%!_b1`{VX!+ZZQD&NT?zr~tn-Ae za1sP4l_l00iDN8r&MD?z;`U|9WkIvP2lbic1bG4_PtM^E*UgWsZ9h#$C zUueCHY;`^c0qOV`a@Q`MxpUz>NX4AN!?~~>o;|FuktetxnPXTFAVwq$N3vKX3&?|7 z6_N8UCMk{09y3l%PwB@zRD1_E4w8o<=vp+ETn`URWAPg+b5m_=ch*7GpTr3~%o(y48oCTYK3j*m!#)kN zcUftU3GIS>>moJm@HhxpFo}!J5X$6kkV!c#{233Bmq7O69`$`nhGj$DHaM0{S4?qNha#u2I6o61kxnJ@7iJx_o@ROdb!7l?W(lMU#KKJ2hSkF zWzidbBWlY9E{#m><~}3*Tu`*@$%8Jbq}9x-7@Tx|=I&Q*;7Y z)3KIueHaa5i1eyL-U^aB^LvstS^D89qvcGcwnA*Eb@_r@$7F7zXILB8?n3T|>!1N; ze9PVyu^ie#652sAx9R~18p^}`7Ncr4r}!q_6!>EwX$lr)TF2P@yJFrpyQ!C*m@sVF z^`6KE-(~Y_p;f2tT~6C+kmAj5_NEIOm<)8y5D5cav>E8GS_?P&7?l~e>H~u=XQgk3 z+>=m(KN%HSkGL5`A?!$|^#-T)Iq}u@@x|V@uejiidgtNw={e5oJy4`weU4pig}N)Q zzQC@o041(+9Jt!nxH>G*XlrZWCWIpzD*aYYe*%h?`f_?~fljvhw@yHG(B*7N(*%x1 zDf>_Y&{ay-%dBgma81I}xr85*gzYdIKj>p8>=2q&7iz;2oRkBIs8c3nJPK1%_AsaH z5m1t{6WkU(&MtP!B8<9J1Mft*PT4y4CJEl_l-UCPZ2Ql=0ntI1vn6Fk9E(!8S?iRo zW?lCPSBj9mkRtR@2qz<&Z&h_})N z$kZS3sOYPs$0MB>^^$8t34Rurk^_O%$N%KNKwS+ar2-=9?B;6x$6tFZ15fL$LlTf? z{P?8OAO3Jo{5dQBe2-YV!#nHXBnBfmfsfol11Ilh(BjfKqhTMrbY8pk7XrnlS=f;l zmreso;qFUZ8q|P2f=f93N7idPi;fvZ^9I;i#2@d8ORtGbPasxGJai<=E8KgMQ)j^J z#&3cP`s-*147A>JIM_O_d8et^kxu3_rw;%bbh%{u8H9X|5R;;lMneg=@eg#08e&IU zQk2UGXY!jsQdZk3YQibOUwf+?>b~`;ng5!koEmH=$q6%(q(`0HNJb)>o{K&z6N*(# z%Uo2`KD?kxBdUXVXhg^A3>Gtbe!5QPr?)^x&rhF|`RR{Bll7|1LOMrb2DuMzI*?I% zM*5@#+=~D`BYjHfFF@0|WVm-xkd{7L*jP5iMOe}{9e9p4#a;@bkNtHp1HKm@b>Nyfcn z9RCfc*j{VLwFBeP{%qUtOI#ZCn~Av8lnAHo9Z6e8Q`Rnh1!uOIpoMUOwfGvdBCFV8 zS^Vi}6c5V9(k@$KIK5G-Aqswx146&*x_ri{AAxhK{AaCv8P!D!{#U8X55t<7&rAI8 zK!PC*S9NYay&xma=Vl-&I}j>O<~dL(Pwtlxd98Vm5q{ALYmI!|#QDfCFZ}5+=wqN0 zUj}Bim6iVG!ftQ9#yQkL_xxv!lM9B~&hod-;%oy+?O{aHJ%0n4>V~udEj@n&>G`h# zoyyMEHX5P=p}mnq9Q_o5;^=j4jiZ}^q+~)w91WA95e4uD&s-atZqg|Fez@&YpD5!} zLnn8WC5Y8a-m@AzImmhU>RE}r7h*MW@*?A_2=C5kV&68JD%hna&M%R&j+U`a>lc#|{O+@4s zZzR-857Gch9p!|n&rR-|I1wZ5r1nLxD7pW+OjDiJhl6c#h2*J%Y> zkLvf1(Eep|F&))oU@1bSF|TKY8}m^hDXSqOjX9+QV#6bzAvgJeT^wlE0P*A5dewBG zG>6u*q%~01%vxd@bg*7Q#oT^~#VhW-mYSj0Qd<;5qm_k~z;A3FSz3p*$Si3-EoEUO zTjS6-u2Nr4rM~fIZ8j0T7nTya6*~Eo{mQlLn0L5F=+)QPIX`7Tq17bA8_^BI%?ELI z$PPhl^GO!t?60imR<7)}nwnjJ0Ny5OK0@SqefUbNs#PnyBNjq?D_L}s)nSNhg0=8p zd+P>PHA`n`l&L+#bM0DmU#zJ`dKv9$6vbd!be(N+kTe+H7qwPhqhkyO-aJ=#SOBz@pPnJ-|w@^ zo1*q`qkI!Wx>4qt&@-II$E?jP!D}}ix&q4-M9Q zYc+ex37rigN$4Ala6-L3U}!8G;{JUkD5&6N{NIg=rL5vfD~Lzf(cmwINH^Zix#t>f z;|T+;Wa|Xm2}9U#tYMe^^~myRY5=e)6MubV*07eF#Z^1=Me#(su$$=mlgi zkTr}P2J$wLZqJ~2y4|3Coo}F3WHoL9ZEqngrZ7foRNiPgb)6QE2X5VHUCnoC zB=h3cM3y}Y#N7ujtOk;fADg0Sp!##y^~Ci$q93WTdN*weY5ZOpHSY`LJP@vQDf23f=&j#8uT@NfuvuBNBBU5 zjpeW#Ky?F^o(JSkMv8%a3}o1e9PQb81O4#rnnegjbK$77fCdd>Gx+Pe1FS4ar1Q^i z^#nV;J&>-0fpi119>_J#I2oK!H3Ud~AhL5ifb+p?@*y7UM^G7prb@?}Oim6w1F>yoWg+1tQhs-=>n zawB?J}R>i)3UzQ41r%1q%vX0n+Bi8W*?c zY4g^~L9NV4;F3+M!O)UW=9U=wQ1}(ovgPCo7zcX%)o8@|1;u1F7Wx^XC*s9M(^1!8 zJONanw~Q8%8xg@w0x)O+wX*aqZ-;U5sfo6$=WSQBWR~{? zVkR8%NDOw(ISMJ^?+c)TMYBM6#L${8@2jtYO5}qdhE5%gP?;l+bMi3#6X@YQ1l>77 z+k3!3Yl>5bpTXC%qb@fe=xJ|t;w&1dJ>6tHY>{t!%JXZPqz%;bQAF*Cwe-Q_$*Z8m z(peMFZO0p~EnN~z?X4AouyN6n1(4 z-I;ho6H>8f!V#(1wJGCkCn6*-1IOb$V=7lj5y;V3BUvFYZvg6kyrg^3p~p`42zd^a z(;d(Nk^YAU=`d36q#a16Ip3QWr1#kD8~4Uc)rlJhzMSuM{{K7Q+sBJzL-Tl=;qYKdKk)uBh1>7M5PcynuxNR9-B;4kxG67X5gahP+u%jnNmVo>6p#g`553#z( znQ$y+{*!|8h!yZ6qb~QKc$y=``rNPzwH`s~$hl!v{oJssYyARYeQsFQ6GERGR^dYE zbHge^2z_o?)fYma8&;7*=ySuWfe`xKuxcp84t;J|H5SU88&*w(GUtX>lu+i}u!^w` z!PjH@+^}k9@t&_aH>_%$8&);W4Xd`+^GJ$0H>_%$8&);W4XZ@!8|XCWhE-?l94K>c zSoN^BL5n#ztomCYgEHra)c~PZ>vO|upit)Auo@(kIXA3ooEug(&JC+f>v!0*&kZYc zZdh&MRLi+x^%|r4+_2ip$=BzGRpq(ib>O+&PK*n|T-NNrG%DtDK?@fLFg2IY4TpjV zVOeu-n6t{!7Z2BjQ+S#a!$B8N6a9fRu7VfH%Wa=vb-8&5 zEmR+MbhkdhQTSEU-G*zFKI*7(x1WzXYFr<6)VMzC=x*Bx4OAa>bhitGn%G)=)X`n@ zsH58)bqwM&XR)5f9LampgT5nXI8dDFgKbYs-n@5v`4ekT+hxH0UViiN#6Jlene`0KR81M;!py4)S`)KY9qOWlAtw$x|| z=X9`r9nMspaazj^31@=+kZ@>y0C>usI@d>~hY zcy9xi&-es*k~fd>%wxcJkoOcvzAgdY<2dD8OkB?dPEhjOP|yuboFwmq9A^@{{Tu2Y z*OIxwrAFe4gftutdIhw*HqvNyu{ay4ZXUMFl4MGgRIfAQTU~{~(bg0Szlj;$EY=d1 ziJ!U;z<8jezonzQWl>`%hB^4`mQnI;86|g6T{&-~DOBEYUR1T-vG4<26yapOdfmXu zZ^QL@e=(a2nj$TJ`Eq=sU$~v45ZZtjRKelQYw(c9nUCUn7Ev1V!9nX5OYB+;5YUJd zb&JS1eiQbrnHCFD!xEM}XIX5?+RmzFpg$-6H;^q`jW=P3eiIQ`;bb>#i)_aWu8zxB z0&4j+61NFkd|WJ2lr@l(`lL>QJ;c3kkJ~G+!q5^eww{!@&te3RY0Xid76tp6mgA9{ z9yJEbxHvMfL8RA!qGo@vGv8|qJB;SHDlOaw3(fONa9s3z?e0iw#wU%e{g%Z|V4sn^ zdU8J~1AnCpv#=HtW52}s5musQp>My$=$r+*J^Q#{d@KOnl=J9-HZV_~J`VrFcShCS9;ey`Gl(eNOaHE!X;DMy4>Qn$8p)!GKKby^*qNW<>- zcJ3J(WJ4oPN!8+v*e5>iGrGbH>{RjPjIo$5?&F#>4Kc*PJ~ps}G%o)lx<@hGm+)zjtE$3aoEOin_+ZhcWk?NycPV~}252>DV7pCOK9@??vH{1ZV+ zG7H4N4xrJ;aL?TAYR;-rTJcz;@aam$H&-eiC5mrhP26Oz6~%`u6<;Tcqx0F;e3&!}YeajgElb z?gz`@ujFMtofZ8={ac8m>tjEQ>&Nd*OMUDo6|VgxydrUm28fBKXzc@~-sK{In*G-U zr77B2yfLz>(%6fY#!|%C0mRY9Ql#<+O}34th_N)#Vl1`NSPwBa6#>+84rg4xFjgBI z6H4ra@$!?@`h2bx#}R>hrpa6n;|dVFt(>p3R!H;`6K(vBc67e}Ridxp=$jCu-A7)S zTfx(u-!`O017EtHgMFqS9-=s#d(7&t4}XN;~OW=Cjwc znG~<*v;Ox$a+ch|M4b|t_v6rtwz!bh7lX$ZUt^1Uar=z16kclQ6W@p{7U!_VwHzhE z3gFa^wxWzwVWl+RmMhYuS^9HGx9XV++3UE+t#uV9k>i$fQA7x#`#?2w<9VTvSne8uM$SXR0qGLDWH03M4tWeQWyA(RwTG8x7 znnkQaZ&n4y{*)JY}EL+2t%y9nN8g!5VSK z=!3`SSl4nrZ=rJS=_3YOD`WiZF(xm|#lzR2LeEW>%WUIk(9-4~kT%k?9P2M*F!!l% z6r`b0tp}`5CE(qFz}6*TbiNss^X`2!JIdV7h^}VQSyrb(2wVrzPCbBp355R|E@dxo zGqWqcy|{tuE*ws^o@w1C9!ZOxE8fVYYo7SsMUs8DmDE^@>>goqc^wagmOzJO_G;sa zz1m={EUAs;=CSEO2OEl=VkckIV?cN18Rf4g>OM|{*YPVH?6eO2EfDDRAdoXaTKnr_ zvG;jUt*3ILk}Ia@>|SW#b+zyj$`4%OgJn-KCW1|Cd@Q2GT^=Fkc`d+xu7E(y1DfUv zy;p2>|+^1yCiBV-Ul@aJ+*g~K5|fcDU9V*K)MSv~Zcm?qNr zq^>p1;LQYAdl#NjK|GgG?fBI=HkelvR2-KIe>fS$A5No7$4U~d-HNn;LIB<6muO_(KDiozZh*uL_@eP1S1Py1IPK-x!`dOC!mem9m ze-LVX))RR0b%7!Bm;*{?ijaR0Tzq1NrUON zo@cx0-CUaT@=KdM4H$~ zLH}Vf2{}wb=a`6MpN>%wSKh#ACQf1#whf48tl$gA&zlRsI%%|u^ps~HU^h9V$5 zEE%>2h~+aT@ON8iWf-b-guE*cU}uIvohTo~%1b~|_?;ZT7e0K#pK1Oc1Fe-smGOIV z{AGwyU#8r>Sl${@UuN9BI4iBIL~|e3{IY27-VNODQl0%qqus$+D|c0D?#`M&Wz8}} z>pn+oKEt4UyDH5+So5E(IkGF~Z*#WlaZbOZ5D?7X%pA&13d3XF!NR0TbGdBSp(>j$ zZ)F4B<=H=QGfMRr$(u2yk}l6xz013-Tl*hg*AZB?7#~>ux{g4z*8Tu2+TC6))Hipv z>pIZ8^kWuZ*WszY?Cz<4U5BUobse7S*L8TRU)SNOeqD#B`gI+i>eqF6YFyXhsc~J0 zr^a<1o*LJ6cw(%(;OjBH?Cxo1-3Q7nyL)OZyL)OZyL)O}*WszL?Cz+saLuESH~x(-i`>pDC&mfbxymfby>79U~fWp^&JYk&vo z&cgc%aLPUf-! z;l5#Wc^RHJ?y9cua93U5;l9H49WIXf)(H6EXoN8um8esAg^v@qZIz`Z>fCEt3+(-`MlI$8kAEgjyTj0Sgyu~_fWZNPneONUo~uI}So zI=uRp4jjR=juWWJqcc^(`GfzNN!EojnQg z9bk(ySj6q)TROZqG4A&bW%V~R9^vC#I=uRp4qrSv6R*Cd!^gLDcrU-D!&|Q=k|p>DPNAL{N#PMG^2>YDo>*oV59_g;4Y!vwHh?m|54S($jw$Nz9f!ubjV zdD!q!n2F@8|+Q%E-Me;ALP_Vq!L_^xJ@eER+eR^|3BV#cT>;C`RJ z|AA#9eER+emWlG|`yW^)wtltyAAI`$hq;hX^6fJ6mw{s%U3`TY-*z%%zhaJpUYgs>q;cwx?+>T6v^Lp84|-~`jG>95+2@B#p&b}^`}i|t zjR*Vqq+e)9KP3IW=}4o-BYgbLWT?J%#mA=$H6H8ZTUSCm&x4+L-ckwe@;0W)N%e7X zJ~Zh&)ZQIbpFgM#?fL@|$) z8vTNQj)d$WH(y+7sGa0K+ZNPZ$0P{uqK144w|}0P!bbYT=s^sHjr3S_4*vO~?%#owi*sjApawd}&T1cbY(wZ7kiT;1TE_p>1gr|o}E$bCy3xY~vM&pSSZ>~9FX zkIlXyffaW-+^aaZUz9`r>+f@ETNAym51j_31ZmuDrM& z2aQ9?wMFjw`i-0UexH8hW<0{D-?)ntxUbf4+?-pnk@}5$9Ax;7+o#{SndGaAM#569 zw1D>0@Ddg|2&oH*=Pgl4>VD298|!|~CL2-YO02HfWJBH084_Q9MJ7d6h1RD?zO~1M zqO$r5@CZoYF3s(8bpoEqU5vjzKJE_az^RG#4QKU&OD`7CH4+j@(;E37@cc4_J8tm-eeoTj^<<6kCt%^+ zPleC>|44i9_$rF-4|r$p&CLe0VejRpQLog{10n>Zgir*86d;0tNRcKg!3Ls86a`eI zhzcTVYzQ{6f`S?q5j%?dV2>b*iW*o!tW_ zb2$LtW!GKsp_%Z`EU@Lm!l&sx83qLk=T3IQ&ydumE1!4*WDV~`{|RrabLCZuV<=oH z?l8Idj$ban_7mPtso~ry(`H!M)U-**n!X6RLgVMovQXUX(g3MXvaC6|{L*&#DQZu6 zZ?{1Dj-7z>yig(FXIaL4R5%?Jad+UV+hc49SF==l1-<>@et;486I_j7egb5?@f=Er ztmlQ`A6zr|WF%S;%{&La$=d@-(Jaoa9B(m9GH}>?o9Wr~g6lnsbyqZprC8tl06vZ`Bpmnn)`=hmjJ!f#i9(Sv%32SjF_iCj9D-7^9-=x*#{R9)`(iTgC3%EGIfa zHHBvzPjRBB3*@*RDRiQuHLm*@wVAgz(&g@A5kK)H2EphgdH##8A5UDu3JUP1@x%)l z%j)nZ@x<4Z6y!IKACK^Eb$DYZ4nz3}Ba`naM<=W62|qzkPF1}jIpP-KYT6jLpiLX2 z=}zWG7HGPfDrB>8O}!f_6{=UtRFt|gzYKCx$^$2W)V&P3s&`5gAg;R`7FxuYNuot^ z%(t}qq|gP4#`1LDAT8bLkf;oj=l+4av_(3&C!#;7zA3DjeD`tmWs7uk=Oo0B>BB(Qt;L15;21dVet&!=+^MWaWS;%_G*H>Yr$-IzY`W}FZ%q3R?HWHQ+bi8kH$y`R*&Anjq3@7vIm4JP3 z4E&RM4W-fe;Yf?P{c+VFW1z{rmI={B=8FCJ^=89AnJd?T7IS!7u}a3{Tm&e|Tuln! zh`yepDegx6>Q>FcwWbOn1l`mD{n!XvyG8_&c^#RpT{j!MZp#PPda;YcR^}}PF$#7@ z-^$$Z6{Y26-oB(xTGcUWcO*%>GfCQA$E4jY(!6(B#(M}S96cZbWMdDGGkKYtzN6$< zum;K8#9DH^<55ip4tx9voq=8NWgWoj9#2^rR^QvzJb-gNeuOS_)6Wo@fLGW6A})>8 zEzl1#H?1~0H%~#`8J(MxbP8;B3T$->Y;|s?xmKr$u{t+P|Ae;xveA8k)|I(A1zMV~ z3ukVdhqf*E$;|DXGda04oy;ehnByIfj+FV-Lcj@cG`dUXj>UlUyhdy-I|=7|f3bki zP61;kj0s zQr@-Xf1CWP(!71_Z~KT~#T#*t!f6qgLu15!Tdtp=QX=k5cqrnsrAAz~Fxk0!1oB!G zfb}0dhq$sc1igDc=+aYB=lNMZGT>W}19DbDQ-Dq`VmvunJvl14(h;+IwM4p~Tj6B& zJ^&~ucdnDwho5*zc>Un9tiH4>5BD+$y@PN-)(|o| z-e3wCN;vFYirZJ#Fv7048x1_`6vF8q?{Qhho1xJ6c#AV|jyJg<;4;!AaxZYQMs5K` zo_7jvm09K7uFLnzNj-+UV5qk%&;+u^5`n9qgR8SnBeGq2r;}^~x6KYK?@f{kQmbHn zJ6N2)9{!r2bq34q^+HLqCRGDONhoD9Vb|->9Pkuc<9oeWs;PwI-cLOMpGi2!yA!pY zC3`-Ny=^SjblRElGAL&Tt=U759fnTL>dERS&N~g2o0HX_yKtsPiU>N!`vWN2mDy6( zK-K^U*BQvy{M=O5AcANsa^<@UnpKf?I?EMtZzCN`mo<}0qj`S6PAI?hWxwCCzHDIA zmkn(CvVl!s_WK>{%LX=m+3#oivfhrC>i2sKDxs(7raC=ENqPjfdIYw51h#sLlJp2{ z^%QX=O*pzfhm@k8kYC^Rhwa2~%UO;ujj1JeQ-+fa$IcU=8gU15Va>>v7@bY2MrMw-6bv?g1F~=Y9b= z{uR2M6X%zZR6GxIbo?3QhT=<`gC>4Bft7VUmqSSW6O+43^w;uqU&Tt^|k;nR^L_ zy@luk{wBh%H=pok!s(9AW6Qmd%A$q-gOw<^7lW1lL*+=qP+td!y;ER-zlFxT-g=gB zD<|FQ9>4VIKTO#7x)Xkca9p+_{YMGsNFVkeg%n++KE)N@Ae~JyvFffr0d`34HEa%=cwWX z-q33u?;+av(OmH3K3Weg!T)$35Zp(b(CwcH67pIyr>18DIVs*6>imqzvJ~$TA_s`9 zO7VUMtACKlx)kp(y5w^rRViLNl^!CpDaC6~bG{(5HN{)Ns{WG5_7v}K7V|KX>J;w> zl6^&FPm0%v=6p?LZ;Cgl1(0uu>`(Fdfg1k^k(v~53VFUIayZ2s!<_Gk)TVgd(O&)U ziTs}8okthe5~+-M@1XVhKM+|K@tUxLep6SP;&URGS&T(^rA$0W8UT3C=lSea zT{;1-U<6Lz8&CMWzJPPQ4krV?U@G85-Y`(+LF!kKnt49Gs@1h9S+hbvLwyeEt_&dc z6-N+6oIr~2%hpBMmEIh+`xw%lV}hi+(w`d$f`xw$c;bS@-3Qr3GX=?U$Fs~?f;4tH z2lTTQJA1;N&SsD!IeCrGIrBtJ_r#hG2&n)&euf!R5%rzSi|DI{>J%ik-KzXHYC}sH z$~Rv8JP}~6ZYzkjx}6}dD^|A`B;6R=K@i{lj$%71?uX`>@^q4%gegL2L0Y;pTICCp z=gM%^MT(GbYPXxTsRH*$j=Vj@v}#Az5PktpB|Dg3xhZVeCrQm?D`Gjv3WL4lxQ*zC z-jauniE?`1U>`XyrwV=_$*XbPnQYJo!y}Acr0gqsc!W_wte;>dYLs-fZ6{}vb6AxQH z+qNWt(x)X?GT< z7!w8Cq}@;13eFI0t9A!5Z<1i!wY!A_++@M3wabrz_)`SiqutXvs!bJauXa~6?@Yn= zYxh@{(!XU_6+N+r_WxHfJU;A4KmQZ-%OYxWw3!{aSJ7We zF!aR9GExeLzV`&Rg#<%yYd~|uf}wvsOeqn)6qcZW<+8R?2gYD$S~&Pb|k&&ZMol;}0m+p>iZ{Y3guj$n`3{?$~l z?OaQ;o8!4W#>eu%hS5M_SK234W>1^Z?d{)Os|Hn^pokB7E0M%d@5 z^JV;VUGCcW7YmZ^rqaj-g7^|s!M{Y1xVwzSzEqH$##r3@3k7cMa$C&5Opt`jeJg*F zAT8Zl^mnBod2S0<)8&G6aBrZRD+I}RpJB&bEJ!yul^$FoNI_$6hWkqe>Fs8+H!l;U z+G%{jxtQq-vdd}AdEW|YUDzT&35J%lhkQ2+b_Bk^i=|nwCZcAVrTY)6xnByn z)BTrKo3?>(UPf%yk@vrx;NC=I)*os8O$4tVPouD#~AjhtLqrvNoFu_zgmX( zjxp?4Pt`HJpUm)qAeQ07V+j{m&WWc#65RY?`K$L7Q9;_mhX9sg}{UHf7zeZ(j2OR=Jn!nPlR zb&8aN6?DIv1#Nk>5lu71vHhSJ5OIG-$B4KbCnGM$hloqkOb+#aGtJ>8H5cu?z;C7b z={(cTTg!lj^CakfZ3ISu7MZkZIaXulPi+Osao=FyYbPUD!abhjM|(k9x_q<2?;vD( zro(m=Y57hjmHM6Z%`m1}o}aH5Q8{;_0n4U}nRFW@>~b&K=D035qb-td# z5#+nv5cUhCfH~rzUQ(ol9KJb8w}q%YQ}8}QWWv$-{p4Ijfy<~Fexar@7;v88eYL;P z9j0~Hij7sQ#rtVvkzR|G)E%g;e1D{VnRaHCFf{|iVp=tI6fTJlM;W6=EsMjK2ziCaW8k{o8Z*6_#E6e>&0IH z?{V?(aHCI;F9xL-p8?*C__N@x??nCV6P7@ccP;Mz+1B;D*fs?OGvm5#m){?8ux0y3j+_TY}lkz+U6CyVjkn;FO+ zBIY}qUkuM4nhu(1IQx_lb+p5U*3ma&jLRNTzvPvaCceayVW+ib8IeX+- zLpk~`QgW*;yId$ezFU%gD)&9Zj?SdiF;|e*&pz!<(&o|VaXk|(X*sB}#}mc_+r1u; z2@e^$6aOSFzvG{MMn8~R9h0mL{Fr_AE^c+VIrXe#U;O&TNxM)8Bzh`}<&D#!-`t>PeK8xo!M8nCxnEv%6 z1Q*bK{&8$4m(WvwH&*hcES`TAO}TnM_7?Fw4&=TPoq zs=)bKZfInShw!`)usNrY(FLh;VOBQpK-p_RFK2|%wywj-k8n?Q^xXdVKk21mM%;$T zHt z3sVn<3&5J1jaD^QJsf_Sa&WlfkuXms0L0-b^=O#Qw7{?%q&Jok>M>DUZN_2sxG?W! zrCkasnGd0js3*dNo8_qO;p`J2Zz{sYswb_HIALMHaN~0(!(xNDCU)3U!obH*JdT3# zl`==uwF4Pl zcyQ?1upAuf^frnRx?CyNLFfR*olpEZ4Z4|5Xt88CT@U4mH&rO*M3CUKxII#+16Bi) z`sVhx$8K~Pm*pv)liAiSD zB`BGNOCZP6oX}0)CGL@ee&%$OcZm&5r!v-pI%Gap7~*GTJHrcy!aSAKSx!P7lD>lC zBbE6$e))PnT4RC=4oE{x9cS_l41iu5py?9(QWh0v{ zBY&i9Wa3Hk*^?CWC1CX|QnE>q&E{b)q{2r`aY?z4sXfoN01B`G1?Z!;ut%A-WAHZL zq`Eg3yA?Q2UmlB8AJEWdm*D+sX(1mlM~%i8HPlDUDMC&mYE_WwKp?*tNHRtM?4u@Q z3|9xGG=cDqbxLloQ*w}^Zmm;t@R*WA%&E3Y1o@mw`luclO4JeA+SqC(epx5^6-e%n zR(^y)qf5aMare?H-a(4gOF7`}5f@gmhUSTsn_Z3;bC<% zbW~dY8|&me204QuXSm1-U8rt1HWiDU<1TctNnX&>EogN+Osb$sqrDb!DANrv}9vtk!ZYcr>D_Ez_<#=B~XEluAw;J{sX|MU|f{$0Hw=BZ>&{H&|T` z7pspWYOiI|7YB}A1m+>a{BdL|RP2Oq!~U^lABqw3Q-ME4o-<6rKmznby^+u4|SSPOQG54f#DS1V)|Q>t(di{@hK3(Gs^0{ zh?-<`*3}8gKPfQ(Ju!b1gwWvqV(=%lVYup)0Q)vMms@2yx70}(u3l<{>`WPIw%X)p z>#}>ijrpctWBUH>&{i-NC>vb?A|J0|$_YLB(Q4%a zix=UNc^QCZ0OkTHaViljjtLTWzZf44jHuTJ0oaUg*9USC4sfif};3uWIaV|Bfx3_l-37; zP*-IQ@!NBe6o@T;AHcl;N~-@wSauLOwaDQ&!y3V>xGPav!U~$U zC=j^5FNTG>xkl^D(Xe)>3Ip#nHv%8^tQMTJ!5LSeq2Vj}W?pav*ytLx*QpRPG->`Z zWifF1GJX#^F8x06QSy0w!&rJHzJZ;OyUD2-yiJlSWdkrw zCxI2TU7)u3b)=_W1$k9SEc*|zDqu7W_$f3@KCW*jMt?D@Jb?i&NaghT1ep>#CGD(N z0`H8H2mog4dlqQQOTjqsEKCleoKs*nR;S0FTvY8sQ?>6vVF9|uLb*$#K`x}**=ZIg z)p4b*V>-XWD(zbtR7uNzDAxVRx(+&v9|Q0efu{kCU5d)C`4>m&OUR)qgVi`X=4eP2 zT44<@4}{(Yp#v~V9Sw1qx&v|s@PsdLTKYBcA#!Uu8se}&cp35~SoF~l3veg!ArAup zJ>L?DUX2>Mz5(#RB>!aKPLH-o(2p2Ld<=bb#3N5*epvuVJQ6tKkt9bvZXH4E64usl z>ul~=$nqoW9*8e~8i2Y6z-|DG0hBEJ7f0z{lE4vtlwzZQUIxEfOZDOvfiJFu+`el$ zow7wR8ma^_*Q45IjT?r+F%>6(ie*-!LmY`(cYvqO(2l8L1d=dCI z1uk5UuNsTGcS#Qei_{)b?|Y43O&9YUncHOroS!iR1g0 z)YK8^sp#T6q*?0KGhr!T)G1PbaT?Z1%gx@m)?I&fVC7i@VI^Ok0?8DVuM~2IaIO!W zE#Z91o$IK4!4REc(a`e(Y%@)O1t#xPVrZpZG-c+YsZKb8TX`iAd`D|{%i-d`(Ocn> z7DyXBfK?Fb;2Q0;z+AJhXb}B76&s ztE=hDOtGAxcxAfy2c$0tOUb`8%Z?&v3v$XrJ@5=00RFJk-Nml(Xt+!kJSU?9aFNPj zCu^z|UsbEJDh>pyHhc}50TMm9sr~~Loo@urlK^1h3T_(kA)#g>f}VW{_^9JJR3$Wd z>)j;!YXN3-=!$zc57w$fO4QX_HHmA3io11Cpze^Ox+(#G1TCn6Bk1b-VygCV_1Fh(?z^TjoeosI&-uXb&}OJ zt4`-s>YRQiI#-Uo1p6#_2JsaH;Pky3J(QoIYpA)Ucz^QUKASFYrkU&@= z=2UXvw$ldOgQUj@YC23GRn5vbQ9>at)^ft@#q-DuxEw1kuu-uG%XA+gpv;>TPscsZ` z>ULzZUd{x026t8Zs9CI>(K1-pSZ9>14xExZ%sOQ>ozesBg>cHLtg1>N#wlY0r;Po$ zF=WZtQC>#w*grUY2>K5>;j+`{vLRK0%LKg_s0^HKp$r4(J9gll%pJ~~RvJ?tv%l)x zQ-;Dh1CjL^_)cd*|4kEauB5c#J5W~V42p@YGGeOeiwjl+B8ovFB7*!@mM#!6S44;< z7uu}V_E*h+HxRQU5c6-EK+NYNW(qAiY}x(5$Frm`UGKD(1ooo zQVcoe4yLzdTafu*P=St?pJeIsk*7waRDiB{H`2S^1B$7nIMY(_X{;(vk=(PGi?On# z3DR~&6t_=mE#0mg0?#Q#Ja$oMI|r?JIoP9 zXg>rF;j7TVS#sv>1JbmJ$WW^ zA2Af%U`_7Bz{y6gZZxJev%e}`=@GWuUI!xSbN?m^TKeB0Kpj@076$SxwaO5))oEiQ zaKWusWP+vlRS$~IM*7J6!8C@CHhNo%Nu4#UxTRQL_RqLmonjIYI^m zt3VKFs6?jaFI;O%TuuI_YIDH!h$i!pU z{);H^*p)^OYc641@W`Mgw^Th#AcwWLlX6&l|0W7*@Mn>8I{i^;`R@wkv{2&pGq+l= z|C=Bv(*_Xm59fcNH-pbUiqshm;FS`y=&806H>@`vQyXqCwbP^$S@V1W2?MYyDN$St zcSbiGijG(&9dSOeQ!zIfsmR1x#HhC@d!%%w=SYj^vj+Pe7#~}WlD0o|4(2@u9Po(k zW2HA66DsVlny98g>~uCSX<7ln*_I$EWa^_V;#4}S)E1+VquV6oq%venqX{xAk}CZo z;dRn@o){W+EHem)LxwQ0Hn}K?Pclq3otsVqvG?h zzK>zN5x1CA`b&Wil?QwVe-=0$V=%h2vvp_HA{l#H++wtzVt-Y4wE*g+0sI1HDO*5P zl~lHz$LSYoKmqTZKt>OB%&$S_Y?~SQb&BviBj4bd^?-GSbwSr#16Pb6Xdmi@de;?D!hMf?kOi}+4YaTYPhtV-1SQRqY@pCjIy!N+=l*~+@{xgO#a z5@v(2kersVFa)0`g1g8f<$PJ`;2E^KKxRtaFNgGQDPhJn{g1er9@bDDR)~+zZ zrS%z@!dZZPTGM24iT%(*k_LaBrm>3LuuL98-$E9jf4gDMG`h*{yq@eXb%BeH3(JwFB6V99c-ot-yRFuh zBkl-X`dT^L6bZPYcmovi$zFRA`7to=$aEB}^)tYDK-}WXfRB2$0fcuFrBk1ULs>(Q zSta?L_H+pszlJoo8h)%qLg{nvC;wodxUQ)-x_ro5!1AhPxXDVkUZ&-N_ z8*ja^hVb27gnKKFv^^GpUjDQTwq_Avt{gMx1;QdDXP>KyV+eq@jo~f zO-S}7Cd$nBKFFPRS9c8cmh|etQR+Dr}%7%cn&kL4xDFEkmKJWk2l8(63nmH|{_!Xod1VzceGt1sZPGlE& zS<;b|{&_?tYzddvl{9xuP}0w3D%=MwoG5=G6XhioP^5M=0(%qFzE)Y*5AP0~<%~6L zrAe6g->1Q1HvXH)=4}lHqU|)3))IOV81A?UX&YOBl@}(Egyz#ik`5tBnoF(KQ-N&N z+BBC&FL9EJ1k+qbma)0aL!va9pDo8;a?}fdf|5z2xCI2J$((I%POx>vOp_V12f6&~ zRG*_#aP(y%3S|yh2$b~b>Hj|D^8fQ-OT=9ag&92Rb7rSZ*wHMaYOJ*zHwK=5{j{L6 zn#mLCHL#t%v{{6n{|MNqN6=kWi^xwg$7%I49K*^9-(v)nve>O7mqAK#W28?2L2(Sg zlK{$BA-A+GFjZQ10=ZtnFf$auBm(6C9wg8Qz;Ul)3_IIOU2T6$Aa>>ymjS-FuFA&3C zw84hI4xQ}MwN^|Obv_u8?z|S6(w)Bmz<#o;Au@a5H~{2ST78Ee3iO611bTaj-uyR! zf7M4=4rs@@m^eQH3=za1CVnZ4Veqej%cczlVbkVDyJ=Hi1Di(4myr5MukHG#DNtW2 z&`M$`kilNw3t#hGSL@Bjt^^gF68T^}%JLf0pLq*FHGr9K19$>Ji+!lDtspCV57;Nb z%4z_te+R(V08V`uz^?#WzK0g%VBARy-5Kn}7q&!rA;>Npg!COCC@Tff?mrZXtg`XI zMgS|D0bnzLlE{O`unPNIc0O{-_S3_7&53xygvF1eF?SDlqb)t-x{s_>-NTuEq372&?=V@be703xuS?X875X!)DS= zI+`aPO-_!HSdq2+I6z%w0^>_{U}7`bQCU(MfsUyhkhi5MHS2VYGsxa1U(@Q0&TOD= z6FFskGKFWz7NST6SbV~@GFAzEc2h5Poj!RMm-onCOA_bf=j0Rtl!rm|=gTgH=#u&JZ9Q#`+vZW$^ zgg`|VCv=%Q3$yksjXihJgsZFx_y{qiW$<$qoxWrtZ?o2%J29~4wj^tAOS0y+Bx@`z z))-hUxC}xR#aavQOtRoEYk_PklCWNZgZ&RDgPM!f<_2J$W;TUt?Z{EIGZ;Zirv@X) zG-;5xquFx&pC;pf$w%ngE*f9i7Q;}@rhZ-o2Opi{=17ly3?K`@tpLg^TBDD50#@1! zm$Xo6&}9>C@R9v9AZ7&8+kArl!{eflJ#70Aa#b`ky(7|!kH=*aD2lTI>;h0;i|n$V zz>X4|ln3zxfvMBVD)6)SQ{-L>U}O!H5c>=r#_B;fD_rS#f#!awhEU>?$Aokz)z-?A@4K>?) z;A>zm_uE-h2Yg`+EiYusczFF{q{tny@Cjq~D&(k~$TrA7c1KMA5`0t72L1NO3|TeF zvLnS;BCQ*8ix&V`1faaIJw&en7CQ`JJ%F6A0Bi(s6M;tn)O-!#8312>1KMw%anmQuSWS2a{3Mo)dBD$jkA(Wb%@ROL?LLDryj*v`}Sm8>~cH z*=VGl1CeEu0K5zUe`7evwtC!%uK^XtsKHYp>VBk8znzygxD+qNrOhwEE&))^J8{`I zK$jz_^aTKEp-F+R>Q2af8)+540{8^LlK=u;ZG&3t3|%j#@LV}o9tM}04lS4Ik9Rbf4jFtFahVPo{6*kH<&%#qBAjp?|0gP~8fKW~{0(yNJqw8( zSAXGM^N1N&3#|zUo(W93`^;cmJtB*sN5N%GIU=Ui|0^)X;Ddy+1 zcLC=j>N~OFC^4B27<|#+n64e5LEp>wEk6ccUQ5GeQ|Cuv>hoXVa%(gAJm7dbah-?b zL*^Ch&>mRL15hiT(*SS)Yz5CfIXzSg9vyF!FxR1W(~yPDoRn>HzFNM(yp0E@dZB9~ z6>S^`tQiV3K&wqJ5S`jc%GKMnp*3|db;kzXojoEn*$zynm@~UTz zbk?-GMyE|jf91)^`i?SZDJKFbFYJa!%yX37>6L?&dyp&#DZe4WgOo#*a!SU%V8lIS zf8`+MTgbuR7#^BiW%X@^M0K?uO?^Bc_cLhZ#M}U_(5aD9(#gsQWR~%?+)89a6kFCO zRumU85cM)eJ%jW|KvMiTfUJ;mCQ<1ZmNJ3+oL(jRRv=IG{YZfNGQ+Tc-}A=)K)2|e zi=4pzX4QtE6r$j-_zY|R4WJQuzXLG#Ut(niGDX(d6tSPjZI4({l}6N9isBJl%;3zS z+gAXT1fC3KvTiC7{G-9$_tTG#srYXDHKx`&fk)blF9rhO=x77z+Yv0e28!i~1EnNqoPt zYqtHBR&X%`m^owE3eLCUs*Jcv6vtMu0VHzt`VfGUyFWBi{;|JhJaOH`uak0@m9m#o z=7lx}QVKyLQZ@i6dG!+`rS+%gSEL*^QrM$Dvr-(?vbs3b=q%X69(7z4QrM$L1CSo| zm8HxFrR`BWNW?R*cmd3mzYTzr=WV%j-?uv1iz|>5I3V$&$(Tf?3qq5rlnz)!F^d4a zOfhGCY^a{HzhXKbX9iM6S}Ch2<m5VY_FeNU;twDPeU?M^>(bOSG8FZ$g zaY?5djhw*r4lfzsRZ;0Rp(m)6jcOif#M2K_OlR8+f@UF}J|tqq0TZp1y_B*%^j9Fo zZEU4{1)wD8ljA;0s;}qpxqj=$>#P)~7o=PlDmus7@;OMvmKU2s%23<0gPtz7+}ey% zM(2Yw?_Au!F*dD~v8fsvV&bMfMrkF5-w?Vz5Z*3fg--%d@`r6oqu)z1@eAZw69-!< zdnsjg=ujXf?RYC?B!H5jhJ#^5OuP*_Xqar?^{f;Juv!%ohd&oc_>B^RCcQklY0qv> z3C`$3u&u+`JxWf7tPAmI$O`10Dx1XXLLApQ|B!jhov)gb0qvR!0Rg)g7T7fw{kdM$9d26PSCOH8(I@%w3Lb z+cqk#s49xOEu<=J^W6dxX}*U5lms>UWpd39$rCA@f{hFcO)0mAhEodtHyb2k&|?6M z|5B|%6YZ}U{xHfaGmp%lE81-gnNC}L& zCfTSr^C@L?H8^{ohvxrmF3R<`H2)uw#WP9!LOhz5)diiNi+~KPY*If^)`YfFSse4L z*FjKx9DuB@Xc$|OTiOIzXf+yt9)JsxT!x3n&iw>>0eFLiP9X>f0^^}qJFM(A-pNOn z+8_EgC{FeXwm1&}C<$((!Pq4O!Y|0N145^_jFd@~@_`u;a=KXw>j9Jm{q2UJ-?5hR zPNW3WkZ-r1T164}g|38yq}`kX8mXqs0ho3ZjK2>D<1l9$Pl_z*6Tewe)fBZg^kyLH zqd-)wdmt(h;Rdq}iW-J&YgNe`reL)c^+c%Q`PQm)Kq6MXTqi0J5lmpD;k4}`qF9%e zR#c)tL~RRQMp3NG;UJN^yb(b8B;@{YUH*h*smrznwl0SQD6axx8S8Qru)y5OZyIy= zQpe8F%YnJCf=0|$J%f@5)3l1@=~_=@+lFzM73CB`)N7&o7?Wk3p8yhR=i3341l;cg zQdq73Jtk$hm6C6ylm}9d?`5Sd1W*!i2e)ZyUY{YyHm|>}lu4BGx@lhFldObZ07`;p z^?h>lx)nKr2>)&4nN<{Vr4dmbi1?KvR@%Ap*U59{{N5rWjkl<8V7zQLE38cTZFzOr ztV|}^70H6nj1IM7!G(4Ke>lVi{3uA_0{*ZpRGue>h00-Bs5I@P99iKtv)t9R@Q0AB z@D?CbR(QJzaE13Lfbv?9$O^A(Uoo#pZDT(*JG)?JUmrowGPb)(id7Z#cc`++I>^$pb}o zZ@D==?mHe*Pm^_9s4uj09e5hoVZDxT!JLi|U>AE6g2i5A?uo25dm;&I`zmLMC{r7n zTmhG2TC`SE%vZ3A9$hOhZ4ByXJi1o%u*Fq{7)$Z))9sqiW27@p-B z>;q!hD!D_pN)`+XymF_eS3;{R7jap5m*yF-p(iV6cB~mp93Fb;OXDYbnAj19;bGzq zyR$ilFUq}Z%`c@RAJ*mb(0TYy+&vH?Z^?N>0PwxJxd2KEe>d`~>~9(0l4~@Sbvt?$ zMBD*>^LEsB2@pR@-qbR1UyzkogUGy~wO#WCt=&j8uSIQ_qO~3-vT8xra6U+7&GL%o zn&l>Bjgpu5UlrL0fsdXv5T_!bbSS^yuunwvKLsMDvL*fag|!w$>MdQ|3TbB|x41EY zEda`EkWqn8b1~@#+3TgJW@oWWH)NlGBh?YtTjkc9i44`}~a-~wL zfLYF3%UMIt|LVg5=X(L?@#Wx5K)i64oGSh<1>S8zVE;c!_8a&rkd;@0$k_jn*#F#^ z!2W;4{_bNbtDL*vW*v|!6QTQ%Jh}#*{)|h}{BWwp4`GV~fw`44Zq08X#^1B{_e$8n zvoN_bX}WYg1diT16dT!>nDiDQ9@YA20wz=Jl(+tD*qvc0Y|GHs;FeC=dm`M#S6Al~ zV5i&)pybG(hJ5&6=2tr95#*p7@XhaeR$RUjCvSS!KLZl@?)N+Z<(0^h*StRjhQD#c zEla>U$QqgzI;!!;?j$Jym=4(VM2O$pnL8N;pvL~+8cY0BP=Mn@H-SpDzBR>a?Ku@% zCm~m~-Uz`?heKLTOkw*>bBlcH{y%0J06Dy7$F$8-l zt7#|?^(0nQQ4Gtzn_`y#VyKSTU$N*b5hLCkZ`1j10i=k8^l4VYL;&T5$Pumwfl)aN zvdtExf^79d4^cS>)`Mha9rl@F3v=;ISn-|pSn+qp8Y#>R$gyRqwq>cJI4^WKD9aZh zk+Kxbf+aP9B};)>&I6Xy9|6vcP=kfm3r~YYI1iFm9JbOLQApDK(1?IEdX^=<7(jU? za;3N*0JEii#&T{ooEyl=(&7uqrnJKeu*Kd0pyXbA`$+vGskEOU2mPW3A`VreUtp2Z zRr-rM8#h0^C3r%JH{i+Vpx@;e;|$7Wrr-6G&T}P_r3KaeXk<;Gd@4pnvs}e z%@_-yq~%YBw9@{H({Dfy?Wh9(Qmdk`*s%>cqN32M*h>|Cjf(8KR>dd+Ea|lXO0Kk| zfmNd7CFD?rUxKB#RnbR!(AUTj73+R5rWJxj^)V`joo`hvAwU(+04Vt+AhoJQ#m~s0 zic0X0SY#a4TRLy{1y)6Etx>U+Dta3g^DeY19wk5(-vB7-ZdC+UiHhSdGAe4pf3H<> zk_?Rlkt2Pl)T&5e6{k)zeWwbU((XP2P_oie1jb0i8avNOo1VG6lI}{DFBeMAEdF0p*_Lddrmx;KCDDHg>M29GaBhrXV z(7{TPE7pDv%#Pt(EN7+R6t0GsTCOVqlvf8_UjW13=vpLPak=qco|LQcLOVV$vkg9f zBJBQAcg`%d8~7}hEDISu1DvgC5B;&}p8aTGvFaK{T& ziHh!5h_$>AePOMwFyf?)ry*N>{TzVuYUD^6TP+sD@aX?$IFD0hSwYovGB}?Pg~OY% za4Ax2b75GSSxp5~{*5Y_`hN&gc^q0MtEusj$+>@7i0|}$N(`&1GWlvo@s*gRcWne| zvqIH&?I5%CZy*D+^oN5pI<>HHH`2^=<%#lC=qfPdzB8Jsc)e88-e8)so+8BhG$(^5 z6{+D3Aat~OX@9FVcWg>v_J%91*`wttZulxVrUJsv%4@t`V^l2~in2_Qb<8r5jQYic z(9>m(bU*NMe%J_HXMcAt#xvjup7E*ankumAGiNB?nVunE=54eD71+^|&b7az_-S)> zmb_G527*!i)Ulc^_)_5LM_m5Zgp8(Y7^y0B8idOd@M)09?!g}fxC-pD6j~bFk_IKN zTmH#@^)1>6tEI51x`e{GF@G^wW&hxD%Ghcx3}ng5|6AmsgVLn_R!X8AQl@Az2j5ON z=1d_#bJhbWDYe$`vA?qa@*8saC(Z9c*w6w`O`LyHowHBriqrG=+^8W}oqg#EKsH*W z50QH<@;+K-xNr)XKsJQPfbSqisf@K9aZu(|%+Eqk@Z&b_-4%W6{pYU3{W93~20nH? zh_-~ABPT6XXj@$dKTr4nL-R~XvznbBG0_b<%j-k48kvgp9xWjo=1j8HGW;4-0gc;Y z!Tr&3uzVlO9&%F;(rD#QLD@q(_3||Qgi{YoV&qIoOxfUqKAbWOU%L#sDNltVq7{^+ zTsI3M^fv@o5KM6q%!X1`WHvZ;6qiVsDx{=(0QaZXSH1D;z6Lu}ec2Ci+>8*AOtlPD zu6q*Hr)CM_yJ=9Ank`6n}GdKJ>$7n!10Lb1Dh7Qx@(v9zvi!Rf!@;-~d(h7|8Bz-j#mI^HJ2g@pN; zSuUwGU7FUPV0s^1^3qCHlj|v5(n_hq@!Fx`r#EktXh?!PKIX_=;XGsEU$k((vG5&gyqF}e$H{2g0>ZvmLh+Xn&hZrKFI@sn z2`@hl@IvzDdCj39?J~k0I1GFOvikXH7gSJy7`^DdI-@HkRgAv;ZIsv;T?tY#y0fEk z2XfM`7>tyN`#vZl?plE{iwJJ)_Irgo1=;nwFhh@mJ@vZL2K^xVN4)~6(Vsz(bDaMh z1jNq9DTI#5cVg#Q$c>%v92Z-LB;V1$g7mlsuYt0`*BO{OE!F4hzu=TO&P(YzdV5Qd zx%_65u8@1E>#k`AWUe6TZu`za&eP9;%y;u~)#vM7_{nkiw*zvarkaEVW6~E1PoDcZ zZu5GcARXe<&O6W1^99L|Perg}y-2?T0R<9UNM9j2)%c`v7MKi%*e*YI0Ctt$3&K54 zoF5C(OGFh$qFb9F&tMpd@-QLNOGQeJBk@%9GQkk9gJ0UvR||%5>Eh>OO$~}+(wqBnHTRu|mF4}Ud zJ_78pa@W(bw;Akm6(8OOks!mBAKkcO%8zp}khfyh^)YHU@f^=s0|x zcAufxyLAiX)&l*Fx%bHQ=J)G#eA*nid!rCnuFw)YO5ZE!l|bKZ3gS(IE(7{1c{dBX z9OylC!hM3S0y>!fdQi|CfHI2 zzY!Q(a!+juk-1s$s>*#9={mO~uA$stkP^QPc}7wo^Nb!O;mwj_ zC6IYW!Ik9p>$g5gZnmQONrBAkCkHaG-}ZUZChE6uQxCMO(M9Vg1v0On6v(`OCz6;z z=Jo3WnNx)XGOwTi9l;eCEdM8vc>$Oj+UVuHRh#JL{@iP+?>-dYKaZgCh<`pk;>P&p zLBB3~`8ecD^m6|~f+l*ozvO+uM#55pCVIKQjIbNyw+;QPKLu=}m;2XD0SRLaZa^Bo z;D)P2FZZuyLNwv8$ipmFf{yzurCy8`tJqK>4}lI>lfpNmucv5=J48XPnj>RPtr2w7 zrFDYV8bM@UM`ml+&BiW?0<~W3ViWXlA!wtQ`x|k>5SWP5x zUtk-Dchf+KOu#Fw^@vL&C3?BP=`*8q^CNXSHz(;7*yJ-@O+)Q(=P7z~uZhlQ0 zoyDvPMlbg_mxHv?y0E|PB@e~or|kUgy!|^d1pIxHi6(lv|J3V%P4seq$3DO&dbz)o zu!&yoo9N{+-d6qU_mN(0qL=&6eF|ic6Jzvpe-~Z6*NG8+@end>^m2bUscJw~ft;5~ zWuuq-uMn}(%l%i0)M8i#)ob5?#YQjpUnhU1iC*r%!NS_;<^EegAjd{8_unSJjb85W zBO=kuhrtsOcN@B9#O)}R(g`&Yakoo4TWZ8*3zMm|#_gyvr%XZga{t{IKxd+tM|(^} zwnQ(F7Mu&vi7|S4G%0#{wATel_hS`Kw0BpG<2kXpPPETPKqh*5)J89FB8v*jXu1S) zU;;%)Tn|?hy*zp{`6YUJbO;M$qL)YUB?peim*RdF9Y)whFON#VX%oFXTKorCP4sdD zo9N}yGSVkv7dX+8|A4|oFOQb<25O?0N5^mmYNMA&#}cv8%cG|evC+$;6F6nH(aQ}| z%ZPIeXuU))kDkFYOZ4*SBp)|s6TLh-nXrjo9-TsKO!V^TRKg~DdGt)eCVF{v8etQ? zJUX3rCM0@!bOx>2Lyr|ek3=tz_7mrwhB;48wEtnMzYomOB7!D*d2|59nds%wfpk1? z8`~&>(aWQQ2u9ooDLhwgW*FB{nOWdobO zY+%!ub-!bM*}$eR>wcy$OZ0Nx?|8_Eo}w@6^b{rO5!mVx*y<73>M2UnBe2y|#E~@N zNc3`DbT#BRyAX4rLH&?i-_^si;Ex2(k4v*kVCp|yhF*zdu1EZ7>>9}szNY*mlk5`M z+9j~HOJHl)$RxW)a!9mxiO2-JO#>v3xgL2uLB=uHt)=~F>%cG)tri%IOh5q!X}QnzIG#MB96o{*UPCQrx)x9 z>oxCC-2?E;qT?lwd9K7U&oyz(b0m(rUVj{Db0v;>uEa6Vl{n_P630CEaxjN-C60M+ z5XW5KQv{Y6;+X4=^eaHD9_}S*;+X4AgiRcCy_s;jBXP|2eN+}L)DM1uUx{O`AKC&V zO&oIrn>glr3yn8%%=K2zZA~0={V-t@$6P-`IF88zUTJugu!&=?A6pCWm^kKoTStgD zam@90!uc`AG1pH{0bJln9CQ8D2-wqTRYpg@`9CQ8hwJ^ZMG1sq6ffy6VTqngb*GX~A^_!$Iam@8z!X}Qnev7b)W3Knn zG!w^MzxN_w++7*RT-!M2F~a*-Lvf9XW3J!lt8+ z+guzIOh6$ zA~ue>t|d}w;+X3nh}byh`bQ!*j=BDch>c^eec^e ze#$;aoJYg8dB@zuG1n3G z8@NmybDbQ=Tqnmd*J+BjnmFdVo(SWjfQp*mgZ5XTW9N`U;+V(IrA!mYJT~W}Htbbh zI$=1eNY7(W8c+DV?to1k^VkLB0Vi4%fie$Lxl(R;K1X7$4xwZX8H-&Xr>L!Eq0Ugl zFnCE!b6sC?G%?Y^wXdW%OH6Ye6~sgb*D*m%Omp2p5EIi}#|1Gl&2^?ACZ@U062!zb z*V#Dp2NNZxxz3TCyf|Z;>s+zM#xx%X!=!5JI}Ih^+|nC7~JASR}{?x;T3@Semp*PSHC#5C8P1!*ZU&2_#YCZ@UW zB1JGU&2@52bKOHst2Qysb%A07!%jbAn(LEf?;HDTjA?E$8`E6>PfT-**_h_~e`1oNB=K3tbY)o@KTQD2bT%RqNjcKmW zRgb_gRVJpno})Mgmzd@^qlcQ9=K5=CZ*hLfTz{iJL=QGG&GixK6egy*{#Jd4923)A ze6z&A;Hkw8en~+!-AoIJxnPP z{Vgm(|6)vYohnjs)r5cH^ON{MUEPO6mY8CiN6 zoQPf{y)D~pzS=&NBbbe8u9IS#vztd;7rh|j@>|{!m%EY?_Xut)5tqxPhKy;hE7Wuh zxGgL6g{m8h6UXuBixipd1AzH5{+XEO`eH#$Omn?J5I@chIDLsACZ@T*RFIrFmi&65 zz$T`-zDy7k(_AkS#Kbh$m4cX<=K69$OiXiqg&-!Txn3-YiD|Bv2vQK|C+qZ5K}<|@ zy-bj5CytordbuFGoH*xz=7oDa`Cv?Qy-KodOmn?jFpSeYl&r58%*HfFcq85y(K;B@ zT;Cv=jcKlL6bx)YGp4y-uXe%FEz|XbYA$`x zZF2pPw0{%RTqnmg*IOmWbz1reoU)~k;n8G<Z0vg`S)Gk(ZrVV#VUU>S`Z+<;Y3vJXLLK+6WbPLQ2^;R+$=pFqa~S)w zx~`5pIi|Tzj%lugnC4)3Lp@W+kQ~!o?@d{ksQ-p+nDBt;lpDZK2~LQ44+7{tzR3{+%VKwhSt7*Ks^hFHe>OaMirv2+7vl@ zn>3O(Wscq{wcloxqo0?WY%|o+d!&lmU?bvnad(@6j(%HQ*QOZDAn{3?Qk=h#!nPUW z=+C4Stf2eVo6y#RHlk^UFqZ3sVnD>@Y%Jn(oQ${}9}qnhR1Ir6uW6<^yqK8gx|O~F zqp!p?*R5s1!h=xszBU4znC3c9bI#>UkZavmkR107IA15nG}p;7&2LF)j0SzCJ|d+@A(48!Qsj+#)7?sYOiqQj3`Ir9fnpMPix*kzE#vX%2*v z6DapL_>H(MWJAU@M@}VR44fzEt1*z8Cve?l7&kG^b$63t9;EgVK_;fTE|5_>M;z2k zij*Sc`x}Q9dGcnC|p{6kyaGv1gC@H4-4`SnutVPB&*G2koq?nlI zdZg~$5_U4CxlWF0Zjo?&nxjV>8VN40lVh6eF=BE&&actxvBrLhX|9uFnrj==+%)Lq znC5zdsYm$m4wSLs4z{4vHDUCqGvu+XQ9DV5o0#T$vLLXHYNrU|It@Q&lbNdfqdX?2 zxt^srvT!nYJWF%#XkzK=*(L*OF9SitVdOkp6OOnmZ5D8z(&4~6@EpQAIQ?5WG2dZtcdI;%6M!5No#NZl?~ zu}TrPm}R7Uy@Ku)EilPSWBF-X*mK~qU##8eho>n zv*$Ps+Drz7{p?v5496xr4f2@i#->;(JvP-se(X#O#XWvJsXXL@s91__`?l z<>TdA^-#nd?)esZYKwdrDgk$$gxYC%1>CN-Mt%cryG2M)eZuNGNR~_cb0*`}w?5%D zNN6wLCFm1o3u=!w5t8Yr4(B+kZNEA>VYYLg=CZ}khwxGRGcQ8VX4yusKeWf}G04aK|^shN%!!Dg()xmOzM^cao) zHX_aB{~_&5psOghuDd&(n@V%jnL|K?E20DlaG65_NeJ^CqsSxzK_(H5qRdLb2^BGb z11f4%5YQ*$EQlHv6`USUPn_cnf*KL$>EHWQ^-W&hTmSn0|6?uEXIGs%b!zPD>aKmK z#1Db0WxboAulV`94q&}0XDxjrmC*c38?@vCS$_)%QCZ(eWj#$a4PQNf8{!jQzpDVx zpN?wPj9a%7mrq53zYTGg{}MR*JLYRJaM7_@R|DTpcQk$gxXX6dZ(WG5K;zcdER4!W z$aNtW=`HHZ4-kDX>3goWt**j>eN^I?14rXnK^nKa#s(LpDcTZq?JB>1*e-z%Oojrs zrR|nXGu@E~;98^ib4pMpm#|7$1=Af?!Ad0Rj8Dg>%M;>9KwagRz-Bmner~%4cp5sv zOj#;SB1B8flDpyID&*JWZj>0UK?mXra=~1Rmpo-`n_e#@Foq4C$KU33_3 zf^ZN*QRx_ba*aF+pFzlk^|n=9iI9G;0+CptxCW^3eV~gFSNJ7_V-&uJPGzwe6 z!XFGPuAxdUV7D8ng3s_*v2Sj6?Vz-0G!07q8pTgY%zf;dXHSi{JW(Fu^1>XUTf3n!2KQdcpSw4%<{$|=8rs?SIt%&V_ z(L2oLq=@+k5{uWN{2cr!$8eW-kq-2JxOmSQW`tysi!dz>9LFj%asqC=_DGl0bU`j> z!0|3`$y&$AN2ou+W!9V-C+e9|&+U%~-a1zMRUD#=jiVE>J4#0v#~fYUz|kf3jxLEg zx-{mfmb4Ql6q^n9GVv|3-baAIXiEdYPfs33p zcFLqdZ+FTUpRCrMPJOlRl4(S$b(h0V(LrY4UGjZthiPcWCmc3w2X2BuUIls3oCvbg z^1ubG!QG;h3vDBzMYN;~YUFin?k7ceU>4ndO3N?OhL&^riw;jaY^dDX-OvlQJa95q zY8)>S4JZe}pK-X6H?S6aCHAup*GvPsr)NJWa_&5|<{lk9lDQh0Uv%2f>s}nx-_?HbJo$Uh8k9W$jVSVYf=0fVgjW9N4B=wPPK%ROWxkK} z1JmFTj#IJo4J@aA&p1|NK`wsnVt|OS){;3PV4@Bv&~|2PJ63)X4M}ESXodXICP9L9 zCo6v{H6-&^(otYvO47k)2QZ_q5~7T{5bibau^!E@Hcv70Ne}*}9sb!HAILNJnqKj| z*R;8rH(2U(L=L+J2;HYwJiE_PBIzr6@p};a2qpr6jS_W?)Sv33!+!dWjqv~oR-r4&~?E9O5r9&3VV&kICNG+XG z<4Jb||C1#x68*kgpwAhgSl~XuC_fZ7IDIQHKX$hJ#Vd5GMZkldY+Wg>%=Lq=sOlrQ zQ{ku2Fm+i`p)=6(=53hc23H!*8gsR}p&F?`mWc{G=DZtj?8+vO;SLEyKS4cHv zB!1mKo~;?Tw)WzoT+h8>)M{YZel&guwEBL8@GD@X?;8+mAQaajw(x79KWW<<#+2=i z;mA0od@Np4op7&7H2^|!DPknmY#{vWR%?>`o5Ia-hb|@7^#)DNO zmb_AyY*#X7C@1#Yj@L;`p=HkwozVl;@ioG8??=Htg0P*!TM&Mx@DhaL9VluQ^b3Ck zS^!k|H-sG&5^+nI@BoBN2!B$DK&XBYDfTl(F3_Zh5ZnvGdI$Bm0FA7EqW2;U5r+E1^=j66h}=`8W997CQA$=DHGP(sh?B zbvO4B7M?e+g{`#ae&%y==%HRH{0j(Ac@$aff^d|={Se-I48mOyex|Si!n=<{SPkKY zoe)++xMmlGMG#gz0bwqL*B}&EO@xPU0PWa~a(@J&^hpQ@A>2ygD1<{#L--5A>KX_h zrqX`TK*)k{9*+DJwubQ7^AI{hnD7FG-VjcD5yC(S$M1u13WTd)f-ng}?kf;xLpbqO z2p2%W9KLRbyq%l)YS4G=gsib~G_!%0tMT#jjy4Pp%*cA~DHmFD^qqq`zH zF>cwFb9HSORUzF%R9xXUSo-93*nR{;+qck(pY5#E*O{vawSLbdHZiU;mOeTOYjLJO zgou}rtnfz&;eVm#su5M_Airrq=*e}!L#X-=G;U$o;7)CI7EhY%Oh>lEQZoT^uFQJ4af(Z@4$wL&TE+A~9a z`yuQY;`{c1Q2H)}4iM&3I03>xArx2AhY>(WfeKHD(BVA@Qy~08;T#CJybr}4R9p;H z_yK}1h42Z4epL|I9)%krT>7DH4d)Pv@2EW~F;{zzD}&-yD9CvEfda=%{zrKHYOF3p zW)fobzi!96X>%u-`GyZmH_247N0emQ`V1y2xq(J-1GRZuc~U>W7MuDyu2@^KHx~6a zH_#{LA^$5F;SKajdCoumV|@dCQl4H{6UhzqDS6a=7P#x#Snz~skd%fW62lME&*rN{|#AB-LN9=|_vB%V& z^$(go$*=8{aZ{-`-s{OT<$rt3+zj8$6X!RHG4V-Q{g3C+f;`^ioig6y^LUHbBG3rC zH>>?3`Ff+y)K%otpw7M+j5_0r`y#HK`l1XYQ4<%lCN2aR#p+znI=c^O^ai%9z{kHw zq&&e_vVNmK>3UgF4%MXqqsOqNR^VXusWc;K8 zyg6kSym?eU`CO<@!6VdTtW0~{D6FdwER_Z@&g zk3y+$0R+6D!9yxE3MT+%+dxyM0-XhP1gLN>gk%T80tk;$SPh|V9E2Mo+yLR!6%Ynr zHb`f8m${yV3{SlaF{f_FAL}$eOh--JaC3Fa;80pqHP9CfaUDOc&71hA2QH59$ zut(`buP4Pj)-aZ|w<#%p>)Nur+4aS29&&UsOA=79=yX%e@yfwUVg{PFuPJKtL{rqh z6j;<>D6pu@JX6%e5Oh&r8KR5&tGSXlvvE-unYi`lYKl6s35wb{PKx?0V(@PacSM2$ zRl-Lk%1nHmj7pL%k8_d{#VwD|C~(W8 zC6qa1;<<#8_r+4A`IB3-;1XgX!Tqj1tnKQXm63)Z>iu`QME7U8FmEuT4Z z%Og1*Va1hH;g-iBLfnX~71~~ZbCu1SWr!@Up(;0PZr7?*m%h7Zuuf731^cDb`Zesk z|AMac-JY4OiPXDsmv+}-M($4->_mIq9*r}{(zt>)@WBDbEoVydd9t^ z!NKy!f4RdG3PC1?xTZ$m5*c%B^u|b7i-mqd{MPzXmRavohT2+3qCmYTU9u~IYP z6HLv_g3xVyBmIUob2T+tGjBnVnhCV4k-1YgkDjq+TD68lwRDIz^9B%VCNd9;Qs&N@ z$!o)!nSvmxnR5wIGuN3Kd8c8`Y(`{pHC0(Nd$lTRo*|s?{ziz*cdbu?z)9dk3Y-L{ zo(zHW-F^sq61dw`=IiE~iB8&h5-2rsbIsLE0>y1nL5<_2h+7aN|6~+w8LI0#dM-x6 zwL=_dLL_6A>61_=*C0g3Sl;|)8mS{q5P@*xzbawO2 z^{f9=D&V1gg8g#;hK)3!n<>&C5Q?q&rbu^p2dW}sx0}(!6zNI|EK--A zrbu^CU?ZjU3W_vllxZY$U5yMI7s)bl$C;}s(p(tn);Laz^f+SbyIsa;okblywEuPM zfQBWyJzT-~ zafvES+%@KEO7sYfbZZ4yQ$g=K53YjEl_eT`(#XnQv zz4+7tNLmV=h7;qJ2$YHO4G2Y*h&`JYcr!hIAPQ7egP@BT#JTTO294pms^zKLPiry# zl&SM7L>3nVOLg=cq^qO2k|BIqvSl#hcMx$hdVXiJF<|~<%!1~59+|fzr=xm(PgnZxgC+k6~Iy_ zWh3bi{}u0G7{}t{qmUVwyzf(B&%Fe1vt)XSFNMIKdjSO9bDNopDl*q>tj`t@x5jbeR^BOrTSX}sVYdl3qxU4E-}aDw>sDos6+PiZ;GTkC1n!D$@m>z! z_+Ec1kh~+#lTG~vr@>fpE$ryfk@hN-cgPsn5Sydqd&I-12R26wer}w$St{?J->?#)~Q2q4HKGN(=$mecl zE*@GJC-7<5D#$&5I+Ttj@Teohf7Ic4B&LDx_EP+{n<@F!H+U#}?@AcKKYL@Vq2{r? znW7VG&w$s+y}2a*o(RT|Q}kf!Bs?ncVXn1#w2Ll>h1ROffw8_M@w^cl#n>mZ3X>4@ zDo`Oe((jw>SYuCsP*leh$gz;SpifOfJRf3?L9n{@ybL1#jWXB5PQckybwhTyKVUIN z>9ZiU#{Ga3$=PYrY#<3 zL)baGN>|1ae3i(5e`3rC>r?#yp7kkI&-xTvGaJU^%kk$1{14^fk8LG@L*h0_4OyTP zy6iwmBA%P911j0(4B?RlN~PFLZFyvYQknJ!$jT!Nl*$s2;*kXkBovIv_MTvTwt$F7 z7AVzBK#oTiDAim*)FTU&I!-{ISEK-12&l2V<87dpg7#V-S)f!aLHjN5dRmVNI)IHS zy42df4!+h}-Uy~^W8VyP(DKLvrA`*#>nx8fP%2=7^3Ed)SfIQ!nJ!>~@{Z7#fCb7U z3zX_=SHtEdwnt(h)zjVqw959#0;K{LD32^qYKYBR-e7xVfl@;SRofm}pwuuyTWyal zP-?iK9kxdnC=gh2)8%p7BMX!YSfD(zK&evuQRKJBw&K}j7_hn(4GWYqEKq6}Ye86` z)Dsjn3zXW;>d-7us-_&lDd6y$#xTY97Mm=O^bCeF0||X02u(-mD*!(87Z#`lVS!Sr z903hkpc0>Fh_FB<*0Vr)4OpPO!p^9}q(e~iiYQu1TPYV)R>;W1Ral_BeiStelsEbg z$ilJYl`;#>0_B}D5~5~-^2!*lS)jZIEKuG!hHDlmZvth_0_9EY0h45b@<#F;xDYCN z(~BvR1P~I$hmKyaIkkCncxKMjY7AUU)3zWB*Dw+k# zTS8g0KzU0kYZfSP8T*fBf$}b5=`;(J*O&#$yP%Q=?uUlA{L7frl@j_LqP!KKI*1gf ztANF6!vf{4JRKoQ9fF2ZTSUe~^nYW4YEsVv)uf&Us!0PDsBlUGdN5d^!Z8*oEs+H( zoW@DPut0^=KR{N71z-_<+<*sqwLT;6|$5-@jzyjrw1fv8c|30C##o>{vOu{p7ATKPDL2Lf<&g!-jj=#^ z|DPDXB6W?xp4> zt&PKtRQR8g*3o0l|CF@89HQob(z51%O1h5f!vBA!xLcvtW2FR!BzO5lB1jmH2+g_L;k1auI1FtPVW8$uEPJ6+<^ZnxdH!E zaxbdzHc7L>|CF4!hN)9hPUbrl;eSeL%U0Gor8MM!N@@2Bbt5Sqy5Na##l=97dr4C{7)rF6!1UsCaw9Oob#?{e)qtN zb3R2~BhGx*i2fMfxqywvlAVQk;eT>2q^S9yoXbChtSwwYQS(1Jt0-%pCFjaRkTw64 za}}-8SxXJg|KzNrX`1_v zhE8gYKkI+fhHkh#X6Qz32>egZ1|~Ls-K72EC#ufP;uk0#Eaw)AhX2Xg*dO{}Ke@d& zX05v3+8qt7-Pyp}UG>&Bi8bMWayC4a=d%3w!C#n7zLK|HCso*b=?!vExKJ*@NGwmX*Rwg!2MZ1NP@{PfpEe2(QunPtG%k01W?=vxiz>sNng?=f6XQ;eT>o zpjNHse{%Lw%kV!rFA*62C+B5?I!vob{|Z@}4gZt#D$^VOC+9U5*6=?$um6r1!~f*G z!Ssgz$$69DxdMEpXg`6|3q*0vc^h~kKuok$}{{=N16RS$Tziw;(z0RV#RZE zeTEh^{}V-}9+kg;qg00fiRDu27wT#LCuW+O;})$#X=MIzi|WU+mi1WHvL4G?)??W% zsvpZ*)??W%(qmcppWLDju#bF7>SFnnG{{F}laI(IACXNyB@OZs+2m8gnKYvLpWKr5 zuuuLccVH2Mla)Ixf;CrUw&f1zIErA=KSHKnr)>l)oRRT}gaMk56Yv7m2#xIeL zUm_d7${P4p#wpSGB_<=NZ8{+QPi|QUisXNC$M6{h{7>%ekC`+1pWL%4a$0le)Iq9@ z2>+9N4jniAPwrfT)e*h1LaktoE5#-h{wH_dCPZldC-=NzX;|$1@A;qHi!Y?15-c?T zZ~Ra072BaE{7>#GZslnHC-+J&#WequdlhBP|KwiHEe6B?YyKy92iLZm|H*xTvgUtsAEd1LpWKHiYyKzqVLldX{wKEq z|C8H*|H<81j%@QZ|C76GEc^lgll$DxEI4y!1itQ}K};Ly2k!HfHUE?Q0%gtrI(HinUDd#5Dp!>P|DQo^G z_jSse|H*xmu4(=!_h0{njJqqpOLE_#(gBP7Pws&`ka4Z%e{$dDt#D1cv{~{gj|8KIs^r0zV@#{7>%Z z1l5}V$^C-B@ISd<66}aiT7tTEzalXFPwqj28qNRY9wIROPwv+Q`{R=ao`^Ju2@L;} zdxW4?^FO)Y5E%X^_gjLx_@thEtpAR{@ISeA1eKcq$^D+d@ISdn2@L;}`vZaDe{zoz zRBQex_eTQ5|K$EeVECWhp9u{Allu!njpl!HeC_&BK94D=?U2v_)LkX1MS_xrYDA<69IrWZN9S-U4(l*YH1id`IIN{wMEWnAO}w zo4%%ayw|#(7~?|$Gm7y)QN!>*(PqH^^j=$zD$W1o+m9ZJ@w*!ArpxC?m0*^`rP&LEa2gE_^P5$wrmP8FcMbsTPK0>a*U3=cP5 zK#Jar$`Fv@-N%w=3dr^*vdmcmT6puBPg9$NJ>t!vwQPyeoKJ2u@g~=jlLF)5m^6gp zd~%!H_oD#dd~(~`c+9c9i#otSju){f>1Nb$a96LhqXIjAvR zo=y@I(M9MippEw_cj}@7a=iWoU8D%u2W9IT&L{6E);Vr3ajnMk{$eHM+3Zx<*C*!_ zeiM`v4|dbY`DD;rmUkTMA>e%S#zbQ11IxREngQpNH;Wxwqt7jG4>beMC$EAi;C%A_ zVjnD){IKsv&L_8@y$%~gzgXV1&Vn`oVdrfEHA_SjyZq#Qas$pMy$cm^KIu)Ufb&W3 zK@F00cmp7NfC1-|-euIN+Sa>_8f~)m-l0Z#J0QD-8vR2v+qlDIz~Ws&DN8iUz72lj zT>&|t+*9m(fNE^7jvc8?&|cdk=aYM?Anf#!^T|C;&;i>c=aV}|P_6Ba;F{-jLD<`C z!Kq`cpgP<8jrole^o#AyXS(r%DjhG4wKPG{D#vTZww)-b%JIt3E8Q~$ZE(C0`^O|f z)s8nC&F`KmXshFW%w8~A&<@8N$hawj9(TO^Ir&Z%RO5J$anzIx+Ut0eP-u6Wp#6@w zmT_kZI^cLe9S1aBP_5%dSW7bm9dx`O>E}#Ab&hu*OFK)@FOK&vbDu4!GR}LJBjId8 ztKz)d>E|3lRdL=Tmi-(-8{)h(S-bP>9dM~S&ijpJKiB56dn+f*yMPl(1XAOEE&WY6 zpWMUtyU4)u;^^KH85GK!iPfn4jr}oVQoP?ec)k^o?Onq5G@MVmOKKpTPwp|BTWvXB zH;#>;?Jtl%>hY+U`-hzdn|WR#OZunHofnKmo*Z-k5`+H^N$i{H4woGmQRIAbGaRl+s?EsAayFn6F=}MA1)NWM3}wsC_QPg; z#W3|MmV3`)dDo< zllyO+Pi~b&y<&NDm};#c%+u1T)(OHqE&XV{AoLD$KDpNk!aO~WqvCo&=qqz^+jVag zgn62rPwoam=sDzka&HoJ1a(i&C--LiS(LC%*uBp_mvzsrao2D@c|Wjc8_p+>rw!d5 zGV7A_$$ikiFP6Y?KIsI8^GPQ#oKL!R^_)-c<2Gq*b#{jHNvAfPPdY(8=ac)S-2xS) z6By1XouDD-lUt+x^P00kpAkULC-*sfLM-(j3AS|VhMZ6C3k_4(b3VEI?5ks`4d;_i zZ8)EFQR_LM+}G^gu>^+mNhjDZIcSP0x1RIKebfFXmcVd6=>!cqpWJ%RC-;Ee5<^~B zhv9tE2^w-fx%He+?uYj1SOUZOq!Tpcd~$1b4Ol0qxc{)9M1r>C@KVMuL|e5jvE0X` zlYsNd-7T#T&L{U-X-Rxt;qH|t0_T(as#JH|0harQR9)Lqc=VAv0q2wZffN>}iri16 z6l|b-?N^c8iS!X&lblcPXX1cTT#YHkc@o>Qa0KLU&=Srkx0S=`C6V+?dG1Nh`Ivq6 zFh5x)Ea7}|+ls8rqRru&D@CuL+6l<^UPI-(hV#ig0eQHF^U2G_%VjrL)HLUl+fl3; z&L_8%^Cz5XljBC6&zL#)q#?_uie7YU;Ce$a_n8>w?Sl^ng!Q}@b!213+XE|zk)0K9 zo-KfuBPjPFT$N%Wh4Tq&7emIx+0D5EcV_**t-DO)mRE@=x2HrXz4YlNE~a>YFeXoC zZQ*=!^QB0_`Q#Qj*T7VcF1X=*@^;4|MUlLI%k%iUE{3?>|MKDjZ@C%jZZuu_}Z zisXE9OPt>kl1P4~s9WZAYy&?t>44#U@^0iDr2#pg+|xuyc@sH=4d;`0HI*82KDpzx z|K4KGQHJwLuP+;NKDmbTNjLWyx*g%)?I@#gKDm<|%9sEr%S%|D?G!O?>1-QvKDqzK z`Q%P>icp@!Vdy^C+Hy9raHZ@^XFFUw;x#w^xN{_eA6+bif^a^$=Qxy=x=HSZ+(c4} zd)U~-L_+*F6P$|w94h=T&mtj&ax*7>By936aKQN_k1TxiD{6o1C(087+)6@QA#pd! zFd2=4O*;8|4?=|V$$ivGi^pycIG>gwq2YYuV;FYz!TBT)WQOyJa=`gSImY=k5Gl#| zw3QbAlkTOrklTsP^ADpQsYn`+z?~lu}h%hVyABLdf}a;>k$M zC!@5%;=JK}688hnCkHy@eCi+59U;1w;e6`EcyK<=jm4Kryl_4lOPcd(l-4}$CTeQV zC($&VPuz*b0xuJDS=!h|)CK3$^VHRxPkguzIG-rTIG;9YyJvn+-T&l#GCrJ$CQO^U zpSs|D>VXGs!}-LuXTbR+-<%|k#EK?u2Ezl+Cx*v3pZ<@!!F+e;wc$=hN8;i7_hib`!_nv($`Ad|90 zXo#QakhY^sh_%}Rr}w&q_;k}jI4Zh^SQQ<)0<^n^ZllcAs*y>_(JjP#GHR6P7u(N8 z1K6WXeutSKG8q-iWK=AZQ4KN~Etzx>?g1_93`d99!px*pXVU(37H5euKdikrza(aU zNzD9`2IiMGFt258ere47GGqQ>ny)bCw;A&lG4mBM^A!!upVz>=mbLlwV&=~`=C{!N zrN+F%J`yYE(wO;6W9BbyVE(cO=C!QNUlucexi;U4L|E9K;HGh0=l20@&BJ65LRL}v z7`u!W8YO{}UB<@jf-|zGN@s8X0-ZaWV6#8itLYqj%FzVrDL89-G=UFt{Hpqg1nTgs z>SGD)Go;G-F+r?!wU4p`yqzc=F8Ba<>e?a53*j59a`BNe?Y^BzyLXi1<8#=4JCU}( z2I>y`|4O9&Zuo+-N2C%beUYZ;o(PhEmdH%5MMTdr_4pfNeye2Shn@vo!T8Tb|0CdD zQU%v&H>xTT_giA#G!%0FbjQjY2Von8-ZhBHp9}OcQ2s&)qh~-^0pWHC_*YQ0MjIJ# zu08)k4cMJMey;Q{(dly*L%_vPXDdw6*RRvb?2SiQ1t_H>?fwUnbVE%#()I&q0$~Kk zN&BxMLg$YQ@fm*)kk#jU+8(EER~wt(-4NK`(ox$UC$^JjY1`w(_G}{99w)XRB$5$6 zUiz0m8(0RQ#udPQWz>(Ces&bNklzd1I^J1p6~VO$()Hrj?pR)sYP<-%>5g78Q*4hq zn^o6mAYCufuGbmm@P@$kuANNJD3Q78GNfTGl}Jgp5}}s*OG!Q=LP`2dNiyaDNl6As zZo`24${aO7=Bt&!bai0NRjaG5=*tL4He^za53BD8e0eVLWrV|C`Z#ky?js!bcKaOk zQlY^aDQoB5#M5x>V3ff4xs0~#(X!q0D-q5Ul*+1d);z~5ZimWv6B&RxYf9%4>{FQd zITjfx6Mwel(}T_l7)s7I=|*u?oiT1frM8V*GyQ~0O+GUzc^c*%`O2gVsMI8^e`hF{ z3|EZc!^D7+vu(<9r?duikrVFQ_~A(xp;Fscj@(O56Mfz_pkXXwdeA0IaQMWC{VQR; zi?FAO4XA5CEBrUGr}mqss!W|$+!NI8+O9Yt7Zl_{RLG!ucXpl&D2MLF*Y5!bS>LBr%hYxrh2Xq;C8OXTY|skGrjLLlO@MNq77#lwIj zcHE_1-Dj@Tkx7XV6l}vpVwDI%fr!>f7A^NqtzQR+oNZF9OBSP8(MwISdMy#3N3xwF z#%Kj1q0BZ~k7#M5o0cNgex_m@{Rkv&v}76DD0-P?fget{Lfl2B6_!w7D|`>3cLj7B zwnE0mrWGbZkXFdKTf15fO=nv%?1{Tu5#PHOVbTiymP;!{F2`vp=Ezn!#IW8|5G1V- zsgx2GbT%D0=*ZH8#v-zJ6;;`TmS|NB-2NBvnJhS;JPK;yOx`07%0n>p(D&Jp_0-*8xNo=xh@zXYmT>wa4#4k>yGFOJsXddwZ|+Xvi6Nk;G*>*!0tkt zIVyomox{LA*Wiw8YkcLUi05==@L^(dnds=!%b}hb;pk3a9llRI3w3IbN#GO5v@0BI z)OO<2B|dKLhUMMoOa*OxaTIYd3yuN^xpxcC2^ve{(IM;3w0Md zy0a4asJ0S{WF4F?nT+O?dE`D_RnaSuba}#OJ#oD0QTFP4*>SJNxVjU<(QD8lBdZYd z4A4VsFq~4Zw5;(x5b_p6re2G2@*#v4RSyc#(2$QZumirNz9|d|ED8B&0fa@{8G})=szGkitQsCR2hNAdKktm`?YTx$X%{aQw{; zOK=@fL1`mhDZyiikrG(9m=g4Y&^zU7Q-bwCEJ2y^JQxyEf|qn8?+VcG8A?Rk-!6T^ z-iVIbG$DpBA?AjqT`fK6C@}uXx`Mq;))mQ?&vDlNBX-~&AsLGHUkH(v{to?2h*7sA z#ML;TO?JedO&-wCCLC!G$g(R}M%jbxs*dc<{l?`>IbXi8a(D|xdVSi)z&hfMq8NYxs}Xyjmh;Gb48u4iDk7W zmeraDSzRkx>4#k{>uj%$JebLH)xo8Hz6zX42kYZEG&x} zUk2QBP6XC8p1#G*mN_U4X3G>aTaGwvit9h2i<^miVfS)obb;b0%mcTgNA%c%5p#E6 zjGAgX_=MuuAF~kCvyP3XvDyaAcZT+EDbN<;IL2%I?L8Q((bX^_{GhL@42;0J_d!YM zMPHLdXW!5114`ZTQ2mw!RX^ZZqq%+1WS@4i_!`*klz0rD=6#Rwn;yj6^96)`6yAk! zgu*`|BtHbF>ZfzZM8_oTt>r8IdEX#N5dFFI3!p9+}i5pD9~z%FTbn{^q0BX zf2eMKVE8S>{m#^TA#}ii&)W@Q6om&NoJV0RgzG5W2H`OX1&yr@twoGb@L8j|GZo}A z1)kVW;#%g^4P}0hR@y@F9)oZkgpL$aA(T=`fH0rJpD=O*gx*ywOA&(O)>fh{qd5T; zyrRoeL+dK>By`2RXAr)VDIbB*^>GN>Ae8Nda65#gT@bE^a1Vv6A>8%^tfyQH>#qWV z$@Ah7P2bRVN1LmH;Zr_9tW~h(9UXPs0e#Ish~R?V7!6#}!b*4kc7^?s^wG-@-YX6Y zr|vh7Lc#uA<&`6BDLzkk=i5s)6#_LvWvh5P>j@LMDV)AoMP- zg3I%O;@0j*|KYzLH3-WngcGt}Do^Bm(jQAvu8*cAa(%QLXvCZEX?F_W*Vi9VKE0%x zmAC;(j&k){Fv!F{`+?T#j#+0>A}6rS8kV<*wHC+ekz3CNSjpI@Nzyz-b-&qpcJpk$twZG2!IRLHJwH$eYR=)w2-BLa2HU!bk{j?txGOVczp7Zygfm zF90fi0eAV85Ki3(VGV=_UWRZJgwJ1ruo=R)uR7My2OuQIMS~S!^*R`+LD>G+p!Eub zjc;J_R=FNzKqy82I|!*kNd9LK#=HsPI|%PUuzGQMIN*6*f;uFyKMK_^4I^*CPc99Q zyu+?^J#2AlIPP6MCvjo)!3#QJ^ad`B{whMrxx5R#hh$vdo%BAERU%RrM=OA2c^CQs zP4&aaI_>USef0!b;x)uI&27!5L+ zgw&G3$B4BGntY@S_kp=e0kb}7Sioz53ZjkmxPIM%7%AYd6j;FMr|_hfp0I$cf#hHB z6!dLbqCbZqS)vd83<8(vk5b?g{l?EBaEX2lf?lHQ#8pVF?|=*C4!H6wnw7;LZ=SOF zOR;>e3ObXYADhJGP>A~i0oYV>%eZB%pAhAHf7w)W<#T^NAxc>POQEcv5aru{y{V*+ z6UdekevH&Di)|{oWjqX^9~ULPJT8jF$3>luJT7YMZ^OFmBWW9EQ%PH4AqSGM5q@)? z*kM|%%h$ST?2TUzkWD3BkjGJa*;LY|rW`bzN^TjtrL_SNn@ZY){QyHcBI~b=$r{w8 zTh^mLI?!MQufUo#uMk4@*J!rLO=zPspg(}}Co%po2PuN@C_&U5gtRyU#T`^!2vi1y zxwn@1GT$-3-C5V{_7FB1*L`-HkEW;$flAO zpMjQaDrtCno!L~1HZB&ck zo#-Ue3b!LfS|RHv(+cN9=$&%wzqi8mjAbi)1VLJ%-It~npy`%f4}0QnyPw$#2orao z1!5}zZ)J{bg|mN=R-g)7;SNH~Ek7U9_JWQqJ!lUidq-}ADtpjZS{0MN-INR2$+Bf# zY-L3=OtE;DkOanJ~HWpOnMKrd)Fd#udFftG(e*0@Y$+4`8S$zJAa9~&|VtMK^saB4E;bxCoyyuw8YSr5DFSAilGnd4Si?~)tRe(^u53k-sosUCqXD^ ztSE*SBgS~N+ZcE)F!cS2gN;WU14GZyP-8_glFqEBO4E2Ff&{$CnRUyWB zlw%C^2@HMyXJF`|z|cE1)L2mrbx<)wA!DFfVCb_!!%Q8Gf|eBRdZD8n7U??dOh8io1p{a;5McZx+JQo0r;}eFPqO}5fj~MC?p`fv%7`l=CK6+xCZ44|641IKVU}#rh=p!0xtSE-MHld;M zoFRu80}}#6A4+E&0}b(JF@%D~N@CI?6zF>U@ z|77XvTJ85?^=B`0WZ7yzJ;LnoEtA)?9dM6YCQLIOaF@Ht;cbo|v|J>wYr*V>_=_Fh zp}4!Kr7|8>3FN17pS73E``WT!b0AlWcA5N!hn5HAa_94FhfkP#zw)qywV{=Z1Gx4P z2M<10|NG%qnfzYO@Hoj0?|rp2Kt5rK<6C_0cgm*Mqj9`};a^w#1m;=jO5y6v9X;SI zvp4P^ZT9jCUEbQ;qJsD`q|oKPeKHU?JT0`86)Dt1{z zuY+r>=f1Xx?dS5|-y|9MpTs3%YYA}o^YOb){RQ?+A?zB!orLr8TRJ+nX(|%`(He<0 zK9{(TSr2geVZ@uj^5&x!g~484T_@BP{`IK9-92j*Isn>hj?4YX7HLRI!XWz`$@m3g zQU)13AUzK21|;jw7Fpo3MV>`icdTg^y4<*)n87a8BT|jJHl}xp>B|w(dkTV!SSDeOsPjT z?B5+kEN>7|i-@O#h&A;QquI}INzo>Y??6FsieHav%F93<)xqUF55jp_5G)A4Quq-` zer?K%fPQ{U24}}v`RyUx+zdi@2sgEWPz<5%@eoEpc#^_62m@LoY2}?rIvr>hP<{o3 zo~r7S0f}Rf~XA;)Cows15x>R0o@CP$BW`kz&n78TNATg5%L5Q zvsK1Ot1Lj2-u^w^WzT<>s=ceB$F_eVo^Ah&B$vU@jv|9U)ABh2CJe`OZ^GuA9n_CK zfnMdIH zqUapfciFJ0xd(T)vxIxF&TtO)?V%g?%8_^v{Xr8vH~jCp2jlCx2jkbwMqS1$X8A|xRRb$1{k*&d9mBJE&;p&eAD9Zbly*F#Gw(heqM2}n_isGWqS z0pOlTpX#!{pmOlT=+ucb&kn9xel zeoJ9%%1Vd`I$$Z%4kom=uZ6F*GSCIqyDinN0XL*(Z$HrR@^g9$?g zRojZRg9*a~ZM79?2NQ-1+F>iw4kiS&gNn3+2?6b(BJE&8sf`x}q#aCTlZ}NezXM`u z2NMkKV8SleLee(Y&l40i?O?)gR)?k?OsFYGa0=S~OoW9L+goh1JYtif%s@h)2}08m z`XYeO{DpQfB(#IhAmGr_Fc2mdlK4*;2osAaT1i{+ zC$X3^fBYAB56fA~pneoJ17YImEs%xZFR_$aXa>T>1`LFWWenF0gozCp2ouLKTr&_R zPN1wA2oon3z$6(66Gy%dNyz*Xrw^hy5iO87LqbXBmpF4alIi;S1o2X9hJi3~7ClRi zCN3BQP3_@A?I9Tm6B{rPCN8FmW*|&lLRm8qCN8C{83+@X@phpZ2ooDH5GFQeAWXdA zavHdwel0%|bGlMO#pxB;z%owX09A3?Fc2oLJOd#ig}odr?Fwwhc~highSW|8=b9yr zuTPp>E5!c1VpuBA=N$ zbij$e3(uT*qz>1!B!=r*62lEx5|dIMK)UpEtR&5nm_FA?Djl3}X>{MPBqpU_4$Un7 zCAFw1Uo_qEKmPECDkMq9RM8AFw1UvLyNeOQPcP*$-F} z6vBJ^v6pto#g)31OfQGFT#y4iUhRsDgj_RyDGo#F88psmP~ z=-;N%3cKluE|!10a|Yv9I88@%wft(0E^*Y|G;@b@4kIsf6j>7e7)zoeOQOHYS&3M% zBr38b`kNhgTCgNGoqjH=JI0cz$dc&CSP~V#JoaNOiHaFLy zL`9ZFf4j2^`GO@;ktNZ;-&q3)mPAFCM1P0F*$6C&iY$r#0|LR4*tGl{%YV?h4!U4T zRAfo?ACgG0Br38b`VTvtXTXx!^xSi&S$;iBVn|iQV?K){FC2$kY5E1AaZ6srdBRHP zhqTFyDZAO_v*%gKOQ=eI#EdzpLIc5%n30Ao0*K$3w&8p7QllKs=nvlmX!sG6m(i@| zM@+tmvgSujzL>J+M@(K$+3+JKSMElqOwCJP%f*K9BPOq-$C@88d3`xV&5x*M&5xLT z9o2KvS*jbB!uu#@!RfdPKVtHRX^3^AXo!^I_d!feN$vbOuIckJ7*nHqmirs-r#2)v zOzrv{b+c2uxA2g^iyoWWfZQ;(0l8snFRJinOtV66n40&USPlt8XU5hc5)_~kFtpT}VS|_S#a>KOFw3m%snT11g!?fsl ziX=BozXIz|%Q=QxNZ)W5LetJa5#o5~8C16>H_SNiCxi?CR>t`hb&X`qXN{n80NkA`R5EPk>7WZXj0kQ-)f+(c_R8MpTf2iB_Vt=-YU z+MNxo-BoXGlUNgS!;H<8BbL)Yf*kKYsx5EbM$0@%nz3~|n;_`~G?SJ!IhU3-IhU3- zIah`x)kK3@*5q6nTknU-2x^6`9#V8t$PF{Ljz9!Tv+ek#AkS?L@)X(RDYD5^WRvGM zx@+(ZWJ*nDIF8*H-#0D`O`EHMwENt~|(^ z+%V&bLdcrjFk?4mO>UU+G%GJJo%g|vngIx}(d331&kO_DYo*V_=Rg^IsI}ipr~G^= zA`H1<#tYP{g%)TFGxkx-kQ-*aL}17bGhQaB!<-1MS58L~LvEPyD$|3C$;A|y@fr(j z$PF`IKLas_+%V$}rZ?n<8E+DR+%TjbK~02IYiW)R^7ke*N=TiEb_glS zZpAZScKUf%X5UoYN;J7)W+DB`v5u3qA#Jpfc`2l5I;2Q zQiz(|FmozpO>UT3PH$3@@>!~Blrxfk=mq&K%GpVGqO~)pQ*M#;7*b`hME0oP9;6S@ByrNPOhyHFXV=q11W}7 zQ~Aqx0zz(>If>;8sqxff=`v?A)6^Wl=n#Tr{_uQd0cc#c8M!k{kMGQ{=Sf&p8EBWkkpg z{d3sVhTPDfORzd(CGtwGV2pw<9^IC@1n1 zV&fuLw1!UPU<7+Wk!I=W8P9zZ{ zH!i|X=|X=s!p~1B-=4SbtO2 zWyO`g>?llN86dLq3cH}pRwZ#V9!BscUw5}?Tq{o216qsa~ZPY4XTq5mm?Avg3tBiIn1 z^apyE|2aXmCO7oIATZ>H{+9%X+|d7u;PLpRP3W%vL4q1hZs;E(Fyw~**93;#&_7IY zAUpjIe-YG$6v+*Je3FjV{w1VHZs^;F+)$C+&>)Z-%Ibw(ME0ay`5T96 zl%o!tQW(vNTM;`V&}d~P2)Uu}+6-^XuR{EI+2pkp$qjvcXOD(*)dF-c-;f(Bu8(~~ zZm39Z=qK9rHAV4W>w9914+YG~kQ-*rrG}6jX3e8bO>UTVZb1%5RhLfK8>*NCS(6)P zoqs)KO>UTV!7j*=6YprtMN>#^hoQ9j?9Pr|ic6bf-?z76!crtR^pkDQAeK5a0+3>J zbh?Vkb0K+Rdm785?5vGy`zDGuCw*l(I7#1&mdcOLj`TL_2!^P)wbRo)MyjVGIPsM zBfNu?Wwl8e5Uv&@U6T*H$Dq^iLIp z4LXt=`lksxU@MXv`eOvu+G+%Pkbk-$Y{|7~4K!9zovnUje&YoFVk?px`r`#vI*R0m z{scj*97S?Nf1;o&N0HpnKSR(4N0HpnpCqW-Q6x9?&lI%PQ6x9?Ckxu)D3TlcQv^Nk zD3TlcQw7yH>M@R*azT3?MRG%bnxOrTTFbbz1RZb`$qoJKf@&QVVJ*!NbkI>GH}q!; zs&mwREbS~ozc`BIhW>0pm2ryXhW^=tR>dij8~SquRmCZi8~W!6+7PEmZs^amQ=w8F zr+#DE&$U0r2-?aClUq#*LT>1PE&Z)2f6m)KZ093$OOf2rKO%!dshJAk8@m`WDT?HV z{aBbDHFazAXrw(^J`!j-Xmgk=)Ra6NI;VBscV3 zK^R{oH}pf!2xN=#MRG$wAU9MbH}nH?Llw_-$&wDEZ3;(zKyIi=Zs?~wTy|hYk=)SF zaJV9=HX|cTw!blIWVAJvEoh7r8AI8E9ya4EMs65V9OfZ46TLYkvrtGqj@>=HUqe|# zijPKVAG1SM*v}*XHWmJbHs2vMosU-nGDnzQ`b9GTfzyn&xmZA0k=)Qn4i)jC0#r==gQ7lhtHazp<*L71mWZs=bx2z_NPZoB@Cf-p~$+|b`3 z2t9}7hW<^0j-c*IZs^}^pNLv%6ZY@3_p|P~ukCLa4=qJBgSHQk zbpk_fs1q1+L!H2o8|u>4lNK7WOt|vG2_t{5csSUZIPHo5yby4fd4gJ^b z<1wr0x-sO2I)NcK)Y;XO8~ShBqhbjRxuH&A$PIOZdU8YmfW17Hz>pj21cuyDC#WYk z^gpzB#1a^CL!H2o8|nnLx&}aQ=>NlRiAe?IhW-Qg?dTe9ODz8}=_DXG^mj|^w>{PJ zpOu!xXB_@sX`;5+e0Wu=yX^qWe?zLS?I=9@NS%P((EmUR+jfZMeR88Yl@3(R|y(9>^p?{L|CL;7OKUpR$ysgCO zYb&xci#CUAt`xm~Y9}CDy@uxX4Y{ErxuI{!4HXa3`njT(qX%q9u@<$`n5o~%ITLxd z$?>Dk0L*2Id(x0)Q$;VjHEdteSRva_N{ZU{ij5tMrv zt|7%jrfucy6Lmgj<`sT7=O8ne*JRyg8n;v>4fWI!dg;?k45cW3fad4Pteq_tlrKe! z$gAA~=UbS{(FHf;hKl5dev!O2%ab34@{1ihg9(S^hJK9P5HA%F98%S6MUor(CC(WL zNf2^Fzsyq_~HT zO-y(dQpZqfiKGkUe|Z)OA(Wdri6dc?FK_i$Sh9X(;R{<)`&&Oz@)fP%R{AdzUndz> zpi!_%Cx6L^nD#Z-1&=zrLCwgLT;GVld^uzmDP)~ zAves*qmsAvQ~KvWkZ=3CRt!`cX}j z8)lU-xk}^&6#D?twK!J zAjE}W?jN8KyJt_h89voAw{>2lN-}? zhRPpCwctIW#d_$s_!J!xeXFcB|MrXNb3@|4>PyEAsqT-_0WJKLWknRAV#us1=k1(oFmRtqY~AFJa$e5^)jMeREfZ)e-K zeCc66(d^W2C?j!*Y6uG1g@>rJZHlLy7-x0mbPY`J?bEsl&zMFRAhw&FE^a2~?g8ef z*v&=v2O@lmt4`S57u(eA^*+-sk@o4u9Ti(YH}ssp1fR!?#XNYYn2q#V?L(f&=?7L$Ip1Cv&K50~#@79?lj_(Ve?; z@(Af%Q;&fh4#o!%xfAaQvT5QP>z(dI2|tQLcj2O%AU@0{slPl z66(%yqj)muhS=%Qox#ZX?#LE3GJ|U>l39#=nVK_Mqyof^>=uLX0}hqxa2Bf3+JR4d zM~y&ic62BpoIq9DD@ViI!t)W_vnTrMObBOEm;|9?FI0F1wEA=AUH}A2k1)jX#zHkM zTyiBWjP8u!(I?|i;qmzMCsXcc%HBZJ`KdULaBi`z`=C1%EG*a4qgxO@6a(=F-ebO| zQc*EH)ZkI&%O^)4LCa2$mOf9l4n5H8l7f;_**jY_RHdU;Z22 zj8%6E4=98-^P6njK7|JqLU$X$0}7!n8kF%2Li(cvk-q*6!W+2R{twezFFXfEi_J*`caJW?{8Mmm^t0nZL1c>!#7Sx*AOvX=K)b$i`eBm9M+a%#t4BsZ=07NQtsNoOD4G%RW zcJc8LsSh=H$@V>{cRAGHH9XYdW!gW{h8$|}vIOWu4PH|L`cQ+HEkGY?@R|wGhZ?-* z0`#EGVaP=nV(K#e}s;I$Nl*AhI`;I$Hj?XK&QyB86J4K8*|0N2c>k*Y5#s&!D@^WRExX}n=;&dK4y*8uF*(Ib5<5X!?6D*=3#%kkh@VkwI!=Oz*-vUQw6_>(yE zF#i7MxrwCua}!A~uzxrC5o099Ut9;H;j}O;FWHM=E6h*z{H0XEv(wLrO_swIO@2m5 zN^)TY4H-TJIk|`;zTc!=Oqma&zaxPhu1M}ju}NR}n3Ftu9aHV1F@3lq+#ZugvOZi9 z?u|M~)`u&?M<}1h`VWWkAYvu!!xiBQ*h$uhE5eEB<;fFIhDjc-NFKQxlAKdWp5BEb z4_745kWijeNS?{U==yvGSZdiEu1KCm&r+kw3yRTD+CzP~BFw`T$@*|b_$}tRm?|nf zpB^ruoDv>Q^Ghjbhi&RFV-Jahqlu99;fgSil_fVmT#bN~k!! zVms1lr&mB#oHmCml2;B!2)^ZmMo4XdoaUE9Iei#hNEvDKxi-BCTu2#hvnJE`!R3@v zoAY6M7Ai93bem%?Jp}mSTxK zqEx99sS^pGfkLF7K^?qNo$isqaCj#tQ$=49e;CUMoBr zm(*$WXulP;5icr$ed(q>Nhq%M$$apXtC$5DUO z+mQ3ZGboqVLPmw~N5s=6zKl9Wg*-=a1_A0|E=^7PKdik6cvV%_H-7fsxi=@d=fKS+ zklY02QVl&60ToE-EkHm)s!|k0KoLbzRDwFfSc3|p;)n$VY}gsmF?LjRunyy>ld%nB z#WEvf{eHi-_X#)i&HKFH^Zfrj54mgYz1r^OoOKqF{di50Jg3s^gXnY%!22)2(&_Yn zIOi1S9M)qNY9#$JPTVy*eRu{xIq7-W6x8_XnQicsOm8U0PbR$tcPBMrT-vf2c#MvhC9SDjGlXoMf zXpvWFoo(PTVj&-oxe8P4BhJ~Tu-Ph5O01EctIcWpe$+rIcBkfaeMuR}#M#DVJKLCS zXB)FrUj{PkY-7&UwLq-1jajCtCL=E(m~3Yo1<<`Yc^bYDV=T1O1&Neth0@2 z8mUlYa zn8?|tbg^fy(ziidjdiv$jht;vBWD}a$l1m;a<(yzoNY`aXB*SV*~V;;I&sc6rjfIa zxls>zB%w~NJMgg2{O6hE48avyV#?CgTv9pb7>}+EiJKLDX&Nk*=%@0{e&Nk*g z&0}ulY-4t4u1=A&jk#Y?INOxM*~UDeRY%z9oNdg5k{LPMn1?ji9XQ*R(%Hrwa<)m_ zhIDw+wZ>o%)V!pXpT(vhY(u%2|=yK)lZdr!J6>#3||V^6vu z+mkNtFZ3}nW}2V#3^W$exu^MZu2c58UGsAZ=Nv}op62I~l+HaZ7iO@)SQO4ZE$Q47 zp`PE8&OOanIO3osoqHk_n}kkHfu2vX$>5!~fG;3i7!G@#bsRqI_I9^jvGju zDen9;Y3bZkY@K@ozVujZoqK`-gu9U>8B87mxI5+XH8!dc=bqy7X9?1|C+CoJPtJxW zO)yc@xd)N4xOGkNZMx#v8MBcdY=@NCQi8TdVrQ~Oe0ii4YjEx_+Qn zVwc|6AYnB@ENqmvhOl2m=bqSa9|oKZj>oDLyNr`AEnbQ=ye)yh;@lIvoCyV)*j2ya zH{iPqv8$zBtQEEFWsrBS7h6k;q!oP)MN`}^{EBl=>{_}RK+yV$=zmtw^;Qs>H;~!c zb%V8wuSUeIa}WDZEZey!wy`Os6qLnoxw}EyrbE(h&60LomNdCXC>CjVu)r;Yx1ct* znQ+F_Loz_N%(RlX7Gkp(@Ih*9YZ_Euz?T;-oD=Xds)hZ4Pf;x#1bjIpCalST&rmH~ z9PklpY-70^^|((X#knW8^--&H+nNTQ+p=^D>~sq3bPDWrZlk$Qr-*Snw{1nQ zqRw{IM(3W`w$30ud_zv`(VNlvgEw0sZ725!UePID?DtG84qCTH>SMP9&IHHdZ*12# z{4EPg*;^hbTpsWVZp=FO$eU}iy8Dn`=LMItn>_U}5WHVP=bqTJb0B^%d|?4Uw+k8A zPhEkOlp!o!E<{!sg0Q`AbAT$Gg(7Hs+jrib%ERDX<*G77>$F>=p9YsDREr zu~%8xH7e+UwAgDe;BT!8E+@Zp?g`#V0XgK{lR;kGzY;?;?i*>89JB;poRxI;)VR+c zCP&MCkk_gojEbClVsG65x<_vQ-Lo-IeqkKq$i7( zcj|L4rJ#(VPHGpy;^&A@nCwsI-IW5#$d(L;=5*10F3b5DBQAHkXoo+pjK#ldXs#M9Qfr|2v%J@GA2 zlm%m2A$1a0*z#Z!sgLKe3hj0gxcqfwIdtWN-Ih(W$ z=-iW@M>{h?6Uv!SYj(57nn0j9_oOSN^2E6(J&4|xwnYXL^la_Rfx(w$D?RiLs)vLt zDd8Zc4kL&w1^LT60CDa~&t$pc{C&fAX+fE(I1W#BWd1M}hsLsn?O3+39m^KB zW7$+38p{^8W7$;Lu`JF#rs8|6XYk_NXg7 z>HQhZE@^S;NsCKQT3mY481iV_ zJ!x_2Nn4km*5cA*Zu}F8#HA-KEK*mHQTG0&{PK`}Ui#LrS7CJQvUd5&;SKpz0}JYhee3xIina1gM2 zn%#tx0iWoa7q7rPR2L}m3^aSr=axvDW zCwPy(2SjRP!FOzi z4~cAu1$5~#9}(FU3j!+rn8?;x(3$3ZLS#oQIFC*JcOpAu0bP2`ej;_T;A@iogUIe! zFo5QKN@Q;=7}gfZXGHeJ0=o2=&xzE>f;r^*g2?_@a6EIqByu1Y^g*%AS40lR0=o2= z14L@#!JAmD%-2NL#Dl}wz~2z5jR%`qJKqx75D(s(6%3m?28BUIdlC)q&^$(L4I-lEtJ5 z=m1o58fAKNZYnvwMHh}Ly7ZJR84frZOeef_3E<+O%Lu?{tpl8CcYbGXmGI6Q1T~{e zkJ0LWl&l%ul1xHTTl-4WM72OOi+hi0syLfiM;Vh;GMdG`#}o)+9c4^P5bNG!nh9dv zdrYAq*1g9x7sR^vm==Oq_a0NEIPk4|k13X%vQoPDn6y~q+8QBx)YoYfr#vF<&llOWFO&VpF?9@9k->)vC!syfU`*1gAclN{^b zW4a4s-Fr;AAlALd^pGN0_a2k&-edZTX?51U$MjR|V0ey3_a1YMJXylE8{K;x=G=Qs zBljMMIrkpZ$i2s5cy0XI45T!2?=g+sdrW2Y{EhBCW{~2PfG2Kr?*TRsSdDe>F^$}N zOe6Om)5yKYG;;4Tjof>Tb<=U~Jr3Js-FqD7+0-gd(3fy?X&JZW|Cm_*1g9}77UkwEjf)G zFW3R=-eaZ+cF?-_n5lx*Soa)vBd5X`yvm=gta z?mcFfV9veA%oeQ9y7!nlf;smdGgmO@-eXP@%(?fNlLf1{?mcFnV9veA%oohL_n1=z zbM8H6fnd(P$DAsdbMG+=1#|8_W|3gdy~muUE<`&x_a1Y);>H{Q@nIT_Q0v}fK9&Af zO7|Y~nYyz*rxv>Rn9pTUSoa?Dg}Mhh*1gAkDTsCNG1=}t4ry14iw^Uh;!T-#?=j!2 z2f=UMd(2OY*OJz~$Na2#_kxi~w+!=(V7Lyadyn}w8kcnM!LwYuQxNwaqXffsINf`U z7OdX7_ZTA>o^R8=$K(ix3vjykn7C%}Zj3Lw_n1cRJ*JU+k7+7=Ypi>ZY2@BxnrUu9 z@C=*oJ*H4|ce2Tij23d?j#0yR+)N|)9#bq=;Lg3rWV!cnn8*D$VIeNB1h!x1*okE& z?(=ZejP5;ViQ-G1?U$Hk$^%}CcN@=^Il?^`ST6IQb?-6f3S!-R%z1(&OZf(mSs{pZ z?=j~KQe29IKHj9{f@0l!%!Ptj_a3uS5bNG!Y6P+FJ!X|4*1gAEB#3qIF&7JB-FwWX zg7hn;dyiQyh;{EVYXqtDO5xsPt`Ou|uatYh$i1hO?mebfvYdO5St}UkX}b5AYXo!d zJ?2`$&^zefW3Cg-x%ZfLf}yX_y~kWH80KlZ_m~ZWq36)O$J`*;=cs$S_m~@1En231 zVD3=^SoeGp$z;3tm~8hR6S?=aPnrkRiUx*k_a2k&-ea=edrais19dyq-3{E??mgx) zSvhjVy~pel#P^`?3H50ML$-U5aqc~~57b!(aqlsadk?suQDyC-(q+5%80X$&xwGAS zOyu4JV_#HL8@RLGdrY=_kBQuS!0@WNtbrlhy~jBB9;+^L?*YRbYF7h8wtJ6p?mdV@l$)YeY4$rjC1d?4E2uTh@`n&T@Hq_DLB%p z099W$7>70KBxMsk^SHEr*|DB^T3WJf6i!&uL}j>$ctxtaY^Y~mm#Qlphhvb`Nm(^c zH&WQLkvOwRDcHPsshgm!9c@I{qOP3&XaMU^F!PxX*0U_m{yw8i*@fY z?R8}b%=EkoHyvcc!t+s#z9R&-?mebVbI)bndrU_`tb32icJDFS?mec9kd@g1+f}5M zd(G(HW4h^=VGLeKE4WV5Y2)RgNgz?e9D=}AXGIiHxA-ZG7Q;@)HW*bMu8wXX=W?mecT%-Y3L zK}SoGGV(C_7(E@Ltb32icJDD2@|@1P_n1meV=&>+y~kv^_dFps8U-8a-eU&q7m;G! zd(1@rBkiPnkI8oLaY#<-$(}jR(ukjp$#(BC&b_CU?mcFTwO`zOOtyQEaqc~~Lub49 zm>ISmQHP6RMl-tin3bvE%+FV2t~-VN~7&AmM*Gi_pD? z7dztK!^g$;TFklk@DZ_)!M*1vXy!vC>@=$WK25-bDIK965sY#h?t+e0tR+{Umss;z3_Yubog7T#gc#^yV6kC#zn` zk#hVC=v!LShp>IDR??TSb0#Y3M-w68=#MCY&O{~FnJA!_P)UC#^BpcK5ND#20nY$D zJgG}6+jatrkPRZ4C)bW8gXaMB13D9x3=tCROvFfbQj;~FI1`l&<%_Qce#!6?DTfb} zOGb$C!5>k&l96J*btWnqH4rofIVEHG;<=@*5?bp_R5JEd=KCcQ-hn!2qLSkuB5kr{s=`q`D8t6MWEzk4UN8x* zP%@pcb0#X8QE%m*(3P}wCMvPcL{`TvX9JyyN@fS3Dae$}J%hA#CMr3JJ6(Kt7;Rs2 zGOzXgU@UdaV|p@(qkEUkXS#DHDmkSecsrpP&gP4M;!IR>&ZnqRaV9ER&fjMn0d#6KA553uwJK6P2uFgNZXyNsS1jGf~MZA>cl<~inLqBgY@p{=$bY40 z&jMvt10^p?L|>LrM|3u_^k}Z_?Z$$uU_)t#cvlRJMW=hEN8E%=+@3FRU{29&ue6Mb ze$gBU1x0fmlq@>QL51?VL}^C~Dh}qOWlB4>0K5-FwE_|eOBb*3@+hrCgg5oXf3dXl z7Ni#RYgu*!a_9xxvLjasPp)%Yc4DRY!KFR1$?gmSJV@iqCoQ|MNW}ra0o<}H;g<5C zwq-Zc*w-*xb|+jG98-?ma>C_!l>^FJ_TYO3o!!TbcK~j32ma{WK%&d}WTAahHO>1Q z(n{$$kQC4>g;z{L9^Xvj;Lk<3YDT{fmCECr=UrZJgF&)NDK5{Zq#NFyKa)5g?{`D^ zwu>dh>v9`92o_gM#y4cU;(i$~B+acJH<@TI;)E(_>ft@-HwPBbd>}BY3=S zfV-D7Has$5lUL5*@D2tV_iu*6CR|2)+yyAMP4OURdj1vVz`cWc9*MnR&qUr4dp#F0 zd9X6?x#Yn-9(z45L>(fTi0S=z-{|}Q5`^YgQMwi zh^B+k^y`SK*@j$2TDyJ`l`dI`FA@MgsvpXrZTuoT=S?T`drtuh|A^UG3p2Aer1Qg^8vWH?gjxL9N#~ViugAow}SjVt@cTk?O8EB z6*JUvgO(wym*PyRCc$1x9jNGqq`tEv4>(a3M@J(6Mv;gM@ts^Ls7V!K(06h{C>FiM z0=;O9Tj|&)H?SA>@Vvo`Nx(-uFCGJpL%u(pqjpwyN`!Rew2!#qdcl^25e5i zyd|CJQFfN$@@Cni*MMO70kpK12UH_e5jlP@9O^i5NY83cvgRDc^2Zwq56N9by&=?^ zbT({mu;mGG4h`|A?EpBC6#-aDpbda80gUPjKs|^*|5f~GDqb>>1#m8&Qh-*yTmddW zRDjFhfDyI;;^H|Xa`7aGY7P#ofn@(t0PEs8gr@FrhL7wYRpy1@9QrD<_P~sx`v8+Z!2|%6oKZzer#qmm*Fi_2Bzt=VrQMHrbV?dPjETWfAe zHUJ;Q!DKWE_1bE?ko^^i%o=cwQg2|!P_Nj*Q|SaZt%wv1?o9=Y;7j_744+*MDqfL( zoihk3#8d25MOwYKat!?s?QwoAa_vMl5qY9A2P)gLO!YY;An82hzpc;V zBzZAJ3`P{8`W(KAy9?MDIKBNXhtt;Az^ZEQgy$RV`!a{iRj0x5vEq{TCnxvbNbZ+8 zL;E0oEC_~n0dPNnaUc8#)%YREQ4>aw#m}!G7(Exj$RPku2T()ccmR(AsQwl`_+!Vv z14dwl7!A{h#z61|2&(FlIJzmYr9)8--nfCzloQ?Wg!7R%VGaJsKTH@L%}*M|!;Ck` z)<-Y*t2W*Q;e#*{)fwiiYE$6%+lCzt$tfE~vdyjAG$buy0ScH(-6Y>5Qt`k0yDr)qp$&>L>m z{p5bt#+RX%{kw_u?_)-w8xD4v&$(ar=Thm<+mSt~+9j`dzjs2y7`ROyp2ORPzk$RX z`zb8B}7U987_OU;GyXDQd8W2c6_m=q$pcwwfx~f7Qsr&4 z%)b%lu}s5I`8~Kii&wFcIa%#byCM?fJf?horrh^D7)i&DRlqw#+xpM zzFuT8{jjzue~1%;6=a8Rs6U)W31|>?pKZi>OmgO>`}nMZh0ZQ zEH5FVZU7#pUgt*V%$Qo@%1|&iDogwr4113|tute+)iSv1P2}kdI9urq;A2>UXG!*B zKp~G^UyX>VjFU5aTqN(e4e~|^gPDNZIcWiE%i@0^PETu#mf(GR5kFF>&jwmmzRmMy zHem}KXGN^txpEA4&68paU{K##B zN?X@V!;JmBGx10Fy8s5x9K@R3EHc%MsV`H*7Qvndi&r&k8^+~aL_l06az94mn7KV8 zwA*x`XCn6^(Q>n($hD}N0SVqwo6$q`8PY+_yHF|n^)u|DZ&yC@&Xhdm&U-^xZ%J2+ zM>f=EVj$e+pFozHbm9yAapVKlQEbhW?M{`B{^ZF~D?AIniPGRH=}srZsEOm*X;X59 zf0MX$uatDB@|m`~G&|H?q%#&ucew?*Q(Lgwn@e|?aYEERS_u9M@TyIyv#Dor3GXRP z9Zv+)O!lc>LbMb(yHCKRU+gY=i8Hv{@sZ(0xZPoY`9(HDTPfozHt?@fjIW9FMLp$7 z)fdi!%z>&i3-+$vHMkdSyCMNJu ztlrO;9+q*cpKLH;Yh=RvV!{q^+4JoCV!|81r|>X%l;fzQ34hI>#WP=t906ON1pPb| zo(!Ps0QK{rcONj(KZy1fMO3sJq=6YNYG}?&0(_hqZFO6Ies5?v;b^xnPodxsL$rZqEQT?sA@g?D8rybVm2=Zipv<#~r&o~!RgTMu-y z>S@zo^)QeOybJugzBEa>=F z3r)lZh1L78eNV5_ng56RQ89)Mam9GpXE8=BKryg&f7s{N{Sja@@9hl!M|}EJU}ZXI zjMVodKBw^Zr(!&C#kc64L@_uY_2(e-hlQ?ZJa~dtwu$z?!jG5!HywB|#x=0{@K>shS# zX*@hQIXAf9F<61W_IV+{5ZSD{^EyF$Zk}|_y^gB&f=GMLP*-)iayfh_n5aEh?uX6k z5HU=}Sb68=sdC44-lB;6YjVrs?>ssDod^b+yCRR3w-wk)_o48|ImVhu?W(*}z&Z4B zk60{v#2H|b z<7Z!I{IsYLkJ;nr38cV|;|x5;7^Zr#zrCKPY8=(ai=!eh8ipdHl3&kbC9en9q&p)b z_d5zCtc7=^7Gg^y)pt7~e~g4R%a@bycv7IH4rfcX%2yP8z|rhIJyQI4NSzqZ6A~Wi zSA%O}ZwxK4u(tOCXX|J3$sa$n;RKhz)5(xy`DG5dArd@1ALWg6nrPvxNZkcXBelba zqrB)5Eu=p#gIE@=Nc!VPz{c{feYhiE5V4K(hw^Hv^emQa^3k+1W4mCDBf0dzxChV^k%kCbdY$;Sxt$droA+5&*J9EaD8-2OKBM-S;BCjJp!(yaOnR zT3iFVJd^2L1>vq-8b2rs1Hh!ZE^>VJEZ{?W-WXS_KZ0Ox^1-N9Z*pXnNKp^#DPS|n_mYeo^;(e0M*VpL+^Dy?40GcFkjYtL3NX|-MYMJW$UFoQyS1=i zg=}H}69KXhzZ~qBSw5AP&&rq8wa!_*b4_IVys@q=XNlzt z!9}&R^QrbBV(2P!WNH1G7>t-J%kJ=6V7TA0*rULvCfQ>xuGRvt@792y1KeJ$Zq0A% zl%rPp%>^~VE+=&^dBo+BZQaH>+a}0z(*7FSh6|#Jq3Y;)tAI}3&g!>#{90??u_5cI z8rZZ-)XA49Agx|0$!8&XDg&1|{7K;M2zHrOy97LHX($`reV%Q09Bhn zA{*T&f#KgkHIZ%I)|R8%*?-;@Q91TUs>(qk-TDb& z{3ox2{Tn*$`(nR(U2a85_|#wCg4i$~Pr>E&2EGK)HS6_;uH2e{ZY$(;!|ToV{f7Vk z(!=H)5lM;vUtfUevfr7Q}7s^vU#+NLEW&>;W7Z2C3&z2$Zt~?_D+w$Pqb&ZL{1M0G z4Es!?#`Tl!H$?sAiQ};2y@Fk8hCG#sUypqm?^0*vaAZ#eI`JHv&3d>O_@FZ}XlLf| z#S61`(}iPrIe$V9uS5^qfMejp9A_uyP%yGjm?__5oR#w`@SL@qez%fOKxT`s{UD$E zDuvI<0h2fLhG^jaF=ytr*20qtVEzNn?3bc$zA$I(1Wd~1$ongphPDIH<3{w4NyS%M zz9Zc4O3>M>?d76lD&KNZ7M@QIQE;ZCzS#Y$OLFdw6x;$TQILBR$g5_dU-K^hYI!tt z5z^#fTPxM|Gf`CDT6uapdm}0f51Ou#2TiJaS{-=JMDQ<#fI1QIG-$jj92Q%g?(#=r z;G;RGwjPfXHpidvW*CqFuna)e0c4Nv3M~FREPfm{5#x@X(!VN?1>ZwR{|*F0w*&b3 z7VuU69(;Acsy5*n>mC440GPHH$%Wt;{XJ58-HI%OF7*U~rT|9V2G-dm89JdY_Fr0Iyj=%ie7?Ti0*^VCUx*F zh@=iiYyt0H^0E$|1}1ed^-h$a{Bh5_m32TRA0nk{7E;Dj37*;FCJva?Pa0E@)X(h% zSU+92fx3>=S@km)iBdmz1DJLIx!+Ja>*sr*$N z39Y=zt2iI5wO*n-Tyu8*oh_-_c>ZL!?yimTP!`;W>4#4+*UFQk6+|&#tc`Ix`xMyJ z#hoGU8hMD*YX?RfJ`JO;jqyV%w+V{R)~M@Z4+Gx^e5O2xS{G}WjqdCYc8g;+`oqep z8bw#@MPBdwA#X9>0J=U#vmODua0aKRJ+X;5TZ5+^Kn1-y2}78(-d8csdVeMxR{aBF z@{td)g)5)LD+(mzs~XS6IJ<3O#-sx`SwXLDw7*qQBopdAu|^Z>y(0Rb;2FyqFm&Wc zxL@@^OlH5%54y=|0sypEWM?~9!BhF^GxcJO52U{V$skVcFG*|ooG$~f39D~%8Eg1g`$oA&51>=dJiq3!zEAl*P`se?tGu9dKQQ(-PkLMU7zXVU7%tu__4ju;1WvE4rdkR&}1*%B6_aSG}Gq+nS{^Wk|nG&s-Y3aANbQZQN)y0mo4tiDB z*rAo`C&-hPs?RQ%Rs9s^60TI20Gn11Z1L1+&YB`~){Mv9ob@#U&RLf|;pVJQ034dL zMsBt?RzEFsRyE|voOS#kpr;0jGG~1Z3{ADk5kKsHv*#>XEIz!$O50(j{dSsLEJ~k* z`CKqN)j{k5isfRl9GEN?p8}ZF_HN6(=pOq!6Wp>m{N^c;aq;|#02hZdpT_0!*#Dr< zUMSXsKo*L>0+7i$qAq_%3VIYxRzer1jO7MWFP_KhB5K=e3;ZOTEkjK~*ghrCyr7#F9+g3;ZOiXT9uVT2=CSpsbf~gv1;7gR75d3`)Ipd>PUz zLE5nPvkv7*UXHFlz%F9dZrILi7`}h!@a66509nMUAjaO<4~X%|eGza>vRCuSdYAnu z!VmF`)vcy z;M14jT6a&_tRr4xe+3iuF;)UegI6*2%KGq1$o1hJ;M10%^mih2>h;~Bs#TLYD1N~o zS%o{0Gxd9}midx85~)+09m2N)=K(&^gmbgM7d%*B_$g;R%4PLEX6>$V_BMGWvU|u( zSMJyPsU!LHMTApBgY@ku{6lQsXZTdIh z_S)rK5%}BJP8TmB0VLyNKM{^J!f;7ds^%}mAG6IJtM{31RSd)9@~4rpfIvJW)NV7{j6`G z)VLF&mxHKpzzXk%I_wv)`z`2!oNm~bjS|#bFo-yox2YEIj#IZv)HWIyFDE6W3^4+!kCB+5RUU<-$LT@s?x&&@fU#8l1D_m>^&Y0*uUGp zjk43)onq~9p!UwGMcC$Pt8CIsPJ919*o0qU_aJ#I;Prr>c5Gj73M(U`*ulp5C>R=m zayLX))w2zXfc*k&TJlAN_&@jd+Bun zCCN+BKSAwBK%|wmx0taM@-|n)9;FsDmO|bZhcK2x-klaXZE_r!1dp_ujjnjdk^%XD zx_y5|lb>@vZ#qA0rB(+w;6aU^{zwMM8bQ?mqh#;B0QK$VwS{Cg5farSn35P}A^EIr zoReR$zaP(s3PxEljiM~*+*Nt7Eho0%w6naJkG-=O$3`iNU|^I#2Q!_?$>o=<5!T=& zVmh|b$B!R-4A)YcQ4?~mTmdHi8NsUv=K3+8a$^2)O7mk6lQa(Q*fWbsS_{(HbIjCN zqx7-o$z}Z9_n}8V?HuRu@bs}TFW!3|L4MjfE}wSxzk{G+ooua8$%{N)fMx=;*g<~Y znVwGFh$Q!EXWfi_JHKCU^L5}z>_#WeZGmeAz!x`*;GD$kOfRZOvY&XcDd1v~Cli%P z!0DR+7bi|S9B|34fHMhxKQgzJddd<9N&&ar0Jt25ri_?>kNjo6E~U7`x_~V|lY7oM zn4iZF-sUbBEAseRfZTHl=LG!VZSHyXgz>@KaA5|V7R3i|Lw@i!LJ?VvAH2<7;fRBf zAH0oFFG%o%x4Gw2Y%=i<`bh2tgbNdeH2gxs#R-1!Hg_dq_rcrTng?iRzudJq!^{Lf zc$<3-E%p-p;BD@;Y_v>bA>|3&F2M&kxz~}rERUsH{}~ck4{zaDK6snEVJdQC{_XfH zpS|_R5X?{Jb+5;79zT1VSI(;P68so#9^KREMEN~)d-5(azc{aVF-BT~pS{gHQkp!$ z&)(+Q&)z2Z+1tFnBuTOfz#^Z$&Fl9Wxs&-FMw6RP-1$drXwa0O{n^|6jvYahpULlx z=K)@VpS{iRVm0xzxB2$7w+VjsHoqH5l8MPf0C%UnVrZob`Rr|e`6Pn;>}_JTbl>mL z%@Z4NXN4D2+R_j`7EDb;7`HEIs%9cPxd#mvBo%8I0T)1u4=b}${Nynh2SE!#lF2*_ zrl3fW;^Z#m2gQP9l6R6UEl64NEs~W8Ql4xD`9Y~5{gM?JNb&G(Xz$=~!FGE| z1_lXQ3AWcuuA}sfVEepeKbq7A7Y&|Q?SBN7Ws~_5)s$fkA>!f_>*D z&mh)CT?AnVy(9yJ1mzNYphhJ>r!76yV&q+ENjN-{`6FiNmZD!G~1Xu-Cs=-ABQ&%r(K*&!kY+UYU*Bs^o?6UpI;W3-rx zbPfv#iB~XgLt#xOo^2Ds#R-1=INW+aq-9Vm9Q!e!M#{&J!>!|xfzoVatP87iTb53N zolb$BPJx}yZ8X>E6fsWcwoOvDnExn4S)K%{h2~#pk3h=?+0}m4mLu zvbkPz822bK|1yxo{D;sXVm`@>?nEbUvPfZ0@XY;4C`M54MFc>=Dlf|E0fPB5t(w;z z!F(YoIyZwB`$1+T(>Wi!b55R*glE89%=XVT%OpUM^^m~M3$fv*!fv+Z9Gqf0UIJ-j zz|rahp=U*|B3g*{R-MKIy@Tk@%e0=kngf5XI2T$nEfvG~KM-?X_N*0c{_P?)BPK;efarD)LOddqL|k97spqi$3)Y zj6ZBHYGpKcSpDC%bv%ZG{{ZChdufrN9{_F3?lkSWQOL!hd=XjG+vTACi{CR|yMH6E zn!uL;))4p*z+V8g_g=z>37Uei;CfJ?H$_bBsIuG(OHOfJAqkAsF-VWpw;z2X>3~ z*n|`t*e%{v^+(%CV7GX7V7GX4wFXo+uv@%^AU3dDyhsom*ezZxhz;x(PYYrLyTwZc zv4P#xzHAQPliF1cL$iQ|6CfORmRAW22~rjH2e- zC~6_2sQEUETF5ABzKx<57E!W|q82WJ9Dmvzq!fnq%JQeThcre}^T+N2l)R6`Czlgs z6g7XIq%t6xkM~CLPb!6X#8Oo*ikg24Ei1qWRx3bhEj))>ypU1U{NN@m!Ml zA)~1I=MheZjH2eRAY2?Wikg2u`%fk;&jW0usD*8y!2i!EYW`VEC_s!}iAyJEbd98n z(W_oZiLKE!AQhus6gB^%;Yf-5e+EU|zh2-95SyHwZP=E&`Ax1Z@(x9$$~zR1Do?I0 z0=c%xPckT4YLS<3uPsuG9ptCZ^zu`jF5I<6elvdCU%nuFkJ9`W$h8>QYF5I=x(w@lJBzJSg@{O{Z_&SF z-YQ*)h*Wx$#au)xeXG8gnJyxgZXA(H-=UvHZWNJ9Z`MztS0W-+AwLSF8%LzljU!U& z#u2G>hP(-9E#M_4Y0sS^; zqli@cLCK6FQt5{@$1oyN6*3}~J`|Cv`E5v7asQDV%ov%(Id`D#Q@l1yEayn{Qryuc z&Ly1Fg4bq=^GM2Tv!aC=>_se!YqKI=n?)$T=ERL+Vud3Pig;}nq4*X*ugwzYQ*1JP zr!C+M2p5Lj>?JNFTpV(%msm;IU7ICpe3)0zFR}Jp{D!1`@oG z7iMAhg<06MDQF6c!``RhH{^v`XfMn{UYLdU!Yt&4S=g5(4ERB@a$y$s<7HDpvPp*< z$;}J1CP%P|tfnT}7iLX5o=e(Hlg{sxmKSDC?1fp#3$rHn!Yt&4S(9!gNrt>IYto(a z_-%BmkPEXW<(moe!mR0PE&`etW=%JIh16nRm^GcMxxxl=RgyeoFgB*)cF-l460|jv zJd-uzr?~Y_HpGc4K)zg+B$p8k4PigUtCHkz*8@(5yedgv z#`dGd$09B6kHlZODoI|>gn~@+s=wklMPEbF6t@w- za#fPN_D+Bhw7yp&5_G*4MCJ`-c6Qxh?c!BQ@H%MA+Jg- z?1#K6v2YObs>HG;Ltd3wxH#lhNpkCt5Sc-(u+`%}jg+gB~uwwF4^Oa7jT z#bN8#NPX-Qz?qO&CCOcv0WJ%9Rg!$1aCyk9lBA6jmEvlctgA(Oofq<|B>B{OAiKR3 zuS$~7&Vl&7UW)K@86It1DF#* zwdXdl9P~n7l_Xywe~k)xRg!#_g(Y+lri874oVi>Ec9%yedh)L1DNmiTesQ z5%*7%=J-hdevE30`=?7fdn!T&;je7=81&6X8+TVF$+yk}T_ACy3i>ujR|?mFrl4PY zfL@9pV<|X_Q-Lo7vEb;=>}{zfUP1qV04h$M;S~&ESh7sWI8g-yX;&Gp5y(RsEeXH` zibgCV$POe4e!AJ2^=+Kq9d3Z@W2RWnXh!BiqU zRmeC|1v9wQ+^<5$iL!{qiRuAE0*MnHB$P6nupf4519%QCPKJyV zRWO%uVaPa91t$?M4jCuP#;|P}GEP*%JldHF87Hb>KCRi!8v6=5B~Da9g;buzi7FU$ z3)OFjpn|~!JzM)jDB720t6(TAp38>ZLorTN!7zexf3E!fN<%Q4qF^S=756tIS>i+$ zoI<4qWxC=>*d=3GR~#D47Pe#A!gefM*p6jgacC@C*p6jgVaKw>iP9DOpb~lp-`t>Q zaF!l{ogRUm9)X>n!C86)c6tVLCe3)dDNdhya3$n7_4Vjy@Qdp&EuHBw?9;1c!qrD) zKsA=16oxeuJEN{_sV8PxBe1hZU}ufM&YFo?)=cC?=&TWu8PqWikT_9#;;RI!S?7~@ zY)B`Qdcj51%s5f{RDzt$^ulWa)nr1(iPDSMz-uxg<3#DjM6SqK$1+kyBRlT1;UrF! zK5Yat4rklu=rg_m+)Cm^wURhdtt3uVD~S`;YIPgXwAzoVh_#Y9QLQ9SR4a)S)yl?+ zI$U9<&CwSYV-9L1aiUsDoTye3C#sdiiE4EfMIcU;UOj=gx*wri>ovT6@j^aM*T3cN zDJOgcWco6~v5;}1^yR!2hLgB7M&d-ZItTNJYGva@9WHUA z^o=`7ByplzNt~!w5+|ya#EEJpaiUsDoTye&oG88dE3l*xCrWQ&RRY9T|4xEAA>%~p zt%UuMaia7#!ua}b8F=(|Dl4ee_pHX#>5y@v^u05XgsHv(&I$R2E`1-3_d|Z2OYh)z zGzj@k5q&@5WXR7?=m!WFVvDfc(+?6ZmNBd!;z>3WmUaitqg^4sEKFtq+c;4v#);C| zaia8NKR{W!*63$upc2CqNc=1XVzNNn>*omPgp3oVpC{~xj1#3_ARL4e#%wp?WH^Lf z?8VDrKyk=8QF_lDh{=Q-2){zOUAT_j_f^7W;jK*nBjGM#9p&3NQ6b|*X&WahWSl7d z22JZ1GES6!dnsV7sf-h)|3v0}UW)L(wNPA-XA-RXKXZY^n)(z~yu$_kfEO}Olzw+P z__2;MPLzJ{LLgX287E4=FNg^lCrZ~>LQG98WSl7dHzI3dA>%~p4~W#pLdJ>G9}?LR z3mGR$e?(+cEDWghV%~pPl)V@g^UxW|4w9QEM%N0y`M;3EM%N0{SP9$V2 z=}(F5jfKOo0n?um*%u3EVF}Qm6RD4dj1#55AhJIeGES8KlE{Hr$T(5@D%~p z14L@#A>%~puZgUQhljC&zadf^4;d#)e@kRTJY<|G{T-1_@$f~K=buEj#zV%5(*Gi| zBOWqNl>VN`&UnZ;QTiZ}x_HPqQTpFRcE>};iPAq1*&7cTCrbZFWM4d-&zb8dBK7fb z9`*c8WIqh$)xs}CT%0KF$&IIr6Qz|riK)r;|IT)>7~@1;g&x5!B6mH9;zV)O#r+;I zG4E64UKLS9aiVmNVtOH+xwL(G5*H!ttZ{V*xNMv#ogF7iXUB=sd5X5$I8i!Zgz+dq zMXfiZcl6V##iR%sCn|LsWqNXMN}Ybe5gb*F6O~$W58!0TI8mvke*#<_GEP+Lte*g9 z+I-l7Tcx;v08)z?Ckh{fyapv}TdA9<&mdi5L+Pf9Gl-3{q?3xH(?(g+1%lWpOFAWp zjSZ!n31VYI=|VwlY$)Aa5E~mxw-Cg}hSEifgWbl4(#4WfR>=4IbXu%&v7vs1VbUB; zy<*0O(j{sllG^Q1`UrJ9`jf&9Y!n+xH;N6VE9K2kT$M34lpdsx#NfcC{anuSgVZs= zYHVyMJy0N>hi$U4p&aI7 zLpcl=`n4R%mhWz5uL(!XfW`HGHOn_n4T7CJZEPq#L5&4gXJbR@iGuC6v7z*_g5h%R z@0B)lOI<6(Bj^hP8U}Hn+DS{oev7z)-!D_Uh;+UQ$n2Qai zrwis{L+KfUx!6#8reK?FY$$z#U@kV4K2b0i8%oa-%*BS%vjwZu{-d0}=LqIvL+QDK zx!6$pB*9#4D1EYE_1e#HshB62iw&jc3+7@&=~D!Av7z(=!D@{EGzZwJg1OjGdZA!0 zHk4i@n2QaiPgBRD9X1*N2aHI4y5eSgD`P_q2X13S=})D<74ns0{h2x+3T$jB{kaSZ z8yiZ0p)Nv>jSZ#06vW1c(%G@09MY~3mmB&!#oI9(8%lq#)_~u}hSEPN?ek)KAlvn4 z#rqbFL_WjSzX*nlX~u@qzeeMdv7xl5?e0KgLun-#E~Xh9N^8ODZEPrQ1j8dT#)i^4 zf?<3yHWXfIyb6|Jd@(kZZWJ3zH;N6Vn+hLB+bk}GjbcOTW}4d$j3~y2(uJBkl1*-8 zw9q_7VARNHE0XJHj1w6{#e%umP&z9%6o+}---h`z?vD^SM-J~dU~JZ=UYXq^eq4X+2Y-}ifksvlUl)hLH8yiYrDoDRV#)i_X z1+lTA^cq3xyh6l=(pL!btXIf=UlbdvkPqW^tz@~_PLT{rVcgTx=+PtzhUK z?b)lY6U@bi((436Utw%0eZ63qrx_bcZx9SUXE*t75bSf*J!3=RYwIVYW!eV%9+g5@ zD&%dp&W;VGvtvW)C^l5vq<%nEH!x(!hSJ%wp>%d^C>_Oyg1Vh*RRec+Y$%-_8%js9 zp`h*w^<)D>c5Eo^Vnf+JP$#Q`FR`KYQ-TB@xSvr!H*jaihSJXoO^)S$KASs=4FzLg zRNb&3*t*G%4W+YVL+L0s6c}DrCpIu-$A;1_Hk4Ht#fAdI8>+T}Av-pdcCn!>Llhed z4Exkm4Gh__p|pz)Wf`K_P+)jZebc~@9UDr!*ie?C-qrvDFX+1^z+Q(bIL4{JVOVw; zj02iI6Q{`duk( zhmkm^NGaGrcc~?q!rIVAbWO&F(jSTeai6;}1eZfshRX{KiTfliW^5?kN^^R#v7vN( z-5j&8#D>xxWWvIeN{qfE1h%oEbeZO!%f^P%9R(@&Uxiwo9UDq#$A;2fgsjXC*sdb2 z+$&~mDBVqOf-!B&bh*Bi%6StFST0p0Hk3nbY$%7=*ia6!v7vy-#frp+0wOmn5*rE# zC1+6XEAWeJM*J=2MGkUW1IEPJOLxLVDzTw-Z<)qDi4CRu*bMumv#$uUv7vN7nYD|h zf{vCVW#qB$F}fV0Y-}i<9UDql$P+Ug8%kGd8iNUkv7vNUY^ZC*#&v8(#)i^^_3w~k zV?*hQdN1u{33PUBD2L<}p6u!4ER6(d(%G@0^zmYHVWGT$HpSX6v7vN!Y$)wwL)i|U z9UDr|uH^)PylWPL$`SR_!bi?)m%@uy(PbtlBw};t)Z zt3ks5au#81C|>4BY$!gswO3&-HWVM$3K?QU@kGhTvw|Or4fQre;++sI0&$-YK;r&b z5EXyQ{lp_$<3U$JGS#b9dmQr^ttr);$1t4myws6$APX6-Db@4@6$ zzx|K~2}h5i1V(F0*=S86!!V`#Gnwy-P=Q2iN)6x}Rq3QoRbECGAsa+8PcHvbgXaMB zLq=;#4IxQj?*VTFC}pehBwABy=nSM3_^IK~<2O7z2lOMv_>kWhON|usJ>3Jls??~> zq|Hf<`J{oiN@#7grqtNitgP`#99^xfYROM6^imU?Bt~mWP5jzY9@n3gy!=W{63Q@+ zZBA-3Zz6L%-5k?b>iAO7pmL_3LRv;^N=@V8+6x)2DK(w2kNYI_fYgi;r1euLTt`|) zYf9N@O;*P&XG2?zuGH)^Nt;Q{-A7tRYf7EOy{8urKx?N?=H;3nGFnq=9@CQ{qcx@G zGu=gNN}X~Gc#l9coPEX-pg0O$BX!OMlue>FrIxdJ60Iq9F6&pKHKopD^+~j*)C$&= zL~BZ&&*Dk6rql(rUZORnRQWsN&SEhKy&{Ap$ zpELwqDhtz{OqD;(YRNUBB{!xmc?v+^x(@v|?qA$M&kKqFO3$7J$_E=Ld0ip;vV=OK z_mI`GYY+6=3T4vRUvx)Agv>58RMfNoy^ zb0FgfIdD8mVL=*q9^^IQEqBM^PWdg71}g7_9jAR{(fxLt&s5X7g+;`q4jr?s?R3bb zPWCDGZ2R9WE?4zXt!66~y%zcW3!_-ip4zw^hV(cSuA}yt`88hV z?5Rp-h;pv#)fDMR|J8u6w|bTm*U5#}UPqF6DH6J|6F!eM?<5cqS`C&XsbU=u z>f3?!xu4wY<>snyTf*0~Nq_zI*OlG=a7={ue2amstyTC-@6{Z$(eMv})- zaw(pK94X)C8^>wt9H3Gi9j7+^ZLo z^FB6SuTB6e035Ty5&i0ZD=Lt44st3+0=SXD3;-Vzm=7TS34jRz1_1E9%9Q|HJM)i? ziZQ*{Iwa2mMXxIWTr8w^C8g=I+BET+u&{&F0oFwixs_Pr1gwk%ZR|V;x$ZX1d<5Qx z*<$eXxecR^5}u3+PJ;}@;$ z2>oy4_t1ngKzansmfy_!K}Iz}W;oLDm}ph8v`K z1G}KiFFU=nAV*hR-VG{;BYF5|P&oiV-_N0P2Qn)r0ILC3!SB+117Mi<3O;@gj*3f= zvf>M5UCk^4Hv(AjC0Hv#Q*j@#D}Yt(1n?GtEdYYAAY%#g$5F;^q@02jXd}y8KyM+6 zvHs~BqxkD}b+3_EoQll1kvX8Aqzo7MZ%gWpV43u*mOl9^%OvF~Kj6wU{%f$!LWY#* zE?`og@^4_v4kUL+%}aTHj}$3S`L_UAo;v{yI6zjG=OreyJk7oX!19a+Ff8*&JhP+> zmS+o6pbbe*Z%o3erz*e zgH~!3U(=6maR{B7V|Q9)G~f1b`p7-7r{Qh?CU;=b`hVp24gpZ_$q5Z_e03au^s^@pqM$s68Lke zfFBZEeLPc_6I>%8-|5Qvtq|Nr@N!A*LhuSnwXV*C$!1-h1soIrUq>+J=lqG{?vV6a zrf(w{_rJzplwqO9ktM{ReX*wMI{b>qKrE@SBm$wwXRNvUjIhs_@M0|lu^t1lB0;Rj zK&)60>oE|+BNXshkAYZ;Al73bRw{_~7>KnLq|SN_#10n>k16Oe5NjnEuD^JGjAaDF zg%>>rVr}HAx88aT#M&u&f5mzX#5#!WxDKVqXRMQ8-+4YgK4V?f0}zJGQF;u-%2hS6 z8s*dDGuA_%$z7!U$Em%i+K1Y39s{vHYCkYsmC|D%R-v8%U#;~Rh>eu!PPi(i$3Se9 zV4JMRKy0*NxGJT`Kx~X)xGJT`K&(og3@JO6cnrkGiJf)Ir^jckT73z9^cbLrK z@eqhT#_dF68`xsIWS1)*pRvbTeCzQUt7F6QHJF=_7WWSV3)t4QKV+X_DjQl-e~D7* zA&`TbZ9>}of1-ya%M+!fANLmEeu;U6tLp*R!OfJ+)ALY--Cp7uA~T4<-)}KR z%_IUBzZ=POD$Pb!1uR+$u+)_Hnkp7cBSI#PFawd3{H2qmu;!9CK@xJAj{55li3MtL zh-qrLFhujlV{ZOX8}9>U3fE9-_-9}_4f9?z`Fj6I@|v~v7Zy_cjgEd>#5byW468{k)mob$fZp68UwF`u#+67_(+3W%#pj{vc#(ZrT2uZgK1VOt%H1;ktm@^x^%Wgr<{a5cYwoQX~ z8IcC>G9nG$Wkedh%ZN01ml0|3E+f+5T}Gs?!Mlu@TPxsQM$D}h@Gc|f)(Uu+bw}r_ zZ}2WV5*QwU{6Bb?Jpd_gt@vNO%Z`D}L*8X$fVs5--ep;9MZD2k0q?Rmpuw#b@Gc|f z)(Uu+5p!$B|KeRX0s633XwwA^RJI*0llK_@@V^{ZFeP7$tYY8e$18$!x}t?V_7pEz zjC2d<1nF*ssn!p!Z-A3HE2E%S%Wmga>uIK&D_UY60$1goqIb-0PG_os%Tc~vjsh-6`F1%9xE$r%05*-P75|BI5=`(;fAa|lOTGvY^>3fst zLSt<}?nGC@HXwH*D8vsB9p%pr9D~47gb#InDHoKfgU0fIY59*s>4uX3G_Ab1N5KrwJK6oJjaNq6 zPSdO$HK}+BVx*le@y4b@Qt^_W5qb?!SYJh1Ewt!b;^h3{Pgbtl_#&N{v2srk3F+!8!XzU zLuk>w#kgY{tl2m30Df4pggzN!AE*3aypq>g{X<2^DBvySb92M=A{b=W9=PD}YM5Jc z5sAhK(MmGCOT0?I0jUoI$2+jqhxuiajB>LC91>Dd6-%F$+S@%+NZ*@cHAnC;t+cfm^FJ8$&UO9=uZPEjHOr% zwDp;A&mYaPhtHi|*j`FJh9$lone7>eSygd({~y}kJHD!7YaidUPsz^CAvrn8&N%@> z4kUqu5<-s@2?(eN8d1s>q)Jmj1eB%{^{QCFAQnWt#sY#hdQnkOW5;Vlv0%?tRP3>1 z|2@x|*(cHW-p}v-bmH&$#QrB_ zzuBm_-B*5`hkQFF&^7M@Pp1fo&p=r1YSBuiaP%wMMB_VwMUy*3 zll_1RY0Eo>y>$ReoI%C!lIkuDN^KlV9aiWX^z;5GrNcz(z#3d3GRGo~w!JIF_Fh6P zS0k*DR{2=V%wR6ZX_-w%R^mOsT$lMWj}w^%A?VRX@gj7!OC=54c`5d{z+Oxhc5zrA z2X1Wwc729AyogZx%r5r5y_A)su4S2qnlc$d52XZVVUm_I4VC=U!;2GHy0tWz!(fNQz=W3u*>HMs>=ZVm%KV&tP zIRHxyxQ<|&0n2duS1F8-usu$&%z&sHv`XZZM~Rybh?<_o%sVJix5B8oDy8lEZYj)>PK<`6UP;Js~H~bllp zsd=FNVsH6W7h7%Gi#s7d5MnovggBPH#D_3o%?3Y!wk?HpF(YteI;FCD&IOyPr^U6NV&%eQtokrlzW^Y z<1DptkCW5~B8GOc_`Z9bV(1<}7GYtB?Hgh1Q~y?#AQ;MqmeB2fXpWUx z87^&$IUoyDPq>VfmBGn7+?f^cWL$s=D6IG1S=@VvyE3Ol24}8tH_~n8;J&clduMPn z8rFO7i~$v(Q+w~5z$<(2a1Z7mbuc*8H)=1k^vB1ruY420(CjXp{JxF;lCaunJ-5l%ej3td|4le3 zc?x8CT?nTV?gY%i;(gi(fOiRS{%@)TTKwKy9Vg28(8UAfT<(lg9Z4z+cj)X*?Y`PZX;X{*A!#ne%YP#SppQmz$>MCgWx_QXq3wPq7hZ{%md2UnR)n=kq0+NMx_K@Fmgd1` zsE})$;AV~wr3$&W32rgqzs6Y69#Gv{*B!lHFHY9?(bhX@takChk;oS}<(_V=cUnv9 z9r!;w;n`_E;o14q3D4pNO)tF-8aO-ghyT;{(00WQ>e9DnWzY@kVyi})Zct4JGw23& ztqllvGUx`?bkq`$WcsW+MEvOxX)|Ml967bNRWzgfU`(2sJP#$K#R0+@Ezd*A=-CcD ztr8i%m*Q6r5YEu&p~wNk8TvdFIY2n0A6a;YE5*urC>fO_nK~NjxQ(fK9!jLe0m6}% z=b=Q(R+Bdw>GB16c^*on#R0;R76%AN%E_V+5RPH~!3gzQ#wLUvT1EN5n^r_m>~d6sadIZHU3PnI*yS;E-^(gDm_!r9nB zSefQ5;cPZura4PEn`a4UnzMwnUnQG4OE{Zn31^zKgtK{;aHfBja5h^d(?3f%n@^TA z{j-F#X)Q97<}BgtN~+XB(Mix~W%DfI%womO;Q<_0z^whVgtNI7&-Bj{&gPTlO#dw5 zY(81e^v@E`=9A@2|19BbK3UG}i97ON>%_qy5{#kU{Jc};VKT9~fm^oCd_V~fn8KYM}(>z(u ze2}G1*94jWoR`M^>_b1e5euqJ|) zlMs|S&k7zwn{8#zHwY_q`TY0g3G?(qm+aTN$L}b?bW26OdhLaU-UU>eFCwaI)Qi_!a~kJ z@K=u2u`gjjtE9cQ59(Ns`nB~5#9E8mBr7BnC*#=b$Pv||FQ;gZqi-mvqyzq}|4j?J zil$f#(kBp0;tfn}^twjt#bb4BeFAYNzdUPs0H25d`G zeHyT)^=ZKN)?*P=QgTq@)R*9 z&ux4T#XNIS202y-XB>bvXG74wpU3;j3B>jec2g@8uk}8_Kz#zS{otFR^$EoG&PLGs z1Y&y^X?+5*{m2L;tjv@{<{Caic!NHH*naeLfZbLmkJYiCAlDuoxeoftZxCTlAhw?( zS0lJ^V2<7L1Y*183B>lZOy7k4EV!OKh$Q9&V*7cfuhAzE+b^)N<^*E6F4ncFu@HoRTTNvUmV`v1I|$yRGqEZ%~g{~!12L#Hp#Yp4PV`0v!^Ba z?z6hlrpamh8UCo7>>t3BFL!y}Y%_g6mR6dA>MU-^VQ?GuH1fwmr-~I9XbYijryyH| zP*JPkGp^jaDK!N#dGiym<>w1p`GDVrg4W0$D6Y7V5Wv zWT93;P(tp*`7OYLApSy@Qw3$(QrD;ARZ!xS>Mo?m8$_bvL)2r+lo<#R>E6qQXo2-Q z@=Hd}0Av)~YCW5xeIZ{44PHgP@fFt92=Z5UXPOnB+B6Uzo}yb3bq-dZMfZZZ8AS1; zAk?wN&+}(Y$s7228o?zWf~ZWQ{yM6CRDNqf)fiE$QzB1+$WBtytx{6>K02@(YYoR0 zDbBUvEM9~tvao{cOw{HS%iUzTT(gv_x7jMU>KdyzJgdGvQVOUx4TgiEEQ5O88e~nJ z3r)*D(n%P%1GqDnbLzGrD@9dz;mTWsFA>?biJ`X#Ij^0E>9q@%{C9|`2Z_+M8hyj5 zH{?);cQX6&Hr?BIAd@^8oNYqLoB7*lq}mtaV*xR3h48@%(M?{x*Q9(bphT%}Aj*?3<4w_1 zfK+wK68!8$V98k^;zb}J&27UD)t+}Kbzkwi0yGbVtd?*KUPl;{2NSMHDue{ zism5bAkvoC0+%cTI-9E%{PQ{%p~K#!JM8t4#11R77dz}tEjsKL(_vYP8dIjW-}_}d zz_P8vpEn`6Xf=qwB|)oK!(SLnE=SBN#9%Ck*+g4a;12|`dA8E%;B%BN9G`syVq%ge zgExQhGvbF^T^7Ue^pjqEFJ$%R*`;u1FEmVjXx@gIl*joh4h;0Y7~xY5-h-M@!*$s8 zCX6p2Ah0sW(119M|g2Z7N}HpW+!j3r7{~0&qW7)&G%+v zl*#~X5Suv>smjD|Hi+H4ANY{Y)6n%FwYh`BGupGury~0Z`WqZNC3yKY(O(~*%*$XbQ zIBm;7&<4!}QQibzu{d`EiNz`G%u@Gj4UUJ6z(>umdebiIg7CS*VtM(xsi|b(5^Pga z&D~Dk)0d@AH+fHARy45IdYLnjCv$d__w*&AeK&beUzRsAe)*pMRxWZ1 zd-@_%Mz~NM;W`@`%R&xZ3F%^uwG3mLZIJ?1tqyFmTGN1QfAJe~ViZ-iA5oX0ctu}; z_yt7CK@iV(0TF=MFqSd?9#BMgzUU;Bg?b z%0Wy4F#*J&dc?PjOtelQO9|u9ANvcnWt(mbV7>Cb(AH$9s@A4|BITwrL;N(mq<=?tJi^rFlL#JaRU59=2m= zQAIMJ)xwz87-LFptly8sA3QfPziQL;7<9ZIQCC8TqOBm_1<{k)7a68HR6ww{=v4%D z>ItUjK%7Y8aS#uH=(X%GV!OYG80iM3>VBHovY<9phVNcAQq)kJHs<(-s!Y~AUqKw_ z+|DxRR`voy)oZk$NM1bAxO;E(x<)A18NH`ZklhF8HEXNXH^?SF6C7Q*1XBHi6OiM6 z;9;CFANfPqL-aK$cUVv+$ew*rBu<%^f+$~z7(G*tk(sgyfigjk>I;GsrQWdgb%CF^_&-u3v_=I(+1QcgAB*(_jAB_<2@ zgeD`W3KgP$v_FPM!?z=R*bzmy;b$cH$``V-8i1|@DtQLPOC;U_(d`fr2SCgq@iK@z zK;TQ3I;7d0huMvG!wJxEe1MoPG#nZ(><`gRVAI_v7GU@J7=fK(PI3aiJ?YOC$ z<AjEhc^;#r18TSB3QEpJtd(dQxpPjDj zUTs>E@JCUuSjSf(uM*w{q!^8wX*HCC3hg7dPaP+w&2@C@dMe~;(>4x_V%n|;QQnA{ zmYaZ25h$i@#9<(4+SZexY5N*P#Uvwfk@+1Ct^R7-@=aXyt(0l&Gz@uF1B+?914#ar zszH6B+2o*Xvy-N*RT+Mnvs%9RIS1GCIyfLZ1#y3FJH)0_`7QfiSK zVou4&I+=SOE&-(67b8`917iPFZUpLbkMPS)Ldp%IVvUh{v-uqav41W1Q6{dbx!j`< zM_v_gn{vMa#DCH@om^eYg@{!%gQ8<_ajm*ulw5EG64oQCrIK3^C`x`sf{oMZNTcLr z5QlRI=8J7YT6^0!P*Zkc4T4WF!^o^_o%POY_^JK!`3?7qD^C^>pnw%5f3D zal&o<4w){ka|47{(o2RUY@OGE**b2^9y!*uZ9P;$j7+x4qfC#S3!=OcF)a(d9f4Bl z=qOX@6G^aTc7mw5*+_iQ{JxGp)1n}RV$O*Q2oo$1%ZlD2+5G|1L)FJy_GT5VV_^{edZz+y-hJ2muZ zWH^GGyX#HtV?NijfosUc4c;Zf#fpB`#D3{>y%2bWTsipj7`ZBbG%@9^v|>DxnyaUm z0-U;kPD$!#;!iNYc(BM*Z$(m%V<>5ciMh)Bc0)8Jy)BaFl4k^Uy3xcx=}X!lIL?<; zN3LEkn3%AsEK2!Ur0ions`Y!?yzK#1Z8*lJs+C7qX}{5S-)~f^u4gOsu@z_SsfP96 z*?vo$3)7$%8hvD;kyY*QboX59B!&J$P`^pk1ha)DSDX!s&v z*M8)#lx=Th47kz150Q0?dmQEz+Mh>_TD9m~>KOa80@N+-PZbzsXkP@PyaBPgmme!j z%2yC5y}aUh)618WU@w0hM8)tdUC5c{_aTV=YcJnpa&Cfbv!slSMP3!}nO=S}5dX>g zYL}6;5V2~UJsfpc#PwAjm}G@jIu2>~AhrirShBi0A3?IZ`i=xwSA)ib;Oc542+X|6 zMt|8fMW)&h5L{l(z!`k+eY(_p>j|j28GP}5hTv*o{3}&Iv3Xb8;sR|l&3a$1-@H?j ze)F!B=Dh~Vv?F7sh}lIf&3mTc(BJ&#)wmQ`Rt0BC^BzUWW$4+m481~Pxky+gn*TBx z(TglqBaJ;_3I;XjcrT{asWQLn0(%a8uLHOsl6k)KRLt`}R}aG_i=mScgUaXL%THa? zhyq_|ze)+*Z^`cK4)DpQYm7-<53XSC0B*Wu!}S3eWWzOh8uA)pD#)*>5^lIoM+`Hg z%JoJ}6EnNWjwf5HdmBYGm-Ji#wZYP-@>?RUyOEmiZ4c<^w1Y0VFT}jzSR|g_k4vAmWP_f{4$; z_^C%^$=`t%1C?CHco2i4@55^b^-Hcp$d$9fScQ<1Z9vZg(Op4&Kd?Oq2_FNooW%1W znn0A-Bfk3^KyU%SkDr{mi2V%2BoMNkXlSF0+6Yd2+mH^>k51iN5MQ4B0MfZttvZ>x z4VnskJUB{zfrJALE3YGq!zw<7EciEQ4}$WGENh7G1Xq*cmeED9!hn!kEK^OIuT06FEgz*4NS3qpMOe`)<w}YVy2EU2i?+f>!M&vLjrL8>lpSX*R}!nT5n|C*Fxs)l=&T* zA@dH(?7W;Blt&NvrJu*rFGuK+yuU@wC({>zNBxSrOgFL$&9ADdhayE;*bbk#0_l2{ zn?@LCep!$UnCV7DGt&zxZx4B4eviV!#rGji=%~%FJo(6L_95kowZc<8j8|AHaTon3 zzmkkl?M(XrcQKW!F>IkN`q}DKqinpw??G>L#;ndBv_+o06t46q^)0d~oC93RhZ9>A zIqwEMWR!eSc8fZQg7IlZSLtJ0WmWhy7`jH8BOV~5=ntF;Of3x_a2BTZ1vBx*!>!V# zUjpuW5BYCXbm&){t#>UNsp`>XsL`*Gv(jt7Qdtf>w+gF0+47t6Ohu!ryVa6TXd*5J z!Zq;n(*IM{E7?gGwZ{C)A zEm-A=#p(-?UGy^u=hKRpf#hk$f(v1{yOe8%yLH#UJo`tUT)c=_d2%sgH3&YrcnCzV z34h_2hZl`x;lqovi$L(X##9i4s*&Z#l*h*wyAWcP*H8;S)cBSV#p!4Ay~_N`Q;g0R zvwq0Rrx>Gw_^&6+dS98=vk|fORw?I&h?jD%xdh3QpCcK|`8bf2bLyqgWh#QtMa_u( zM-ft9OGe875eS;R&{<18xbyhVHpx#yT)b1BVLbZAXQQjXS zug5wqPoo!zM4lz%u+8O0-chAmp7kZRfq@aTZY59h_1%-VRJfZf8)PHj+`Jz>O(IUiKBK6C?Qt66u{!ofyduSELlV z!C1w*vmx{lmM&KdtvA9h8sL}i!|tYZxgvBpgp>`}Dd@ks0k~4$YRQ$h`xKbv@B}@3 zWzafWUUbn|bzRRAXmI(}V3ntO`t8rJfW?r0k1W*)c7R5s&If)O+o;;EFdKY)TeSgo zBDT?woyulytKK6AZQ~i>5Zib=3EIXL*I-cGbBHcmL4W-#8<2X$7|(G3gYxsqVe0ndMYZB0W;uQ zV3~?K%2f0=u}no8Pu@hU`;}#V1Rc8I(bfbJ+xEJk)vs;3Wu0PLD%D~qsKZ7gTon)I z-$}*2`7@=s3_osQO8-$PCj3dg{+h02EEr}&D*g?sLw+O5b$e;5e=WC}XRRBr_$Rh4=O*)>l=ZLddq zPC;YqkiL=WIR(`c)qV}c>1V|auwR^hI@}0?)6W(XoPG|!2?VE~XF=#G2xF|Nx7NL| zkN*9NMTF@ZE-f+oX0#McmqsgquzUIjk9E-`;_pRxe^$gveYKD}u&9M<47j8+ zMq=S3m2oZ!R>lqztc)fQHlS41 z(W|vmzxq;Zdfl%nJ8^Uc?1YTwl>r)t#~@4_hLz&W%h-n6zkJBrVgSGD%(}&Z{~epvIRwepZlpBdMC?UH@r$+!qg}zFrl*{X zwZQ-QqV3P$MEGB#>2Ejx;}!8O?}iVoS%?CgFWN}*i#Arj|4E!a5=DQ;7R*wEu}+oG z*n;L=d^zPU=*fp9`ZKm*o&fzBTQDv_f5sL}2+*Ig1@i^y&)9;k1?bP%f^7uo&)9-( z1vKc-*n;f@na|jQg@VjyY{8@;^BG&PgIWq*8}(;w!D4k5kok-)=)a3Er@RIIck$(v zw_sPb6va26u?78i@#U1aU=R7`+`qt=pa3u)usVp(wfy$vq4Cd`!TI#E%TlV*jkoGwN&&fK&|LH#y-a!a#WP^ zFBSRKM(*mA{IgQ>FQt6%c3=LblrR|(624%Dy``3GP0HOV2@g>Mn^5(p4!0ml8>z}Z z6o_ZaZB;onn5_1gG`_J?n|?~=KAFt#Agza$-4qJycn2a2XduIz*)^3apdAfwG2p+( zSSLkjEhoV48*6!ErTK!)Sjmw`>FRyyy#Hh^|8KwlwRsp?;L6b`k$na92wY8)HuN_9 z8e5zuXHNx}zm6b>XHNxJtO02`H@To!GKFKMosVjahDQDBGlfQLrZor;9lb%AY@R$6 z?um@7v>)*&8a}iu*8a{Xpu>YnTFzF|RT7Nhk%lmPC4+{LOdEu{E)5^^52kvM!m0-& z(sDXux(OdU0%XuR1d-t}40oK*NgvPfh!e-(@C1fOorRDSK7n+ulb!~8Voz`;tn||G z=-r^)yU09q5Xp&X>hLTH{fgvlme|T*4edjGgvIG(*?+?{7@kATT2+M47=;Y9hD)`E zzf!|xT0_1|8(uCf&SE48uOJs7L~7EqDJ z&(+e}2&l~B=W1zf1vFS${9G-qouJ)T*6paJv_e69tgI_3Jt=4(4g;e~9n?GsZnUyS zFIJZ;^%5<{uG(T&(+e77CjqORxxv^R`5%3ii~njN!y+#htQ=x$WlAoSRXq{ zS`H7POWVcbI}Q(_OKXr`j`2ea9dJl*EN4(ZblRlD%b}e^sX{4Ea9|qB z$RUAjr8~-}WodFbv~xJqJA4xF9HGYwFNb!HBpq~kIkYp9wBzt{Xy+)>5r>yUJ4auP z45JP&ht_n$nTBZRSn?#Zmsrl2T5yy)yd2sY%i&t#@N#HpJVyc6TD%_v<7lHbOtM2E{Areu*?oGhjymk01_pklxd_Lr)vlNolb3{ z4ljpxW{}QxcsaCl66u6@E;2# zSAt5ZBdAm!1Rd!M8c9L;X#PwlY?OpaGbPS6ziQJINNSB#jZAeSCgC=+!1yVV(XF>c3HH%Nnew@`uc?+B60>hWc-0`tOjS4XW_k8vs_^h41F?0g+>vaWDlw z)N1!Qf<8f9VKs2_IiN}PK`Z$xh_t(*FrMzJ2I?@%Rt+ZU)FC=wwds1~*8zL_Q8uY% zNKkZwW~Rok02gCPGukF{?}50ma}^|)s29ogrSc_RoRau&mHYtM2N@jP9k|d3W^`oJFDb6!VZc!}70wn2x zI=n?XvGuv9wme>|-Ya7o+cOQ|x?OfS_S#YWRW9uE}I`<1jxv+tnI= zAlZFIfynLy$*%HVKfC>s-4(z(yZw^g*Nop=4DtJ=F#Ye-*?%b6p9h34I)K^#F7oP4 zuEF7c?!AzE8|3!~yU24)&`BN5>RF{kpQz#dA(i3^q$r~O1PhzNyB|7C17+}0z-;Ck zi9Lr1^?!~?+W~~5tth{{k`h=Wv?hlf>1$M-f%=dt?JgW&8VMC5p?HTbVGk+c2|#5_ zdRVHLdL63peZn%nH0;AVz+TO;c2(z(QOwg1*Ll^k&z}N^BZk?{kksxVBA*6PxQD$z zg5ckPk{*cm4?uJF{upaBOQ|ZO@X(RI;;X1QsxnKedOQ>4t0^q&?J_>A4X3~4R-5v% zyyf`3ot6I-5^#Lp!LHu_LHKX1@9`cqgmztUDxQtq#}eA>s=EC~k@w$Y%BzR*G9$Yh zNz`^3#(#&1!dhS%#vcO7FrK?p3R2EJL;B`L07{i}H<7-@0D5K8Z!zG1$0kRo2CNUE znb~LTM>WwaQ*HJadymo8ly@Nt@jtyX#sOo_5;DgP{pm;{e=B0n{pV@Rfi+w`8Fvgx zZY9>TURs{E4?j!~%xbei$NioDlplbVoJ&VMYMe z=;MUohdCao*$?wPWH$R@-T`X%!*KJ{?1#AksM!xgRG0F@5N*|`?ZXd4^xyn2)U!b! zCj>vt2gnbLOgTCvR5}nSom&w8m-F1PN|d8R!q!Cyk`t7}ElyC@v_3&OY%yDXg0iN~ z3Cclpf^zUd)@EcIxPm)L>JyZMyI8II1m$4EbOdv~Qj0KsK9$_$#(FUdg&nFQq2KzU zIr@;2v}*RPKfC`jRTFK*5@{g6{~v1lzuLqzAF|}Y)+KEDr!gM0_%MA5BR&O+$|B>8 z>4@yL3vdP^my*?ke<6zR9hS0>pYSj_aViZ@ets4p8#Z@26GczLd60Cfc6tP7677Kn z$dNOJ)=@@a-HuhcKTyBRIbu!&ORjZ@58E^VzMP8vmGCXX^%UInDC9+dfFgK9uS5pV zpvT0TgdMh@arkDcubE_?l)uW9+aLdG(=kY)%Ri3_O@oBI9C>?S0c$s~4v)#?%=om; zY$kJNeA*TRXpsJ6j8%u#BMz!ZVT=tb1W6mzXmr>&M%$prknjJrLB4_ce{$BD-3j(8 zIDRQxz})7*W6wf89zaOyr1!B1@=to_)T-@NxTU{1+|pkhZs{)$xAYf>Tl$N`E&ave zmi}UVOi$ldgSJ!QKlzJs(mUgfoeKZSUyPI9xl?G=b}C#f-dtm+!v1Dh{Ka8^Gc5k% zu)i6WTS0Kr`*h@B>{Qs_49l$`;hy5LHFhf8SJ6#s>=aIVKNsnYoeKZSUyPI9*C5W= zDV+39Wb719dM7e=>VKT{&Kfs%DqOAZLVmDQaw|yK_>032vee=)4(}wX{l(#3bOvjG zaX7UZo`f)5E(s<%tBd-l{Kaf&3FXU`63P?Vp9ILf5(%;{#I`AIs%V>aPZ?yd3DV~q zji#3>Scz;LfR$cG%F3R-!bx8PfGHkOs+jJ z)h5|RspMaPB~K2rIGSVd3M7&IkEXPDw15N!942G5)+D?;C14P2p%!o$1$2B0wb;Ih z3D^#&0*buDC~pT4$`hr$zKYG(VC47)Q*AnxJ9AcaU#3t`BSmXk;?QPxeWhA+1sU36 zz<-Ug&V)}TV9n}}?y65T+YeG~w8`?i8M-43zW6`c=)nKYI?*_yIRP3+G)Y|0F$_O} z?F3=xF4E>~*LDLyH;k6>r|~z9kxnZVeIJ&WbMTu^A7(Hr2F*%0%gb%#N~aGKkNF6q z>GWaZF&{x9eJB3nF&{xPojy!F<|8Ogf0b;l1yrQdhl$60jHyhg4-=312pX((`Y`dB zk7&1*P9G*7^AYW_(rHQXn2%^59xkKZ@R+X-x;A3T#dO7L3(x^8ojy!F=9>=ACM%sj z%+&HSoj%Oe@-m%1%wUB)ny*pm^kJr!m+ACj;xXUtkclH?=)=TgzFk18Rr=|aGFa*5 zWjcMBc+AJHwn3%Shl$60M0F~iK1@93Bf{sk^kHIoNmQ@W>BCGt=1Zp!6OZ|*b%RQ$ z4-?DF$B-Y)wo4yo^D>a7Hp@Vg{xXoo|LZdFRD^|{=fKp8jZFPBX*C$ihL%v?Un8Md z26AQ(P2}?19)Ulh+5f=btYBu3VW@%VhxwS`>}b0reuB|iaNN~6(Gxr1CmP+5z)v!| z5H7Tu1}nM)M!%*;MW1fPUptzGa1~XpAvn6uLvf<*>1^{?oAza>jqp=*kz0m54oMre z5;@9!9ciO4K(H0zakvu&|-G|gUwU8dnC@VxWM0e1XM9)C19bJ#Vf#{bA2}ZYp z4n?PcGaUT`f8FR@gw&u8u0VVZ4kddZzit8RF{3l0q8WE_xfrr{u5KRA_G5R)cCw&jZMGlpiNcu{G!8U6nn*JC;l?Y3uZ=!%9Hium@{cXk!wF79X zQgoos$S&+qxs2zq_pfP{_#QD4zTDI*e>zg&=Jb;c8H{iqZPl7rxj2y`bc$AOC^Q=R z5J@$ih}=WE9g`*_rQ~TxiN%q|RCw=5M8e5a8Q}>lntx#A^%UJ;MHWHRR)x#}x2EJX zg@8R)crj>AxRRv>9 z(xIsL1Zr4)EzP0^gC%d)5^Q(ACK(6uE#<}W?&5dD5rVp-7?C#?gtU6dN{oQ+3bPRN zQI{ejU!+(fu{Em>2dXl>HLDKvCeXU`kPOVu-~w4M zdD72L+YPVOA4W>Hky0q@tJad>c`%^qZ)YtI6g{gAmpj(a^AF_N9^Fa}Wc@TDMTZP3 zDR96u@ZQZj2^+dYIre!mTJfxtunatu$tEKf5Z)(&SCV-NT4V4y@Y?I97R$5$D$0Eh zaU~0}`098gl^H5+F{a}!&0s9skC`O@!S=dOswisIoR?B}6($u?_dbgF3S!&K#clU- z5-9l>pzM$DV|`5o>~ssvsMY0reZ|5o)~(QJSV|`P z+FmZ&qGA?HtuKc_-3l5%23*F%oGyj=kPzq$QMUX=cs=*Bku|;!xC|~xugWJ-rM(!F=h$P`AVm=t@-K1~ZLgbB3?=un^@}RkpwG%3u(P^j53!g^}t=C(4?c0 zbiet`tNZUJb%)7XpA2YIDjy1sR}YDm z0b2zvc!lApgW*uqRoB@FyByL=_8_2qv50IuyL?qjHabs&HIu1JUSUdnNvh;arR1DM zGNtHmK^hXB&+5w8iE0gVLn_hjsYLmbDEk#jG>|#rdK~%!edd>^`gPnJ^(S?FP|}=$ zG;L+r9F+CyGsMzt2jzm7O04PG_kNaPa0^h0^`m9!p%b>dp&7frhGr4_m1Z-~I$$b) zI0tu$87?OOv#0xdJR^FbCzi-?c@2s5aM8Hu>&TbGrIV<+k`Sm=hRfYVP^wJ2MbwGMd15MVT3IGM^rLFUggP{Ydm0@_j=K)bVh<3vWN4za9 zeF<{9zIr6o;$cW=%?nJ=t0zNiNxE|JFw*hj;SAZUhV{k65$;vPQS~&qtO)n2a4~)c z+KF(l3Kt_mG?I=6fQykJ5!s2qa4`}jBiyUP#Yj*Z;a(LkMuLh6_o{F)5>!UGSA~m_ z04q%HRpDYJ!V;5v)zoE@;tPX|k#SgLa<2*(<8x3Pt4!`y;bP|}oa#lsQq zRpDZ61ZS;^aIXp%Bb#r7ig2$A7b8)fig2$A7bDSD72#eLE=Hny72#eLF2*{b9V)`T zYWQf;vq43;SA~o5OOyzERdeZMxE}f@!gBF&+BPH$>x+le_`Xe8Up$<~_ie%rEN&DH z%!`Lz2POsO^9|+17UM-1b_jD;wKL!naOPAv zhaO~#CDW$k?GuuC$8{!N460&I$+Yv6=*L1A#}GP%#V@r2EUN<@q$aQh`5EKh8Tu$f z?N?~X7T$)`x$1G!CDIRli%>b!H?$Way?&>(gi;@Yf%2HO5?JsSd~DNB#}SMrWK_p; z|I&$!vk;TGBoAQ%{{TcKP@DX>ncrfy5PGOqXy?`or{N2U#X`;p!7{bMgPqe!wEdpk zr<1wuznjUXX0jIyn`S6bkk$qpi?c-pR+2(k?b_h&gf$GK4mn`T%z+}gstc1|E4{bM zl(_3$zvS1W*$U4pCCA^9`=Yl|a@h83Ddz=%!kDCHT=*TtL3N262vFEa{jQ~mMSyXX z<~pXkl>o{JaNb1~Ntv!=@s1;uatW*>l(Gr@1TZcyA^(FF)$=_-sW*XZ0h6_uOMXXO z`}xz*Ah$3-tkyeRhN8}yrAzht98MBCiUGQR?#>;GQXf58XHCRa^i zW7UiFS|hb7CH?r6^m^&LNTQ_+ybDkZtf#<(T40z0tF%ovf_lvJ`_5r727F*Bmtzmv zkMxzoPW>(>+zzLhs$#+S5{{EtO3(OEcbB1LJ&XY55^w{7G_AmrkI+9xF`dAzgz*#% ze+)QYATwDD$V*j(^=W`)6Pl|Vw2aFVbsCwX2T)TTlQ6A1a3TXoFc9@Ol(HNtZj~wK z7_)3pn`rx3T!+M&Na4w|UWb)=4pe@k)% z|19W?f;)UCCVj7DR7-{@mott&Ugs$$PM7!M-Q`z<+2woj?uvAfmV1+nKPx3G%i$~U z89gZ_9i1Bf(?g#o|0kd`29v~P52UL|JJ9Gx{;p)u5R&PGP;;dj#~gwmm#@5MR8tSj z?ac9bEUP5w@|E|DF`}Q#SKc#@XL!Vo<8Q_UhDTk#@}6-5>0Fnuyk|^&9-Ij)qcmgm z48%p~T+f&(ue47@U(c8&p4dAue++aq_QH_ zW5E-0CgN{YU5LojL1mN3uJZq&b;){cjj+-$A5&MS*vM<8-wKX}k+Ea&;|@omBjZR~ zZXwJCZ;RX>3|33onZMJAFb=}tlgL?)4^G>2#FM<(|{wN<#g z87`-qRJuGLGBRx>QZ-oaFU(*%wcc&H$Dk@BGpNxX%T;8X$u`+%xgSAFWESN%TJ8eI z%qBR%!p{Pc`v}5vm5~-r&j(Rg4B7zHa)%p zitDE?@pefIPhH~rsY_fxb&2bzE^+hJC2pR&#LZKexIA@<%Tt%QJavidr!EO<5psTm z_=F5&zQ56`2Nxi@vbnTr;q3Ln=4$&UV zqt(aVJ4E{|PkLhqc}KC)^0>Le-8+0O@&G0cX5CRy_a@6z%)7Io@9-KnQCIaX;tpCK zH&?iOhoWng$ITV)-q{3nuJX*?J6}NNdCKGF3U}}P2DDmv++5-Ao!`M(t2}P5aQDu7 zpbg67<_dT35Y;J;?E>A_-OlhKPlHanJh3k8FlJKhZYIxg$}DwDdVn7JE$9lj z4f&7Gg$kAKEYj75pc^drGbWz62ms^rae_$%7?SfT>O_JAmb;N@PNv#e`n0+gGQamr zXj@JQbs6n(2tu9X&{LwlN0H=`BU;Hykgo=^%iANM_0y<0oH~irQ?o0&g1b#mR9bcq z>K}|otv0I=WuTpDwV97ZK8#pxrlS=NOb=LXu13y&tg_l%3~dbr<_$`m@{zDv6IY_LaNUeu=PgnI?~`>Y~H;TG~n+j!#;F|8xdG(ccuV$Ju2Al!l7un zvrr+Lc5-+)g{GtK7!*g-3D*Os-SycDs>kO(cDDftDQ&Zj;pI|fRaoKPh|09P6ZS?I zWOcW0iz-u?;6aC+JZR^zF|rTs1TtOr-r2)GMP$xAD| zFt)%ZYXK@WcB;)=cP)?4S7HloX)$koA;4(@B3_s70E_GfutmL!Vt~c=QveBXUuS^R zZEBeGN)rHQNSab_e-6M>0bL7t8ANQEfQo_{_zX9;%6<+4D!tqC!FI01z=3B9~_CDkWL%N*hUnemzZ0}IZ%LVOH-jmFGy&#ymMa=CA zK~E^J7S$WOQqXSYwQdh|m7wR8_mBs4wV*x9OH!{5f?mPVAk^y`LHm^VeiCS-y#%_v zt-L3w%XRjbKnIk^^S@*N(C8dhFsg?YyWakTap%|tqk3AgI*rb=y)6`TgPjF)dfk;ZC)I@0q}L!%3U_U#jXQ91&h~M zz0LLJR=|P&{HiAAZu-a^jH8Z!>M$p9C zt*thdsAiuzA0HZ1rk0FuFxf-7;U5#2UkUi})GUdYC0C%#|Am|mMatv_1o`X{$ z;*BTxmtxtY1=z_yiz}xg7yaLm32)0Fuso+Sz>@TOV|S^ZS6g~<9ds|j3+f(#3h!L> zTJ@qj9xYl~u!7%T{n3*a*~*Fr>$gL{oYSq~-IQYGoM9*jpY5Wdg7;8==S-9+xcy%s zqf&@(L1ojRWwROeAI|OBsXvsxt2IiRg9?0TIk;#qH5JU6W(6N6tHYMQ??JG&xe)^` zcz>#;&rdc(w6wIAj>Xa~XUW`?tl$nx4dzUrIor^BTF~JU*BXjg;fdzVHB_$KBL|@m zu&jw3zDW>#khv$_mx~a-vjKFe8>j;P2+LSOdyL zp?Z+?l;k=A42h4?Fd?)R|FV~6C3BXB(9TjrIm_5%aGc|*i>;jHq=W6I&s|{UtdMGs zMx8dNBoVKn<2Y?%?VF+Hv{4xJIV%lwq|IR%j6THvwKLSnIg?_e?whE-oU^2Zy1A&O zoU=(M+*dF*a#oRUi!nICZ1K zxQX?8E+lWl>-`LVU7keX^^vLFJ=h*}U*UCsBHfQHT<21(b7DS%DmO88G_T_?Oig>4 z*NMYH=ag4!avBdKoLBZHd6Riv2BY7&yz4ZttIla4w94zIa~edtoGek7SCi*;r##-# z$SjwJgRMPNfULTz)`Df?KuTv8c7?Iz}TEBNAzNa`AiFJ_H6 za#3*{mkj8VEu!G_(d6;dNv7`xnT%iXbxOj8B(XN8wAG}Y99~HfzvxHMQFlBlC4Mob zQRD3h!^)pr?_li2FJVAdGQPG7rEqx!e*7|N7p+Atdl}>{x8m!_5!IqEr)Y}%je<&G z$l~iAL_^S3SEK}8tpzdh1|~LoU8D8lC6)1wq8Iy5{92Oej@_{wiElcV(n{mkf0>e2 z*DURZ7Se8PA?>DSX*Y{B_f?j0GwCEg@J#}2xn4`&Iu0u~mzPw=w@ySUEVn&6x2A*c z5tu_X?YPgNPii{iK99i_m!whm2^L%Egu4I@7vDMwB9o{UwtC1BC5zDc<6D2yd2ahx zD$i{#@)X+SDYVH`Xp`qQs%!ETF(%J#wAajY7F*&Y^wjva`Cu*F5RBjd9=eMA3VL;X z2d7OdXO0zrfPo3OeS3sH_#yj}%P}0^`5EX^w@p6iU8F1AUs=FMSb3E>TtLPfzD9V1 z5HZh?3;VMGGyfOC=a$Vf43|b3ftCn4dnBAaHRP~|$u77xGFAhqTd;acKOk4qVfWeRt~@JOdPTvq$5K)(f?9}M{^chiGd^05Q&`Ati+&)K_y*& zV4gUXdX-|fVH(Pi*#;_5bjT^e-*oxBKXEwIyZk&gaRd`tE&pHPPo&sWJw%Lo@CAvD={Vxj#8JO_b0}3saWCi^Zvy6 z!2xNvbMpZv5TL60d4J+>1Ur<=&-)XT=z2MzTz=lKL6d^^ms5NBygxC8Wp?>_e_|@P zH7E(COe5{MUD2x&)2U6=<>&p08KiSve%_xriFCr{=lu!swzYNnd4FOS^-Q|_ygxCU z+U#bHRU;pV&65}`l_#I~Cx*Z>Y2%t0O48D`FFprHrme&J8> z!-UbMP#BHI=6=AOe}J;FlS$H;#ZLJSR87*|hrS$} zw;Z9XlWqqVYd*oHNvjoq$>opiki&*^zNPR5TM^M=Gss}RqAEEr!)5mr{~*oF6i&E1c#99w-hI=AJnVIeN!>M7{n2e#P7q(kn*7~-)@ z=m`wtcpT&ryOddU=np-DvGwmWyW5e`s-iJN#)Do88>QmEplG($VFc6+#x~~DmcEM& zR>eO?fvotg2v_m*M89+JHxNGxg$~9afi&nBjcu+*lAQV2Aa7w6g2e9l7Lq~tEDV9z zR??2UjPy3r5z8rM&%KqIWmU!QIDlU_1}$TEJ_NBa^(i{&9t8zrcTsuA-N+Kwb2%Du zD_IM7la9K5N#8>{SKL&wf09nf7>;eH$2{q_=?m|~? z-B%dCm#S5|w?Wg`YkNUsPF;WpQ?b{{w9m>Rz3*a_ywP%>WYxdH2@-Saqs-z>PUuaR zdnfgK`wgVWJnH5Hyz?Fa=FtLH`?~@HE=OFf@dng#O~_r(JpWCwI^^C%@IFCp$o&pK zu@49~gxp_QCHo2LLT-eaen_x2BG?^vn<)Bcf<0lEojdjm!M?CN8-pzND?ww}oyB~9 zBRBv>G0(()Cujo)FZec^`u%rqSv&y=Gw-5zl>4{sv%1IqEPS zqiI`livP;zD713VL^~v7LB;R_p3WW%8Ry5X?5trGg2q9Q9@sS@bRHKsE=ZOKyQmkY=$U#UfDz2EI zC!;xAfaA$>#uW#9(wh|pNJva+ z!Tgi@Sh0N3rmNNJ5a=-pYDh!i!=p1;SFP1QQGibMD%ME_i=ikFA&ixZ0Hbx80Hbwh z0Y>XC0wP+`t^%UomlWF#*CwFGba~1pCaH_iT|luX)~Z54sVC;DhZLbgw{CCgQF#?`~*1$Qm zZLg4RJ5f-r?Tw*9og`?3?S(nMP83vUdvm$Om@H_k?QyDzO%YUYd&3zwRnQLGyNd>H znxF>TyPu*cOtFY3_*KrZyn=K6130uexPNYDX7u*lB}g!f)3c;_tbN?peEb9 zgQcA#=%DSr!QAHxstI_HaU`59Xm!B5o_d}ls5am&W7+2k+7R$2vvwD#?P!O(fcG=Y zeyZYPdn*m*Eoh0{CM0i&eJcH}fJYL?K2z_MSs1Yas`t4J3dfrbcS!6D^#Nj{-Y*yC6Kv8O(bA!ylJJnUiJf)q!_D>q`m3NSr2?QV_=8eatN&2%{~B>IMa2eBDhc zVf!m+g7KBl)=Cq1KgL%*;~YVMS6+zevLqcw+foyfkKV{_So5!FB`xi(iM zb!KGb$eQcHF0)Tx=>Ln?`)Y5g8sg|jq_ESe<%ssGh7^|Ly)uAAp{YL@N= z)sRZ?V#@@3bONpHOU()Ps;^TCUTK-&)s_ifYfi9Fb-<9<)$vBl1aG!X@K$qzchqsI z1n;&?@LtOVjV3{9Gm1~qOHn?VuL1~r0iHLwo6*S>^Lj-n6zZsk=Rv9 z6P3aF@Vr!a*)S{ivQ%B!(b)P(os?B$M1CLA6oZ9lgBX3Cgm%oL&6d|L z^!lkxK*D>0W3RJVuB6wV_M?k{Vvk>x#kvYxsUEQ1L|TPqGt*ePt&nHO(pZK4F*6rW zQiUx}6}{-zAn4H-4KBtw9-Yw!M6_M2u*I?B(H)H#@vM0CM;pmWl=}E4+FNOT zD(rKa`NCK)`w}cj^;6~EV#Y16hJyM^grk=}{Y1s6M~85%QVN)m3hFOKO3IrM1MGDW zRjLa+#REDxD0Jsx-&tFoyK495y}s%!PC! zg&caWL(YRTQ(g_FS{(oj|I1z^j5s=TT8)BWzU!b}VOe_1!uK15?GL@9wRS8UV>F$es8*A@U+0n??Wo+a>B{)OIklZ%kM`T9;tUAJHL`DLPCF@Am%nf@B9JF zA;5CKCOweBtYv24^g{{r2YmsuFly&ljb;*I8$vcq+>7}`ncQ)|Vz!5oC89lzCxVoE ztFfH3QRn%?3K5d!{|ZlD;V$OAG0?VUoG)Dr&#&N8c8ov{W04$=kb4#lkTs%zer38b{)}tMI|?nGe-fW2TJ9jUef~_k?;LkD^O(i(s2j$DB!4!;6L_hdip-ggv|Z2) zXY{T>9Uqc~u%)@sH{u^$vEcuC*36u}6S<%F{lE8p-|zc=Uw+D2Yi7-wwbsn6Su=a~ z>@z5Ra(6OY#Rf~RNoEzoYz+y{6oSqywwlr>r<3m*R)JWXn;5mlLJ^N*rO4DbkE!wx zvubnJsm%>^IeUS=^*yGZh&M1n&n=Im(o4sLvrbTQLqzHeFf~M*kkzmjYQYh?7XYU} zfq%RkAZAETE7rKCA6&9Z9oPwG=RrM{DkbHho`%DXx|kA-%~S*b34w<769NtECj=VSPY6^4 z{|SL=;6EYIEHhv|IR|u4oUBKnmRjiz`+vdO2DOG6_wYH_J)Pj7$*St zL&}B&9|nEvboDpY32O4t&MpaSohCTSqrq_6->LF$S+RL(F>3OF+J)YNSNM7`>p}G+ zxwKK0>IQI;sT;6AbsI!a-3HN9w?XvO4aA?i4U#TXHxP2B&XhBBT5nWasrnH1D8eJ^ z7Qn4j)MM&P0F?f5qX=};px($+PY4Cw8yhk7B8xw%Dp`Dx+9wB-(vD~13$omF(th`m za9UCUa`x-sF70671d^QgQJ(~ol6H1R0;!vJF{OP`?3bQ)6}f37BW)VXykyqGwV0!k zoU~mm^RndhNSnbNjZ|{f+}4Hv-VKovCg9(!1(-u{my`(XzKq-sI3U$X%b#@$TwECM znNwZ&8s zA>K9?#g~sN6(Q)&_U_yTojY`a8VCv8I^7(n%dCaK33Zhtxff7~u7~hX=mI_l>89R~ z0KP~{D88>zo5cE*6A5bbA1C)DCv=HG5$_cY$%>I^)02`*y^g?WUklN_`Qg%burI$;<@g*Al6Fc2C@ zL)~E|<>~C12?*WZq@mR``OG_VTzP6BAN-QGDfqBNbVxaH`>&roE?vGJC;EGaX!~whfd{kJhXQ zqOcL&tj?Hc!WpLLTnJ+JoDAJ_j#EG9gX>d<)&0orbOZq~QfT&0*Ch+gbkyApf^@9g z56r)Sp542H70maAoGk1#ld^sxTg06%ALPT_*GD?Xg>Hl|bpM0xzA`jHUXr zVAn}(fxax!lS4%HCu!~qFdo1cZ+g1qQpgddi}6fz0`&I$ZeqP`+#ju8Voul ztse)n-soBl2&mD0(6?l|yPdB*!dIb(^i?19LtYbUzZ_FCH^CuKtt4|-DNd>RCVg}w z|8_9Wr%J9Os78Y=58w7vAG3eMhfOiG%@*e5{axLjqQvo_8Hcr zPqs$c))Piam?88fj53v^oYK{(flp~oNaam@Z1RxW-+!A|v_+ek{j>)P^q)EP>Hdj{V+624oPstk)Y5E%^x#t*g+I6qnZRSW3zP>BLrC=&vAut+mCVoPq z^&bb?e?D(!*9Q3n_>ix3+lzt9hYGF0E-`z1|Y%GH;1@nTHO9OkbdSeACX!>O_s1F@B)D{0LOd_U=n~n06?iaa~!+l<&mNaOZFCV(y>k?L@ zN63-(y)Gv=T(TbVczQWcUCYeFu1psTP4T4(Hp3EZ4!b-P4foVf-I5RB?69gZWZM$t zt3W=W4}?TEgMf1>Ydo^NtY3`~d~%v+k08u(I!fp#koe zO_lY)$_^M7iwuh*Ie5P-#Mtpg5R7CnHr!-dB2^hG-iY-0_cR^+{Q_#xKvf#LZxZtK zfjoVzzwboyUg~Q~pQ@atTIfvktJa@D;zUHTiPU-O4mzm)u4;nc97FnEq6ky9zWc?V zwSK@bh11$E%`y(yfJZ3XewT;YH#1j0oVnj+$oCoW{ycrJ-f&L^o{5lw_R&~5uptky z`ZrzH6FMcmtisg1#r$e>z2nkcYZ-8$AMhtn-Nf#M+XmSRhYWR-Q*1kJq1=#DNlV<1 zA_ekRg~r?b1i3G!nN)~j$H~Mc{?qxph|9Yc8g~yr^Y?ZLnGaHgiEieQse5oK-&vbG!0uprgM)e}4dEs)pOC z{}8C|IE6bg@`_F%=a0j55$F6Ic8WeE(I;Vs81De@FRS2#VV<8I`U`M4$4@0hy^9!*El}9j7DJ$tML^Zu!_W_Z5$_$aN@oz7r!uJR`C*Ad7aBE}uCnUh z)*n3t!SMOgQ=bQe0x{tEVNM6>_+VLq7*OL=fwRM0DCXZr43^N?Wl6v=0yOqEu%bQe zJQ{C(OvD-H{OUM=L4`VeS|4UFT7V3vtj0<$&^6|_s52B$mq|5SNdZM#FllR8asH?< z3fx~|6=_`vMZ|S%4Rb>J5v2+iu`g^D)kb>gOX5PehF^dST@PHl(5=$fK4N~~22uri zb;QN41Niz8%JT)E^MUKWcB@GBB5^U5#v4b0i>Wj|hB&{9BU-KnHdKN}jjKt+@?nf8 z2B4Emi*FCJ$tOsYYgiR71Vz!E>;&7xSrF+iFe$o5;~cQR0*CD$HMV%p{Az}`3&SE| zsNsk3rLsQ|YyP(j{~ti0`QI)oW+jt9dK2G_ig=wNLi%w?=%kBATB9tiObyWVMypk_8gDv()HXQ14u9!-6sKJAn6JB-sp2e`a=I zqo+>_vN1AreA}otnOSTDF^mJ9*R>9?M9lv^F^meGHv*SajpPd8*)>{&E>@HKR4G>h zYMiVAt_5A;CN#LL0UiVk;EDx;&HRHpE`~%AGRqqoZ6miZPOWxecv|IP(ygeg0wK?`iT=%N<_E6Rs^2Ts%eMtl)?7<_y^ zjP8AqesvK>x0sYQ+=pb}OnvGDo0;Hw9Z+Xj#%~DKSxBtOG4KM?bHr2X^;Y2&koY{m zBbS7+=cEHm82c+?GZQ*2X;7uYSAb%;JavvX*AesUv+mpw^odrTN6Z)Z8K9Vjsa653 zC9|-?WU?tAR!CLcI?6E(adx6X&IDy2yKDX>IE+g~g)JI^-xzff+e2?etu@6?xWKk& z?c!h@IUgk^`nyy20PW-NP#s~eze`or80fTmWX=X#3$*-x5tVV+lRyi1!mgaXgy2`C z(8*rK&ecS3LM=3cT%HhUHv}qR^wdQ5Bn~w}j}nQRNViCBiqR+{HBsC(%LP7EB7|mo zPp5Q8_i=!CM7Qnm=cqHB~+PgUb?y)=qU|7Zx$GHc@ zgRezOw@hSh0dO0EI{~a~fqpgxG=m=ob~muWPXjnY;6(sMEx}_G@~j#Iw1D(QvZ^~LNYz4}x2G62C3Hk=N1+Pk^NznHJ zFgQ|BI3H3XX<-Rh^V%V&FdrEvk#a3#BCPoHI?dY}q+EKVJa*d-l0pn1XR35cd7@`5 zI+pHAhtB!NlBri%i}r*N35)InlR)U4*B+?2f(8sMcK{t{_e?(qQn(5A`L>yq2&*5< zf^BZ%)FXBr*CFEc^rP%Rg#80@0!EzK(HQX@BPZ6N;E@6u#fYCFzc3$ZV#I~nv`SgU zWm=c3%G_CG<|JY=@e$h#tgr&&2e%^sfkZm-SJ_GzYTtCgRCW7Rwwdl6j=h*!F(Kiquu~^6 zmMfkwmZ5SH@mUC?t`Kx5&>?(JNnNd26!(IU?|-FcHq894M|#m0QP5l}d(Fw6F^5a& zsqwPv1&Vr8#7k9HA$lx`b=Y~SRJa*9SKw5ReteT`kk{(M)S7%H>QU4t^KTfs-bm9P zuhewJs5_00Yv^9_r`CT3M<5H}<7NFb4onIrBYHeuj{j~3+8@tLCrZ7q6GNWHhIED6 zGFxffUH8B$hJ%x&rv1nj;iiai_jJQ@?j2M6BUkI%A4c8%Ip5Ee=-^Ax43)`omg1u$ zUVuN6^IwLc&o#elt}5mn*diCcmvi7i0-OWq65t$o5dd`8PfZD{FV`C@MA64Uz`#ah zExMB&wql>flTq4gt+CM+*I8RND?`6HkSQeW7ZXuxKpRXHD8epx8E`RPD>2^FKxw>V zC9_ozZ9I*AbeuJw#;x(%NY$70ga^gf3!FnEU?DbfmRRw)Uf@B4bryr215_KVOI3q8 zM&xuWdagFu11KN{^LiVD4In^+oels7t29c_;B^ocO`YEtiA4>l{pU-r{$EqgsE)w-Ujkf|QEdEA564LPekF~AWl{PTHYW?Nl zAmLP+gj0{{GW*!0qk8ma7~1kgnS-`WRLXpeG6NPfD2PfWjr#(>nz2Mw#4ZDlnJ~`b zrXTlBF|1Z5ShgBz6#0URoQD#w-0V|SQEL*(~^=DbTv&E|ID zZ$PJg%jMo(Ih!>**>=1N9ASvD#t_pB&{vO`dXL#?>OE->G%Bl}Ja`mn2Nuve!|>r~ zXC_#U#o#%4JpekF>3lSsd4pzBYJSz(&5%7~8?t6>#y@4%2?pPV)CyrclMF7}q!}DE zzv_%)7QPV_#bod#fU@dD!sJt7;*_m5Ro`!Zb>se(joYPvqH$>nXfFf)b%;7Q3$1`eqW8xj5WRa9Gm3JJ-WLE9y`LgLy;}@6dY2QR z-ZuikM+kUs<}WvCRTrYXY9A_Ih_u&{T|5IoN(ngcB?%>4(_!^I!q z-wh~M{2G8y2lDqAo3WC6Z_J+*a*dwIxy_5GC$@OHqoDJ_wc@#N%L=ARh$b4yyPQq+Lt1 zI$D)&rsJ`EO*aR%h$_)Cqe?yjsxL0cPwDImbN4vU{b+LTc&KZq^g*krHO5j;3#uK|e|@*@Il**7N|L$;fQ(z7Wh6*O3ayHjfpeWpl zL}{)O(@b-HYse3f{MAsHAP|#Vf|Q!R$zMdKX|76BJ|Ed=ZYeu-x+!ZjD*|P| zMkfEn%-u|5SF-ePp;fG%W}Z94Xu6RAH9bgx{WWtY$`?9uEOBwT^aC*heP|xkCxvG0=>jC_wjC&*eV;vq+Ok;k4Ve4GxiCeJx4D zlMJsi0yO&p0+giT0!qSXNqrGoG;&priEX~S!+4zawWiq^r;)_dvr$BLQX08j{OlBz zF-{{1ubVBz6h1m1+?u$2tUCwz_)87fPt5OGh?``+pX>7Q#T}r*VX)fDIczhUyX~Tg zT97dmN@lv0f-y*u1V}BUs+^M}5~pcwBx9OXBX(meeoMEkdYY`4=AbP83KybMkt9bd z+$72P@+w~XL5;Ew31P|cE6r0^KXP{N)TXJ}WlgkkrZrJrdF1>GxacKEU3q@GdJ%AW zM6B@@i-F4{VvV<6f)HLFG1rwx%)5azPOK-T`z?hc4=8@%f& zz~vj9^}~EdwU#&nuJkaMFkb*Oi-Ryv_|#es{766WZWv}i8g?phIiA%>j$!NoK5P?g zbo+E{?7d7YG!db;tpMQ%dBB@W!S{i)nr2eXnA6Z5xo$Z7Zf&EKI_QqA!?I>L6`8VT zxE(-YK5}HOlzciOd#;rV2yo4?fdJP^FA?CHq3IdYYQq+yP>UIm=qef8@Z>hxBbI%g1Io!1gzogV_g-)x?KpLmaEJp~NZ zwD8>!q4-RsUswV5O94DdU@idXOaK!BEG94lz*Yc-n^^Njz}^Km_$mNxR|D7#U>ktK z1I)h-Sl${W-wWV80+j$BBJd1=&{!2fwjY~iyHogTw;X>q! zzV84NeVd#OfHppr0QJ3{0QEf#0P2$a0mHqL+~M+ z+`k||?wRKq?(+d)jq$AzpmJO<&_G+TwCck4qlg2iu#QM4fCMpn{vd5?-jfy&((6aGy%W2r5r9|VlS>V zM?TM-1y)%9>(?zh1de=mkln0G+49VWPtp(Yj{fXT9#d$7f9+6c$8#t|mylAmXF~wl zzUU&0{SNR0U1SNEBL^9~$wG-*<;oI@T6LHFZ0x~mXi^wVaxSO`mc2rF6okipuxKB> zu*FWNh9Ejp3xtcM86z~D5Kf^$(?ZI6xo4l$EvD9&pJ2V+G?DNmw9$Yo=^Ca<_;Mdx z5K_+&sb-#!U}htl?Mc(r3(;NF>`>Mmbk*mPz5xWqj{z8R0f74ed_-V7fD0C4g$mG=9J+13qeQXwO{JGIw8Vl<9GuQRV>xY?cmj-bx1q*2Gn;6fT;iq*RqD2fL#S_ z@Erg?A+Q@j;f(;E0Pq%o@%#9+8h>|H>fhXX=!OvtuGW8z7#}&ukW{j^ve4zA5D#1o z3h}^a0w_Gh8au-g-Um!P@IMI9N6xqjfXp}qWX1siNiv$E%u5huz!q>QCH5Y$b-)IH z4&W&OWjT*%$$ofL|4#k^IiXW}i2v?tGAmG4^$%rX;EHU&p`_lmyBVDKA-9CGiCmMA zBywF&fO736K)LGOLb(R<{jPzgx)gkmLk$ZRe~7eY$S(d0z->ZDyE&uor034ld$s$F z3mNmWmQ}64W07?wd2&eXeUy~_vphM?+;A&V#+G>!@Rb3lXXz)qK<5J+invE(e6pl> z&ou4~83AckffV%CUB2q_aHozNXER9r(a4cc;rqL_=fl_)fCC#{!zzK}RW-ilrUuGh zFhi~)mpiDBv0|AS2H}EO#-;bK;sjPKbj$ zi$EYNUrTTZ1a>RzDrBNXxlu8|RGHHp<;_OLkG8DMoPtbSw(V^!3lGZDt4!@yMm5$w z3xbOT7l3diH{+@kSx!5J(`+8ZDK>o8Qi?I|BjmxOHa~+z4&QX%4uHpTP9wkrI`;r@ zr0^rpXshjG;YschTlg?Zd2%OvhbcUh01Mv@KyS6IHib8tUp3yv<9KI=Y_)Kkr8C-+%_ z`xpWG-lDq!(D&X;fW9~N9_xE&_d=Z`_UMZ9TcYAh)oLMxAB&`? zK&H_Rq_qf${sRFmPF1Fsa-UfQ&z|LBI}dn3{ekc7Vcw> zJVSK6CUpi;No!rFwJ0eHUJ3$H@ao+tw-7m^;CsMC!LkP+;4B__O zSH{FbleU&=L)^>I9fjllj~I^OM-9g@1jz9w0D4f~X$tQ*ziO!aCK+%{xR04JQJu(+ ziMAksDfgjbdgp24otGd{wpQOY?eL5FRWsaN_5qo;!P>qE_cu?S{j*irx_8Qc2M+G_pHTe znH<0}=Z4nhW9wlG(0?GEM{jn>#M*BUYUks$+hv>RBA_F=BVA!Q-(r5%-LACTrzD`S zwgl@9fo-?=(_+10n^4sQOUxeBX|nS(4q4o4I^AqFZCXV+P8T`uMqZJeRX;<{s@HwS zbfUCZwTj)%uUhS%0=E97VF|hz0xQUE;D9ZBDl^`g&6-c0rx*eKFE^RCiXFNNecFobWJAn# zWP>c<;>TcvtRDBL8bzc#t~G*Q^oH$@O_!PO*hpSK`Uz}xcWfjt9QE4^`|3SId7`XS0{JitvSZcip~~L(XC^w0Pwi^Y|M56Q<^u&97=5`36!J--^5f zFe%Xv>O1x&u;Enw7Jy+pkvt3~WcFJAG6)ZlkW=LjU>Mjb9f4m9 z{3GE0L_Xma&@N;iz1}KdGJEYIz=`~K0OQ|z4-o#oHose06HooFc@@0NZ1Qg=TTg5( zAk*`+#+sF=1&WDMyHHS+di^yjm2H&j_PSAO7l2`#kbEi{RKzZLBPjOYfE7A9M(nqM ziP){)G-6KxF#h6qwb+}@?-cT)*awj7l-cC%CfkZ#cAM!=2hFb-wfpNA4fXLJ3x zOwK#p@GkV2{Sd}oUm6B~J3*x`4;=(y@y|&A0u;qx0cd$3;>>s-K=CX1X9BR|y#Ou+ zPEbJSWa;649>x=sM(;9vAhvL z;U;9uSRVEfu$(Ty7;+y3CgXVC#{f8v-ypzoeA*`fIF4Tf5ZJxpeIM_Br1e}2KI*Da z8d{=wF4D&zM4giWY#}fbz&8X20ci6n>aAqGOMp!RHuwwx`v{x^pwnlx)_jI^tv=J- zk2AmO(vW@wl`Sr_L9&z1Zg(QTyIu1petJ}?6Zzfknp+IghsezadA$M7rsT6TDRt5q zP`mfajSGKW*eCkxjR*7oMLrA2M>P^YHQWbI$66163kESY^BvtAGYYu(2{+HX?&P)E zZ>`WN&Vr?FK$=_Qbo^Vx%`hD|{R2=qE(FHszz1L%q(28Kxl)MY$%6u@{d^Y^3U-%BS;tY4uNE8b3!`$x0 z1e3gocOChtq!U8OS&N+T6Poie??5zs8WY(OuM+;)25NG1A&M5Y12p# zN*eL@;@=u6N!c|N?#<$9ZA%2D{sq;b7rYCjn2ih1v!N2Dz^MhE&l!qPx zubMSc)oWfYJbOjQ;#Y^g6h-}=ubv<&aej5!t1n1;d^hvc1<8o> ztHWLcLE6M$CRsy4a^lTUJwBaAZaw1s>af>XkV+?xO*+SGD%c(;&aV!8%>>)$#HIEO z!CrIX{Pc~Nsj&a!9N?#Wfwfe_fE{$=vsiU&k^K-J?6dB6f_>-2PbQY7&OqfqIq^v> zm!swYt59)%b=d2quyDm!hvWR}u-93Q0?#!n&aV!8xmcs%fsl$XC6_#P9w^tU_*GQM zesws$ftda3aQr4>_N&A3+lZCOHA6d991DBL8=}~H_pA7ob%6~NIV)A1Umf;J)jZVq zxN>UotHa*iDLWx=y0?p3$F`!Fx0|37!&1)i9-#VOj9(r0D%o)C2KA8^@s^-mZT4Qu zUx)pVscdLTU13xC)nWFF8f|K9eH)1}-X2$D>qI0uF`ksua5%=BP&MqucoC|GlViN! zxyDxVONsFsRLv$mb`qIx9SSxXsA3MV5WkRBV`~LSBVG{_BHjmpYqW{xjfL(~b2QJd zS;M+!4eOdUtZR&Vk`kSJGppn$ZKCrC zI?*}!1l#?9Dl%gHq)l`_4SHTiEEBC1J(0+T8BT5fk}8cR{he2sQ}z%)X%jtZKEQhN zNt@`&bRVJ)RWKAM6bPu zMF0BdXlmp~x3`9~i}7PJ(H)e=iPcQN;TXRK5xt#NdokX28QpmUNRngxm`wBz!YQ#_ z!gms`8)d8%y^C;q><;`Jy_@VaVvVu^--oX3w27r;0KT7aPLv;$iT;gt?*VJG{X+bt zOmr6&!Iz3rxPkukMeM|jDCjG&RqUjv(H2gOpA3vG*ooHhV*K<)Y$0#uPKoi;7qLZA zoF7e(@zWQvCE0*88rDN@8*uFdMvd~Lag~MP5Em6|De4Fhl7Y%o6cq@^`MHZ|Z9%*^ zKX(zWBS>c?ah zi1RZ2=ohLxsJu8Y(~o|senU=5oR{fGzY-)p&dca7ikN&7!XqgkALM!~L-bYT4I4{$W{-!wDRXTB+J9AsgI4{bNt`ekWoEPOsD+Fm1=SBI^GX=?tU(RY)3z8G(MfuS+f^?1ZqWtJNg7j!S z6&K}4&lRM1JS_t`=Lu5jG{!~w(F+B6+-Z!9@}n0^&)EY#aZ!GBtz_-RNiLRJCm7mV zI?Sbly=3~xWrCsQc~O4!a>3qm;=Cw7dWB%<2fQdhdX-=wI&ofBobmp9q$IGFbX4TRJ)VwAz{|{YN2Mj37CX^B(nL+? zI??CE+)W2K(fwk&ro)`*t74O;rB3uMQMTzIC;Faf!3MfjeU921Qbu%5UX&mGKm>?* z^y9eZ8$J*>g+q{tN77`v@o2LU9Y~FoSeG(*x7Y=o*t&AwaH0#HST{o97`t&Sm#`P5 zr-*eYoQ%uPF}Pzr8lfaO^jt{}ynZ{@i_X!B@m}p%Zzl78T2>I^_1m#N69Lvu3B~ds zWDz0jM>0o3p;!TndofiTqN@kDlPfMi@@Kemhpy zQd5pvKuQKAvC%>qOF{%28^gFP?1Xszc5Li0(x$}9uOk_+-;RxE2!SH-lCk3nV@1a6 zw__7lkk*S$dWy8Xemgdq^RTI7ijkoO{AO(G7Sd+KrpMruV!VDkHe;{Q^7`%AOa?q& zjMs0+W-&b_#_P9Zvzeamgn0dSY|ei0z%A&pWq$>e3|_w-JLN1$l2MC1mQ%e9UcVhX zmG;fx_1m!(G+#!H{p2)SDudT=$4;ku8N7Zwb_S)-;PufUcViy5N5o7J9efJ z@cQl8YD%BM>$hWTScTJEF_6j>3q?GN)j|f;8%&jdn3c)CoXN>Db0~F=c(qVC;@z8| zXV`UAdg+)E@8bj|gEFZvz|;_>AS=YUFLpMAwU&Dd5g|_!dDH^rwPJ*$CQ+Eyc&ad& z#aiPSn*dJB*GWEKlW$0n&$r|f?~_~rr{&BdkY~$MRP81?gG`kzLFTdP0|0kdI`<#Q zZG(c{CCX{bB@|%R-flV`tMm{mr@i{M02u?6wc^F+;)3b$ymVFr8 zLmj5G0CT+0f${ulp;R&gXvYOhab}}X%TSj6YJU_hRBQk>E(gz<21-TOf-;9<6ba!+ zL?P=SVKeFr3=MoU9SXGUN0m0Ifhg}jgBrCpH_<$;IC|A4v8PVU{RX zGepJC0Z!H85^p^~3?()89k5OpgWrBr{~>PG)d_WGz@GJ0#Ob^dzzzUi^1CXh>pj3e z1lF|@z-xzK2;68zN1EzR$?y3sjFXRM?qPJ=hvMqqQ1=l?>ym;ar4RS zxP2rBIe{YnWLnl3qCy_|BYpiH@Z{PcKZ!xozSk}LQ?O-!s$!0x#2h_9sLk<{nB#ch z+8l?)94moSy`M$=&BS0FjXeRZ$Ad4a$M=<)&^HtUh89U=pC0W>_n1XAXlS- z;l3w>jmn*ltWGY;)acyl$my&RUIJPhsWKzCSC6um{<@Y;hWq1*TCN9Swz!G@F2@pT z!AR=w>X9TaVt~s*+vP{}O&LoA+$$i?7~tAT3~+rXQRvcQry>uxk}HjcmUARZ*NkuY3Dv4eWJ2=W0kb<+p+vH@^CN#y# zVv5XPjN@J;rYIyTt+GgrF$cJAl|`mi^e9;D(kWbkT#kYzBGL|EY$c7Mm9!<6iY4|V z6M}wDL04))bButazPGJ*0>UNTYAZ$18o%mRTPdPu0h3l+Ri)KdiJ-%gsatK82)YQk z7PUe|y#hEzJyS%zpBO~d*dfwND{8#wZ?+Xzi|i)@@3Jq^if0Rp-AL4<_#DA=j{uie z)cB>qbt`K80PrpuxwaM0mqHzXmsV`AhO##|2}^IDV(c+JVV4(S7u|qO!v3IY5;oJ5 zv{%zGN0k~O7HS&ikWyvYS>)R^%t55a!T#fE|9-ljg@*s)L_NK*siEuX7pSLSm3j(- z^%PX8r@*ggHD~+Mh;~JWf8!r)J3ohdbUT+usL!1+1G{8tgc=xnU#GrNzF!9v z))+=>j7^gE$v4ssOi0-u;l8%U*d)KdjZF&nw{b~<{x&Wt*x$w_C9JWK*0?rFV!Kkq ze^#QNWvHhEg2Zc+7`7hPqFv7-yOJcVTxdx5CW?HHB3TmZ?vg@{UG#=KpqSb%GAt)9 zA?|LG;t}HQ>5(5u;zBDL27XyH;15dvEa0$51CEPVbfx=DWxap0tu`6ub)~OJrR!0s z!(s^jYSJ5s=|3V*spB=NqhkcwGo~W{^`y%n+9|+woo`5;mB3NwYXec|YF%f(scU7T z&gW65)UjIX_<=m6jx|z8gCtwWSyD%D;JS{prH)0wbJ4NR(T!G$`fgyG-xm?XR+xJJ zo~Umq*5*>*eG%$(1^G#R_eW^A`xEv3Ekd2%Ow_ka`e5y2bbY&ZM=s65_(>C1w(%ANpCw)gwT&T=M%_ z23E8Na2b)m$cUT;yxU@MRKJQvo&?TO`J0sP5CtZq`H0{Lh;x+wF3ftz%qaa`M(J-r zyY1sZ(Ag7`fgkqqONn1jS# z?9lx;YmaUi7rkYb`ZEXji73)X0@a^U%6S@SZ&_;n%<)|kN1bw|u~N+b5jZTqfa}r; zIv~$CoHr(Fco8*di%*b%{P z{sHh@xeIe<5})t#grIcCnNqw_UG$%w>_2$lVNOy9)PH;$M1%z&9EeKrF(7sUE8DxS zmC?(z7CcjN=J+d0QRXvcNPbC-7F#XL``mgEQbyEjnIKjXml3r_?-SJ57CTESn@Ef! z=4>Ipg(&ntM_9d1OnT0_f?t@P?AWq<@bnDC;ryfewKi>Q5u z?EM7!azlQdc--$a`NbU4vm)w{AuH(ilu9vVnF;bkhWt6{q{B7&6n28m_{fhTD@c$xYo#r-S;)^Od3&{fAjord{8DO2 zTY6TY%_yP+vs`g0yHQ97X1U^l!WqCN!00Xk%~0YpnfH+VD}m?0a~vlf>0QAv5_%@l z)AwpF609Bo2^Q&yCdbqqs%a(Y-`YyBNaolFQAkU$NG9l{Oe?`+332)o7YUX~{xaZ{ zV5xMrhXsQK%Y<3y7Vz%dxWRFXtU4yQ1pY1Uy1%JT4D;$ow^E(4(7iHn43lAn33mav}mz(T zrskJYtOP~JS{uD7lh|)4q$PM$rm2B#tORd`D8VJfMS`~_|4!hv(L2)ZUKR`zyerH) zwG|0guv=wl2@aT=|B`AYcse0Lh7_vb&PtFWHB2EcHfSyqY$YxdWJ-Rg_F94#BEcxZ zAVEuEwi769u%i$XY|&BYT2piHG%G<#8*76t;%2vISqZj?7ygF0NN}@+p}jg-32u@6 zvw+hETgApV3kC_c2{X5&NRTT-OUI%4rsmJ;TM70-0!|s5rKe3s5zg$JB~ZKtn4Z~h zkdF5?anb(<>7_lhQM)XEZxnnY@Gb|;)V(Fbse5t`WPlm&V`p5f7ypM$fAr{MWzkVkx#9~?TPa!TsERi+;^T0W6Efwq=Vj_~pmvzS2kX^B5VLrCo z(gpc)F>!@(YuA-HOm?QAi-C4Y>8^v1bHmhNMK`TMBTgiJb@+D3NWQ6=)u2A&ADXeR zbcI(?h8pyhV69oM)gVuL#vJ0JL7sG@JAiAM^96qic$ZQmME?+lxT(7q;%o}>q7Daa z<)>v@A$A)fUXht$kWehX!SgUo*vJwoGou|GiL1a1g;HngM6Xp2=m2v z+$c@Zyb#Lrh^zXmbld^Nd79MVZxD~s7=IP|_Xh%>&3>urXBGjMVWRVQ0M|W5CMmxaIPIdbykg|?Ysv<1F&Ma*UgsAPm!{G9O5iy#o5ub|42`%&I{de!mFePU znJ)U4m}a7d&`kTx5X?{Mp`5>EwO~P-in-V2YtNR z5a5|q|DfbwPW)IO{~9=)D>!v~fz#&iLN#nCQfGC&L%L1j(@jE zICeIQ>d0z~#BSda*HMMUcFl*|_Pj;%%Yo~M5?kFHQ0X4vw713vmjc84tQtFQ1ntL| zL#nz1Xt%YDI5hrE8M3hhe5-_s?~g*RnD;i9v+>T+$dz55?NZUWG02z4Pa40G_-J+{ zjrST08?;x)vojwtGm6pLz7e6;|3vL&MmZug$`KUeKKBvn{A!eV?;|pubRB2?+Yy;h z<^k7B;v=#o-UM7f$@yK*p?(UShHzv+HY*2)nLuM>fyqPmzZ!{lq5)M{KV-iInevdm z<#^1S&T-};`*>jTko|%QY+R=w^mUH8H@Pz!+P;tC)dprhxLLq=T#|1Z=0bl}z;|4d zw-|))xFp}Kk=iGLY&iZGA5a4aQy76WF_U}cncP3gFP|Kbd`MThjS}Yq%Ar zqkDNkYd?g4Hsb#({FsnVfkGG^j}oNxho9KojK@D z<~5l60nVqTy6UdJy_^2+b{mer{K;!D|KS&4hN2$x0t~^3m*mlU<^>qMYV!^oOWqp6 zSC;cakdkkWgw0zcUL36yPE(hljOX#Kk#IdhQoI__D_mcYbZM#9Ym+vkYH_^>mJz2o&s49@YM@oE!7#o4muv+8VR?SFzOKO&ARPdBOc!x31_KOz~v{$<69%)95oGC zh4T2;NVt=l3v9LW_|{0cGiEHlHRAEDk#MfM4A^Yn68u6&j>20(Q0X zHV`WoY?Jc%)<}4;V7DlbZ;gaY1ly^2FN71eZ;g0-Yb0#n8u9qnNVrs8gZl8+NDaO< z622P;S#gjoyo*}PTO;A!1oc}Z;RmR`erqIb-Wo~r1|luVyAedmY;ww9vj+gCvY{n) zt4&RH;wh2V&j5{;W1K~frB3=irbwF(0C8$=EH>vOZCNCq5oyn^5nG3c^pPy)SdOjD9w;! z%0$fgQ|qI!d_9z%$g(fPo7I<^C$Z*E6O){Dxx8#Lnau{;pc&F{FkDLE4%Om@IjnU| zqY7Y+j|1GK0RLq*J(bw-B@}7~VLFN;rO>%scjS#! zQ%ni#H`MyoM(&X$?K}yB!o828=}rUUWYFOz-NZhkR0bVx(iVgK(;QsDsanNTV{W`r zytb-?9Wb<7J;#mrjP;5YqxIaDPAt|J`RJVn#2AXyLMr(4hg8R;DmNaBp-@Bt^=fJk zk>b=IHQ`Y$Lp)YY5XMLtGlXD5!eph2Q<+|~xl^2)jT+*u0igHPSHfKirTB%=dr|{A z_+|j9Q(MC%xPQ_wlGX+SHAW5f{IaoF%^2QwL1KL*dRk$k=|)^gj~7(Z)UnB0sD^kU z6e*3ELLtFViWx1Nq@oTUer{?+5>qtm2+Pne)n;1MxTazM%+nIVKyM0H)Ny~w#q@&79wxY9ZB&yW2iRvVxj*FE`oAtsWJ1NndB)C0~1Z4m%LEm5k zuDMBQEv?vFdPjao!&Td@A5ooC(ABW-A5aNe3@|n_;uZ$PMee|Wl+ulgL`vig3P>Y4 z#lZx;S?`-OXq}Q6#(o`iiXk+m?j|(mP=gvVh6PaM4sQbCjV&-fORK8xH`j=uxOk^u zS4MM>4CG*X92HYc9W6#d1!JfdR*1xLfYGl#FPVd@+)ro>>i<*xS8Iq$zZGyZwU6eC z>iF&^RlA$IL2r^))#X@khH(?{WU%C8D4Biv|qqMHS$L%yj-yNXbw#b z2XP!tO@j#13`oM`WK`wt_l@R0e-6Yp}M zqXqorE>XiB*9kja0|OdErknLoxpvTWH`K`NK|g<7uz>hD>vMYf1F?4$LyYXjzp?5n z{>>)9zxj63gD~GD7#06rgRnIQiKi$08dc+js6SRXLo;j$jHF~g*B=Ho{gD*cBdL~+ zE>diCQ8jp|J_DvETBcgd*R9&}X;nK+J$guEJb1|ZNAHU1Rl6bwrR_}UG!1==vk(2d z44g3PQKK|#o~SiX%#YiW6Gdf)sp(ss?eQOs(%8&=<$=0F6ZC2q!jWLkXF*$)I_XF)3!A%MTd4K3>KulF9D*p1Y61L0K$YI9fKZJ zdvN-wgrCka9pB6Vh|WxhhHi+>{L;E?7djY5VVg{j+uJ<0|Nf4DuwSf`}%z7(DMQ)MiIT1@fytS=ZizMAi-4Z;4|%S z=;-V~H^A4NL$ffD3v^(Ri_ZhGnl%>-4GN%OS!@I|H6UIyk$07eq9hP`p;ry*==fAN zu0!-zHS8Q_r;6crdMdSZ#t1tll=&@e`AD1=P!vKUPSf+)Xgy7i2?!09##Wzk0+Acd z7Kqzuf${z{bi7|rWBAJnL~UR{v1+V1$<)cI8B8Vz>XcD~ON@iT>C`}J$)6TXaGdD@ za#(bRZwJ5SW(JDL(3+*=)7gF#I?f!L5(lA}MIGje)gj>tc3$Q*JKrb@>Gd>vqMz{J z7t8*)d3oRK(T}Aj{F_*@uJ62MEvF9X)+)Co8COG3Z`?Qs6xZQq zS|BkzJsH8(B}U!&&-7f8U_KLBxMs|H3tPVj3G59MVO;gBldD3XBw7T}xjc9HJ|6uDNmE)=M&l&!a6#F=n_*ah^F{@MW! zpaU!n+Q_e#-YMW8@SV0G`o}#$>lFtF2q933UoDL?#CLN;1NMQRu={>Sui=4Q8Lg$- z=SUO@4`kSa8asSMs5I9DL2o1lNB=X2IHu~t89RX1Ks4+)3P5vUlR~_Ec`yMHrBAM- ztK*wvnJLjES7gPh{}+Z>!B8i)s$XM(W%`;QGx=dwBAAgTu@6Addi06uJ}bX$gJ3At z(1ud-FhoBdX{lVpNUTGHk^5KM-QchK^p9+7L@zP8J7X2lON}()|y)q*2F-J(U>lU9xTf(A@a6x1_UD4WrLMnVO4FlU_U5=tU|k0+ zA+961t>>@Fs=6CoY-IZj%W!Az53Z_-?>T%Q#3!qX6<9OtgQ~9AsydlWyL@Yr5J7B( zJvl8fS8R#r)~$ofw_}6LH|)n*k+CP2s6)IbcjXdNwYMu-JU7ro&kuD1&rac3{6T}~ zrt~|3wHfx{s)tT?9}Yd+?8EsZL{@0FHl5q8`lcS9k^0Ybtxx%b8%a#t$N7WO68B7S zFy8MEdv*Ts?d=Q4@yeJfF#h@`I8}3*+_4LIl6;`nM`GAwr5DUC2oR$VtoC$(pdYy6 zX{z=@h^KtTeF^PqPaHd3P;fI%J9fM76N+O0`7I(U&6%;3l@a!H`XPN2@li2~D$ek0gp$zD`I)av+x9aPKLFQs3_d9=G_3@t}vUm8ej9lszJYwqk{~ z{iy(*Mu%&uc2&*?%nA2}cV}_%1|6mzikJ~w?HQK#FM;P*I3(jYoql$eDA}m$!1DVi zqD9M}t=*(*^V)~XrZ3<;p`9T}Y!A?wu3;Z18?41Ad(!m!Br>GK>tc>qwcD2A|gFG>7UUf## zv@<$pdVfae?kqdEjEYvl8NIcsOoC?4^@%ai#%{>A_2)p{>3L!*(Y4$Axpsy;%JRYQ zMm!y5x|ls^=y_2fcH5U!=y!4eZL2 zIPhGKs4O7t5+S%V;!l^p+4J1n}9jXrQL4ipR{JCf_jPw}hUPxe!A9YCk=N;|QN1S&ITL(&4|KEQ2G2ufc zTGCxH#TZGtZ|wv{wVr@;^TD2w3jG7Fv2LJa!CVOKbu-ngYSsF_)&6H)VPcMxUiIh8 zo!~TE{qR-7VgZ}dTI?QTQ~&fwwHTGBKWIcyaehe)a`MMQJ)alH5e_gU3IR;65d1Nz>U`M{`r9oh6Sx_5#OEgS-NV zPRT29?38HhU_W9gcdYG6oJDPi17X0S`j%>EbTfj%t@`@-RDAeVWi0;(2CshX5DAXq zq+s7T#-DdM8QRm!5Qu0E8!<&~#1sp9eqY37)5cT;%GRuE|9DkX)bjOVFG>lZC|lb; zBB^t9Yv62P!mcP?_m5QQApg4`?G82pE}FFp(dH>fw{Y#MCan`N8mtiXZm?lpJwA9k zD=-Y|8Ptq0`Zhb5Q6}AnzYT&G4UPmmLea>aO#S$_nwMaFYkUbiLlZl~ZDeb_2MM!%^UY?ye}hN%^d>rxU9S;8xOpcSgI4eMB` zCA{>*tGd?4@SIwAe}{x#)A$R2)e-Q}cGZC@;5GfW<3UzqNE=&KYZ*Oj23iGe;@7Wp zaTvfh26n3rcQiCs996r6CU4G7o6M@a4lS(b)9VcMO881WtKxXRacoe?_Zsk(i5>{@ zHbJUj$7@@)L(yy6j*DXU(5mUy)>|5sJKCm~VdF`Ui)@h#MR7ot($H_?@f)M6&Q<4s z{}@1U3!+=q?TOq#=!NB@JZvLd9x0WFZ3$^H8jj=qCCBdVmIP~;WB1sV))AislT7wE zixAxScC%YW#@kju+~v0(-K!i8Fydg;;z*a?sTdH@6k_5q7t#R)58F%Mt`cZcszH9| z3AR!o=LHe1%aR9DPafr({=znKO=8xz< zaU<64`0w!qeaipJ+3TSdaP)8_ep|woB*sUzQ1{Oc<@&o#Fekz>3`!U>-9}h&CVH6S zEg$QG*kp}-OOqa_;g1%baQoul=EjfuUX^s0>XC_A&q|&>Jt6)ILrCxPBwN2<)u~r? z+-wii3uW^4o0%@%_+xSD{&N8Pc0zC%=(fW$!j{1{Qn2j;3kg`>9~yAwL9+(O(@|Q( z$iv35VX^T6O#-7CjSP3Lo3xqscp0{d@y^xJJTc$9vMv?O;mWO5SXWDEVRE9E{n>ggVWnzgx|V4X)4mLnt=cedZ6Ae`&~3~Z(CAK6)D560VNdFt zHmt{KD9|bY4{@dDmB?z5n7^Z3eb9o?SnW^TXTY}BQpWOjHEYm-&5RS}j(!6h*ac$b zf3Hck=3b&-Nk8P~dcb={eeV@Z5FWJyS|1s=KC)Ku;bn^5aIE^0NYLtdhrzt{D*Wx4 zRv3u`;!nfdVE47}X$4|k`<@m$tN%iXAk{)!-+kCkb<@B3o|dr;oe?$+NUB5IKsth3 zJ!Y!>&i3pSuXg z^|1Nnlq1}t|I&2SF6#Y$DZ1E=EZBhskMi99=>4)ayjPv76EybmeLqlTS0Fgc1ZHTq zLtxRxcCbrg)0Et*GHQ_+GqpzjMO$Ew*6~up+XUukSpu_7&YG%7 zX2*o?FRpA)_7_*${Rev(RN=?_q+b~Y{=C&?eEsei6P+m3X?6VP^^Z29=lqcYX!OQVaW# z2hVSUr|w(Xhdex~kvO)2cc=V^JUm;U$Z2bahcs)uL>*$C_Q7X9e|lQOkJogRi{-O; zN8w!cdwK_qx#VfoYe?MnYtQz za>JuR>@d9&6jh?t-T@bn;SxNhfuY{_=v&18+wRr2ym(rJlENhPBY5N8m&%``s-N2M z?MU~6QyaF+5|!sYSdJSX1kPOj7WpWNf@fb5B^TSN0Z)7M)PQpu+}1eCVmlx%&S_{L zG`#ALj+}F)J|hC60X1*5|M7ixzo!I!?r6$vAEe>ThA~aGfOo911{#f3jtihrwA|>; zT%f^sr~(rm9OVQcs_y6RcJ75t{39gtFn;2ird0y+C{PX$;B*$GwmmgZO8c{KRMEo@PER?p8>41#dG?gv&CDrIwIj)R0)?_{XN>CyS3h5 zoMN+}f3@$>iZ^O*AFv~)q(NKw6P$h9Kj1If_6>iLAh2ax zJ)TSqz-m4Waiwhm4za+AJ)*qrB;YdmZk1^+_AAZ;HW$R5g1udi|7vf9?NqLoaNt+t z-Aw<4$gIQqd!k^96M7t8c&ne|2wSJY!GTRwf1Cxq4g9^fS=Er9{@xC3RP_gcZ@m(X z;*VN9z4tv=zV(v*jMQjQy5zvy40;gqZj*p*{xf6lsQY0uUaD_F_%Y0XZhtapJw2Q9 zaeJcQRo!^-4N+}*?VHd(GNuEDvHVBI)!ctD5=Z+4m)St=Lu2E{8wC0nJOrX}z5c;N zWA-n^-t0Konbh4Z@Nk3OEbw@PB4KaL_6!pw4?}8*m;d21sbAoj6#nQt@!y;!i|5as z=43BexFmbd!s*#SvS&}9p1r(B?&RFA9Tv@;F=y(M4)f=pv~+oP*N$B~=4Q`5Y5M%7 zGiEy3OBXM)NH#tXzPL(C6(oD{smQfeSO(6t*(+w@f<*j5ijKIf5x}gu^Ji*s@sb%c zX3hePJFu3Vx^N~ba90+R=Pm$<`?Dac1uX$$hJ{P!ESfoWhD|X=PFkYNNS#vEis=hZ zB6}Ec1vqKwggH|e&jAQg3?E$#3xZHiH(aHOKldtJHRNs%eWQlBU!Aebo6s)*+&(i) zo-3KLv}C-y*jv4Q;&ylM%5kq2_g&-7esyWdyY6o))KWDs?o+;Q-I}GHGWwK%)T?Ca zrS73qy*im=`i>d0W@E2DT}sBTD<4}@-k~JaBDJ_=lY5HS+pRI!eIjXBs7>9TeRJ0I z>a*tQUVYqSXN`9!gtF9k6UKbpbBMPr9C9CC@k%*ngi3tKRQwZwm$}g$Kh8__^2o8)2Je|eLs0Ub6|2eT8SvQ%^zIeC$p~m2 zZ|T@?g}}=|%CownyH_j$vNtkLXxEbV*~ly*+aU05-gTXd+~r<|d+VwXUxog?vQPAy zZ*oulFuRzdghtYv_tMjl z;?_{^DT6~T>bNy}muHVEAL=gc?MB!3@!EPVOWc^Zy4+nF>Y}{nyT?DN#9Q;iRhu4M^T30l7WLfvv&!8$p-i>g z%Ndk6rcX()KINB`lov1c){QN>WYepFdzE+}l@A$PGH_V0Cx(q0Hn8i{8@F%wW_ycE zdXWs2vOC9H-B(Cjhg#P4 zntuecea>Kz-Mwn<5O>iMulbsCH@3Do`&xJThhBH+(n@KbQXrcJK9&L-q`)38n*~-U z3Vh{yyS%zXc6;9yFD*aowPm4}sc79BPDg5=b*SfU*PHd!t4P{-`YxdFxvK>pjAjS= zjyo9Wji*zhx82_Bj$gX;Z`tk(4m#e(V&v>Ot@rlwHSA#bhP^sSc;+;3$;Ire_k{<$ zMWJI=s8#BwrR&@}tKAbrZPgFnQumJ2zxjHNSMIeO>%QPFS%*UZIPJFW=w&E%QP>;j zE+6M64@To6=kRIXILSCKympOu>N@u&^}3&sOYNXERrG9DTaNyN$J89obMJ=-_oHT=OOpE{l94%z7u_ zPrw++HIWU-_;|%?z*j|9>p~^E(B)F-ixn&c_&PUb&qntY$kS|hxp$V=bI3aHxS)T(Z|ThkkN?z+-)_y1$=OW>QT(!P7o)8YYTP0KR#&Iq`(v;|b4 z$!&`wG`T70AT(*&6lf?QTa)e!Ok|JY&rKV&v};r^V||~sp9d`qh(&RmL!|SMg7$y^h0?r zy%dL>02SDLwLV%dEg=j}t~7gSLu`vie=D_7O{^0`wy)F@^yy>vWUR@)(ds)!f30Y- zW>g#7>>e>TUL+a>j;o6e9uHM1(n(*J@<>nSDSo!Ag+{%B6C_6Jzr2t} zwHr>Yp=Zk6V@G(W)$-I;xI>{JPx$SMY*!mg-nY*3`0N@sn$=pnFd0SOs_=(+rPV8b zD$1QtB@I{7hl)G0fI7>tfb<{xE$IvBbeVK6^q}}{WT79JKFhqBM>Vu_NT+IljB7ZK zn~zH@L5I}1U0i4ezVjPvfJ&mJp4d=Vr@uz38TZ;oc&U1;u+Vx27<9RDv)mS zm&>r6ME#mj>PR`)Xb^G$UBH{^({isTAd|RBpO8%+YKw8ws}(p!zAU%UGeVRpD7C)A z9SrFMaT)_zlX}XiB_X-0q6Nnesy+znSEu-WWNmU$D8{WikQ*#_hj^^E2$@J5E5q1b z4^{Z-m?ACob&OZ@%%PIpX0tSGE}xVwt=ZxlgB*u16Mxm*Yt?YD$zjv0XQ`^usHt{( zqyoMELq(Ww6JB4Exp|-V8Ye#=gJ+!CLf1IazHEs6K%?S4Ri(|UQ72gKJU{pA&;5q* z>(?gLu8-m|VRG;u-%)PUm&q3~pvKdwSel-q64QZ7U$E|ZIqbL`NUtll=F=IPhO@zI z)Piy>R%`!K`b)W&9v0$Bp-@|SJ3UHbp`semr?M8>C4{Q@QfI2FH2CO+a@k4`3ULTU zkE7ORA)fDvFthYgxu4z=;weR;j#%k;;V|i&`%;qJKQX&AH05vddUK&M|4^rl$Ero5k#QHgCb<_Fc~j858J zE}i>F*4Xc(zL-pxsbJ3Hl+=`hZ4+^Hn&^DfkDnJLrcJZb3Tct{X6n_d9U-S2aFZAU z{&5i4DiIR~H}n&Z@+`jaEXMCY##=_2)+o2AbCCJYo0!7`-}Wp5P$$%XxXror_j4ziAn=@n5ukJT|j}*Dr~(f)A6D(7El^;QN{PQXennJ8Nj7 zJDwcj>Dxz4rC#Ac{@el_sMYdPa^`+P@0N!(W2(GJoni-5^Ar`fURyxtx8gc*RQ`%C z57z}kC&3GjQLR(gQBl)_bf8k&hN^PdsZl5BJH;zgrM1~gw^qnpSyyDAf&Fx?9B9-g z_|OLRYX56TrdgGymRe{v14wRhU|OC(6ZKe$`8vTnf#tZ z8cxtHXIwu}5#A)PexLv=D)CUWSxq8Wt7>+6g89@l`~?k_&RtV8Ctivr@e!tAO}^a)Tdz`6Uy_87G* zr+4*pPi>dyt+M%!{T;rkRuUOQxj1tMqF$B)7A`F6|o+sf4K0VHuR#K`VBW zMP|!kG{8wKEtw+opbJ)K?S^^F7day`RrfwXf4YRB zvqh<{CEvCB&sp+I(Nt6%LkV8?^9!QO{8tutGRgS=L+Ty7w ztpACg7=f*L`KyR|1AX|(Xe1^@dmjDj77+haqw_DwpbJ*tbW2QPlKvHwf730Ip<9~o zT%EVv5uqn%h=k}U(lCf!BZtfGVFqdF8fFYv7mWcq>7qQi>?#16^Bgf1Rk{RHL^6*G zq`2aCblDZPqp~Z0l>0jmopdeGdjzir?z`T#NY+iaI9IG##=S*!^~lrAyJ^|76$>IM zE0MWq;h8C@KW{O_=0&R`B_cxfJT4eX(A!sa~kwE;H%59u4s-xF36MW#!uHa?dxolLeLQ z6AJFI?vGb%GYaT1RgLk-5EYEtus0lKGWnC1+ni)=KFUc ze=EEN5RFtbY8VFNbq_c7r%oZvlMHM43339+bVakU|IkVeP>7mr9+Z@T#A zX%5+mZ7pqLq~R##HyzN6fFR72mPp-wSkKW!P=VWf$^l|DOCZk|iD!hu%=)9}g(LU( zDhh5NJCFI?7mAoafAlJDY2MYwoMFti*sAqc{q)aQ=xt2(G_M+U^J^U>7FSZ-i zr3I^{K{MJlx%Va|?W$2+VK~|$#>H#a zyQjUFt zchrEn19!9vC8(!gYPT6Z>fIi4x#<_-`0Sk5K9^{q^6Ib z1SLpw$f(srZKdtCnmuc*vr;qYCTU7e$#(c;(Co@;wAV}Z#AtQ2i?;U)XJdMY(`gLL zZz0v4hOVZc&4_(%qUuVMM&IH1^^m*LWW=GoMv((1YHhA0O{>GuqKl^qz1crA%|5}B zW3N)}RXE`J|D2I7%_E0ZX+E>IW-~qNlr5WPWouJ2@jL^)c#53_X9g{`P@JMx03xnJy-@l_@c5TP1kCo*@OIFZM~>6Y zTw<6U8tGIaILRzpz-fcR{A)oPEt`&}PoZ8WDll2?E;-Dsgg4=?w0z3(RJ zw?ld5km>u49%(pog*+uSF~WcXf2@?e{-25ALAr*yu~g}n>uHKil-ut~57B>tC&a>$ z&B$NO+oKQfltSD1NwS>RVS;SRo^+j0s%A%ZhD*y=1L|m97nbkW#Hjc?!L+GhkU>E& zH-HhOlQDAWwu#bK*W4`g#3g+p+_ZDwuczXM4KrncH201fOJ_`%hB~rYpwn4QzigmI zCi(&s%AyJBM^)KQcf`u}0x`+}jWf0&^ueuGPrkZH6_*+8E^{_5vZ0HX=tDMjKV(l! zDHS)-Yv}!^9^nG&)q*Fx5>IC0Co_G@&(co6? zKSM2%0~P)GMiJ$T90^$m3Jk^RpbZtQ0R9p>he8y6tstyd6X^iv*9~8soqQvmsx@y$&&d|=z#*X4)T>W*^PD&M4>OSnx(b~ zbTml5a<@i*6>ePcke*~UOK+K|{g64U+VPTSvyWy=@7KqI$2-jQAoMFGw$x43*Q-`( zMwhS6C&mnt%{avaE_o12-knxCab2U_vQu?sK`GEGvyYQsKx%mpRexV8P3V#aK?BQd zHb{4~Rs~U}UGn5STrP+1lEGAQS^tx72kY@=z2{MoqXy{+nyrC=xO|ZOQz)>|nqi$a zhvrK!wTbZdiD`7WJggc+G!?u5Li{~1!gObO!-HTvoHP)0nO+or`g6Iznd*g?E(_Dj zcIko&b!T}Z^}`u*L}0v=vZNOB?F+m>n<|^=(-;fYRa$E36Kppb?~$H-J5K8-mO_}K z!(|}D9(oMpYM1GBvveK}K`^pWLj_bZ)QZLUdl2$gC6T}NnP(c&J@aa0K3A}o3e45h zQD%xuK3~Knw~Mi2Lj34?E%b`8(5`Y59Tehsiqa+nftRSItQE9Cj8Tx=py$4>h_T#c zxIib0;K*{I;Za1hqC7_TS32`DXVNhoDEC)dvgl1*JXC4Bu`LgZOUy{RjnYgq2%S4$ z*&tJrv4zZj8gC-Ajr!-(iiU_HhWfi{g^531(&Ty5-dMjD$3XU|)FfjXc!}Gnz{|=N zo@;tf!MP-PQ&FH2$7zOum9l>Wt?*O-_GtaueO$k`tNyc|D*7k}le?v|h2CQ|nZMFP z&&D*#6Fyl0N~D2N*+=6{lxb4UX>T<9eEVpnpFV)WV^_J8@M$uXm~da-P< z940#`Lk{?yTn%zK%{S3dy<$+W=*BrqE8V3*dI}Zg>zLjHmHy}Ga7+s>=lbaZrBw!+ zskz*Sffj`d^mT5TL`N0$%vT9Y@-%*H=Mtk>UPmgqt!Ji54$Y@kU^e1#@Z;u9D! z;y`Gcf;h8STl_pp|2?ww@YFF#zqhPGSGm4OvQ?7~pNIN~r{*A|p-d(sNAOvVN_((( zXpookaBlD~eo@+>%Lr}HMI;czL9+*g8j6XC4sB%iM)Fa&H4ds}K^sfJn1D>i*;dTO z?S>NQVq`-H8@A5p2ep9PK>pD<3v&G>{0PycV{w)s((Wv2kBpA{CzamRE8Shv`eUWH z^rXAaZ0GGb3-s`UT1xb1+8ft^o9A?MMU!qFJXqoc&-unW5Z<~tC2uh z40;#e)tla2g8A(3<4N?f7A4pHd?!EEt8F;5lYiBd)|WK=*wANjmO%4pm(iZ(Kyx)E zSf!lFXCk`ugwS_j>2vFV>SBoQGyM=*@hEvl-oqO!4|2JjF+g!(0{ROkO!$TpB+sRgNpd z-rrdn%|Pw@dhoj6Rsv0Lbb-6U1W;q8bgNYmnX%^n9K&Y2`+CR$tP*>qxILQjdGs5Z z8+))dtF<^XVU7Tjw)OBrG=K{2%*2PHiHFWi4C-BYummR|1jQ^>j$11`(85s|*g$fM z!Tq3}XV0wis9xnLRQ&veyuu64SSpP@*o4+n-16hdHTJN8eKUar1}}YqY|qHlAc^pd z?JtJv90UQ4;5VCkSY#mtUSEKUcwqK{dBHD4hIL;L3(j1Fo!9OkD?xQpU`>g*QeQuj zB5%ZbsRM7eL(ccb77+RohAg`rw+Um5*1w8t!5PEtep@VayZ7&#J(_5R7|+c;QXJjZ zk9X&~do&^AUkj?*1?RZu95Ge}3YT|yht zBv-VyUi5)VSbrl`qb1M&qIlHPdl9X5?$yoX(aNA<*1I#Z5tbC)4OhdVqWz zk@S2qNFNxY^O}Z_T5Og+*~Zq(bN(NFR!TOe1lyeP69l){0a^majwFp>xiY!?GMw zeSTjE`yhK4X|f5XetDtY3_IHU^)g9TXYrwNYbpQum$BiHJRQ=mST|l~cVwwqs*Apg zVS{FMMmBU34PVl)8lHl5wN*dM-lvAhwFLK%>K!EAv#c=HW%+;$XpH>y3!UiDBqW_M zCv9}tA;+gEkSe{Zil1#SVUGR2xUiOG_qfDw`m0&9A>2UyW=HOuB`nU}9~VY@$K=IO zQ6RCQlxbZk)^lS41G{xkY1+ac z9&+$Wz*4C@j`v};p4r+##eOYIq=3qEwRRcuRoSIyBT9VM{iEHjxKQZ3*xZ2rABuF8 zh((|Q{G7Mxt$tjh%fOp;c+AHord_(JE+AJ#3f-<30&sxmaEo5(qwYfB2b?IzHrKzy zBrNFbNV)ZTxvxuXyY!9*-*m-_1LQrzD)`uY21q|~i?sV_?`(YD@3 zQ(UM@FLXLm=(l>I)7^!T|9NaXI`o}>3Rdgc-<2>+UaddScYJ6z=;O?deHP27|JQoq zuFkXmC^8c~`A1?K>i2Esm2*d_WM(LeT4{lJa8?%r$b@8k2~$>&zGV?SCav7oH#cBSjpP1 zqp>>3?02QDXpj>g#t9v^mt9FEme+Tm8l`%Y0y4Or9Iee78CnV8lm4x+91razXS>}9 zj0pq-wQ)Tp-saTD1I+OF%OLOfWKcy?s0v0y%seDUt%{fblVp)4AOPSBLoyGAZ!eP# z>Ot&MX-D>72>MDvzXO^BdnT7_0BJNp4%;n9fqJ^+R5_i^1qzp41z=h_#{w0tq8pn~FkBcX%lXcsXkaCV? ziOZa6S;GCgk5AZECwbLYD!pLr)b*aPosDX0mS2 zV4@secbhYyu!6=jb*c1uaQ@dz4p+W)n0=$|G z;8nv0sBxUKU0l&mT+tU8E0|Hl*xq6+KKtW>;<4QTN`timB`zN*CJYi2`iTks#RSfS zreY~R#F%(7c8IvTx40@nT-9G()mx134-z(>tKx%IXXI=_%2f(2!v_Rntm!vOMXD09 zN9_?}58I;zy$FpF6dp*}rbH7&CR?WdBE=y^IW{o|^zl%L`naJ$Xi1+SwZa-#QhuJj z2pARv0ADqgPUzS{09Lmj+ihn945S4-KmqhZ1AuTH0L0@ai0$$9fwH@5>>C=bIGr(U zc{C>c8Ql=3-r=l*X6ebG1r2$W2MaMJ*yxrf`V8a@d$~y;Y$!Z=$i-L#y)RlER9_CB zrO+eyR#)d?66zeOBMTiHV94?SMzYR5L6n z*=D6WieP{|-|uq4^l^Eod~v(Bau@JA4w-ihq8yMpTusF&Sg5yYVh#;+(%ofp=*r#H z+e`0I1C)L{ReGmfxB&yI7fsS(&z_i*hvX_%+^HCH)@0S>(V?PNdi*>$9Vl||nK~)$ z<{N;Bm^nSO&?j@G$0Ht8`g?%fROK;kN@nUBD->?I(7^feZNj&k6>u%MFnt-2u#Am` zj4?bO#ScAKU`6*Y$)y|JIdp}SZZzS`LN7r1_9&EZpTzhB5+f+bSZByh_8HU$?dq)p zgBEHQBjedd2ho#yx5~jX`M57AUEnxjKyXqmU~*rSK#8PRKlFKl7%@eOpoE-G@;){5{OvTj0= zuWn>sk_^;KM@V*JpJ)5%CAO@sA?aPU%O@YfaaT~|vQkN6dg`+4_Fzj%Ow>|e(rVS{ zBfDR^WRjUiw~CWWdu(h*ftDf63>aO2Y%ZpHy4ZwXlr08cJD}W738O3WG+j1gKn>s{!YDty(Mn3M=@-L z1!sYH28%CS=5|V;VSCfIIOu!%Nrss{z7QP()R?h$1L%oZ=sYxe*!9}(=MPr{5eowO zJe$rg#TM#X_>1Y?Vi1EZ=ZVpnKo!SnE3GYq-KcR?su-T±AWb!*4&O|Ll67}(RC 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 literal 0 HcmV?d00001 diff --git a/STARstatic b/STARstatic new file mode 100755 index 0000000000000000000000000000000000000000..43e95fd62c2a2d8cc753cc0f4991eece408bc4cf GIT binary patch literal 3646356 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Ⓢ8wGpli8u*F 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�D*<;7eY8XYNgeHe}mSSjbPc=NmF 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%0Dt=f7ka?y}* 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

    jL71 zTlmxJX4nO4P%8)Evx(b&70AMg>4ruRvhb zb)criY@|zj;?H%v|AYCL*Pr(cy%6|pRXbk5qISJ%&#RYV2~4XIYdJ7R5Z}fwHQX^M zaO=m#ZuRMRcXVrV`=Y=22i)~(0pSzz#V8As&j33@pwtmgfPq+vIPZk(5dtL}DZ23r zuIbm>ABL^*?$a0`qCFr+?(i|o0k`M{ t3Y9+x<3wJZ)N0->_2@AQ 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%0A7Tmh=TYd!2{FS31je) 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�hgK-kc&gv{cR)O)%V^!M`gF48Sq;20 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%0A5B7Z>xPZF20CH74g*W-Wj%#b6h zt?0F4a^H@b_+AO@{}k>KtzD-iHPH$UJven|9U#cJ@#puf#y_i|FO^YVZ!gVRpN5eq zOM7unA@>WiRAcQ=%o*<_d0~G}Dxzh^I+ci^P7kT&;66Lno zK3P5p6JrfNW&^hO0bbKji#8~m<$gL!IG`}tIX7M?rx+O^IshYiA*dv3&j5t`xc?Z4 z3F%#yc%?q^A@$nF$Wq|~*TUG0gy@9Eru$c!)o&SdC0>-7p1_oBRd7k)9xQa{QbP2* zFeYZjLDTw&X*VgT!PktnMsN{t=j-To;d8hp+iogl_eAYQ<+_O$m&gycs7S>tPV6PU zTw*Y6a+`C0wZwxJ%iYlabdkQ9)mvzM+D&8A`NL(FIE6Mfrh7!D4G4P+rewcqH`h>S zr26HkG5T#LH)zbemd&2i6%@E4LXyDD&xH7BEHZyQHt|KU9m=;0SUaRk4m)y>m+5UTR^vKAkmDo=+|H#rsAhK!X=NiAttIEUIUU>qW$S1BG5%kiLyo2lV0yi(~ zDAX|}MIz6(n|P07$!*=-5-G0#y6|lm{A$o#0b$~s3IN(8jqF&>^j+RqN1o}k6?Y1J zr>8L3av_mO`_ly0zj#@|XXvZ^s2zxPKOD{lv^_ZAW6Tq~)R*A=2h433J@~%`@5vW( z;Qhk$I^lhwcK9pcefNz2H{t!sEl0rn%P<>imlAkqJ_X)=APQX{x&fzx!Ea>Vi`u7M z-V+eFM<%HNp~ktrDhuhcjTfgMDHSLmyjS5ow08~G%So~}yW(*V((m^nJ$|>`gS0yb z%wxgF1OoG|-8VlbFq&uW{v+-5rk%sVeOQGD?gItf6&nHb$ig6Y&O%tD3ystsw8QQ& zfX&(}0QtwvT+!~e4nrF+rZ{Ui@cWqiegCoB&5yYv5h#nmF76>B=kS8R=E*>ZKE?uZ z#hkUz?$;tI`?i@Uw>jdw3#~fA^!Ow$E$!3um@@;xYgem8aV^K7TSUgZc9I=9%poOo zB@KkegB-*m#Yl>D&z+UEv=X+@x&VMj8)Kh#mV(7uhxj2%l|A6e7np8)z=@KNvY_8- zbR}%}xq){Gufbb(-zFSxSlxf(jN>}W)-Hru@Y97BDBcHS$PnrL%ks|I-KaHm9kU#^ z&T6B%sCC+6-c0MPInoDfz%Xgr8t_}*!dAb>yV0=KXNQ(7_%UzslTv%z3O13zZVKQb zjdSDtRXsN)+JjcXYzk!2rqZ*heIu}y?SqkuGD#Xbt+Su-)j9csM)drgpC6V;xa5bF z&t)XbD4+sVN_jmG?bI+iP~x0=-UYs0gQD4aI-(yU%(@@xCTL(7fpa09e4cm~tRk~z zq<$kMp4SrLoP3xmFMqD&|EV+o690SL!MuFEcR)08O1IC==0hgE{L%9L9oc;4By##+ zCb^eruJ$i#-*VXa@+E%|e~!Sf++gyHjW8|z#OWSFYV~W8i7=UT~H#LqnS}-i5Al?Xzw^9uSuEkDA)B8X1-lQ<2?(+ia#a$%I_d?tmbZXdjNG!O0fr)>U4=ana?L+MUwkFRPpekbI)q>M~W1ly+2sEuj(yE zQV^-JZ}{x&_zW|B4WTsFN);b+Asz&Bn{$3=H8ZaAP$uCk>-bzZ zk$f%(6XbIorR4K9l^d|$7HTC_P}lQ)XV0o^S7!8;d%y}~y(2xn+loZQ2USNl$sjvo zy`6bPd}YEXOM*S%TQ5rb8?kSKP0!LYdt>L!8Gh-G*d%WpW_k=lLZ+YKBSLk^A?}u{ zIR~Ub>@JlNsz08(vx@_hbLn=$DTmGobj5uExYyE-{BuP)lI3qg&xoQYQn7J#y7vyr z6;<1ocNq~bH-^fXVe7Qbe5z5>n(Q(8R>7!VAo@;*Px02u(`CJGc#P@?QhipO#J{k) zGId!XHw=Jop9!+uN3CpcPX?Stf00Wh`~87N25*SkkLb;G_E{E)RaCB!t$VJCrble% zs8fDqPFv|C_YvLjB$={v@lOCB2G>T1|F#ARbLt5^m^@4?+MDRdZ;g>W$e;+@WZKul zJG~KqL8^?*`KU>fQ=9L75={-KF$fLLkzG&tTOch+*>X2cDaA+Vy;s!m0<8{pydrAy zw)ix^&e(S_4NLR_lLE9QmNc9vIHR*1Eh_@D7Yby*@c4e* za0a}{G}K9;;g7&Vp``*|oC1=IibV$_K@>a3YYtx^fNabae=lAHn2p4bdD+{b03E;D zc&br`Ea5=ehUp>Cd!v@iM;SHx2)8QJJ3D{!2EeQ3MDVJK`5|wyj{Td#`1U9Y+%vhV zYxq6o({M-|2as^(wB00q;1L)ZSJ*HtU?gYDB-`Vrn2F{EJi=97CYh5>`DNSydXsFa zu>F0c>lw6UH@#0m(Ton`mp(-8#Q~~C?ue!bdZ%wYn#S0@zhPPj<-msoljGv)^pN>7 zAbMFy>CCa-`Vk;hL~3FrNs;2q(1>o9kXhYtme5b!Z1?@bKRCAJ&baJt9F zM7e0A&U!7HR~W5+Zt4&z8taMMeUa!Xt){G(XcvoSIB5eX= z!lE@c-&)_|yTv^F(dN?#sv}D!6dc#j|T!e0q#-c z4c_dEW98n4V!(mh5V21SwK#L%835$50liVC@#Jhi(!d1oOE)g7ZVa%+)9E z@f2{K@_M$^Bb1VQ+>4&0co#k<50nj1T~#sU;7GXP4J zjb^4FXk_3{;=7o*xCDR&FS@qtKIWYIsH`%#GAb&%K)600N~OjqZnrddZy^c&6~OEV z8mODslGKa!J#(9u@{ZBfW~Iy)e7&N(wpJE|h4H#yF!S#N1Bg#iyU(FE5z`7j;s^aK z`l?aR@IU7EoB4d-T-x$a?$Nb4UqNu@QF3_-{N@4>M6 zk2TCH8%1HxD<$~Of*1%W4rNJdbV*)*z?+#Gfr@iXdJV@v^o7a|(`H|A&WxUzIc@VC>xDH&!K$oy8*16xX5ww@!3EZaA!UWhSZn!?~Mw zGVgTJ^MA7*u@?Q_2TG?PTaBt^auAS8n_M}qqY4 z={sB73kjy(bG=-AIaH!BvpsJMW_~+(@8Fh|-xlt^<+J@Lb*$CjJ3q0$Q%}GZ)$~o3 zsf2O9_apC4bT75ypwE+Cd;OMnw5?|P@v+@=2L;dX|AJurSM2FdpWR|n2J|pk z3s^zF`*Zqe5_mMRro{awf!{p5(^l{*@|N^8^F+?_H4SdL-1yC$19!%5y4@<+vkIF{ zO8A^PpIvy!f&fn%qPZ@ORPuJ`FH>y z=WIC7-v;;16@%!bcQ3b|Yc#Fdi(nQTth$BH=_jI=Vu??d14LTTDfW|&ZkP!|M`dNC zV)C~6yAi18#7$NHPUFCQAI-*Ws)9jEH79Sk`B8dg_oFJ3E^q3l3j z+{7FdIrEEsGXFHQ|R%MCv%Gbs9 zC;pP;SJDrUOt9pbna8ikQL}lh9XqGAV-tn0^E`5X*jJ~3)nEh>$abmOR#QqFPy}vV zEs`WS5u9*%sNw-u8b3}>=|t?SU_&;?xLF#|8C#0bRmyvO4{}}|v;wpJyGBYqb!C=B zr8OMTxNiplX3uVtUWcrEOGn#RR9+L5oWA$8%v(4!^R=X6jE(9?~=$3eS%OzPd z+oYC666+@8E+yv?B_{H)eiQZm z+ag-EwTN@^Bt44EN-kQgGw_kKc{-g*nJ@wJLa(7+&aJr(q1N;p!X+?*OQ7t* zt8yE1SBbB>=g!J?ho|C^1jx=_?;KOe>8!AIDtCn;~eD<8#X zc>u~SX4dtK%!JF?!eUjdn8@zdbN*hzldDIK;^Mu$ z&O6Bd5wC^YPm+tc_QtnG?0Yvw5+7AL*N`GR7|)4JF!K}}f=w}dp);CvcN9}Ep7MAH z&hrc}+peNbP0~tlb!GRc(gK>AA9OyzP z>>L!WhL0C@@2yz;M>#0E%ekRMww;kWAoDE>uLlHZ=iFV|UVjZ};PrUF%+=m}nR8}p zVk`nYnM6Ss^zIc+zK~bX$h8L7jDT{Z3R$wG=kT$HTg$$>A zo%IQWJidz`5dV_H#(6Hi_r|IEovyLIL8V8IH8p_sa07f2t>E|?{_|hGCeCRW${e@3 zg%tIsWHx=3DY@u)nUdHHrXym#89&y2igt4P$0-_aZC$AjtW7ABqzT2};1T?yfV!?&LE7Pq^;N~gprOdsUZ0jd#8 zyS3G=;l(5J=wAgsBG!vyQqUM!Ia=5%aUjxA3P$n^8Kd0;m6v~|id_Da+Mw!a(G46U zs<={--AZ$a5hRYl^y8qS==E%r_=zfz;KcG+pGfP*Vwl=a6+n9WQh8C64#i zcn%@H7o(dO6`J)C6aDs4k?I$w{Yj22o*GGv3UD91Hw2+oN>4qtw|zxlE+IP}38gA) zTgE@Z+jr8Laylb=0)O!7X;8AeQQwHRvGr}AEW;Nt6N#Bc!EA?5Xki3{H|*Oqcypqq zo0VTiS7o!`t~l#838h#QXbb76e9tx9rD$f_doJz(-U5n0Rz!T!qv^X$-;|0_btBD> zlJ6t-9s9*&@F=<2E-W~d)0wq|E4WGUY8>^`M^4Gtyvq&W3GJ=j8jRuJy3ffcjR6BK z+t{aF!*+Xt!l27Q%CygOTKg)`!J@<&5w}?*FEX>fvxxf}vc*44-ZcjSay9Sg z@wuBKQ^zZ!EIZP(zm%A)GRnf(DEq=9z!zTd!XoiB zskU{zg4?e1t+{mH^S?Nv)f|0PbNe#vNnetm(R8$URv#m|kZD*^+4Gvf%4V$M&L20R zbp`?T_pLX}?iF4$ej*#GzqA8XWuw*#1p08dtYP=nffY?iRAM!!KYV4ut$y0_jy*v7>(YNpL=D|FpyCK(K z7v#9V^9X_$FK~f?bqa=lc7r;Z3QqK5Eu^_^)u_eBFYzA7FJ7^j^NSt1t)E2g$sE(0Qgl%|dOO^o;h0aRGmG&Qj$)J$i+CjoHa-9E$nxLn@g zQ)V|Y+i_SuNI_F5?*=ey-2z$$+ct#l?-kYN-BS$f?hL0R0)O?w70OpJT%qOc%PyzX z&oaph55Hs4y^QpZMMi3YzR!NdNGrQ)>y3<=V?BIqUt6x6>^myapDXoj?W2hPUBubp zV~UNmfp`ItLdMm@|F~L06~>hM-(MiQ$XF$@3`*?@MYc(IMr+dXGH#I-^ClGKbtcC@ zux==}E@pVsX?SmZ1%qg0=tK>ta9ty}AZG@2;WO)FJ?$5v?1tDd7$S+qa%rh)UtMC4 zF3uZMWM5Wfg^KeoFAi0&wJt5XcT0R@^~cacTR&-vZ}jCCnq$$7>lNcsmUiDhzLD@jz;jjT#Bvr#ig&XG~Nf!8Cp{F-CM{CSKnP^JW#7ZQMUk%mB4%0x*N{-qEhSb zV)qQPJbQR}I7QPEK*{|lVgPs`RDBgGyWsuZNB9H0_^rJBJ;nwH;01p*lDFy1!p@Ce zz|fVpnAX^Z+)KpFjHR4esuaN*yNNPeMM`g7FC3AN=miDrkUol;A*Dke{I*cAkHEz8 zDypAsYpDutZS;D77Q3o}UNDPDC6z`>B_UhGAOS$46d%md&cU6et(uFs72~i?g|gP6 ztn$dj5%7jRpK)uJGwUW<2b4g1qy=gIHWEbM2B9n(o1Rr!>Kq980Ee^uR0JUuc8nbb zffxARw5ps7el4{Kmit(|2Y*ua1@RAVLI|iWRQfG3*p-@#O5(pxp$=i(PopwPSbsE{ z2hKsmfhsK%teW+RvW%b_jTH?r=6^4zm!na34{hRZUi zc@d#FCBMkwiQ9^TM1h?YA%b@#-G5zX9P6JL9*EUIhCTLnOi}#Ys6Fl9a7}l$%Ytr$ zYZCr;&J5WWtQG8@+A#E%!me^IGvp}1KsG*^f%Q1AW{wE&$F zn4vR*3_S09&&}hoF1brZH>Mm#T9K5Gt3>1%JL}uKxiH&IZ0Pv-&uAmc+eUl5#AuI~ z*!L2<#b+l*m+DAGmt}bYV%tXhT!pxA%%3d1u{OCMic30bR;KT^_a|SH9(cCj$LR1= zrkxIeNEV{fWaq{`xN5vDsKr_xxoyp4*o^Kq(nzLNnA(Qkic^#~^fpN9jb=e!MtE!I zy{2*)HQ?gy@5wuz@(0`a_A<@~XTy7#-VwgtT@e#SBH4pHO~Axj)LBW1!jL1E9J_pf zhn~L2*?eTpqn-TxZ+Ch?}eHLf@mCPrTSD;ad^HeQ_d9O_B*iICFGy+(1e%(rRLf9L*u;SJO)Dt4V{ zHozlq$&^gX$ruB3Vv*|h`RWJ$OrDt()(W z@Cv38A2zp|`){}aw;0}fHjx9zfKRtU$)I^-DuojBi>pvA5@1(H+yP zqMyZ2v-9UP;&3S6_24$N9Y+{hyz<7989~mLMbo!%$IdRQU*|RYwJiU~_lP*>cjm-D zs3Ew>-|DQLB6&zRTd?i~y*5vvP3%0uP-AyKl2*568g*ZW)^$f>To=shtF#nF_+0! z;SqzH*#vYBgbsfa)oV`Cm)0)4=PdY-MJqQv$7un$aO(Ilf6wnw3oMWiFu}-=@sm}? z4_m5M;g?8;kYnFA!xXXls24;8sH@--ccpz{?6qPCJ^y+LOM2W%YIlMFR=g}mgD#^; zkAU;YAPgetFLIG)?PBK+?x|B=hrmaW-r7Za=sb$UHBoJ=%)Iyl=crFU(;~?sx_@R? zX{5Rj859gpm6Q325Vg8SFYrmU0$&g~%21)R+0Wo2o(48X*w!u+SWU(dM%1Ddd~t+; z1wUn^aBK@T5C~s$*U`g#ZI6FgYQ|DHO$itGH#^rs7+tQ>?&L?(@%1c;-XkUJ0&erC z$)6)xDCZkLlt4crEOUPIUT2I4g!kskn)OC%C{N0o0|xH#ytLJHoIUNXKqd*n-~t}u z8#{jNjaAR;dvGi_I=!MnLvY(yjVJs1tQ!`Bp-|eR@WXb2rE=||9V-4$nRO50S1Lt= z`);J-%}9E7kyE`_C)l*s#x7-vAb1j3C{poH=OgaqVx9xhV7smx&xO8@@FVAAXpd0D z0<*e2h9*>WyB~Q6ERCLgO}dxp`FYWLsrxNfz~5)%eU{)boPfJ_V&s5d2t8Ak z-%|^O9y|@1QWjy6zCO+?)O)TFvRD=L@8?_x0@;Qu=UftM)HypCyD( zO$3+gCj7{0lpwR|ag~5G*E}8T#~xRZ?lQ?ZQ|D``ptpn(afAOZIPI5AB>#*hc_W6! zv-lOez9z&z1=*zX1vgo5B9(Ld6h?`BaVH>*1|rRx2%e)2!v}e$d_fQ9!!lDdnUO&N zmh)eq?dWKj*)b^ALlRW3S`|4{!eC^~;r$+C*(2(xZ(Pvtm%M}|vZdAUM?7NT1lx_r z3^*+A`<;sp053UGVxJ^8$E)hNdxz8S(Y$!Gf6-y2?SeuX4n1Y6nD>HlROL(yB2=wo zBYSWf6<@l7o0;$DwTa~B*fCTZN!JDA8M(QZPCXB!T?8tL{ZvMy9&cEbf*MzWNE61A z!sLe7#D)XIqUp)O_y_dXeN%8&;{DP{b0=u5>;#uI&;-L6dPc+WVd;xn;Oe^z*P(dK zDs0tU$4g5)nA@#l;{Xw^+z~jq<*&h|r3}n1(@xzL<&{MW#W@ z2jj#Mxd=^@Xc-77@!Jj&z$~7#UB>(n73oslCuiMpS6fZtr1Y!@0gspw)<$}azJR}?u^#YXv>?#1u>rxhVNsC;{V-BeRQUy5M^LXQ zJ_emT(a*I$V!}}XMO5>OQ+e=%;s_)9^a0&Oh*ToY8Oe*Fj;vhvT#8SxkB2TlyElB1 z&}%}E#%h3%5d=$W%Hco!e7t{K07>lg*vq+^uHt~1I8cBeJ=>Wl{KFPPSwnVy*&@6~ zBn3PkQ^MMCztg_$y1jkS+B)uhf-aS!z+X)I(mW$zNG& zZno4cuhjRyveb3iQnz@e?*GbC=VeP>=9T*8SC%TumKy1mTKtuz-s|PhM7dXL)mN5U zlP%TPEA{eMmilG3)FD}HyI|*6mYSI@)tgdJ2R7aq5TA}cLM^sA!}sk#zceu@LG5-q zXYmFPLa3-Iaw^h0Ee5OOmb1-`$8a;&@IM_qP^kEf%ShW94plVpzu?X?>2jRBMCUd zk%GPvm~f->dpH$Byb%KHp=i1$*m#_=WL!`@ReJm1hW3WX)8N(+do04BxW2uHlSe4z ztlbe~#U}DEB_9=USARG)6zIx}zh5it?$e^Q;$)cJ=OL3GWcl`}-S4}+OE;3t!G+7=}UuFzhcc8-{hQxDDR#^=`Q_$Bz?v49Sy^dGEz&>r>^T3aR1CN%;+rH z_=zgf2w%{pbN^&==a@S=l9550z1-M{df= zzJhavS(!decGiUy`lfbah$>`f=$k7G0*_SLe&Xe^)5+T)yTTs2$IrXl%M%%j>npsxeSY4JULJ&#yobEJ z&-}bGUS4-nW8b5`ycVyIXL{+Pc8h(B^j>~?UoTx)7ksenp?&@I&py^M!OjL^=(dM` z-A{kVOFv4|Ic72RR6qSW(z&U`Jb^<6t9qkPL@8QDAvlaNHTv7yUXWGOwvF*wrG~;y zH(~&tparZkDpRfz)tA;FMn=Dfd%F4$NT zIcqXm!gRrvhY8e+a;kLe7h-V7ynbXzWPMLZyBn{Gc` z*1)@H;%4IH7`q02e0pkrr1}$MuAE9W(-(Ea<;a+OHC5W(MoMICW8M;S(#?T#4h3{{ z09VF+_mXn6m4`yytLg84wa+o@__tNR9A6}dD0B{ROfpg(NYp`Ud|@3@p7=<-q@z!aE)MP;U4;JgN+F(j2bWH}PIKgp zO_j+pFy?BeQ%Q~X{W^PiGWqTn;`US{{wy;kG}{FEVw`9uvE6mx=POZ&(T7WR_3H%e zrU7d$E#qb?p2afxXl(6k03b~68c9}e2-(h<-b{SaqbYt_cD-UIBN)7a*_eK&clO8H zG?-R94sf1Y3%ZWU@%@-c2{6*q%tN zPi9%uyl_La1I~wBnj;tGFjwPC>a6YJI8+z~JR4|C=C9JUBuo{1DPkKPET+gLK#(}PiUsBuU)S)oYv#_3eLKX3YWY*^jo&MNi|ZW(q`zwtMSsLj%i zxyz_a<>!y%9vCBj&8C}kq`IQ>;@3MFm|?3dBtoi7j;31SxT zhS~{frwYmQCsJpXm5&XTwVWu!%r;~u0zsWoCR=E+?9uG@WN*4R=2YW>40lx=Ua>ny zQ)HXaiAJ6GubIK1+h3NXg3#leBf;a{9e$}wxm+Yv>KoejhGbuk)x~2kI*+em4<>aF zhVcSpAL<6wm>ymGFI-kAn~(k#>6cN74bW4tOR4*;+R`M&Izb6P+l(7KnLW93qg{Ie zK;vuSc1Tf$a_^?*hIhId$*{i`6J-H($hrn*f)PzSY?G+1!vFke{Yp@+^#Qn)ljS_U zfv|2QEtwH}xIjaRvvIY|UX(@X+!dGOzZB*E^fW8&?~#0OkEjVmHcDUiiQI@*5(gVx zTblX3Ec;CSq6)Z`>~sOy`?@hOV+oeORl!D(lRzF2nRzE-eIPC$)a^dWT!pO+DGW4z zt0sDD`ZIqP%gu^bOywbhE3+dK+kGITv2ukmYN=S&lM4(90#FTH8}~KAO~TbmTcO7B zfE7is1qL(Qyqc$wuMO$m^`8*Fh^LfGUbzrreC|x&=T6fEG(O3p z!?oZX>2_(<&Y`{@-@-agR#IC9>RvC6$f^O*q{~~>zLNzIieF^f_mtY_*X&&f*?k$D zA~Z@O^RbdfaxNg#Bn%PWvIN95=DtY>BIzqZL9ZBdckq(fPH;Poa|@IacPDuac#Bxv? z`}DUY#Lk2OPbz}~zZ-v17p#i{Ur&vZ>JN>?+5U!MMdj?aM}sFikGHV@|E|+2{?L|t zBpIIQQD8Y3E%<=O%Avs)wFWQ84$cr)>fwvI41l1)npW z)?3*ba63ry>^|O%UqClSEidED7Rr3HOTJiDCA68HEO#6)ofTJzT`ao-1R7>Jv~FXro~`<~`(gUxuKHKH z9|?tEwJO$uX4qSMrcRHfr{`yKZ36ap+fGH z+o8J9yI^)lzJ|!1?aD0{kiH@A>#{;PG5s=7|WLRYxE#;9&wribiQRkTDom=xulv$YK+${KfOY(H95y! z0>9^AN+#O;k9WC1Y2F7wg-wy_-0IgG_}{ao01_&b8-AO$YI#JYu1Db0ETb z!W&XL*9BzB286=CKP>mW9-m2`Mm$fiJ&dPxc#tHH+qgR*EFNKr2yunAdx$(-UBk9)w~b9cDMLG*Z$@G3xAF zp%`QvseI5@oqe1z3q?`l5LG`fOhBcP951kgKY4nFY!_qhDYVC_+$c6TriV)jws)hw zfr7>}Ip>?q^fa$L@kZE`MTvv=8uJ{%y_gWJz6ifK&6w3|# zhVyO3{O5c4C>Q@f-HHFVMy&%8`#6EUqA%fpMw$pAfhni=JoQGZw;73F(NSe-1hvAn zs|*JIUnbhApJxd`4)(87Z%G6IX=R*zWrjt(fC7|?6gE}_yNO2X_h3=+Ui%)u!fBP% z*+)n1YMTg7ocgZjMxZFiE_6~;f0lhL)a$eC+`0QnVj2b(#8$}VCnq4;|`D5Pd z>=U)?mK&u9MaUC*;fmKHxawL*r5nE~xca~VvpN&sCBrE)D_%=Sjo@t? zy7xS1OS?5%Fw;OEi4XiT5>Nl2vp>(V?AA+%_vaL5i9_5^^a^QU2JCZ1-cf6_`ip5N zyW4;=r9(u_3MJkdCECky&)4gS+(fwx1cL`H%kJ|5zd^KD3ij$*=tMfUVB^N-_a}( z{E4MBmTYJ}ScoZ`YwWl6~qJMh6>@m3g~8C`bM2u=}{fN?sI=3u)L!bPiO3e=#@>0at~| zebQ2yz>wa&?S=$!+r6X}0RT%~8QfnonGtSPju|0qOK3}mdrfeDr)>HMxf1B5q`2=> zYj#=Ok9ZLu`zbo;h;_CcFiS7~CeR&1M5x%5I5Z$^A(lba3fvhCM2qv>;xI9^XRXl1n1XFx=?}DKPw7WWktawPymR1 zpnE{c8ImX)-kmPeo!~})dn;_6z^Ej#24`&dS&HBGLicdbHfuOrX-wx#mfItJKu(%UlR1hviawdqM;maUCtBACPGhBrs3B5EDC33aOC2 zlq#@Z79XW+Bez!0{g4#kxc9JHYh%tXGE(=E(Yljew|$g26NP)eU{)WP@iHI>Neo&4 z3KP#`i_5l(9h-h2XDR31FEgk+FE(XSH@P-B%7#l953BRgoWP7qvv*QZ@Y8-0<{Xfr z#=i~(K5^`d09a}z!wk4L%6!r8pELJK(a*K0e8An@?Rig>tOzizD=8juhfuT=dhX(d z2)0X4Bxgl{CQ(CErbwzwPlf1mQyey0%pfmJJJwi2bn11%Ion$(lW1*-wbxbSl5#$C zXx4L$?E0|vJi3mGSEPDDb&2illl75ccLh-E%r2xmPqautqwWAN#x2ko0S{bjEE%Sd z=mrzJM)lmE*=hYN7Z=9+CUzR3=3Z34REN%eP90LDYkKfk)Ya?}YA%vuI_$G3Cdl|h z>s*B)HwN4(G(LmNw9pV>XQIL)fUhW=&F!9o0Zqx1Vj*$c(SStIw#qQHDq8Jp(cK(p8Ee`4m zz&%#V>aNfsUMBlRj)qsm>AyO?%I7dU7b5-*LHL<=p&DJ&5dQ{@>JvpFy(`Auz$i^5 zy42B(F}pzS6F3daS2+MPKJj+m6a7NV6cB#ISBKNa_;@y#QbpY*ZrGpx!)n->7i#V& zQ?HeXB}f`MM9Q24QjkjC4nFa<&@usX_iVqBoUTs>z!ki`HQpv$fHlskVRB+;Fx31t zX+$fjqY*?=nTWCJV)P!b826n@#SxeeV;*?oUV^y zx9DE+faVt3XN>Kj~KT246-Mk!sgS z{egBp%LFvDGE$9e|A`z>RLdO@m-tR`(9Q7H#R<$4q;oj=xH#SWIQ2G~4wuaBUJ%tWh~| z)ACA~33QeDNJxxrrf0HxGW+%6rmHfU4H|YAXac5 zrq$`5czaah*#?-cU}JHw8BSrIdjP!TnWBzn3e;$pg#h<+!E7u#iPWEeBq5rkbBbf-d*u z6$N)pJYrJ0U8tCEb~?;HajM{~F8hQJl*(NQdYFiqXtBH=zOW}?Y(!3ZiayCvt{?wV zYCXbgf_?G7vzf#(^I|Ufn|%9KcBdcdx{2Ls2rc|?>`qtnrDwNHIl|KlUg!je4@gl% z>pn#?WO;@UAKkdm>leO>N@E?-Khw8hmAmVGW|4iz!bLlccuctL;!^uNu!lW#;pC7R z3o)e*Cu|P!?C6#u0{sOZhI>>e4}n$e3HOQrp?zZFvwLR@YW$i?x*$k|WWj4v>rAZr z@zu2wj$~3tDh#;*FBdpA3kMumSVl~pP?hcg_R z&QkRR$l8x8K}w0qa5CSPxl@3NwdDd!49qw@%$Q1?$%{InMZ{P8axq2!cc8)zqL|mZ zE4(abWsTHMAXedB`-d9Py_U{`8IRS~)>OLb$~|k+lZpOhilXw5e5-cH2bnW5E>%dk zg)GP>xe$gyuJZlY;j{W&hxPjZVeU=9qbje*{}~b>AbO*s;!+zmwnS|Wikb+~3?y;~ zCl$qox|J4+RH-6P2(AQY26B5H#a60qwbH6Bwzbt?zbsXQ30nfSicl4`DpHrZ1Qj_6GrQk z0_OEQ6lzTe3ZQ3T?@<^6Z5UYV2Yr->0qudohJRKU4e`ifrgI|UI{w&ejG^zZV(9xP zC#qM4h?!EZjjzO-{X@FTv+)^bp=Q2+NQc!u48QM)a7IHuM2y8=)I5aX`HQFMMOGTzcFJTk3w9C%-Bmydbkzr-DFCAe@%by8$!+4ai;f5 zSdy$c^bnatBMV|kmG1#vGQYgc#(WX`Og@wJUJ?NPhw>O2=CmPmpZ-MU3=7S)fOL%S zRCEC>ob6d`nQO$BInd;?+ z@8M1K5uiwW6Y26XCy~X*sVr8aH(ch*V%P`vEslXO|EfO`oqU-;k;*^b9N1jeY3Lo< zzx}=Zd4DgbDc^DEE`5WFKF4wBT77pb3S8makN+A%H#EMd_mD_dju3fNV1NUW@g7ob zV)T!`3z6}o$#)@oEhD$R;!A1&pSTE#y&Gu3{AV-cCHX=fFuAh%M&1E;X zugWlt0IKmu;pE7)Us=X!j$JjozvX)8%=1^ELL~(}BdW)oP8EjJ#_f&aTq1uXSX;V0o@%KT@k&O&BhVSQd zjqZolVQwI+WIrOgk`=!kq*6PrNZ~83+i!$V#5Uo_BZ*g}>1s|oTjVz&#~%GjhspDk zv?-73tyMm8g%eIYi~7e`TTLg@fXM3@zEBN0`_=!Q0r>7ZSo4>gDX6e~tQ3{qH*K^% zWp0kW_WTEAqq{}?b+Fg&+h0cxi`Cd`tHm?#9}Fi_`H40AP=ClJ!hGStzPc_q(c%Pu!w@O_+7JeXZB?XU9}0j`n=yeuL1Lh;vmK>N{iPdS-Fa$%eJtw`i@ zA^j(55O}+JmG;*W$gb2zvHIe)lP)AD=8hAL{n}cz&cTef217709MWELoI1&bD_@@m zx58U$11WF23=2^Z>>!dfz(R^&j(C|cg`xPE&&czfSuQnt zQ^V7!{PbF*9nf{2_Il15&p0=4egEMdDdS34AtP%I9sBjj`j)|s8C-CjgBSnMkd5?6 zJ$2Xd8_5jjd8KDzxtPC3>cIuyBOYWSCfhLOZ_3Lu`q=OkVk4-?ZAm-MwmWx zjN|4|ugI?oHstYT>4;iTlsP?#-^eRJ&!C92rx`CFHK3uP-tTq#A{D#kx|8Jj2MU)U zf48RhL<6kO`s%4K-b=zS#w)*26p%I;Z#Dd)g|9xp`1gGDg;lJ{VHJk~7P9-2dx_+q zLe9bv#?ZR{n4v$I#$+SOh)e#MwD*8AtLQ+gmbm4{EAZ!#tl)2*`!!tx2}0#WHHZ-O zNZDI=m!p#yG#gHoIC6XaFDd=g`0v?gc_)u!((UjI@kHfmrn zv~84dm!UKhsqC<3i;J9)I=lsJcv=7Wl-|wH_+<|fOoHX4*9o%CCVxlCgT-ERn zV%z_CaWtKt(cwINeq z+v47=9<4OI=e;bff`mHm0iqkIWT4Z(X2*6GG@NNIsuY%5-E_+!!6^a*G2imx7%kPX zQ6C1z-t9`ysoxt;xi=V=(Kw@Tqcvv}Lm@7&5Qky;+nc}aZe#lJmu&cB`tr8`QK68C z23<4bv#n=ebO=+JgD}Txp_dur9|zZp%1hB-9P0J=zr*5=@czt0tgEk}u62({nCJ3B z!0r3GDIUr&84^q@u60EpSo%|dc#ooAmT6V9v{|IPkgF!wsT(@=y|7kQrZw1m6XBYfvd*0i`mAn^T3((|Urhqz<}gPd$N%^0}IVp7BPP z$i9))5CCQ2Z$@^Sk!tw~IQHMg8y!FgX$=8G_m}ej-FPF39yh83x$ZZ6&f2CMm6!pd zJ>rcdnoI<-T(yBFig1ZHy6wl1{eK#7BwlHHTFvN`R;tj{tYX_H|Ku}XG)*QVCL3(j z?2Az)dG?-oX(Pn0*!%C;d&DzS7OqFIk)#uhB>(GRBQfgd2OHh2^G2VYrngB-D*tW3 zk;EORA*o>f@_-`=f6juJXa!E^-^*!6&)nX)oHyFAcaFZMm3^;36XFq@@#mo?sSPbR5vL|Qt87I+b_Sk{T zd5%7#TD11#_o>fVErUmZ7;lR{L+;iRea4UYD~rH~5>`UukGL5~*CWv&EFPFToAV&x zZRdS@o%|Kpz;G4(oGd!Zv++lE@>>S}Zz`UQ0sc5JOD;)O6rimm1nfC$aerNf+!!$7 zcpCTe89JpUTKZ#en)X}+3ZPj+wME8t4dQswzIRB)NIeWw@6IKwGIAzD% zOWaYp9Ck$9+Vh-a#*zVvZpZHm&k)te$MRnMg|z|iIo|6gj2AbXuAEdh+;FV5=<+^= zO-GT1kJzK5J5rgp^c3`SZR@Y1<%lf@dN_Ai1Kx1*N^t-#m;TTOS+`#)N)EEfNtBP~ zz^iF0)FwfAKgj1DOM-l41C>2i;_Ha$wPttITsqL_4SNEC5m2i!oqsJIQ#rO+0(~T( zTV`Dci@fWvr=^|y>$#a_`LgvKM1|~ndUE2(G<B`k#!V~nk+vuLqDPxD zB$#*fA~hMzXAgZ*c}9z^`l430*z~;fQRN{vhuHSM94^Y`EO>?|n}OOTM9s%k(0>(p z2gpmK|AL7@MY;Mf@xqj8=-KjYO6K;Y988h5Qnn!_Tq2k@l6O2j*jaDS_ zKm1l5*CndsvUMvOCrwJ*zK%;yjcUfsi)>PjeN^r|D{)UTI<7kaWZM5u^<30M3!$C^ zk+RLI=URiF>jgZ+(Q~as&&5`=DXr%kwgBzTbh~Q0o@+pXhN1vpYA``HT}R0dgQkm(N|Z3=Xu2fkgI{S)*X~%0s0)rtgW`S~ zPHVbOf<7~Pu3obR7ydOp*BLaj4?WjYi43;q>$$)&H4{%2te-5LcKkl{Tps`%(Q}EZ zLG@gt^7ULAg2TLlxo8I)`6>Co?lF){Qd^)Vnl6C_`av?$8%@`wxq$qrFVu5Ye~F$8 z==V`QS9M0ubyTjN>!>~XziOy9k^6%4x9hL($-4e~tgoud_f}rwh4z9EUWd|rj#jJM z*J_=Y)oLA)r`0-Lv|81^R;$ctwR8q(wNBCNcysYf>AHnZ8gD8@)z!%`tVJVGY1PVK zR9v;Fx<;V#szuc`0u@-TQFR@Qs*7cNT^S5y9kji4RCl0kbNRvE+Ei|*?v!3QfbRqM-Zwiq=05fL+s-M*#FxwKCi}cj zw8Z07-7hT3mN{es{Y}OldoLMx#H%pz59Jkx(=Au>Mw<_(LkCsi>-^-V$~Y(&cF!wu z4;N`#?-s!-f`V7P9)+(=|0bSn1VDX_HmpT>Q!bMnEkUpck4&sg`mvvMCZ!wxVP166 zZ0w(+8#P$8+&P@p-5VJsPfE(P&P^7c^sVHSZ_o^JOF3$LpP7Y|waUyYGR&-EU(Bps zr}Q0hu8f|n@b~YtL2rKwsR4MxR}O_oT5mtLNbJxQ&)3^uMLUto_pR6p#^>wp;a4DO zs-rQ3Jo)@=vRsp?`vv?ADLSjS2QG!t>4NCEHEgyL5{x1Ite=kdWZyJWfdiM6skX&5 zvWZMCY#C(vwSCh_yXeL-j%>#`La5>MieWyVb86t6zx_=0 z_*PusE-jzZ| zs>Sx{tBw}}3wHk#yrsg@K%p_VJJ>t*3u!#Id1a%a@ zBXZ#<;t=Vh6?w$2=DeGWKVy9S!P#ch=h%2iFkg^51cdHRq%X zt$p+bw05jdYad$)33U}(E0!MIlf7p_Ip4koUA%AXTNk3GZWp3lEvev!8G3*Uh#sGg zSK<_*hw?N%zyi|*u@X==ysZR5cz6$j*gMmM!~jKx!(wsjDrh)^&^^OlZ!z4}7SkLb z2$m7fx=|kv%-x$;IYYR2dQnJrSeSE2c3gJeknF(hydl|<&CUzSiK#16_OTs2*xRZk zcZOHcljJ18$S1i|ylSOCk-j0hsnp*0wkm1Sg=N^O7jDjyTqd*87m?hnbV>dj0{mxI zOJHqd>W$lIOmc{fwDsZ)vACYTG(iY-YPp~j>99$@Id%|H|HUkn++ib^K;CSphRWx* zk-AT6)yvZPuy3}P{!ALU-83NAv_zkkI!hms*Vo8vo_Jqwdir+u&ETbrq|7MZw2d6Y z5IHZ6tQgWFjT`Gr|#tDm8W|!PqBI&mO7?Skanr?esm4r;* zfyAKcw!`{(E00gE<(k-~?c6#inM$8nL_%v#)f>Iub}_4rvIPK_qC$;zbw_JsRhMd; zaw%SKZDX7?NlNa{;nKlqp4jW$qc}fJAx#Q#Z2+vKPpG zVa+nbj^7G>0NvEaT_i4#RW*)epjPV(XCJzV7~{`Mqc{lxx#7%c?Mb92}k&R|bX zO|Rqywm(r3Pq#_3C@ zoa4J>;FOH)kNJXncUp0A{o)dW=MCOVFgYYVUZ{6!gydUmsV^jhKH?UFgPae~agVxN zJbEYBI2&rnD~U@*j{a$Ag7SeOuSr7bkD`#sfQ0O-9Ys2Bo2Yho-~e$eu#=%ex_v*K z96FTigX9>%q>L$!TaN*y@l8+7m@X`eueC!~1GOS)KfM_yeb@G6HVO_-!J>wf0|szW z6p<@r_+Wy`DPIXXDH*F=b90f;;0Zg~B|KrgJ>h);{bZRavu2`p@~8!5GMQe_T_k~F z1=D^g%YoaOtR1^ji8W^oSeK6zljgdA8P5tQy6Z1?e1NEWC2*4?G%UyFZ&uTM@xwL0H-hxr0HX zX^#!rmgt^Y)^Yo=YYH0(1}U{A0@pxCP?Fcs@@Z zf3uMnWvy-J51QqV^mf8b)SMkJZRAVpgQ&zxuf`<%04(huEw+~xk+P!IFe`xzMYSwL z{B*jJqrer?lPPnD-{XOv1P{x{V6WT}{OOB>s z5I+%aqgm}k$b9CQjqo1ieuIu5*@#k7MNnxB;of`*0As#+FUheyS@q26+5Eu|U6oA` zJW+#@tLEo?9{7Xo=X?2_&L0fFpGC3k{ury8%5xyv$NTQDc6QJGgv(iT^?_tEB01$1 z8zRp4H*y^|ciOOl)^80Hk>K3gCHH`ZNg{u7rzCIZ%B0%%)M$Q_ep6F+bNc~7c!wTs zn}qm!yQthBDlGk!Q-v*~XyYoAwp5&481i-s34BH8=@j?^#=7WL`1na0AXt*0o;Q8X zYTL;1z>D%E=ygX7<}%TW{9CY{k<~+5ByZet()QYEKvAw|!?SX%T)OH9t+X!V(p6#J zOw;}T#)!)t-TJL$%kNrkz>#C`K%UsD_a8sA3em$)(3?sSk`5#1ee2Z=mM#_o#j!kjoRd_(zG0@1sGo0@|zZF-KY@I zZi{?3Jc8U@nBZ*C%o2M2jqRMaWGMGJJoFelByBN-`8->3acQ$B>=Zjt!0K(gRSvIb zon2ZGEUBMrExx1>RJe^-cIC1g#`D~V6Yca%ti|UQO+wE8mZ;j31AoNJX(RaBU%poI zV}QIV2Pco#8CIPtoqz2?*1WCvar~D5vfakoyS>j~3$dyr~8DbFI}>& z_Xnq%N>X%B=HRS@IpmKN zu!Acx>fJyXQ15$r>{v@O=%4Z<^{YSZ?(Vp=t#^_K7%nMY=}qqYP9G#c0i9=1ZM?L? zUZOiKVh;-L8n(>~W$zp;dfCAy4AF|;CL9yC%NE^fEgs#!##%hBkbkc36Ar#KiHeiL z!535a9kQKpIidT(q9ee7DN<=ko$~=j#}~16c77U4MoV{dNu;~~=2K3>698FI^-j)< zu*YpR$(z{H>Bm|;qOh!$hKGl^s3UpQ$=q9;ES(*)77s0*B;wccjL2HNiu+2ZA7L%t zW*10ru*s6tvU??Qwz&YbCb+XExQpGftZNtvYNq|=#3`l4HS9CPJAS8@aT@$iFWGA* zTZ=>eIm%sDz|Eg?ZAw>Lb6No3HUNSLWh>|7#zyChKGkIyDO>NCRq zQ$M=X$BUI#yvXl;oDABw9T=>sHO$-UOwsFn;d$2YC9Gk8TupsVk16jwq3f@p`FKjEQ9w^>6X%7 z5KXm!O503cxKi3eq~z8^?VMag+WCk~=e9GVL_0pfbX-$f7!GoYz_wJQb{yg^!NghG zH*=H;27@{LD3<5=J(u1hrMhw)!Y&LK2oja(lA49|*Kqn_;xTRxVq9$|_nL*iBYx!( zx9Yp)pg$;6PFtf2Ypums0ieRZ=Os(OE)*~*)qc?SZoXZI`=KO&14%kROV%6gJ&DRl zXFl?-7v$Au%34Fti-NbHEkfZr$)P8zyya}DOAe1y(7KhsK6&6fs8)X*F88yhBu-v|;r4O9(!jfM6 zdrL{7ea*T7vgp?0fhSS*Ifp!wwr+zmWn59tZj1T z@>`l9~&MkLrQlpH^uqSoTIvCTm;p)q*{#<7^QiP#sd_OUIiIDzY>QqWA<1|cbMMcgLh<>fb;a)<7gJc&W z!TbJyJ&A2$?~|*r{epdVnpZ;Wy$IJd9L&%%u&3EU`^053_ zKF%zEE$1}wrk90p!Z*v2~9S2(ifs3Bp7)7VE6`hV?7HBB>g;94DrCxYgbq>+tw#$9! zuSJhzWU;Q@)*UL-#cnP}U6izgDuqE1=e;0`0xkoHtr*004{84y09cedoy>M5yc{B0 zn$+q!{sy)@3T&d%-3&yH&8fy`K1YpJ1oc6o1v;?wM0J3obh_nHUlDShmU?r@YpF-) z?d)~P zUmtS(UGJD9irv;yAv2pGY7CYw-qlFg{^c29jB7bt*QbV!BIEK6r;_@?ExZezTbX-a z5#F0E>o+?u9CzLT_)e2sSiy(l;~I(`;X{w}Ec@G#7M19U88Pes-?pdRDLcHm_LGcW z{+nqpVc`6?b><}7x~E7KSVbgpgPe!%hFGXsHsoTEE8^joXQ*xL2gvNbfk zmWK1&qwy`$rnV=>(V6?vOK`Qbtn<}=%dEw%t((8vZyBC8fk4^X)~@2^b6>fobhps) z?n$%WJKLIce9P8;ZIhsp-LFh3-7W1C|KOy0V8f`Qh;vnO#JLVm*H991W+D^97JHz^ zCFQnTSlY8{h1ZX1rjM(06Wc@sU0=+Zsl^#vEs9+xE^^}~_KYoGtrmOScQEe&Ej&@seMkA=+n(ouf%>K#YpHb99+Rh(!Czu z({v+qqJZ3w#rP`B%YnU(VvNyEL4n9viX*{YhVPrgsI{c%jRU+tB1sG1rhs%LsS32| z86Rl2^lylujXYk=IrLZZo20eRdTZi$IYiiB|GmO88E-SqrrKC^czPf96}#gaD8 zx_zpO*lMZ+$`KYs-cLKmj$vP7Afo1GH2lM~E`Za^vV$uKBXS*!IB8gOBnfIqDF=N) zvYfq6F-h^q4sz=?h#>0zF_D6aXfuaRlt-{JVvUlY1%hFMB6XFY*CmIZVcp&f{ws?( zrq0O`gtb-#!$!m>XI2j5`oH@s^PqdYzsikfwzMwEKVp|}$K zSqLcB#abQ@ib#PmcE6OY<{|Q&tYsN^XU*0t378(p>Vd4!DXPjbQ=Ak9)5gf+vXZ)b zx~2pAvY4{4)=YI))D?YQV5Ey#YzMhMKsqe@n88?f5IBDnEwvWaVJ0iDZmMTwE9D9a zUC7Nr?k`qQ00)6UvEBJPmyfZb5D+Hkm0`fLj??#?Ie?zC@Had9s@);DB@e}Cd?2s} zq9DcDKvS`Syy_&@>uh*Z#T=1L=Y}gk$J-L&u?y`m-k#I@bsVXBXJ;+Zxr25N?#E#Axg&7gWk#3{EOEFiHK`W5`=WLM$o zRd!GU4Cp2A79k{`F$zVW1V?#-VxNOu>7Z&t|-JXk3b` zt$SBi$GKMMdrDzK{buYJ2#(M`nFQqG8>u409;H*%jJyBdu;CJ4Fzo0N`yR5eW9q{H z4X<~~WC{Waf2fj1Lg#RVKW0F^ODWupd9jRNK>e>k86A`G-!F&rLnxK^J!mhkDVSs* zWAP;6;het+rhqoeFA)wl?i(fj@NOAIy7mg6T3CKK$rsoDgp;+ILb~=xe&7E}?KOVw zF$V2cT61>z03Rd6=MKd$;8Y;HuvqVW@xWz|#QR;w>s{o7!!+R?AfEv;6t>9}NN4b4 znf*7Chtw={`b|=4ZA+0FuW>f7+HtJtRMlqv_oKz6Jdr(DZPqLG@gm)Vt7aU?0ccoN zEAOIbqo$q6v-}sU`inLo2I_mX!bqu)fqJ$+oyL>sn^qJp&+OlF275Yny2BBst@kw) zlm9w?m-(L7rS9Y~B>~x1T%}e~ti46arB(cs8Wqz!XRX9@Jjv1EPy$wUR$Rg@6FVk5 zv7KL$iLGY8(TQ!*N6F#KUAzw#pCmU|M{&{mK0n@$eoZaPZ^-%j;Eg+x3+wxa8i$`$ z#ocDHm0Sv=rRraeRka)=kdul3LK|$7_L+E6pKg-fjcKQkt2yUOx#w8(A;elZ=5r*) zia4gLeyew*GJe#GE$#f8*cLcc=0+oWLNKBL_I$CYh)l|T5dtbS8b+bv)VDizPp9@r z`(ej!Z3imL(NMO~MgW%z_ty5*$FIvLNtjsMlEHwkk_-l{J4yic26Bf2YPmi>FS4$? z|8(ml^jzIbi)Bn`_b-UJWdgVnbMoJ?(GMJtsrAZb5xfsPUGs1gf}0DArme zw*Z?e_0LItlFwJt*)+J}=;Y8{+N@hOo-R{6U4|)M5vXS+e^wnQ^qWQ}j}nd)_?9!Y z3w8W^2M9u*R!;dSK{#CR{$VOc%JXyEYIdphG~#??Ic4}WfHJYF19h6RTw9KmSxOEB zS*|zqsUJ_^Y0pbv8>L6C66Q-}P|%*WJ-|2-(S#i)Lr44945Tenh#=wEyIa%nz}#E6 zpvI}?#&9$A)a`>l?_L$C!n8$$GdLI2x1-zoN+7lRPoH-`SzK5hSX%VpY{uM~x|b+_ zIbj3G8n^cG=w%`^3QXjt=Fg#G%{=@k8JEmec%#l7RP+<;&ZI(&qBsZ z40j$O(A~hY3UnLwX$?YSmap4wXcaX&y9N4hU@%}CGZo$1-W@M4pp{F=|P zs!^G~j@8y(zpsJ%bgStLrTm_)gJMsuN@E)~Den@4+4gw>WAJ@h_g? ze)HrlgM#5%-Dagbs2om?>bcTWWToH9tTa|jv(l;ghwib$sV$G?FYbq_Cx4v3xC02O zVjxyR;KIUU)`^~yhWYFD{<<0<#P8Di>@Y@8U3r%d1VDMqt6%QEmyY=29iglx&RPk= zTwa{J z50ecyS@olw&(Gz2p2%nPPra``_XIo^qkYgMasKe!-rF={m&2W} zL2k7}){S-x->^I18eLHMX5_$iTs>0ftR3wXz8OAnZMb`R{YEZ~&ZsOTAJv+yNpd}_ zJ2@;lgE{q8sJcKLfrzEN4^rU+fs$*K%dV~;tV$4~;Ur;BxO2OR?6yb{HfuIH_b}?T zN6N6zpR_ET41qWz*|%;iFsECd#^_;GY7ROtc}o>M^rW@&aS+9K6YLgA4qYj@7;#IN zX|UB2#**=ZmwJQ0m8>c5t}AP|nr;SpBgp@QNnS5D7uXT9x>2&+^$O3RUJcc$H7*=` zzexKIyBsJ@-;4);7SC>5PD6OrNi3r<#tnAoXBv|Bf_Pnb{0Ff3fft5%18Iac<%CG&&MWX2foXAS>z~o1%TXo5V2Yzh zi)2==6Ng@9i==w$GG{x-I=;(@D@HptYo?39CckqKwUEplrOe(F2I&fmkGuj)Cta*K7B+yTNUssB-( zi|y;@(gY9$j-6~X7`4)&E9tHu#%HT1tVpsp@hPT4bQDkq? z(8a@Fuw(BtgI(SAKi9!IMPZUUxsXZNEgJ1!xV|epOl}&PEk<`aXrm_P7-_e@S6~Ns zg=3q0%{X>+GWw$Nmxfl>^Dbz2a{5M3^Z~NRj_&%D9uw`dU2@=_aSRIj&+r6*{`3IO z!CHzF8~Gt%-Q8X9;k)Mrg`O)vYUpQI?zC=S&EnW)JMF_i(or#%fVY%)(@qx{R_pOh z))?&Mcrl<@vN+2J<#}WESPa@0qv+_8>r~)dxY)F$`dW)x zoS>MqyK10`t&?WG)jiW%{84gtu!Xb@y?FO2Y^x;FuLXw{8RSSA|u1 zH+;cs+>AWhCp~bQ$P7H!UNmdBsMDkGQL%oL4%3X7GKNq2TKzy{Td!U;LhBt*rh(1h z#OlzJjlUWnSW@!q@qvg{+Y;N+KYCMaM{)GD*p4FSh3L2ZcAPGjP_##axosh9QK8tk zn);yca<=B2x1h_`4^fMJ5afCiN=V57#oq0B+32O@JHZ?By>H(4#rpj(e|y&am+9B^ z`j*|gS$sNvYzJHHvNjGf(sG6EyiDV-$QX3KMs5BH+fa$zvRD#!-bR#2saH8laac1q zaXGAJ*x49HFIFZOm6U{4xj2{C+m@pUn!^ubeNp19pMGtGum)9qcftY+8L<_Q@m-wy zp=WeI0D?eD(fk~Yo|sC{HF$QgD_q%y@@-g@bcO5})*?|$1)DgDNLbCvh7TfTe;u8? z{J0V}yAqh2?01~E@J6SFwGB>MFXq4&_gcSWDYAdZZ*$gCeugfNNbr2`lMco9&4KNr zv4H7dh9knSK{}`Q`zfw>naF+#ya0cI`D+Iw z!*V&IyZ>plBM$ZhY_|{=j+1?1sZMnLM(7}fXj0_tUreFY$rtQG=O(oupmxM5T^o`O zDOU9niV%*{oR8lga8jUtMn_Ti{;$ffYyBxMm1FfY0*KU;-`C;bCpeBqtc1jJW$m#F zo{q<%YyJ^Ay=&G#fF2Q1ao{;nTuCubA<#Yr+QFDXB0KP10RJ^Zw z3@kbBCzmoI1SAm;Z7$cclXsL#_S^1_R@sdoS!LJ1WtIKl1*`14tybB$pRmf#|CLo1 zzS}Ab&9am6(v6g~owqm(58@ZnQDM2h0d_VTXc&SBcr%~b(T#0J29OrGbH}3rLvy?jX_<_puWeTE@e;`FsRWCYDCVUHZdr{gMAI^>NgpB zW>B*EZ3La=h==-cV(C_Kc9%mQVpD8B?a1}Z&!}s^I~BLs@g?E1Ps6QSU>|SShrlz^ ztWZiL6o!o%Y{i7xa1*QExjv>u0!}UmC}K*HBOoon)!~_g4ZpYDIRc)#32&o_>>g90 z_y7Z~@7pYd)A0;FL_f9NpUkHeM+k+M?cRhaw27+&(FUEIy6?PQh(|iuNZI5P?`E2ll|MdY{g$ISdL!i8G(f6t7Y_MJdo**jxVN_@^l2ieX=?Ws>uAwBa=U@TF9 z&Z<;&-fk2j+n#~W11JDf6L}8L+9iq(rxxw{aw(duJvyW=#J<0^oxHr%vSa@QhcM~B ziFG*jbZ^uRZObH11f>N&7H8I@ow}%<+bRn?4q?A^&xo}a;QZ@Go~w4)T{i=j6nnt; zh&Wu{Q0x{Zujl5)e$!ua`ggoFX|6y5Tj-mq<8FYhuq>R$a+bw3Euf*D%H`5b!?T$- zLb2^9x%Dd$jkbR?`VAWVyR1%_n=V1)gq)#xMsJz==|rDrEw>Uf^p1IMeT#ES$HRHU z?Pxao)vUid8j`fXI__HdtIygJI0!(swTY5eIeeI#OP=PTdt%7#>m(u{c6X<~{=^R4 zvV+lMagf`GS9luVwiOgviN43Ep3{m;i`ps>F|DRvdtBS9|DPK7xX`v01f{o@Faq|b zrN^^o8d#F3rhi@m$b@Zv7V~oqKU2eqkemc<^IXB$+7d(gmx_TIH!Ugu>jk1$#0XE5 zc3Yx^3W2wI=R7c&pV_j~z>LvQZ4(tIM%=>Vg(F2OM-)ZNb-bc<|3iP-LC4Ba`_6s<#lQWzbD0p1!mBO&cYp0$N@Uh!UeST z;$ABo9J0;hVpr-wt-G$RrI!TsVdoc2av-m6*!h zb7$I?m?CeasadP$TkH&p&(km367vO8(u%Y2aelTXCa1qS%|-l-I19(|$2}jKyuNVB zm5*E+NRHkZ+kR=ofzE1c(X5TX8xH^rS8jZCe88D^lnlh3XIff8y%M@@OU(7#Y)ceT zK>lk>bouXCyTQC{OWczw6yRCL+m?7X^X}8kulq8;p3eMg&-_}F`PJh8%30~|jc!u< z#Sk59);jg4CsyBfiap_lr7}{;$ly+@@YWsO&N5kqnFfby$~JQJm~%YE&PkRYE74`K z9Vc6J3R!<=ZMdMeIJOM&_@aP|3P<-M-5X2Jp;d|A)4lN^o*YS>P>9w5Lr#emKe{)o zDu#3poACqXA+{ntxabKC?rS-NOa1Vc%&`0c-Sbs5AUmdri-7gs2)F|g+djP$@0b|G zoKxQo22r8uZxQSz+FQxVCl}^kSB4+>sxbMMF(g7h82Nn);=b>pNKGd7(R$4PS)?PMB8wPX$tN z1mGWmX!0wba53PNpx_??_#fm|2K+zf!JQ|=l|^9c(g87qXU3XkGJ)HM*c0Z-uQalx zUcag5=nEOWUsLeJ=O;dlQ$L&{EXFXUH1yxJ-Rsf1osSOYV>zVc@GW_H;`xKj(Pgcb z2%Jh#uvvsn;ssr~*1BsF%k2X`6kK8ZK&wnFV4T+M&7g-ukWK|!!B&F72RO@GHWxTA z$)7^5|8!n8yDJPj027kaa$$j@%aM z%o{GR&p*j&PRWlOi>jLzp35)Pb53&;KZvDt7n-$ShcjKFJMfgmI=_|k3$3O{Lab(J zFe=Yz3Co}*?^7HRS4}4&&7$yWnk?lKvaFTn-7>3go_w6OqaB2>?t0@iSyE+cIlRQ@ zTeEa5-7pX9u1X3<+}>jf#7qq1FO%m9Ng3?9vEl6jD}I=kIKN`Zw$aJL7eN)yavQl9 zc!hZUAv$f^+Hsh(wIEbZT%rsW#Mf~|gJPHyT**&lw7vVIK#+N{( zblkL>hSPWgj?B64NF}Kf?}t!kOaTs~_%>X}Rm?^PO_QlUL#EwArY~m@{nLh?h<>DL z^Vl@T?S)Jo&=tTLGEJJL8lhxrEgBw7JzgVnyAmtRNWxIhXGBaZwQZ&dG2K?;ySxa+ zp6zaIo(d2F;FvBU`DVf8R0#)N?`(Oo2dA*&KRboKCsf0XO~(KeIiyI}<=$^VGCmaI ze>+YdWW8Z52USR|h4K`UNO8kC4RfQ-UI(YCg1jn#DB8PbxFNuYj$ z+y{GQc*43g1pP(xo2+q?<&>*o@8eJEr`+A`?>7Eg!e#v)Yg{c_xs0x)ur=pbhx-gN z%|X_Pj>{m0-#$Rh?;^`o@|*P=CGkE|9YRUyDP=Dbss)=D!D-GZbXOaE)}L84Br_YH zGqcQ;9*`-e*3|Flu5tCZ-&JkdKWj)4Ima7hurQ{K8w8wrmOwix(ujS{YPh`eD03g+ z9apva2%`I?l=ZYx%GlPwFN+=ym}$MP}$%L zitm7Ukpw~-*&KSZfZt1d@lU+Pa#of~Yk!{4qb4o3~+*X5%qxSVs$ zsH&~_4-h_b>m~B)HE6vPd(^9SmW2osan^uXLYWInti)Cdg`5{^oMpAn+SrZ7^kN@>}#Ict{&XD@&BbCV_!Ti||N;}TxTIZdx^ADn@I;w4V z22h$Y_=b_r8C)-IHuf1MR=g2-&B6dHgNgDx9BVD)*qv$0rm2uSBuo(We3=0H_djz$ zhpU$eI;N>fX)iSiAq9Q}FVl}^1CJQOtpAxeP}^Ts*p?9KGe~nG_W-BeNs2feOO?dB zF12QN?l0Uy-oVB-!zwr&7WWfys^EtA%@Qi2qw_ZcMxtEqOgW3jn&;CpkbL!Itsy4> zvNl-pOTd67Vwwvr3D8)L^N4a==K&L79LZ#m3R#JbH@Hr^=xC*-Yd&Q^Rqv?O}j^uqte*aEc5BZ%e z0=h{wfFNeQ##)JuY<98cBD!S_Hpm)GSSU|9o5aVFJvIqlY+wzOl~adq5~HY`K70Io zo5b}~|D8?ZmV^IyHi>H?@V#sj`_r9n675Vh@THr?BiHR~lURYi1i`r^Ln_C8qF_#) z@?CcOLwU$$!%u;tS@!)HPx@Nlcg6+#QodN{?& z5xcFLwcu|fW!d=a4`5F9{bDNp2ciX7&KsL`h*tbowDx?p;y)cIGjQk2Xytj*FnJEa zr$g*!<9KQdAc6V2S*RqlNC#~Lw>Wt<8UZ0Q3Qo!Ftp)SsNRe14g6X=Y?(o?Kh=M72~ zwbRS1L~J^uE-{}xh*`LZQ*n*`wO$1T*Fy=)|PSaqxM-&m!lh^ z8SV6CJ$shAUONoOjJJ=I$o4h;9?7&2n@;_Dzb9I+s(w!{i5lrTyw z;qWci+`_ZcyR-zozs%O+ACjn&Ef3A>*kppvJZT=TAa9^tVY2G@Ku8~?k8MK9HWDO9 zq`eG^c2si)iy0tP-$ijl^<~SH&|8j8$S|7pUm-IYOP1J|@RUpJPxEYuJ=Uz#;T*<> zuEc({Qb%?jmdLrwwIOyJV*edaZ9zlqt*nEcU5Dc#97F7R5Ft8l6yPeD_bi?EB=&26 z(39BbF+rneNeXQ8h+Sd!Ma2H=kM} zw)9sRx4u=-k9enff_VM72r?-M&cUtqt={@x;HmFr-mRPZw7%81-`aj`RvP}aNcGEj z6vo;M4Jrqk5b7u{z&wfJnv{}(;Zp_#|W zQwz3;6PDE!V=B2?lrrdEL=$iB=KmZjt8`?A|NFqnKtf>@Uk`8pw;^%op*sW;&Negy zUKH57&0?_fEe=nLF(LK4KagN2!>Yngi`R@mmBzG$o1&H~`z5;GDBTSoN6FM8d->X> zCE%5)eeU{xPx4*_u?Tr*DCBI8T6rW#G-m3mQ!OXVGtWH+b}%xG z?EC4Bt}P)D>M1oaYa@5G>84{QnYW``b6(#{$CAjn2kYuQmYMlFK3|V5+D3HQ@!ueH zW>k3}$yPcclq;Rv?!fZ!gcY{a%e!7zvRUP`Yub?WjYwxq3s(Fmw3H)?rR6YXzdr)e z+Y(Jo%dp>SK>_|#_A6qvVZZnDOQF>t3fK#&%zRWxWrJT?NacsZU-!^nW|s6`8Pk_8 zY1ez(yS>4pymL=~2DUdd_CYy^ZfE~OgH|E;(B$Z~D0a5@oBrXf-EVYvf7Myo#VD*f z7sJwLHOucd6jIZNGZuLeHxtWqZkY<6D`?+5Z2rzm41sX0R5>hJ6>d#>_h>#nIhI?n}Py76zhRi=N8t;mXR zN6!-5!358tyDT>n)Xy{ip?-H1gjUnlES`a_K-`+M83^aV`pgWh2l}wyVZulTupQ@k zl88T%4{N-&RL)~Td$O5d!^Av%G<;}@@MPe+2f5CmWd3^mCcPdZw+C#`2k(Wn@9~?< z8f5n&()WpVonXa(%U+YT*E&gAd!sh#Ctk8Mt=S&|F=GW5`pL(XH(*KmBm1q4Ozq(s zT+LzX&D7Q3M09ahcx!>`q`6{0NADHzT6y$M;P_Q86}N=ccMj@;-o$}HV1Yw~H{nfI zPvaI0gCF-7(K9XyJTyLFTQ%)w&+L!KI%1$N6I9Gm6v_O z-GO&=7;z4*f1hKYOy1}52>(wZJY<@$;=z~s?Gue`@36QkJc&pj!Dw^G{<@8-aBRf` zJSZ#bTgtOW?;?v5Cv(P z8Ww?`*KF(Wbd|M>ard`8lFi8bGeuO;zX5KNt9p4;n6jJJoWHl)433@x$R| zZu1>{#E>U|l%E+uew`ub>rB1{b^3rzQ8MoswLxBd(J|^WMzseZt-E%>jg0Z{MD1RH zsR}4gb>9>fPKlx?hALxayZf@9fSj|KCPd;!C=n&fQd??Re|j!$Df%T#;;YDFYKPr} zo&_Gz^ZD=yqhaHGd1&SVdY;dNtGc%@qi2DGs|If|RnB1NG%eD6kcTWiE5M8qQKF+9 z)zs-pT?lIgT+Y|}S@F|&P_jNr-^yqq>#y~(t19^PIH{dh6}-z+ThP=tsseAV_U+fcqA0)b zr}OyFAC>>)^?fs(%jivo`+KkHP*kbLcCJHl=gU|{4_9@JG#>I*lqd6)JCRU{Hx4*Q zCMc`UO1j=+)N3*IW?*_h5T>5BIQzOhU|Sg6t1|B$BY|G->dp3F4M?mx(@N;-8ufV_WY6;DhTpKPxE3L!ZNj7A??fRR^9c%Vk)=Q+ zsSKLxpB(1`Nkn7>3nD7qkzu#WIe&{_u|w<`TOOG(vPe$b=By$9qzr_BN$bvfkqj1ALyNK9IEMX<{gSY!f~2@r##R+M z`pNC*5J)1qP$b8QE`>FFFm?fVz)xb^d*Aj4!p1?@=qWQV;_kLdbFDkyVYAq_vIxtX zd)jSp115?6?Kpz9Zc`AnRYMqPksi(T-SFK#`?cMEq@nDH(>(1(*YlV0k%@}I&D!3V zF6)2Ja@ag_QdYB@oxHvnF-BjxLvX;copNVJkyj;U{G!S0d8yXc^z4VK}Dm?%=x)*m`3s7_19|WaKT8#?8r@u5iEVc9WCo z7rdUYf6M{cu*>{@Q`S16IDZU!4)eS5PNAKQ%Hm+zWsR{f;?yp%;wKAbWek3)B@bXr zGz61o`a(i!I($Rc20AqQI$0Z^B8jq;P;gF7zE4cDuEkE)FUT4Z(ZfZnodGy0m*1ziNe;{lYXlj0{|Sg$bL7%W z=cCxFVxNK>{pt->E-u(mxTH4)Lrdm9G(KRRXFRv`Un2>O#qSn?`JO#y9UtWIk@fCL zZT*F=qoS5Er)f^M^g4EOiZSabSV~`eTSu*&ted~bI?k60smH#y=Q^JBnpwwI{>Gl` z_U=Tn<1Zm+37qcM--*a?M1Ar4$+%KT;DFuvZk{WJ zI90iYPq6qzE27U;{O~4g3x?FQ^y^_D|JQ~gEZzGAQ{8_&3~k{FZ9#33nQ0SOC=Q9l z6{e@{6)Ly+(qa=ShFm!`Pp&l182Wx!3 zsJL$nM;B}px))-}_!5PjkG-*i=gmHB4`86VX1hZawrLr#ufR5FVC&0(&vJCiFgR^o zW7T|%ID1$iYb6JH+CrZj@pzsh*^gM_yp_2$7f|=SC2eP=Ku0J(BL&{fQ!b#80xzI~ z@#pG8$00R{JSk%cX*T50lkBY~Aj3QURcTuX?8_eMaSLCSI{DT%?BWy44QaE4U>NLy2 zC&#G!uy&I6o)^D@wq9m*J&d{=Ud*p}US7qJj7}}hj^u4Dj8Ryf?|((L%;@fs2OV7( zphaH{{4>IRr5qSkxHpc(Vx_m17WVamZ&1r24C$Y>&K81uVwGqMe}cv+7s~5JfXHx= zl{|4f5KEcnAQ`v0VwuN;pzkXe!hi7@)|X&q<0;qa4xOitafudjj7w#_*^Z^djANY0 zrq${AlpXs9*%M8Gke{IdvT2O zwITKQ0~GJ9zsspvwtS;~>Jv+q$GXtOwgZJ(JB%jwH_Y*xb^V>^%2tUcR@6GdWj8)& zw!FN0(?80%Vf~l}j0v(z{j~30=Bie^QWap8<7mJhcT4RC;(OxGE@T^%RHZRV?Dk zRi_uSWQtKyB6)0}av{|+P#Gl;0+mx?xEVFfL%Bdm^aKJH>6)ez@04e$>RwbhYlo49 zMZcW}RxuGqsD#k!*3R{6*o|@v{vxNryn@H03d&y@-39(UUvNU)GZ%?qoN?=2AUgUS z53O^^sSU0!Ky~)K;B1aR@a@P4*@{t~a(7HB{)h^BT|XfENR~F9osdH{R${nNrt@;@ zkQ37+Q=)J5;B9F{Vy=$st>*=}H6RIMkLq;P`j=tR1g2F8NT(Z+nux7`uy?27sS#VG zx!o`3_h%7-54*{=?Xe8(Uyk^qQAF5*FV~*d}j+bSeek(VjC&;vNIS+ZQ*hKVB zSb-lH7RzV;stas}eN4}i^ygiP+?og82IwUNkv9=XGCe&3ThHq$qxIX%fWr(pOk8tT zpUBSz0tNo_F2jV>(D7ZKnLev}A`&hX-gPvQBj2RONN(TgyH`1Kun0>zOzMQa^PWaeF7=G5B?4jftc(<; z?v83>pHSG#ds>79wXdfg7e5CE`L@7^)JiEq%jr{=Tv3{7dOPTync{1E;JSZo*$b*) zN#98X;QPptIDV8IJ?8QfKWijw$+ES{JE5^(v9}VkDkI0n53XW5P2tWV^Z`!FJWwBHF@=Vkx3nAZ-r+fq7n}nTr(;mkGJ}SsgqA%1 z(D;D&ec7Yja|n;Qjo4<9${H@P$?UB*F_Dwq{wDa|n)5#1Ayp!)&75*gOaB_Dwd|wH z_L<{@TW@?hw;;xHxgG0SO2@WiEI*tf`HRv}k%z^u8p=fwvzkVUz^OtREGI3?c_(jU zb=$i;9?YFn2QgV4bCK?=LGvbDfF$nzi39#Jx1&2$@Csmev=ZfI=$`+O$lP3)*)C3I4^!91w4blCXwM zFP!Ug7u1tyACo@qzb7WmB{O6elU`$|@}59FmJ2Vh1PevxY~o&DgkpR|?#W~-IGH_} ze2=FbSx*jdx3x3VbX3pv^1xXk4Z%=li#6vUm<#YL@rqXpJ^H&`2riSM$K!gk9ND|t zfMMQP6X5G!`KD|r-nX~(DE=7;@}Hot)G+u#`k+Nr^tkW_dpN9>U;`i1*?%f<(|vWL4@yuQOqP1 zdKF8e@myZr8h)nZ(n~oJ=22Y4dM4nV-cuZF-q2&r4LM`JGSk{8d+tKS8kKmnTV;kq z#)UI4HfJNz%4YomjegeqGuulZXueA~nbyzi2@#mzBx(NZG`~k%SM_XbGU7;PA7~W7 zsT7#mVvquhrM0QcSmhqhtQ%RJFBV&RI&A*`A-xzwGjhrl5lwRCl<1iX)_+Gv`3vr? z-gem=GW&PK*VCwyb8cwtSedtE{n&1EUvz9(syYnun$?K*v{Im=##aiMx5hWZiVua7 zyn{d$vHa!N=(G14y`;v>okE+d$!_^v3o>{g)dw0^m!z81>ltRX-R&=eR?#!A17h2 zkb=4J_Rd9_nPXs9>B)MgFzDUNIl&y%8LY34`11%ItCfGD91&wsJTbOub~Ra z>uJ6y3CwXZ$~DHC!K2~IH0tYF5Y97XwHz5oF3rx{TY>kQIr9VH)VTCGT4fwpFpe}( zQ&s6t-;+-x_>?<atjgw?R8^S5F9(0XJnJ z9ubjwz`+LJF2{CVLStw3QWC4+Ja4Atv)$Ci7YH611i?sAEO?SQih~d((`9~qcs@3n zQt@jU4klT_Fw~V47Foy(P9PrYymc zh%;V)DO5shljeFqq?lysdgy!^vXyuVt|-r+3}Sd#!#~Jjr+Jg~cO(Bykb0;pXEFUT z`HE`)d|<_Y47GV1gj})=?nLc3O-zZ7xAbc&D&0$xMHt*=R5LQ6qU^gAF;o13tkl;H zRK8$r=`0X|FCAh!1w=gcG$Y*xF6N`G5BeTcUoia3r+%+AC<$h@L2o?A1~Z3?`IRR8 zkn^cGje?>w>{>^K&HR&D!;tC5O56=ydFN0L!76XsxQfV5n|k@YJvSlWqThkqWR-Z^Jy-zpJ_3}C0s$oezas*+@qjh9$1Q@DSsEO zKRUgK56uS$=c%g^9MWG)^S{bD=v+SMHrw&nyrO{iTDYv_qZ>Ug4fcT3p+CxHK?J-acH~rL~?eE#kQ?UfRN= zupxd*6NQbB?X>yb#BceJW}=N$~=F_KR1SHOV$DN$H0|ftY)fbO>#Z~CyS2N2{kJ;``FCu`FYV-+EI;rIq}+EqCC97$ z_Ray2IiCWl?57X%KV6hl>wO(*rolDuWomWI%iQ0SO-{O#p2ro)(wLh|oq6MT3Cm2D z@JBU=PNGTPh?OW|QpbybXEk#}(}TaB=6vKQ-hG<$(Vf%6=w)-gvKNS>PXc7OU_qgk z7!1L3*AaIc*2vN&P21-aKRK-$hMxLdn!Uir3@SIwHJ%xGlE(1TuGMG%^^+!b{Mf>i8zlekf|h_AJ-Wz)F=O*BI?<^mEJ^M zJ*(|0>9;L0#(&Ar#_Z3E?9aiOT5q={Zt)-55|?LQ1I^~Oj1LRR>13kDQKL4_miIjE zhqkS1ByBzjEg4Rz5ezl%KHiEK0y!TzWaEAbBkJUBHDiJ$Rzf9xZY{9lYYU|ep0C5W zBRBTR6+}B&iw0wq#Wpaqs5ZfMf|mxPwH#`iXjpLG9c5aHmS^~p%cZ}=#!~;cwOU^? z?NWbi5#_@qxY1tgH;^QJTW#fMR^kXCOiEMsR~c=c^QumY=_G~#X*#tMgS5!oLQs~| z#30>-td1Z=m$>J|ngz82+`>enOn%k$`+BTdpv9cp$>u--g?aQej?(gr>myPzIRU!! z^wFfW?>Lmy7OEe9h%yG=w1MJZ+S=nfrMN6C@M@NE#|4E$q<8{FrKqb#tve-dvVa3;37Jhr1>!>R5(sptD|BnSRjmQu?kFT8jymC7mn zT+Az%aK4R>76u2=w$BGE*^H$&5#oN|*-;Qv!?r48t63IGUi?3iquRtTlTR6Yc2r`i9Wc zv=i|DsB;ML?b_(8{5vxGcgcJ1r^0m?3f+MpP5dDft|cO-f=XAa@O!zGa`vV9l%h-G zj+h*tuxne*j9^Lq8d+aQo17SOEHaKTO}W(rNO5V)n=(kmyakFuxroHn?h|}k^phRk zGK+|-&pz(>m;^|rrZwkST9w5Z(Ovpk7aJ!W7)ckwROT|#DRvhMB8z)=AuAD*Q$3nc zc_;sQ_tOY*=3M3FC{DAKQ^C9DxfDRL^(lUN07TXzyL#|7@UNpJBabl36QW1*Z@7MV zevzaT6(;m`99X*R-_!z!OM&Q{PWymH`9fq{$BSlNW2=ig) z2-D!m_QRlsuQtj$j7k zu$q3$VYTBMaR2Vo7w`My_&`j150X`%u^g=TxWGPS`r5|>I|M&^rrxy@<7peIr@zBLw_{BGW2%wgfzL+5WMQ|PvcY1(!uh=5htCPm5s@Ra z6Rp2GpT3}`6J;y1;!jb9r*ByCC-{ZaO>9?rNE0{{d#K;Kz}$`evL0-ybKc_$l~7qr zq>_l5#}FGrs|qcGvC})=8CT}_Bij{BDauVny5j*a+482whR>a0#h;@A&bu=3B}I&! zge1h<%cGDzHP*k4 z*q1xuSqe3B@@W;JYV=q7_JKG`sue|i3pTL$qg}(hRHWkqwZ%^?f%E0f!UBT7@*rYn zTpS<@BZ}4eXoCjrIIU>Xtkl#;=^Xp_bk1w-U(%ZDV`O829xP6_kZq@4y$*-0qDzRe z5}7xFaydvUY&c{<^wsgA2zLb$f-NOn!NiFEn%TQx2D7HiWgz*N9wJY?tjZ`yy*f%e zeBZ;Yk|#{7hY?*wR2%9Zq=1SpFB5K|QYKe}MB0k+Pym_#Q126x%dJ~WtmEh+SF1H4 zfA1@lL{vYznw}>MFUX!JuF#!O4m60hW57Fg5TxbZn#2vPC$S>ch$nM?0JX+n7Lr1O z9xOjPICv=jl;nhpD)|8yGJmFR&Y^khWx?@`_{&0nRrSvm(}vi2{@hpAgq$)8ZB%x} zkhLdy%2!17C-AHhTg>M)RJQuDlVU&KlmKoC?8(MThWF7+2U)F1n% z0}<>~ltBb9WD|i!@`n+@uOLbGP37RzZ29BRLcln;(VJI#kO>RZEP4{C;L@Pnp znEgKb;D)>>27?rjJ|+VoL#XM11>dEQE7W_3ZW4<2EbeX#H5Y24c#NHwG-?mOI2*O` zc{04gv4F0}H2#zjEte*R0aV^ zY`ECr{b-q4M=s%_L|t}-{Fw?r@p5%)CgDFwu3e7aT&#MlK4}3%$%!UsWL)yWn>hLJ ztu6)ip!#$-PuL3uy`~w7EC%+;Oz2F$w#tYdjPc5&v5$Y8K{4x2&SD!+mUcri2=mk# zBJRCmtM0)`v;xa6sm5|9}#5Th~tMp_GL^gAJcNbYRIoK^HW`NQHQ^??8 zkCXgi#QPLByamEJy5wN4Ap4g8k@ zCCzwlnqHgK`R&t;5Olr=Wlc{>*Rt!3NIXT!aT+* zERuN~YmrDVOZ|SIF{`(Qz^rHCLEt@2o?Av`&qDGXX~bqBqKUvH>)t)suXV}GI6smu zc@ZiNf~}|SixR_aohaFlG$J$UB6A>No{kOoN{`MwZPY0&xPuUFC=^iSS#6xxRHsBqi17~c zf~#C(R%@W*T_aXUIuxHL00+41w$@11h#srPA*H;ZUGeq`Qkf%6Ej<-Tuw-hhs`w0H zo;-57wW{hhX-5cB;NuPz;U^($Rq9aITe%`=c)kBrL549aPjc-+SOh&9W3?Zhmnb6;_U@=h{>?9~O$JZbYx(OM2Y%f2t5%E_$h0 z%mlfD9|9EH1E^Bkb5(*^B`>rvBT~#sY8ES1n|59mrW7#FTh0inabC?T2jyBVfQ0!S zQ7349hqnU}+#^eTXVnialXe1izlUnL15?4JtjyPD0hnY?K>;3sjBho=4OK=y*Cepp zh#ip&v#215|68?>pO@%!%4``txT7Wdyf7=e_sW&hZ-C%85YZ9K6CyLK&s?A2_@mSsQ|N;ubBDa-H~ zsFRAgC38RxACVu`cg5JIxv2wApS zk(fb3>t{yf=kPiaTAy6Dhio&B{G#TiyD+aY40K7 zbJVApfHA9<$-17qgMGfU;yaWZhz#v@>^;t%Btmrv-S=Prj)VNBE<>7Mt1_P-=z!0PC>&cr`Vtg|@o>xDvhCrh9hJ@a&59WECR^voz;bW+vF}4?_!D zZ^hLTAqMj(FC6q!xe+_H!ZoodCHDqC|4`lijeA6QPb=+us@i7&y)kQ>*e;bhHF*Fx zVkiTB{V$Tt;Z2{*EU6M4&8rg{%TUf9_(Y4=wa2FW`76Y!%(Y3_nX8!1ReT!TMvb-I zi2a=PUt0&*;E<~Q1blXE(n$ZMp7ftEg{YDKxo}IuAD{pbv_wi6(X)}h<4PCjkuWCX_$Upoeh&ixN0AR+fUrR4XF z%lyu?g&>>D^uvB{#I|$#mktP!%?vHja3U@(tD_~!r|<<#&GUKSwmP|tT4L-D(aNB6 zL?AraQyA6IC2M;jcgGsDTb2zIN3Zia#t|gMj2$X_yn?42o3FO7i@kTCm~)Moi7QW6 zHs5v1=35|{YB!}m6cg_{PZ634A?rN>ksOc5$HGjgi`$gDI);fc(ow5<`%`gc0bpxi z)*19weyrA1uf&uBYd7KMcEf@>Oo_G=X*+SU&4x*VwK}!gJ!gu3SEhZ(#6WQ1CRe?y z7c6@wKxc)_kb*Pl5c)&g@ZsabI_eM&L16sIACCg02zhsILtal;_uhz(Bs5cL#ZWi# zlO|9IK|!gh_KzVVC`^b}+Od@SoVtsx#T@Cc8#3;=#XH&ew14+8@AM}&kAKZe`)l!A zw7#={BZg_m@;^^3|9Xawv&!u`WMOx<5VkQs!0H)Fj1v*;lWn%dB4SC!?$GUGACdzl zK@OCtC3Q3YgCV(In5K zVIC+h?yl*M2F~e_UiapKm&R=_ZTutX`o5X4*Th-BfktnLUfSOz6ddu#t z5uFM8(nLA>f{sL)-V_hZEhsYoiB2UyS?2q!MdWENyYi-#V(|7*n#r>A?4Ona01i7f z8l^Xkb4s#?@p*FmFe}djsHJ;5wL9~7Zk5seA?9jNw7_cJSL`63Rq|hu7I+^7BC@R3 zZ>sm-W3{#qWF7I)kzvWz7OpWBw70^lfEYR-pGOJRcg?%>{SZtRoiQ^>sd^- z?fXb&f>*W{Bep-xNG|MQXsWH|0IaOK{sfWOWD49l0bx8{_p}aENd(vwcXdsmFue3? zB;yQzQbU7XBO6vW9$r??n&1=;H+Rc>wV=?6_x`TH+6C|3rRL=en03><_wCeX52m(k zm{yYP8YV4`F&ZM2(V13&vmaXTLCB?)F!+q_P5i-C{YixA3#jUQ`nY#t=mBg7S;COB z&ZRf~x%j;olff?f(2>`%Ek@aO`vYr6-7f5p^*k7}ZrD><{+4mu&60@J@wZYuMzA=D zIkK|+q#L)|a^`_`1&^!QDDitW;uQQrIe7-GB`^tA3-yYeD*+QGgxL~6~pZ#fnS*S@u}d;8WYxj)Fhl{n&u*|%7+3xJpj7e#=0dVmEO_jG`i>?vax+ypBd1s zuPV_NRo_yjI{EA!2>gshZjH6tzD{k~J2t{S$ihx0jF&C;o8sgjS4akfd{l2=;cdv; z6)IgJF)r_%pjJvXYGRqR+5@LyavwsyN@EuHtV%I`9)QgskEHU0jM!m(6muol1De*t zshiA-%Ri9HkGS(cqViuOA$Fv4`*a${+-YCu{7wgBVpsj)bZ6qb?b=lx86wLXH=sB} zNYAvU+Wjc0t(D9Vy>AgsG6nPs^5h4C5?5dvc5?O#qUFgd>t)f4f@7E9On_QBkuJh) z#0OHbe;!d&g}$)zR`MgOj@|;Swia8;rd?e=v`09AX;*4eM(sB#rtFo``_#sX3&S@@ zXTw0VGRRUv?E<7F)eg*9Aj))%P+SJ50K^4p!&96UGLl1aQ1C=8$6BdM!1kRrti=$6 z>H9|X@wEaXYW#5=U+SdBM^t~nrDKD*9TSTE6aFw4>uA_aBm_au0Z?ZzQZuVU+PbRJGWh%IN2IYf#61e)QaE#aWtO+VM2 z7g_NcDUM61wcLIaWtf3NZ!X9cDuiucj|IYI`VPOgYec>2;0-wY+dLNj4}~*lS_{NZ zuuACHdFdM7b@qRg-Er}vy|g>owM5Nv9KF&nFXm;}=7z0QgJ8m`6rp&|Xz^p*b_V2Z zHF0=rFv$oSv9bf1ai4vfa2sv75W59@!`(bm#)y-JNG)!e#TX&g$u@$w4Xvh7^5h?V zOF#rwR9iEh-6GJbHXXiX?mFDgh<%8;y3^k0qX=*5nee;nG@-eBJoM@leewV3hIxV_!}OCvUqqWGJ~aHrdBJhCvrZh=G>j>g$J zaj4=-Jk#D;B@`iJf!z2eOHGC#-v_qSStqEQw~bL@KsZ?Pl~LGt@W**MXlw>$^ieTWb0(x?0`7($@XGaReq4O40YwbMhI2YItuZN7Y z*^X;4eg8utS9VSpKz@iZ%17OPmbWl!AsV0kOWe6!gI;tTE*Ks)wW51w^!mqe?9RQ0 zjI_TGN7D-J58eW6yHDg44Wj`|&>ZtYoIttQW?=z7hQc&8L$zPuCVAF7oY0v99dtd7;O)t(31P(6VAXIpI~|TTE<+2e&arpFXVgfnqFWw|nF%>-5n>?R z)Rmr%$n$6HoyEWkeooP@Sj-g|A3YZHQ!=GlOb(wiN4)a@k2hkuQg0(Q2#---Ey8ec zAv{slo6T@opOu5QEBYKtrtB6xpWt9(5{t2t9z~0SpW(LBABf;^owtBAKTCc*Hbat7 zxVAa6+g^4Q+~3ZGEBrwBq!dA6c8Ap~29;RPeE^lv2qZ;4uT#cXZ7z(TZkFyg<-*t@iWeHuU&+_R$upT|qAqBs z5WT2BBDS-RyIMwcu&PgcfLT55!%2#}@cztHY_pJt$X`|UrE;bQ>@iK`g=?_=gcT-D zSXHNY9CpWFMA>a!pOND5U+ptQrg7Gb=p49Hx27AF>3g;Y+URZCJjK>PwbgdIsAYD+mg80l(t^m$Y^iChWVBFuH&yt_(n(U@w)|-R-^p7l4c_52j8){)2gw zMVnBiJ$kv?kKCK{k+*rNOngbayOf<{4}O~+*hIOJVdGE?#D10RtdPmyPj!tnMyyc8 zbFK9R<}$rv#mAX5sxL=;k{+xaTXM`pZ&nKaO>SV&xEyw$7fk8$>vMGV)555&bgcO&Oy zs=A{{y9<(d4MHUUhr`}Sw7Sl;`HigK(>^bTDWky* z0vF2Uk-kl?8PxO5ny3~uzL#+wp@_^5kB!Ooco{3zB_z9)qF4{rGUVCmCHlSnHG|4> zrAEiycH0=RJ_y3!YJ58+Ms@#S#Ye{UwUDi&V+Acn>-3Pd!_nRxP1AKK(-x!NNwp|x z6^&t5%BbT#=9sp_f1yHYxyt$&FDi!?oNYhWy1}O9vkzedPvly(?5QQb@pIa9>>B~x z!suA`Rs^IcLYKJ}#7Vz0Ypk-L4YqdLE6D z)SCZG0&ne_`5vj(8|8nh#IaM9RMLs-j@pnhJa;nxGlpjZ$saa6M=~+&BbInL!#KkU zxIP&=$DgoEWK=}$w7c6Jp`mSE5 zW_LSEigUW2KWfb*U~RaN)%eDIw4cZxL|2Nj$vtAC42L2MrA>Fy1~PP5fp&b{rJ#D7s!Dr35KeiD zBwd!MHgCIOiDm{%?EQ9ExU?@}*8lg>`NfZgYC56wb0p0Feq*x#)J0>TY*SbgC#Hb$ zN)N}8$?+v0A3)$=$flsHwzFMS;$(5$mjd(_O{Ei>BPp{v)G{7{B27vy#^scPhPrj0jkj^ymOeJ#vEx)`67 z?qWab;vc%T(!Pm67)qSHpTpcen%qhKP(tccP&RQ+h&VzX1EUhZUw3&`x;#e;2@pJ#vEy>4NmiD$KY2_iVTYDT) z!4a7p-vIlFPya74)T-=`oiMaJlOZctq;44UlnjO(MRH*~kx3z{fV->6`bo-OimmLw zKfs4~4gTnLGMb$vj!IrT-Vxj^wTyKd67?pxwya!vy-TppR=AlrB8(`27^PhtarZEqxY zRQosGvzUSp1zl;u{W2w`b(%(xivZ9anf>A;QonN1zRF7^J z-TyUcC!thyG2l&I>or^VHVgmPFbu;k(*+E2i;Jh@#>wNUE5>bCsv=zkVQ@4ZjM%rn z+$9?Ck*WJ%AK{j+(RdV%$xf<@yYUivs_U=wIa}>mAf`QaKfLW$^cKCTQl#uA?&icR zh%T-z$ldV5(0&USXK~!#`nTTDny60=+0CMr{g?aIr6iUTu{vWW-KSQ+^vrr)i`^cZ z%k;QNZkpgOLC#ja$Ly4y#fTjQG8{QB%`1AOU+R+qVom%KYdmH_*G8dz4zsN`VXrmU zaHDf&8*Yr)--S77;c@TFP#UC-6hWS`Z&*W7Ykk+f{r9iGr?=&TJKb=)>Z9eQ){V$os|riD*ch0_v>=8U6txp*5js;P^MYVO%Ud5d@`gDl> zvb@fq?3sek&Rx5Y9lif{*Nod%;f2)&6D*a+x*OAbuXOv=^=yi+|0iR597`P&#Z&mS zFnF<77Ag|Q6IU3FS%@&{X@CHxtlyThe!J#Ojl4kQ&32D&xvUpbz^XT0sX^Y(pLQF| zu%*QIVHL5*kSpB^z=?szY0POQ^>=#i9zS?yoZD9q(5IS3Yo_dPy*GRy$8D(nIqU z0+YX5@(J!gGF+SmZ1kONMOEvVtqZu=o!5knGiBk5tAUjJ8hD8fTyPbiDFXuWZy@1} zy+pE@sXoSpzA98a4&$yLiB6K3DFd0N4knRM2gVxtaYzGAjvHIfniL>WC(!dG>!UC7kwf#S789uyQ9DcL}aOpd>lID zI}R`)E~0Shvmcl75bZN_NCMVsrX(Ki8{Bb=ev5Rb6TOVPjwKOK$apz%jkM=OAksXz z8t?ZZ%5lVq{*O$pMmX$5a>^VR50%A&k+bUioD?3FM(brrw3%oXj4BuZO{@T#aOGJ3 z8EP0aA$5qyu3?~MmvF5!72*jwLpjbWNX#AJ-WtWc$RWMrN&JnDRs z`N<@kK_*b6c^DX9Tw|r2rmC$aRn|t%%~p~pHQGaKPf8LX;}qPoHmrEI~59z+FL=d>O zf9><>g4@9#(LqSt*(TFxW!z=!%gdc*t63w5j>+K|Zw;H07Hy#t-GS`3y(LVaZHdhW z6gufpr;1UL03rnGNBNN$;kq8PLY;^SS@;o2M8Re?*b*y%2n{cY%E6&?ZYH)RoS=?f zk-6RH*p8Bg+(+RE>CX5%@&e(5X&b2SZ0o^cvhXFV|D~>{ld82@596b(w(Yw)%P{|(qCw@Cq$g?uge&Y_sTlm_PF=+uadvRB+_Rp9+fZRt*d6f zW;9u+C_US}>ayF^!qF~f94@QbP}Ye`4+vdSpL{T4mp-L}TAyldi?nfY=M$2mpV=dL z$n29If=j%Hva2(q&ywH%)|_8m+fZke)}Zl|0r5`T6s%d2*T^l>*~c)NI4;QF zdM?O$wS(Bn?%Cxo0UO%>68Qdz+(3O*371ZAg5#PJPCEQlW{nr@q6R4^>)?j+u~Y{) zE|P;Acvbr;;CNO4%R9K?uRYZ5bKL9lH4^9JU)#9KTf19VLnBKc&us4R@W`y@lrOYu zPMs4W;L=PAIL&?THJ4v|wAb8)9b%9KtOKN@7y1MBqe}dAR63k*L_=9Ei)5PBa)*wF zjo6RUEvHYY^vG!0>!|AyVD$(8GzzjW(k-9WgUG`|*v`?nNfVF;GY+tLzTb|+_f1CZ zNwQV5KM8G%&=HuA){Uk2dO45kw+|AllDBt~ z+%Pgd6%<#koo=7r)oe@7(mAuq+lYMxySMvvSt8nXiIb$n`;RIxvS)Pig04&afo|B( zbXCG-R0n(A$cE3G-woml=&p%*AS6An^Tns#If2o&v&V2L+})&n_yQM$9h-Jm4;#Sk zLuKL3SUrwkm!0m1b5-W|U%jQ8bo*D~HRAQ?fZ62GJwg(`UpQ7b&hc~=-M}P=KG<%* ztNWA9^ONuX%G^x$u@ZRYxCtAk@`D$2u9e3RtlSa?CE$A%-GJMc=-EYE2p z?Si)sD{p4Ed;BfaU%-f6EB0({R(6~L9A|;FlK}Bqo2%--Wk_@EVGokMyMg-pe7Aqy z3{<6b^BLCqOo%>~W#5}G?&TYQ_3G+~t8X5r5}R&_b?@*dRoGc}JK+0DU5B%>cC6>0 zQqK+ahnpdK+Oylb?3lKl4)B2K*fG6j9Q&h8&kk~dJzZXE=TvW4x&K3gnc-@w2uh9W z!}Bsnl{nqX{alTuJ`d=#e=Io5z>x+k#vZad{j*lpR< zU+ml$E#nN9FP)%hKesz5PV2U&<8)2v+@c(J9VPT>uU=+>%H~E~%a()2LJAJS!LrPYa!j zE<2Yu#1#;HU^*2{gsgc|y2?ss?ldSPp*rmIM$r1uiBvG3_HM=6X`H8QaRF-w_k|d< zmdiEu7fZ#iA^u1ba%L@RLa4#`g&fAekhA#DrA4)%#Y+h*%mzs6RfkTXA#24~&r5v9 zoh#*X7~&Td8n+!MOg--0+oi}iSg|x<+`G6-x~l4}h$cDeLo6~Hy$-S+;<8_$^D_S7 z5f0|;<;ztIG7|&%)_07Rc<{SI2ddB6@E4#AXG^Jn0 zRe(S_^8a^U%C)7}=qkC8SsHF$*a8t$SvzX1J>%m0S?VY|R1jThMCZv2s`z;F2-cCX zK`>B?*CcLiPxd-i?TqMskWVM~L#QWg_SWQ=$LwxT*=Az6Ht0*V?$U+9(q@cW``7q( zMwFokL&f5K^>$MqBX$GW!pMgyLS`GIp-4EcNH}Drh#;i-WgB2-_)TR`$mA3n&K^m- znF5&=>$#Cxu`>yba~(spP)jdo=kBgUA#D|G;U$oOi-3HLG!AwH2DxRU2|f#i;p<&) zKIz0vPF~jNX4TQbOVxz7k5Th`kNuDye3wDBa)QTQv=sr=E^t;aIm_oB%C%E0Mb3MD z^^-d3S7@)|J&*S5{C;0>ZZEPkhpWOcfjwE4d>5egYduT8Gxsp_+Mfe8IC)fXvdyQ* z687~^a3PyLPYB(_W3p0EFI#BP2Oq*yL8xhM4C(ctZ$Y&hB9lX zJ(R`-Q;$d&l*zPr?N&fc)#?3+FndfYh;n8JjOZ>+6?B4d2t0S}$Z9B#xdh>2zsR6u z$k?H9dpa%Z>1N*#jL^=pVFC$CIERxl)`Ft&7zsnKwtHrhS)Kkom`^aGdeU^~-Hs8R zc5}X0QR{R~trN-Tl4^&DPG|B-&^$le)oyd9t6e5-a3`@0XE*e*V0BmYF%*{apR^G^ zt-Jbv(PjOIP`{AOJB*_I_IBFq>^|5v=@`-BlaMsq|4LcS7 zVtq`cE}02P?dAM1@Dup4r)y2W9JnzWX9j)~zcT>fVdj&`>s6YFWw6MMd z-+R=nC!6~ju~MiLk`uMl;S|&)slYstm0?%=m+0S}mmdvhrLMmlAn%<4kcT$zrF@PD zU)NQ{raa`qmu7FjmY1DD()0T{_JK8v>{zAxPB1w!6l!&=SxtD(L1ow*Mu5~z4Re-g z2pQhap}(ufJ0SX0uhkBSj^1?_NZ2B#x=y2$+ijs=K~DBPsHc0Qpw-XH@Z+kZHc}mc zlFtR){(CCEk~|6Pws7zD{hQG@)n$spc;p0MvhsyYKeF)Eu$c2DmwR5XCr*_@%^C5$ zkh<%5V_zz^18r0Y$!$O4m{yV8`h2Fk>fkDTm0K_8MNE$GG>BrpS7XN0x*msvhp$6g zQ-HC7-z`MT@NddI?J!fwU8LLCQ?g#_8r;(kJ-R#XFeRQ@ixIm@mDR3wdXHaM;TS|R z&P!yPLQbL5=QwpFZHzj2SZmqXQSo-MklCUyrn2$CM@>JkA8LMiC#&np#pUldG!axa1>ycDE-k z%&%xQ?))pdQfYF*PhT99qXKa!ChRuHeqrWaQ&MbNTeknjh}|aIRAkug!;VD+iatQf zC<|Ecaw|nB@%!9lgv<2IL@k#F+SS%4X4A%E^M3T5{7^48>BA*O@i2{-5$&mOkQ&TH zHPNVR^Gxd+foW7pVP)Osq1x-dbo{OH8Y85e2AXP-^V>8If-Y z;PD9TEVi!pQ0g3H#_3R5vlQW@$(S{*5@eb2P)R{Oa*NLYp3c98{C!R_aRyTPTTGF9Z)wH1VuF!dH z@(%4K_pYkEZD#3GW7c%Z8>sK;=FO-V*9Ny<^15&Y>U+3(zqei!ycK!*n>gd1@b5>= ze0sLfBse1>vkN2N_?#Zr6J%mK97-X2exsoIwp+dvG}k}CYx;kjqc@DRdZ&iE@ib|p z*u;@%unL%y43CxTa1HB5sj0b1k4!~wIOycZfXatyi-lY-y*zMP;PSu~fnO||;gBvz z^9dE3qjGV&SL-P%HLf{V4sxXy(cp1qjpM8`IafNjq>-0|O26!Rl=67Aq=h61E;N6_ zmE`hlq99^!V}V_~LTEIxYg&l&m2-Xvi8@vLQqQ=YsD-kRUqG)RH!LR>hX# zQW3P?REbbyM@&Pps{&F6JQDjazYs>QNA?*ks)HGitCF*2w(YW?F0KA1CBzZ7pj| z{;_Ts8mV0H{){xo1@ABND;KcaZn1Bz|5pzFSV4 z@C1-Og4WX6DEr*yGkhCeGoodT(t=_dmOYNb=e;c_XIM_9aFumX2l?h7O$$0_Naw7~&RIKn&M{<} zEtq~yGTSdvQsRYn$QR?7n;la$*QjW&IVYDgigN7Nv)&68>G%H>D5QV(M7j%8&G?52 zV~#k=*xMi3rTFbAGcm$1t~J)43%RynBxGYoJ}+!ObFiXlK?WM&nSBT~*0ZYq%s$4f z3;H$>FD#~x$fg~U<^KASedE{ps}eP>0WQ70@hmfOOF`f@3g1fHR5LO9Tf_PzFuU_A zvd|wtDRE0{q`lYVugDSZ6_LA^e=in9X$%+y50Nj5$;m-|x)$fxS;ZHfMbEaH2Ap5`D*_psZ9bIqs8`T#74?X z4Xi+lUn(nI5&R*CYn>F_&BLW0+ylkvCYyxK!^=T!P9(|Ak*6BdO9aon<5f;s27Hm5 z2V<8zi?0-t8T2DHAU7AyKa!lu%TJbJ8(wTi79$HKh4bn8XnoOM^2PlN$GGEOcTV2| z8CTqv{P97tFTzJL40eAgRpU?IGq{7PR6f^kbm>LVVYdsHQ+N(UT8gXchxbX%^3s(m z{TDA?r_%R%=>nCW?xhPQZBG(x49tn2YFfLi5*ISz`yA zc~_U)PYMoBaPNzZPw|Hmm8@tJ3slp$h6Dkcux>ml#?YVj?M+qb{0g6ii5ps>_Q_vi z{OA|i&2*}SwiUi;<~UV_IKGCg#(DH9$Nn6VIo_XjIPsg-$alSNY@XJxyZktFXo2qW zQh#d3_!;r@fn|zI`^>U`Q-O1{`dAt-m{0CoW7tEdFwsQ-(Rdb&#Cz&X+M#RK44FOH z8EDzsUtPm(M(4GcofB8L&IT1Eq)n4 z>TcsE=(mAaA-@lU6FFmo5q+IEb?5ZSbq3|%6eI~Osnx0iHBG36>w2UXRrqZ(F)^`Q z?{eqgLsSz;{1(SNE~#&}CK0W#EdCpRu;R<0G5kx@DpQr&cs0R=P8Ou9qqg=NRK*Lq zw@<%#O}~&;NWb`-ej)wRFCO5;;u=@y+ASezHv>KDTHbdJk-A$WPl zZ$!lgB5jjhe>{Vaap9=?c6;NtPsuTDw;t-7r4>EYjeh$ykS+5waq=uHS=#2?LEzfE zs_0$f34^jP)uUKH~} zWcLF5ZYq_$;8kNTpHC5-NDoYmZnxU4k;j?wea(v1z`B}ChU28+SBh0LpRGS*u(Iz4 z*~}N%U~?7yhONR+WWmuZ!7Z1}_mKS-pd}8t+uB+Bwr^#{ZsV@7dao_~?16v_G18L#PMZwTtSW0|Rp~-T?Y&#?4-k+i^+#2JnRW=U z4U-cV#$EXoW1*XND*DU)X57CJ(Z`5xB?GSiC!2|LD(6EJjKKQ#RtZ2yfcpTea} zjEKEmvZ<%}Jb4nug$NAaAW+^Olq$rO+-#jsS|0PNnh{^_6>P-(7>H!(*yO9V`1aclh z2OCA%zr4~cU9_V*#}`H@U6f}wr8v}f@Ir8y{KB9qMdj3^I>JK8fEWMLAAb)_AGV z1FF?8D`+=z^&nsB^)&u8J*)AX1cQ1(*L5ob4#xe`J;@Iqq>zOY>^4)#ijFYjw6oNo z%ctx%9jQu=GBR3_XxWZSFSp13bhpf+k>ew00M<8C&NkzJ6hw{-#r;PX@(`*xvmiWJ z%}BOghP^cyX)fGno6&HR5tB{0R4?@?vM9Ziq9NWi1%2t*UDRO;s-GjTh zfGe`$?eT09=S^W9Q+eZO`Z=b=t26zz1I*?#3n-Ek88$(+(sNsT@7i%GKYy>dbdg+> z$5i{iqQ|F;22{}@CVszDXYYW!c*daTE=yZ{&SDrdJ{@s|_bGLI#{1qG@1L8Irsu%y zy1HM`XQ)}xHB3kmb>hL2^Py1FB0Ac4ru8)^Z|3LJ2|_@J*&Hod!&mv2Jpacsmg?Og zro))nFLIKh?{*=YZ4u0U`6<$XaLCumj0&!6-GXNnUyt0rl@+3;%F^$Xi&wUZA=g?G zK8>t}RL61V8$@&8rhr**#wRkX&M!7gzmjmF$-HH|qyWAI(MHAGjOwIh7f95|wVz*z z92tMGq+F&dI&dYwq7$3y_wOa=%lm1IrPGTLx*Yj3{!+uJ{yCd}2|n9Encz7YGG1Vd>za~na0-G$5F2(C@yly}RJP8P-DBpr z86Qw0Y=T2@i;EPWB@l`r=b#GCxMj7CJaMWEJM?NK74E8Y#B!^3tir#hy%GH!u;v#}rlM=4qO+@*XYoT94MGaQuEF|*nj(rr z-OU9#wdbJ(7D-3U1VPpllZwp5&4o4A2Gg>WjXTjN^H?DwHy7nVxYlsLlgOq8V6t^pQ^_n2fK9Q%$u&<658*i*XiR7PI4pH5*lR~6(=M#3e=T>wF8FlYel@YQd!T&b4~NM{FF*vCbmJJalh4iVuKl28&%Zefgr7Me#C{Ljl?;%&e}*2W)eMTG zCxVSaV2mfaD?|KDtP!X^<^Gk zwEktSAmj5SHJ;g*c}z+H?;xdJKwO0j8h;1tLLjsHl!zi!lzdL~o;KgXGJyx}Y<2iy z{MLfV&4s-u@Av9-Mpz_^vi9WT|3=rJ5g%TNLF5@;JMB<%fhqbaSG_9=8_CL%D?C$@ ziWIq=VKB0p=A$xCtn!TSlZwh#UTQyyHCow=gam~&FSY-`E9S>5<%l;j7?;{x>p!8l z>3U)0{6mlu08|Szl2?cJwA+&*E{#DoUe-{$%j8F$>mPU7kBHw`Nau?6tORSJc;9p2=T-6iq5QyQ znVoHBJpV5T9-A}mEnuyaCB$Entlh^4z@S3xMT=g|Y1U|7AV%F}`F1+){0odWX7!UT zvgk54$wnH{$9jOMSqF)SQ!1YdZ}nj$T(%FKdY9D}*=U3dj}%2?*f#zccfCuN?Z)+n zoM|^=lPEjh*t&AOaawVIo=zLPqR(rzm@`NI1ZKYKgrY z{t2blnPZ#yxZLzLv#~VZ2){nwSiRPmyDrgZpUAF4h_%vlNdkTxZeL0Yb`Lp0kkbZ+q9}pF$0Lf1Ct2_+b5M3RsPT$}Wm6D1^GpS=v93J3nU$|T4dja(2(~w8}~Pp0c{%SiP>UU)4#)+lg#uKg2Fi$vK&b#LYLU*? zN&DlCN$>ZA@4J09q8Bh{I#z!=@3N~OAbnnxRsF$a(*34->Rs1QxwL5hAnCsLZjb*< zx{v)?R(c=%{j79vdwEv6mo4Gy)AbeDf6GeuwEvWq?qT1amCm<+mzDP0zsXAH*+0)p z=h|myrMcfHD{a`vWTxNmYtPC`_p$$ymEOm`FDu>Kmi$>L-#hu zaI)%z zJkZ_R>oCq0I#t!atnnwzRx{QNo@%u??9?8{daK~t9x$%o-%N}s3|a51v&wR%7)`#z z{~ypbc=YN;#@v<0+(rVg-|;j9h9x7t(X4>ox~wZ;iE}EensB0`SoK zeWai8$kmG!Z;Zv@jcy+{_L(QF!b)azB{AS&byz~+^lxDOg<@%>O8BR}i)GUV zl!by#ac-2}ChT;01_Y<-4xlP3Z1(_)R-jlYP=pVO*twBieU0gTfrgP^!^mIXYM(>R zLLc^-Jjm-lyk28JMB|d`t5Qf$DpjCT)0|WKc}|MnQSNI8YA{X;V}mN!Po>s6DQUgM zeoak3-R&0pIVUBpwn*n2J|W+v^%ncrPD)yDu`h8_ zf~6Mw9494MYO#koDZx^UeWH^REVbB&J1N0@i@m>-63n;Q`A$lD)MD=x^Ej%1XPuPbrPY4ONeNzB?Yo?mCb4NwN^sq3PjXT+Dy{aFPD-~|=|HXPJjqGv zI!m0C?t6bHrTbpsq;%iK4^w)p`~JC;(tZEPN$I|~Iw=k3LMNr+e91}azW>EZ>Av6Z zq;wx{cTyUIQ%S+dL?o=eo-G1jv&$IEGp6csYN}rUepd`5Z0M;vc?7*!>r465yhAY! zN7{j3822`@LfpG3_I_<4yzUPo$Q?ub=KU#bw2E^q;E2BFv#>3f1^i13D{FoBRpeHm z3tm@p#u`m%hf_*WsEKfYC#4BA-$`lW-TCh{vRiE1Nok^A=cM$6c+*Mg$+Eyn>50_f zr1T_v!bu6TTkM%mN>9$)oRprpH#sR8z!v*zC#5I+<)l>CrqDGltM`L=%@*Zzg(D{K4M7dlV-*ylJ;y=`191tDvD*{3>B1uoB8+tbDds=oHH#VcF# z<=ckyN|cziwzr+{JoQp{+Da`2_LrI` z(C(+sQxE$?=PBP_{C(vm!WGub zM84ST7P$&yhhODyFuFJAoUB%hYX>&V%B%FXt<3WN6%^YzewqP2#eGZNbPl zImVr{NCvHCy>^kmCh@av=o>T>-1$D-K}w#5D7Ly)3f?3+BgsNz`U0NLjvvs^v<^Bu zKB^yj69 z->56Tnu?hwVCq&5Oe{qaYNmM&y@1fi10kSu_K~c8$lE0O{G>FjA7b6pRTk|%<4az~ ztvu0ocQwi_LAu7Jd(9ZV47JF>Fdw>v=O8|G1JAb@F?2W2^s0sTXTq~q**QAGv&bvhtGj}alBG*{ zZsS8Y@Lc0n`wyNpeqcVC@C4O|j_~}%D|l0P1q=DmB|JN^dUONN2Yk}_Il`+J_Lm9I zt7Pd+cu#l*ZS`FSxscsyo$FPKL>YL@I|t836J(*t?H`Usa~}URkK0{ zhyt1LT%ta7#LsZApw(T$Vm@>Uk3a$aQaL7Y8&dx$+xB* zVaUa2yx(}sz)rtWv{L*_;vnVYcwuiBk~)1kiUl!+l(r- zxBPk5=sfcGXdtdqvZoQ7)op$=j&v>k@7X|vf@Faa6Wg{|H~VAqJ$_NXH9DVM1r5E( z)ys&D%gmL5Z#RDrYjh9t_iE@(eqv9Y{5|=5TBA`tM)Ypjhy0wDR)GfG!Rn&^0#OAL zBlc zpT+lD=$xO8o%5sz{Tc`!mNbl*93^)1yR}}VRhYyGqoI&oTtGY^BbVNvRO1oXId4C= zu>QP4YAtNom;4;u5>IQl*3S8%(?aM}O6=RPA0_rPVskP|h(ADP{qb`R>pU6#{TlWs z_x?ugj*Q%$>!*5M`~D3FkpBQ9CjP?R!vo&?f|tIua6rR>lsM3c$>DytL`QhY4|wPG zBmaR7{mI|oh=~bnFZr3>st5fW4kG_SMr`@s^RqFl@N-Z@5&4U_^XUiVk6(14HTpoH zDrz{GQU^o-nWeg*H)o_ln6wwasJ}HDx6%;@HylFwLyTC-e^~w?Yc#H{BMxc!5#@hm z#6H20;$h_nv|nV6#`R{zj~WJ0egM(h{-g3H2tfH33=C*Elo}3&|7F(DX+C84pYogz zP#8G0;V{Y{X2g#8&&nS}dBMP84YGg@G-8`D5qTK+{`T<-P#754P)zw^=6~1aBfB|- z*=9`tGYcv{`5gJeNVY53WW#_1zUpXWRlP4fk}qe$!2`MKMZgyh$Q#L$r{Cm;CD6rL zaN&SozsU<9im8ERftwp8Hw=ai4Y$hL=QtCI-|<1>{&`?}ze*p(C0=;#*K!7KyX*H5 z*_0Rliv3k~?@hjnJ83<(kw#y1S$HmW)NbCcOgQu<)suYUUmh>4_$u6kZ(o%)>aY0E zW%W0n-CcQL z#htD?)zvnb^t^NzPJL!md#>DfPM;6Z`&-RbGgP=V=~V4kblERmuHF%dahj^YnQQX~(s#eaX$)>xtr>xyBIpSCoc{4~w)olUaRihg|Lsf#rA9!paFuWC5h@i^ ze4YBgX+ti@HSiX0+FcM*4c_g%_w$|u)>Jn8I{ugyO~xIP;!tqVT28&@&XhVJtPrA( z=_dRf8S*a-CHmCWlrFEaR)i841{A^6KV7=4wb$Iv`iL6;ntwF8$<@1lBX+#2|}AT_=A)bEYq~F>1?)26)cU; z3vzO%=H#UwOq}wd6is{?BB&nBr)euN?=o=^slNwl4R7nnrvzG+keIWtb%r5v6RE`X zdpRXyChn6TtNH+Tb}CxoZcY@x=A3h&8+SKZL~Z0~x?$A}sI5`7?NN@kT_~^Vn+ysu zOV?y{N>RvU85R`}I*m>!Bzy&a!_yWuzA+|e&OWp_U;Y@c4DS!UOdSZOtlC2Ot5w}c zdG_i(W0!vl7cpM(k2EV5GA-pAk}E=jW1eGVxfI zD7kwCv{+TTfp7!n*s7B9K-1>~t4cQsm604Q#K-R-XhMGR5|@Ez%=|1ekc)4rm4uv1 zlZgRERi*2EtC$U?tIVMzJRFXF{pz`c9^vw!>BF$yiyJ~zQhyl4D81mJs1>M0%{?XQZD;ILlFl=z5Z>yDBc z^76bwKHtkz*-CcvW-g@Dy%t(6IMh|{++wwmwB9qvjyzz+p3jP%#^`qd_Uur=qW;90(2e4Y z`;tj{Z)2$pEXUa{rq02{85m5A_MM+e0_p)Zr3>LVj4qVlBA=U*yix#wjVeZ%pHXs_ zeH82JS@d6caVx)dfkd?6$IR?wt4gZOyip}%1d)Ek8Gj}JFO@Sk8I+*tfO9`vJG=ya zb#!Rw`{vk{k|z(0$g#1BCZ`$()1x4l&+sU{Eo-zEwZE&pv6mXrho!q?Z#kf>F*Nqv z0&7>(uH0!&8Plk=X||wnr){<1;O5Q*-P=GZG79C+@_YTgShypMm99<*m9l0uDJ+-} z2oNOv((h*48^CWJZ>`lr{%;GwW2{}JEAl`d|BpI01UklI18Fhicj!R^BT#&k$S&C! z3Hq3MJ06&}OKfa*fZvR74q2)|HZWsY$N{`5J<%tgGNxv>0w zBi2qjfMghm>>-|W0~xu>Xs#;B$q!wZjIE^~-LYY0sl^+en8f385l~&$Sk|5aD1;du z1IQujxS!^#td~k2y#Fv%`n9>@yO57F9Gdb0fhGg( ztHr?`33LmYOfELD-iPs@VMdnwLI@BQtBhzry1*fWn+R_9wORTh)tJ5yQ?F33>a#Ix zCAseE1w5{OCmjSLT2d!)LE;m^p3J<8QOtYJw+K5rH!-vvks@TBZp8Le^H%3Et^I{9 zv`JBm6AV0yk&x#?c`ne;Me-~I!uw)*F4E6~6Fg`kXt zx*3J#%I*cWGvvc&B1nP$X^Vw}x_(bMJvr-Djm1F?jwLOvK~$$Nk5XY=BVI;WhQx^7 z#b3P1jhG5;Xhybk=y2Y>ototbE;fe1Ywmk zrLVh1@>1(;uxVp%s3KHSPM8!_JOp<+)Un$K1G8&+;mQN})=p4_!{BS401-fR)>8X? zHGp+ModaBz?ie~aj_sIo(-0Pf@TAzvDc8@Lcw8^gE{6&^t8%gRZfbzY-Bs3-X-nkO zwC{2j_boJ{VoYa%^%an>2~Go6(t1B&yujJim8=401?#T~qaOsKjfWP(O_-+xBa3n+ zYG?R)3a8$l0SmKV1ZysRRl(l|nTeNFgb_0_SCwuj%nP(EtaecNP*`zg#T_cdh!Oov zhQb+v)Dz=p$RJ6BWh*7p;5$`}K^6UgZ?2N6M}+4;^Re3?H|wqx^w z_V?6GVh)j=nJ1w}oS9_$-Vau+4j0kdP5)Gr@jEpcze_b}IgPXPG+D)=O%q*8trkYK z0(4O&x1{l)yX+vUW82bo)o*n;hVy4H0yO=VHJ$O3MP9<~jH%+?ViJ;fDjh8%>r3k6 zR7i`~FP1YvgZWa(7nv$N7Vs$Mb_);pNjo%C(g-*J_PV0dczCHuyOrfjYdI=~96L>6 z2R1t2@znLmx);U0EE2G~SSh4#>1$k(Y2abH2y+l;0Nkty2RKYIU8bHGO;Xqa!y8 ztjXIZf6JNE_&EhiqKuF9$FCN_abkS92#$4B7C%P>N2#Kd;8^}23yy=8;J9B}aI9j4 zCKCP&(Jo9A+0r921d`){>%Ke&5k?D+$XQcd(Gigmk7bdkjvFLw>U^VK$z)42_Md?wLr78zhbNs7RkxR+xMcOG;o`vyvN?uqZry zj0mY02TGd>Bvxg$Rav`se#URM{3Oz%CpirU^r2c(G&>53OaNIuhYI&U|I9?RTqMRU zK~W4?p1yzt7(yn>ej}uwDIZpfd^kY_4_PG%uOyF(A0i(TXpIPe$(zO!vPw?$At)Xy zT>Sq;P#lvM6w#i(Ur;<>1jQ=fF62ZLIdP~XC%W=scDMH?9J0LWE+d;_XTaLgk|8G+ z%iOA83UV^!LN;g1TFzw%c-wwUJtVuR`os|sDl5AyvMY;gCA}j z4I#0rWr@Sc*3uM5k;Gm>81S0XuY)VTs}VU>=rH80wn=-8qQ`KL8fy#L2xr?#QVmZL zDfP7)PK%d*NF_m})K_)AY57l`(*XwLzeXc5OmRxnXCKQ$ru^3=eL(&bPKXSWB?4CF zm|ho^SL6)jLGBxKDSCO3Q=rCpbtrg!LdSY@|~8 zCwD0i5_d=ho{sXM-<1b9AP=IX8nG8T%7YJgmIqyAYoL--e*v-)32Q)tlIvJNkqf9f7rk?FlWe{GTNNsA zkbMY+=+mS04LL6=KiW1Rvfue4`-!Y44Tb5P$bL_fmSd4vT^KB0irDuIFL^BBajrZf z_D%g5J|aXoJITJ8 zJn*EN(mlZyNS?$j*L>?G-N!PZppU}0koC5}oI)1H*WHeWy*pU(u84bI2;bUMQ@TY} zvL*E@s)7+s3VRYVST7Gw#aeYquDSHvcDq^euf0opDgsxwJyoRC4I&pMq41308yqXH zjP9_$3rNI)+ZdF1eiQ4743Y3nf??FcViydm!@@Byhri){&1pB6%M-yFuPzTJem^LA zeU&=!Z$zJ`h&8CW($6oF{sh9+RTj!KzeUb(vHFGjSd6YIDU^^8MG~y0SdK2EZb#)i zb}MyySc$X5^#9^89bk1L1dm}j`bl`66O7Xw``wFqO z6!gkTt|}3b2!Bxj7;oeGw^K2reikUZQsFCkv95KFAj^pU54o%&2REk0_3+)`MxC#A z;OAKUSBGZxfF|R3!r! zIuUT>w6lbol294VOH|&f_?3jLdD%V&YU)d1oJsiaJWHdg-un3wo+b1_C~@_mREZ-e zBu3@4>2P+Tl6gd6IlI8L&Vgu7%c(un95TG{h7aVLy7-WgwI%tm)DUUQxur-6I!zxN&ewL0u)SJEYEheU^3%d{z2Zi)ITy28n{Td*T%NbK9^!DaPmkapZj8o zYjxwrHHi`gqa`&J8zxnTpfKz#?6(w#5|j4hPEJDaUz5|G{P|OiVd7>EAD+*y+m7UC z@9b`uT$S}#?`QfJ1uH%XT5E1>7T7~pQsUY!a!6z6njp6@j>&%wD$Zz*4_lZ zs^X0Qz99(&3!bRK#yx6m!IfCG2}{k@1kTkP#Rau)*osuEv{Y{Z7c}wS3pqVrrBz$o zT9;b;SG!1Cg#ela5Q4TUpyIBG+c`u8w}2w#{r={hyMSB&@B8x6+;is4JTvpmGtWHF zGtWG8nzO~k?+BxU+0I(;HwP)2>hvfJNHz>uJ%<{`)^v4f+B_EA$>f4SW(FFHc z%}f@jQ6YAW-?p9eUWhvv!RCli(~P}tvKN!CJ!3QD*un&6=P_|o#}O3qM%mo4DlS*d zl41hXyr%0;?_CA&4oNy$Tb8IbreZ>Yy%2XVS`&9CdvO=Y?u^ZkGb{~aY+3r(w9)of zz`xkD#!gTmU%KU7#Et(z7ZGDtHE(Rp{Jf~?!u7F5Zx_cfoxvonSuQx`j&1xl-rg7= z_8yC%ooUcb6Kl9>f~Jc3aYb?wfp0GSu|gMCf zP?e&FCcO9l1hqMAif*!!F23o1N!GA1sjRg&}t=j8-)Vzg?8kfrpgWov-S-z~k?}%lM z4}$DQ(UX3=^xH9lKkCc1EnA3Lv=qITp;^ws6!uI6?tSgI7SEUyAGXf>J%F()X2-hE zo6lWR;f$E*_DgOqOPrA0TyfoD$<4dX*fqJiUt(}_GyZFzA>L9sx6l6oF8(n!Hf4TR z)RPSOQgZXp5^pCra~vQ=332&{FXcjifDdRZ8P z)>#z0aH*X+eF+p(vWQNE^y+f`$9n1~%$__xJm_XCbmNaO6cTBf@n9seb2fr@chO+* zK>Kd_(w?6ql9;U4y2X-ml3p{_a0Dbr|~xa@A4leQG|80$w*L2O6omLCT53! z8Sgn>rH6@b#X-+P^U2R5*B0X)+q~;U;=!#Tg_#TgPW1a|N&9y}npMj5|7fBUe9ZB* z_DjvT{QJc_ykEBcyAkD#9EYon5$>|V)TDK{_MHo3G*P6!2WqVwGbV8|iB@WVQf6B> zt~E(lDCwq|w6nEO=N7CR2ux3Wn1y7DbSO$uK<7kNOjHp>43e(vv1XQ1fGGRm5`sXfW%6mcIEwnTl+RpkCob6e{byITWjAbrg=x1 z`mLMJ=C`%)WYa#aHm!Xp={X~R;MTr4&xx~J`ZEME_L`SNNhA#ZNT~}A1l@$z z+V^7vp~^s*VAA(4Rr>iRz08n$inb88X+3|unM9Z+!d1t|+MAa9MDoqg2?bdSl?Ab4 zEPJE>2DCCe*~b;K#+&}8R&bN-!#oHmhM}KFHxjpijUsf zH_70a(4Ra{)N|@~GaeV|IbBa4Ul$nxueI-LQ|<=yeX1!p#gt2!auZE@vnf}ma;F95 z%y{L{_Y{06Kwo><=I_TA=DM0gUrBWwwWusW-}^$}twBNS#zO&X(3j+4d-TN?-*1ppzpQyBM*wuU=Z!p@Q=U~1sWL`u%K2^QakI6qnIc~azmxa6P+c0R@e;X;! zwA0{9F{T$vlv}VHe{5%sKfp|>2IiAN?=gf~)_fXA*>FB_yWQ6VL(?WLB!uo~M)fZU& zVeEP`TDMyJF3`BAbX8ev-;ea1CQe(QIjv2tCVGQ@706q^#{-k~P-3dHkywmcj90gF zg3(CxM!)$s&YyX?Ij1+~)e}^cB1F=5$*jM&YaS;XW+m3 zzru|=Pe`;v0V^tm!YZ9plEPMm>tFJ{>5Vn3dKcHr_;gnDciqxYUXsG!eEOHcIUJ2+ zIvN6tWU9J_&cm~-s`%9w*IBZ=v6*emjTmfu{=Gw;J&PbG6X^`oFdRh@-nJ0p-mR#{ zbVn4ft~g-Ofr*7?+8;ClTsVvE*3S%*hcplX3$@KV0Q;=;H~$hwCPdGsmnJ&pptw+8 zeXoqpHGfM^1do;ZgUH<30u6Zw+_RMdZ68A8^ZM9fN9~}GwU68G``|BpKV`e`>%X@{ zdF%r=spKaQOD*QjCl16Bp=297_Y|d5^b}~WiWg(=GeRF;SJk4q0E{Wul6T7 zCzLCHPumH*lC?V4U0+SDkud7+vf~CtzCbNmp^)1N+6NUj@em@$)h%Yb=78r8j!Y|a zmT#v&n%xCN7ZvGwGe-`@72WXc!4bv+CL?aS|9}~s)UL}K;`X*SDU%89RU&TiK#0JT0<#qI#u@kE!Q#{V~c=( zUr13VC1_%MP1u$|f8ScO!+0CBQ1ZPhcl5q=P?tZthu!r&PwTC=>2MkM=zgTvtWvbS zvWPeNd>TIFI%QbZT%m}#sa;tijE&G4@)MJ8wH-x486$S3>s2y**)V0_|Vcj<4#rw+x;r`@o z8GT0)E2NeFoNxs0J~#4`+%k|TDqH$vvMh_3J&xv`I!g7drPLj~7;^<1D9-f*Fm$b_@MAP;%8f!tuwVWsEsp=ESM0QUg{ zx8$4QmX-@HcPG{7;l6#YTAYPD!N6S+F_`$hf!oE)*JGl=-De(CppjsI&M|q&u7RxK z!!N_Yy&-^mIm?;5&o%!8+#wSTTrjbF9`5%F;6BJQ)H2!*;9hUw*8UH02M;iC8M|Hp zgk$&eIl@HH-ZKr{k^t`62JXjwCEtjL(gz`N_B$+RbslaKxCROR4A3ROfy^cwp#Khl zTB)D0W^G4mR_Yv*+|lQm$z(Z?<^dj=1^7>fsb%!c0N^7A;M6R@!@dY`PXQb}NC4^i zpYs6UI6G|N1qNU&0Qd(3ur3SmJ!pQ17V7k^J7gjAO~mTv0nW|>v<$#O0lHmvBe_?&*Wk zKA>y&=wI?!v&!2-Xf6LiTj-TaD$4neLFE*(_W^g z!wPF^$=5U_tm)`%O$k%eQ=flhpN71&QjNFTcFNZD&$HC0B_=uK-G}FE`fHf|W!Q)5 z(@v(Q>EB#a=@b=Z6}>9;IrMIO%9GebCv65#H$ z>;C{}pEp*7Ty0|>&cj(aM;SP;ZTTkrHMm25XW%eJ*5u(#&cb<5vvQvY{s%aNPcd+q zyNb>d&WwYyaQsvtXSu7QfeSraqq zmZKPS{!9FkUSrCA+msttSnd^Y9+ulBEcc_$lskbxxpJ?MSA8EmRZ!o58Q-wnizeN2 zT2=0{!gBw|l$&2z?xB3SyTfvKtK1D?Ip?s?o;Wz-?6aA_IjM$q$F%=U1MiYTcz@2r zJ0*m7zu^6*upRrEay5nJZpfG0BP{p0%FQh-_wMQH_oq)5^gEF+_l8Ng9AD*D7nXa_ zlv`9-?%aI2`@?emKc!r6VYz9hoKsk?Az$tnVY&TO&f-sQe2z8cPAM!WJ6||Hbz!+$ zl^a@EZh$GbM`5{&e7T~q+$ky-4a+Hpd;gBdq$uri_*;EOinK9^{g*&sW`ev<=sN$q zIMD{{2wNTGe?j^E!wT}>p3Ogytp3S6MWe7;LQ3eIQt_Ho1l?d``!-q)akqae8u-)Fjam1`HJr{TZOi( z6w9-gYjam;wjV#zcm4T_@>lA+{(QxE#n&`JHoxNg{ravy+3x|qDul1-p#|ggG24-5 zTrbhMK4{_+N^UUovHKLwj~AJ$IX-l5o)0ZD>6UY@=qDc1Pf*WL)$`&Z1@+vJt>=fT z=gwR`LH<$7e}7^AbF=wdmH)9^e$%caOuM3m?b7+ua6SwR+cik-`aGO}K|SM4{|oE+ zSl6dWruv!c`TO?ubaOj0{eQfm{{?(ykx93l_rxDwDV*mwnR0g*mb)z9J|`@vruizY zc^lV=C97?uUG!-a`_G3Hl3{g3@mJyA|r=* z`(U~HX*qvWyKdjET{oznfra%v@_vZ7VXEin+t+iGspoD3FO-l{tcYPfPFRnY1pk__ zo`C+ z`SoXq{0}StLh^^@@74PdxXcda_Yzk0XNUC3O4pwq(mR!|KRcxVN_<9tc1Yhv^ILy* zNYC+=9nxEsUw?K;=kA$4Uw?K;_my9Nc1YL7aOQS6`M|iHGLWbHrtc*K7K{O7P4b@2 zq3M+(X$;?M|9504di<%71+$UDF%y z#Gt(CSy0}z-AYZMf$qYuZNKdp<8oVoHcjfP|r+p)$%gFw`{4h(pNE-VY==? zwC0{i`oP3Td`#fHh_~P-t}Ewq^VGfSniBfvWBcK%A}jSokkt7%YMqZ#WD;Ku6Zd~& zLPSyjNK70`!OpqL6(m^cZ&Poqm0gHP6%C-)e1B3eCk|HIQm27F@956|2y=r2ymCdG*ujzR z0m4!DSS^jnZDY&2`jr83)^JTh?H5jRjwcRFQiRgk)IEW_PK_@pmo``Q)78zpM~?13 zUiN%SCtJv+e|e6G`%^crWkE7I)`X9^bMoeeZ@J0cW-8(}Vptdt)WW|4W<**)(u$Rq zWiX_v117D2Ve~g?-adadj!_VVHYl{4W4aKYV9Wfqg~SCg5&F&1nhjoNe{Q&$n^f|$ zBv-reA#>U|+qqQ7*A0kNSK=J*>6&iWeP|_LBS+2SqjpNjHM>IdW)!i%ULX}WnTQDr z7tGVfNUF<9eZ&V-?s1sLsGXWujT(q~pD0l?`4G$}m9x7|$JJQUp|BGtL^}6mxV>$A znJe;)pI0qxt+gydQ|*jtuxV+A6I6{gZ&5ZF7-nLXojHEG4*U+{RIxz9tsF8`6IuD^W^Tk)q?6K0a zLn_A^>i-a4*rBLQ_cqV5GtK=CKjD})F?~i2Onfq`D)9j*yA_P=7fIYG)K!@=@T{sG zu@AQGQ82jAFg^e}^`U-u;+QDEx?;4dhf5nI$1BrIVJ5}NRi-DDDY=+>`=z+aEjxmK zrD00J`lw-PW9|ufi+(9Lo!{)R3GT(b_pHv>Q^kAw@!*{cx|Q2GSOuu8%$nN>Nf_rl zV5bN3Rb%YyFqnY7$uIrxJaPvND*9p$gW4fwOREygUs`vi2#Y~|3S_h$9<5Z24C+Qy z8S}_oyzg6mSsGSqhnSuBIjQX0CyH703<9-vHe9&8+PERFe z<<@?1E@w?IjS2AA!Y$tE{mB44<2j7OAPp=B!Z5q;)5~Ayp{nJxs>EJF`^ldmoV3Y9 zvXwqDC~J4qWivr5^x!ApU1mOkvJVZ)g8Dk^gtr{u4jhn$x3figlD|03Ro;)=ka&z| zns*AIhZi}+J6kG~>Cm2pn5EMuRk5+cV=I_MthNZ&q8^}{B7qvQG>%53waXa80dk55Ye-@X~Wdp$H z25%`EkAUekPl!sRx~;ZvPW8h;p5cKlr_U(oNFqTk1q4(qI4F!`|w&>?PSmDW7oC+V%_9*1hTO>)e#87|w=MQ@dWe#E?nfop;V)?4tcPy1RH z8er_ss7t3;S77(RAw8*7?nxZS549g}caEpE-V67bMKn>q;77cgmGX7(W{gvI^29R2 zay=%YA{)=h2%b=V`d?B}k1(X)5RTTJn#dWWTis&jbbZ8nf`DXNfUPzne{GLf{~nX6 zg|Cr?I{xe53s(rnv*u<0HePTo)j+tZb)p@!idf4T>bAcdU{ILoN`qwXaMF1dTV9T3 z{%$mn@z(qt$7k_>Tfa=4dVaI~f`#Lij)SNhQQzy_!;m-b%7%YN&DoMC(9rG7E!E?y zlxbV1VYA}{lDYBkeC*VE>lJe~4f6>nS1a{fQYUpsc7kKn_lq3ONwe(n639z%V$N7j z*`%t^3Z99B`3u? zUn1tHDkH?CaP{w-?f;cZ!7F{TQcE-emi3RA`@_WTQ>($czUY^k#>KnIMP>eS-h|^W z8rK&Yt!B0d&0OJs9~c^B4*GILwHD~h`bmy6!kFJgoy>JVW>_wCrhEDR4mkg2)zIA~ zW&js}u=uaO-Y$)RNG5qde<(W&X5C}8^3PCi;_&6N_|Nh=9F2qey13A9TMMdsQ_CY} zfUwJ+RFpVEoZ{jt2rpQWp7#Fuz$W5mjK#$#Wj?gjMz}$hF8IfamglCbPa(V1uFd_L zi4AoU-d0cB&Y)^ELepzNS(bVBm?+&SAH$voR$zvVK*?BSf&_d;JFi`sJ5~ za{Y#HldqLPCQ?Q(Y4Gz}Lv7i41ZT^8L&Lk@Sd)9mgmu-#1BQhXpt4 z7bK77*Ub7t`Tnpl(?MaTeUxcC`QD7PUv3tiU_1p(a($sZKZSP*eUj@(4QzhJpTI*X zSM4B|HxJ3meRHfakZj||vzY>@sG)g#b-QTQ7H zF@BZsr&|UJg}=LZ4TQhH70OQ%{+2fe!k=*@3FPRn5&q5&z!>3gXH&%v!e5NG8{w~B zlKiXFX+E*!Z zfwV95lP}S`5=Zzq04uBCZP3i(CJ*WHR_YDCF>7DsH(MGhY;{fws{;{6k}8zK_SR~? zqZIaZFm5;YAwLIF*o*;rDas3u|effg?e<7bk`9I*W zr;@O}4lvY5e&7I;d%K1(a*kzgmB|?YCc|Kb+>#&9BlQ^7slm_(l0%Vw_SZ81eXECW#S`_vazxQ+d-!Vj!lIQs!H854M%OeWaY8NBlz(gb(83%S7h4 z)Q+6U{B}-c4pzqx5t(8AC{U+EQWBmAGk3&rej|ocU<4_z5BT;~N=N6|(FjuUbw&`E zYQ9$fzSoG{5@Tdnk`S&#C)*3*6KUc9y%1iB==cR8yopZux-|0Zgzy`$*s9wRXm(39jmEq;2dEaWQqz_>&?M^Nj?av{k3qJ^NbGJ7IN00mZn0i)+O=QQc<&@e^1M@YZh7KJ zj6iA)(E6d#l^qnR0vcNpjeGP)lka>SH8+cD(i@)KJaF3Ksa3Y~ zqLtdpBsJ?9`YqS+vAfh_VwZ-ZS# zOvay6!km?+d2KLy?*}wM8Rzm6*e%q5EA>M%s`rT@1zqp0A6R9je!wU7?oH-W*gM5% zv55s#b;ZEO6vwL+DoaO1cM3XuI*Xjfu+O`xO!7K`s3sdDX^CWpz`jO{cLu$j1m=E1 zt=kGGn2IU`UF>c61*0~IQ7apDI5&NWALZoq=UT4nJKRbgrbLIh?XLwElLLQXn9YsG z7?GJ##fNz2qH^zQ+8}0DPE%3a#q$Xt_~Xj%G*?gA9FfI@FM7y&+F?8vhGJ6A`b~33)RvEb^eCk<;&=mf%h)O{tS@lq~_OLT&3`o8+ zz+SYjxUc$?i!sB8^5RF~{Q=foOABOoQKqEmlCERvF)9Dw-`5FV;`aeWf%|Hx;g=w5 zt`&YWgo)llkeFws@A3Oc_|0Yc8!%^);{OTA4&SIcFqB=suT#zw>@X;zPbC z)?>JPm)8-AH)+)CIr$rX)zBw3ak&9-`{7}f)89ld8x_QX*fj64fNb%8c^=fAxfnz4 z25;X_jb$ydf3ULUsYC2H`Ba_v`+VLI5%K0goR0KKQ#KtNq?KbnF-c> z?f5~6Z{H1pa|pA-U&43c5j(jgk%xG->n^Tpe&2SdSK4*!3E6AQ_o?|+qr03=`I=RB zU2*en;c?_(yzIJ?XA%Ro+Q;fvPx~N_mqhw329Ut-p8(Qm^tMy7o3Hc6X52OxO{?gs z$&R;ef|+bBn!0zm~tm+RS59Nh5=aQ!;dLJO_ zty`BB^%8tM2(o5pP8r%>Lc@}4EhaPfm8{_GFEPO5b&F%x*cC?jy^I#rbOrS4B&b#m zuUkCrBQhl}ZE_xq4STl9c_YT1ODARa&ZwVF>6a6VjXfxyIsI2dYgSFNeipCh7ThU| zvT;D1=QSwyqIXMTbt@-Dt?NogOj{Q(dZDTAmBhF6^qs9QR@XHR$}`B+!e%?sGAs1} zRh?ka20I6j2?!7>1UsYZyblf|0#JaCDDqXQbElXmC?9+sPbWBoK9V`dKLJtWgzl1$ z)NBPFDUhL%U!rr1YF7C#NdOZTt+XVQb_~5xqn8-buJ8gpA+(Zit~FtVI?GnGP5Hsr zH?_x{_F0Mz;i1IEqd7J0>o5>81k(@XGKG>>);B*cmt9Rrj zil?Hz7W`=x3r!OdA@k?Nbza}RTTg8`kMW>kVfe1?EG1|VJ$l`13xK~x*FtZ+{QQnN z?RXEHl9|qQmRRiFeJJ?sZZrasjbPB-XnGTa`5;;4K+m7> zteQ=UpxswpOuKXZ3MK9Byw3J{=hbAE3#2AN`F|nt;?f`9rg6em#~I%asS%!tO`l

    Ib&bod)U7-%tM7xS^|s$K3OA`s%FjmyY1~WPpAo?h^SaDC~}+UbUMO$ zmv^n;XD)i-oang<)E1qf=wdCj348mD2-JH4APpYi82*`puhMq}rRyo((*48UvUi2wE?@^0|D zBOnU?-^nlBI^(!V#tX%ZF&KT_-2eLLvv35iaKJMsRKJ>%B6{{EWac* zn!L7xKs^7X(n&n;%Iy@lDA}4frhHOzGuMz_7k)a1`xZv?tWUKucPa|}sACAewp7hy z)#TEu{_s_Tq8(+|y=2Xj-wF3weYdIZT`RfGbYV->L@((1j@GTrAX8G28|rgJ z{SYCG3+lLHBl#o+k|Rr+2|ssfRV=x6zo}2z$*YGKPsNMs3Yf@@$eF?_4_4Qbr1Yt7#` z^>@)5Wtoay7OgESdWl8H4%Q)2c>@s@^MoF4xpqKtbJ?hV*31ixmfX0!b$Z!#jqx!Y zd)64VTw8)^;$b~5E2%DmD7+gVhXjJid(j2V2F0Ibpd&qZW!HZ*JpLU34C;+#8uzVP zMOi|M%@I+B+{t_MX=pt&v3ftz5gap?d~2i0_KvrFd9R|%5piseK3eHXw85a)UkzY0 zA7hz@>Hu&d&>IcVYqCJsD%za^y3M-+pz*pj0YG^;nwEZ%fc$PPOk&y{;}}q!$y9-N z`X((-rgW;B9KN{@pu1ao+rq!V585B$58B&zInrud4KK9J=!`TUDdrS&UR1R1#~Ym0 z4TR*)nl$WCpYt9^HDZZc=mDT-IkeR!P2h2{nywH3VY;_zrJafHOYD^pdpiBLpH1hy zQQy&`J%dV?db2~eDQjk}$FdFe(FSA$haz4!_L;s@07^Ov&b^>Xr z)wv$gnFIWzNn|2I2(r&B@5RcyFUfkT)ypmd##|pTs+bt;iCvJ}2kYY&I^=)Mh=q(G zF$9aa`SKrqQMmF^{ibb*Wv(4)R`(9E2lZElcYBUy{k&4+arK-de(9om^TDPsEM5$eMYNI^-;gCa<}@ zx+w7$AxhO>a?uu5oL#JwH>gRs3VpWwaDdEiZ!)Qh_ISv{YIkqxWw)BnEuu2FiEzS= zRgJ`3amOP+K5TFscJLx?o-87s>Fw1LrFGr`doIEHF`GpPcAFM|pF}^#AL)~gX+qg= zPVAnwUAY`m$DY?jMWowFga5LDW{kqoU=WNwNr8n(5~lqb{0ZckT0YgJ*XKs}-+IR%R2>S!ueD>}pRvf%|ch@LL z2SqmGWE82FK68tPMdL$D5Hsi?Ld@BVhephiB-0-Fij#Q(@ZJOKkRIJzLz;9=qSn>a zT8>m+mcby1kPR*wPndfVqbH8ho9g`FXY;u0QUrqF#}ZJU-_0+}HC=j%ETI(L@pz zYBTi!?dW+qtgCZ0vklp3S40i}yL?HGp0sGFy7gztIf;gZ~<0UAyNR=8^T7X}$>$pF9eMShwa1U)BU&#f9jD+Q8Gq9{r! zkf~;?_a=T-{=fJL?li5FSCvH)tjr@kN6KL9qe>k2Op11IGsV&-7i_gVLis*l8;Fx; zkDp&po&~l1DUh4OZ4u_@(Wm{IneUF?n;&mN=hnVX31Wm3N_Gv6c<*~g@<;q2b2bs zt)>lG-F5>R6Q>dOH#TfFcQkMf9J+0ASxOU%!q9joF1>cP?Ak_;eFr^uh0$Ycq{psk zs^c=ANwc?y+s*1gI8^LsM5B!teHt|e1N`lZd@(%9ap{-CtyN++o#-AMk%E~uOS1hs zGSYk~Ulw%?HKPua|0P!LlrGWFj-r1(Utag7pD5*SoOVa|LoF*<$;T%|7W`OaK5pH;E2S4YRkoKK>sN7)aA>Yvet!f2QBw69JK zZIkE<9+q&&&s$ddX==xqi#DVEus3*9Ak1~mFW8x%A|Jl7;38U&0u#qdgM%vv;?PpO zfx6NFGdY2Qu|yDfp7h|*UUKvxnjhg#b12K$SZ?JZ=C;&ovDD=+$xpXhGuKg(xnXVQ z3OyA)r!yKLd@mZ6xT44S=VkrFNWOH`h~|w=b(@+8>wDR#5mssqp&v$?d$By;y5KT;P4DUJc76BC zd%oE51V@cZpU#N(>^^^Q>RDD?9ncC}I`@iGVU^ZlrqE0n;L$t%y*Hr;(pbCmXbf>- zuC8gB!OhGl@I>eWsx`NX$j)2n%Td5w(EJrmoV@OfO@xPuj;2$j{Yw7$Iz6{zd!C)l zNSOA}k9>pt6Ud7@OsU3a7ZFWLyN8THdIZ1mx+jrocragv^3XD48{hWjDY)MSd2Ta@ zJh}N6V-52gSG#&#mZuX2dh^xz6+#~ksBF$QW=&03%V#IgpF|TAt!0LAdHg5i80o$!-pZxmzRq&q4!W#h;*$g*d z%{}T?>Uh0&@fu$+RlqE{u+>9Ei*>m=<_a1{r%H+%M)XVgI(3}-51=SO+x9Spd%mBi z&z8@QNbE(2zAcSVQSQwK=cpWgGO^f;lZbL+x+=_59On-em(!1G<&=HIG-ETCpr!Bi^Ow_iBcH8XQqMYGmAoabAd-! zj!1l4o!wQ9K9sT~G0F$1nQD~`HU7zhY3%bROA6);6jsV^zAq(Qd$ zZm(SORCuJ|7xXEXd-f?nNnF8YTgNRT+IUIKdXQVquIX3g9k9l9 zKDZ3gu(Q|L63O?*@NdxYB^@%Ga^4~guG%MY(gFLfXT&zczAvI{HIMs~`SJc3r`P+eVa_%*|VZ&z%RSo4vuJ@(iWaM2yQ#ik3TK$UXGCYIGr=gF!p1EP8g(> zx{Fk6E*|3SbwY?&=H@e;NHH!KL$q8>z9=|axQ-S2Nv-1EKCg!>G=cbECZWmspa~7h zdA;WG1%FzPX_BRRk9VjC%GrPYr+w$doI|S-tIfq-ff_;hLv!gvI6ug^`8_h8C!vJi zq1lBQ=C5H{&fBZ6KNZbw^p=Osf~Xx4T&loMPlcJEuz*ow9f3az;W789eI~JvGvlQ_ z)#kXKmFf-VND&;O`Mof0EolPswAe;!8cU{UDj^YuiK=4A;e|XowO(bkzOiSj|G2l$@moOT=Noi9zhT$i ze48F#a359Ey!CTsqYN~J)*j3u?uE5-jj4&de^-OK>Ljqw$ztdpMeN`W-tXQv`wpp8 znPd-!5-Mwc9VjZ`T^bdCkfnc0k+!%Dp^F7FJyZ>I>p5b^QdkwjsFzk0%j?Qr8dxuKDOqW{MNjiRm^to zHToDg0$TH);6icPGKnsYQjMYHppEo{T?pG*PEvpEe~z_>ZRDcp5*g)Ub&pxezkoqv z`^Ft(1Zi^K5%cRd<`3D38@bW!G+7B!im#vpHwVPrG3BZZ4_F?Dav5p~o%ol!meYsB zb~wv1Ut`x@gIzbMwr&}AT_8o>{>jbU3@EGg)H_F?@^)e(x-AusK9$GBjO6A4&Fuy} z_SFYL-B33CcpuK=@a&_Ov5NtKw_Yu2`bQS#MY1Z$BAi$9$T6M@D3ohjMqvfIm;v>? z|3jF>EE1EpGR=F!KTabu8z4aslj8z7EIY}wc=WY;a=)8<5+?#P!+9}FpzRKxfBnIc zCN+=ywBu^m2920|tx!}JGuL@+vxhBpz0D%FTgcCCjlNrvZbQZzh z^qLvM;&y}$Qr&29< zU^r8%rVfsetbf6*;SE;fwkWOdtpD*TS0vvUz%|Ox^f{j<->@8es1Ts@&jtOzi&6FE zWfsaOUQz78F~X|w?MpB)?XecH#us?8%^1~n z#jP(LqXAnvdmssn1nm@*kzm@t0IrWJRB&iri6n|*4C?FL^1i&s3b zs2DJ33K87LIctkLlUz1DAQquAQ!*f?IrV~}{WGA4{upkonIhCi0Yw%l9@zwydRTt3HfT@JH`?wMRG_b}xC0e$NQAYzrf&Fnb$V#uE zH?T!9JJF-9Imns!S?#39SiETyE15O#%Gx+npm=H-_jqrm!7!?K`^SepjmT`*ZL_X# zQ+^?K*m7VS+G{qTbq{*bCYeCyP^n$K8|Dz*kZz@ZWCpz-$I|Ly!-+|qwBzT|`F&gY zyP$6ye;;K*`+0OBaom3%Z66kiOzAn;=mXBD_An%{Pc3U!89>?i(YsUeAA}RCl%$*Z zHiWkSv}e)1mLO|plbcxwiuL&ywtGgEwqZ-`BDqhV!AhBb8Cv*4r2qUEHo$W)ziAgP z3f|k)qk{Ld#Om|!GqG~=-jz58C$F;JMg5#79QOq}kidUpW(yx7>cn98W~Grbhm_>n zGV`^IXWN}A5*LKsWomYAewK{MwMF?H$qtWpGo;0K zu~{;EOPy<3rK!X$py^jlw_f+&+KZkxmY1=^oLtzYR$A$SeCtiBKUMfQ7%*wcF$m(H z&p4PyI7taB*p-ctL%Vsi(zL&iSAK9u!n6! zUaj@s*vPene`WKidu%0@MZB&P5HJD}qR3ymNd(=vZ_ritivzC!ZMlv0COy>K7ktpR z8@q4pK66_aVxgdDur^!!0 zpK5JdnTZ~0NZ*ej*~gv7g9-DkX;$2MF`O(umS;Y#3_k5-&FV1ke)jW&yoS8qN5df!?j z24p18nwP!7XpkXs{rGRan6wQKG3?2jcWteGXEI`<(9YP z=s!+}?AU3C7QA0S7Z7_1@M`+J?{U2VvjSPsN`0W2gmbEMTzO|d^q}@TzzUXH?o48y z{gtnwQ^@n)BX{B#Nfm426C(aq)EvsBp%+Ww!ZNRs;_km&MC_SlyP(%0aIIl5n2*c# zp1HQHJGp`=jF)zCQ03ocT!$K-_GKIOYBwK#0zNNc8n0J4(T1tLHK^ zgTsYdkf~SeE|bK&Ydv)7UR|5Kt~}CQ>iq)Uu4SRn8MzWCU$c;S=aQ)YYy^4!yI|Lv z=NjqOJ*~V0ROqPsQ2lncFE zOh&$_i~cXbRH!jT=U)d>I1{v(H1($)5-@I9hL8g_rL&Agc6Msjh+lqW24jxetWmzo zpzySdQ43KKSZk-0d7UpIW&Vf{f;dGO;*dMy-_yw_AeJu^D4O1rq6c{x`uq~1!g78B zG5TULh&0=#A<_h*%>GY%(Mh$ z%#=LNWy%;H5ONxwW%3|vGN)y>Vj%wrRk&UB6>JY~n=AQeinlXFG``EjKiNebCggnMtA2V>Xw_ch!9O%E8&~9z0 zK7{+E7%6jyA_bSFsvo45h_`-qVCYL})3fE8>O(-v<2)LFGI_MVk~O|_TQMa%AWIH3 znVcB8tknHvwliE>9M1$WYaS0wc`{Hv_%hhv+^37_b&xo^2`{Kfxg-YpXn8m>A@=eC zlpl4kc93r{m1tXhT%+@8%verjl;ae@QS20?s?GXGP3D&wROYz^0)+|rpKF2G53P6) zXo4v%BOmw9m9eKhyrquwzQF~8of{c=XgF~qG`!w$*U~wER^4SiuL`9LYhWA}P(+$GjCQEPW_tZGhPY*hG zenVZtKdj38BTG2u#VUWcK}S6`yzbf0K;?>~abl+8Ej*Rjwf?otCjRlHnYJeGMX0z> z4bn24x?ZiozajH?r6tCgw%g$V@7RZ+sj@C;;~`*bWr!qHeQ33J`)e$U%ZzeL6+)Zg z7FVh+cl^b;2A0i#9@c{)#V&?zIP1I^B*(VbFB_bV2LYx8nB0xN!l3JQZ!cLpWb|B` zxF{spJ^0j{evZG`^Nuk2u*enABvMD{TeiX5>qUc3b`+frK(6u*UIn3OAqyy6*u(n) z%-~S>+Mjy^1X-!OHPjF!(`|5XOIX=pB_>C&{uASGrTWZVxFtW_+l}>nZ6+HWaY_Yi z>Tr#By}=WsoOspX>A>uWFeOg8Ld;E_Pklf(@Lto^fCHc%U|jCL@h0cpn6n-^qao@n zi#f0K{3x_fWyy|;8qDx**B15*L(+Rut;mhm`>z<}SZQ7J79WYR8f#~C;Ibz7?=R3* zv7(b=Zn{!9hEfvmY9um$)O&L#=H41A100{D!7;ay@x8ok{z@~xSj1m9tHLGh8DUfX ztA7?#ltGR=Z#IDSc&e+(`Md$UxXrmM7^=LFhcn6kpl2b>ntQ!gUztLXvr{Jd`fOXQ zlw?iVXsmUqNz>gp(?*v^>rI$(2+i0_eo%Z z_a`XbP3Km|@3Y9nMC)1^Pi18s2br7GSykS7D`h)W?;yIJ$%sDi5 zX!)gC8T?&Mwl|$+23;V|;LP_}XJeNF_|&zs@}=Zv4ws(X>JH9CIhPzji~3F5x|37K>yx&uu5X_hxXO>WzL#H9Ymv6*`D<)PCdBq@X%lr}9nSasGyM2=6 zY@S%!wGAei_M$gRqQpe&ZrB4;4e8j!|J3CELqumPzsmTh7E$%~t>`54H??Am0OC-- zT`P9~Ut2Ld+B-Ag-6mcy)hBj#kEhQ_dEm`1!b0@e(1NXcVI+AxQO=Unt8|#SijA+u zWHbGgo!>u@q0jHPeslh-w#(1$_FYG`fwN3wkuRfD$iKVC1gPsqJc=+E{9)!>WV`%3 z11ikV*q(BGFt%1o`>utUZT?}S^Nw1k0~qoJlMGNWwo@-Dz^L~)Cxr_}Q^o_0Cc9Mo z=7#e@|Jk5D-`w9nk};2;!uI$4PWI}VIiWymQOrHV2nDfBhsedq2I3&J+8h2>z&~n% zSU^rzN?vCEKjBxCW;fxCGT+d2xKD%n4V=L5@g~uZ4l4fzatA>;da`|@XJ-v$4|=+E zo%N3Bv1Xo6o&ppZ(wCD8#~L{O;{BE&9%d5Ak%7%#(n17MLkzkK@mHC{-;LS*hWyGJ zY-`7o*RtlN6$6GLJ?Tr(oM?(&G4~h`mFJ{1awqL7k;NnYZ2wMkcLZ4B4HL$1jbnAQH^PCbusoQjf1sT z1Y+>dk^qqH(4wf)et!eH9)j4RUE#dWwd-k?9odZw7Wi?3*gZ41cFv)jxpwP-ns!SI z8vKK=X|Q+U8v!vZw&QlqJc9&(jHxOwTd;{3oPo6F4zT9#o}W*0r1~p(%GfJfJ{@Sy znyKd#g6H4yY;|;*W1AhT8Zz}OD9uO3kj;!+L1>X_KNy=SX$kX;$utBx%%`buQ%?iA zqrjbZV3uApgB+^^V;~UXCjc*(W$N2ewi{BH!Fn2;u3^iU1g)6*o!S-6d#DL2R7z#g(b#?bO}`hZrF+?N$w2|{9JU#YV?yAN^=@3v*6Zg-$v8_FA1LY3I>_((!cSn ze>wzZqQ7syKAQM=iuP{KIrWy7U1EHUd&CCZeXbB>?H50b)N3a>j%lJN*zRFJ(ihf7 zE9IFfFu3-|Bpf(+n0}0*k2+f#+{qOP=cAN);7W7%`lgjun-);JXbB-e8=Rh%TcX3> zw=Y~`U)ojaHk2L}Wt(H>N0cUT>Zt0*nwPl<6bU?&C}p|Z{Dtu>1(rq&uNOvCPIC>J zxM<9L6`P5*1dYo{>NuZ4sn(&>e;Vo$;vJ2GTXUs!&1}b zS&Hh8FvE&!Z)cXsc4z99wTrFvCqi9FAOU$p)M>*PL@CtT{7bxa_GZv-jKSI)GFSJ- zF2uxHfZQ6=1Eh)}8_aquVS|#bNwCu8D(GzKSrGE2hRiud=2X6W{Ghmd^yDAmA>wpL zlN*YxHu;b{T@B9GlQKtrk7@?3+{y{K;&S`KrFv@|_P*OtTww-vU$VlEkE*VD+(CU= z!*wO45oe<{_uFATnxBKsc-m$rS+kxs=nLkRHA_npfBqtL#>l6T`C)S5Yuz(blw zgK+&X2~aMvQA6D)>v~Lc$Wsgi{KpkWA-xu4JFoUU+VMlQmd>B@2Ss8gZVrB*R;7^N z1bg2XE`d5BBfJYrhmVBBt{onA$Cfa%Q%8l=Bn!UkFzT{*t*J=DKTHa`Y9118J+>Ie zlBmahj(EbA(YjY>Jd8!pN+|?dZ>c-c*lBdk6s0fpjW-(u-Uqc}NPzNR;wu%Gsp5Gu z2M%f-eGi(EAUFRdmOi<>`7Zb9eE`K_zW&jX(*|8WyLEJHn8WG9U{;FIa3w?0lQhmu z9rxX-umkko8zC1DlyzG^9{*xkV0G7?Z&+QqHS;$l1X|uTWR_a=z+<&8ILi*nDYF zPVkR}%x>bE&FmZ@B6kh9>z3Ni=)?JX`L`ET0HmW$l}$EUbBmcuSU;$h7^f^pVUWPLU_C z=HlF27Dv;kHW1KRr1BG1P3xY;R`Soh#YUbzym>~<{VDz%r?Ppx9)rMeS{vSvLX$>B z-4p6@5IWSxuyIh|b*3lvs9NlgUcbh4`GT^Bkr$OUpHGA+b}=K~30;Q%PLkW{_70TB zbCA`fc1fNex+7yaB*lua!k))e@&=jGx@H@9#~+JeUha9A_0Vk`1W|v8-*EH#Nkl-n z@~)n@jl4l4Z;iUA;)7H%F6tgPD!HZ~K10sRJ-RpR|9^nZ}6 z7Vmy`5u8(No9~P{XP2>Y(!^&wc^%h~q?bS#q>LnGcJxeq<++R|@RCO)!Tb;AqV6Sd zkW}?%o~1|(wcXpRH|oWG$oK-<&Lh<=yxYzVCMb_=K~pFoI|P=>+xf(sV!`pIu@E$E z<0|6?P451<-b9@b;+b=+FW@jm|7h}!V`FZ~E8W=6$*q4nNqDh&aO;Q0>oATqR8Qv? z1(JFLnEhnxl%`QkEN3OR$WT&crRVCU^uY-S%i{VjwsE&jL@m|o4}8LAFa=t?ScbOg z#^%M?REaumTH9uF%rq1(Bi&z6aoyjD{@oiz*$w+Iw%v*qI$8FNM@R-*j`+ZH16#Py zth4uDq0RZl)JkXW0+{|0EJyv~JfgzyOwn{eOq*WL@f9nrs&e{>&Vava&Dx+r>e8+W z#R?SuY(Ah|EGTpEb}s2!SJLuXKW^grY^TI|Y&|Cq2itd1kPJ5&&uM|Y9gsbL4fcWD zA!FcutOIFXwyYo&cnix030(ff2aKP9RsuhzY^LdP_k!W=!_%i4-ciA> z5~h1B6q)vVO!r>H4|?%X8ub<@d`g-!^M;ZZYwecRFXm1d7ju7BZ?-E+nXVvG?D52H z_NI@7R3xM-ZK~AE=ef4Yc`xR?%0UkDZ2G{?oWS9Z<+k%AYHR69nQQRkTl7w8ycn0| zp8cc`x##2Gi1@4pzNu(gQyu3oOOCi=8YlX3jN^oC^D8C~blgIgxWmaL*m&X*&FZ*Y zQr+AoA2ls}xB{D2^dq5C5un=3e`mVO2}MSC$1c~L(%TncOWIL5PHc8I4SU}|HH*Kv z)6?X<9RSW$oFfiWn*-#|nGS+riVxE=_LOlpItKJN8U!&W!{aO$E>|Jxs~NIQA2qlG zNwuAo!VgwQ`ToY76+#bycEQ%gZ+vj1htmcP>hBA7@=A`9?H(^$WY@hA&+J`(Ii_#C zb6)Iu3jaGX`(aH*Ph_W9+&P6gbgQXRq(O)g+liK2b7vK(_=-8KUMw&OLXk40ASWWz zBlsX1%shb&TNs9$ax&35Y#Z=<2UE; zoQ(vgHi>pG;Gxo&@1LEyy2xYki*#10@!Eb^=4Jj7I=B+${%~lI2b=ll#h#4;j& z)8O{U4b(je)64m66=FEw9NUEB+UD(t4Xb*Bcg)22I>c7&MUyXXDD_POK6Ew>39l%>$!J=UG@~8S!s*{%KiNoTvb^ z#)3AHrY*7@r{(Od6El0ig)uemY_%7?$?Q&Q3frwqG@*r#%D!$uC6C`0El1` zPZ?)-*I%$=;29DBSjL!nsXVNorwd(-lygdDPbztnX@kF*EFJsNSTjKo<5EFYBu06bEM5LLhWTjJQY3CHe2qt?? zSLa=;FEDeyfZ7Ifm4KQDM}y8niYuu$QUBc=wQk6V*Aw?~XG+*{OJ-|b(B`~k+u#(S zUHqFezV!?e^Dj2yHINJ;Bg*7wMw+NjeQv*=bj%&FfFbO&acE544S;O(gSM+q+K#C* zrT}om1o=PCN67$MdF{) zM!Nf`?pV%#S$>)Yaw04`-?wAvM`-~RaG2(fn&|QQDs1xao^9RIq4c60S z9kSO%ZOLeDkw20UsCC6ZiBtr1XMj0hR=A%Mp8xMG9fDAHMw8q%%y~vU))y#E0-J<1 z+*Rr|^3J1Y@zdaB;{0H(;LH|#nTO^1rSptVhG-9E(VL*4g0RRHaC0JnHoqxRF!?TG z;*82jv>gCwHjQ(D&Xj2+f=Z)g5jycWoRi&hQ(td0%Ym#mEkIK|@ zK(7A#$=PD1pW_F)q^ySZ>|2ydjCCJXi`}O3c&2dO7WfgEG^;waccV0W; z1`2%F*|2?*Ub+ANFRj-NAanFqI(huTk^2=_)JpGUI^8%YILl0|ogEL?wg?FZcb0L< zu6bGe(Kt4qSJveIpvj$Dp4_~xJqCf`4yRFKpYsBKCMc!b_^bcKJT|sm&Trg#cpP7& z9k=X$J}-|>=Ou16Yy`DRXQVIIPj}<&Hj}&gHrr`z^ZsCc*4HUGF=wfFBQIDYnlhJ_ zmU*rEBFM3#rCx#;njuJfy-42#M=xiYQk(SH#3N@VO82!puefsZkAHqy6+K*|@Jouh zbgW`7#he**=wWpzmYFfY`{lph?CUTcL0O-{iwSbs?Om>PRWBv}B3>vIbfnumL*G=r zzQs%#md9>y-+#Z^rz6g|(w08Jfo$8YZ2yz8v1Aj2#5i@lw&0(nuuXY4YeV*Av<8P8 ze+t6}q%=IZ!HUfAO! zf51PRrI9@C38He1Cw+2z{u=>lvCJdBBIJLIW27ZrUdgC__!(>ZCaf$f*qh_BFybt& zUnoin2~s33#@gf_-mc`Rp&2qkVk}j+8v4XrAf(ZapcopQ0`B6@-$jb(CJx6WZZ$;c zJpbW8pfe+xf1pQpUvWnJphM+!%x_hE*kTU*;n2U+Ve@yR-W(MrL`CmxBwoZvejtf8{*c}(i@!Ui?qgmzmvPabfpB6O z@jRmQS5tNSt3s7~{P4KdxE#kWBZs_yt?}S$`2oW`ez+m$mrc^}kequVXJ)ox3&QNE z>drFYc#{v3S4(fABIX{``7S9K3-7O{TbEOB=vd|5rUbb$b|=NXM3a7$SNyjj^kF>3 z>RwGm18>r@=GrDV-9^3{6rD%g#jMlfChD33h#1#SM=I`0@y^|dtdbxaL{ZOMLY)5+ zq7D8^oMun#*XSa!ch#(l)~%e%z}ecTCb-3miRV~EdwdRc;f8tvd^5?q>IC6e9CL81 zd0bX?3~rt5ylYJg`*)_CMtEhzd;1z(^NdOzyQFb=AdDNQ5p)(SbtQc?T>f5>5{JNg zyqd0wvq}!yn|Gb0sy0@}iMCsEP&r8x-J=e&l{GVc@8nZO?N9J*m1die_>QTbvm;eh zpKZnUN90<8x2C>m>rCjXGn8Vb9s>#|Ftysu=Mjp>EC9|3IHJ0cs8ibRVy*3YGx?vs zob<4hsm?1p9z6(GJs?LCgC=$dt=H&j*C%}=gsanZiJhspMfEyn#SNJfK`6kHm|2cB zz3&(wZmqal7#W+j-XroxJ;g{`0scpt0kP7GW{MH$C;R|k^dLU+Q{pNnCcAjz*R8Z> zw$cQ)mBV5ED6vq(`i@br4>c9vI$S>^Z`K%F<|w3V&O7ujE^Gc1Do1`BI58^uM0gm2 zTIDUz(E3%HoNie|-Q!bZX^|*1F|W zFAke6Msw~8PUo0TP|PXoEq$oTI9cvxde_AIYn&|2T>SCXW-bPC&Q2T7oHWTNn&jb~ z%U5fX;p+b3{!AmA1~R_s4o0Q(EdB&sVke%0;7ZEbYBk&i@JidVA5DdEiI#s{s^*1&m=;h?0-?` zIh}=7)cjBI1KuLHWg^HnpyQQ!V{|QvB8Ftz9fmsemggqK(RYTuUk2@06B!8djb(0} zLMGI&pRi?pNN37A9bAB12F*OsQ zp_vu*jZ+i@SM-*?b|SkK(KeG5+=GYJ0kPvZXOX9-7q;a5+z5oo=_E^Q~T>C8W|namUr4%0U8?2o7Jz)oh)(Wa^el=;!T5dk;-0&rrk zfea7DLdVCrQ%&4~Lt>ekdIMM+!0L%!pIWC{u`u=PPgmii^(|YEkmd}be`Y={jXv7K zgXB^4a1v)-p9puVJ!r z+)A*gTm(#I=bYz%Fshe$_s;KCP0zpeg^(5s6JjSj>j6;IylcA8Ep-FZ4#Y9AKi2r0(*c=4>EymPMd^84*! z$Tl*t7A=bpBLve2w)G$eLFV*W^wgt=3!pPkZ3xWmCCxjx+$2+b3Bsk~9`p^lAvqMb z>0iL}cK(3&g;>qbt@dQg-H67GC1qmuW{w${sGVC$InI`=!9$UjSCDs_{_lR62 z(~fjrO1^0=tM3r9>%Zg(;;BW`F-24Tf8~$C!gr!{M0jym7*C z@%IU01?k!QZ~A{|dl&eqs;lpRLNXZSa-xDwTaZ{|O~gymVkH8afke;fM5&5WFO@1# zeAGuOGk{e};v|scaUNsUR@>TQA8l#1meyN9g>X%Y1>^Y(?GlYId9Q;NRjiZY-igqOh@nC+Do3=YrYW(IXAmXCmtOVk2kk) zS<%Y^lLOaMSS#k+L3{!YPqO5D=GzPZV!kc=H}kD+!sq7OpkTh4xvzDl!yxORyHm5R zmwruee~I`)i6r05Gh^dlYvC_ZGt^0)%ik^|!A2i<2{T!O3n8m3d@ZxR#A~oQ-5jow;TRT3AQ_NW^Ln}QdKjTM#e*))pRozDGZ34Y-SVSYK3>(J!hW0WA+?1 zmzo;dYwrktTg)%4HhM&-Bfd=5lVCe_Eq>j#cK}AG@}OPE+O^$Vck_avS2tG}LzqS; zPU3*L1cQX~!Q7&!kv=@)@N)on*#kC8yGZdCNjMlUE&kI%R^zig!EYo#DW1jH4r^8f*|>IaF8w&;uaCI+Hgi*24mJWbJKq;c z;S~t^hKNfDe=cGRylds=OWPeHK+ z0slyA;YCy-|G1EvH@x>Hr*6{P(^Q(x3iHiBIcGmnO)5*K!e4fxnxXi?D)b8uoIUp& z`$^qeG$|XUo^QLj(&qxVy`W#k(u+cAnO_)w>M^YrP<@%nG;xZ_rF#Nheh#J`*H8o7 znNld`PM#99h6#{TwB#bqeY2JuM^ij=OAC9kVV3arusQtSb zNlVerpHQgf=+xeko)^F)EDGj%VeshQSS@rW_u#m+ML3gZQQ2SMs@XZeFxq}V5q*&! z0D8>Dv8q35rdo^6ho4U;sc=Ti1j22UygD`KA0(QeDC(6r>YQjTDpU4z`?QbWkKS#Y zFq%QzDoy)AV^QZT)}n2cO&?;~V|4>RM_ipBQ8G7;sh_$0xQu>O`L}``+4qt66y@#d z0IZa@EyUf{qMMYpwFi%ae*hFSUG`Rb(wXk9%+{d7BPS<9~GW z(HsnR&?@wm6n42$SFz(j_Lsf)%G8jN_1o^j^bWzzvvP)Q=i5lLy(?iuddJm_m4Bu# z*_W-SH#S;7jo+fa6-(8jKQKT23*+O2TmOExDs3fed+@;-KAL|XqQ(9`#oc+jGqhwb z9ujhdt?4LoL)5H=KVqdo#zeayYNA_MTxIW}4PBcrf~N0v5VZX$nW&hZ8qVe9#Za-c znT>{u$?b>r$Qf{8h+DS=H0+P8sOZ>VmHI^N5)I}T5V3j)piji+_)ieAD|yi88y#_%hRxeLUs7Bv%5GIwm2Q0-5po-F^?WpH~osfWLNGc?I^uh&o@M(zi{Pp{_>~22E$r3m!Vff z9lLXML+f|aYg0qL)~!EqtXl~mGSBpx&-<<0e+d5GEq^7$u4-0joZCPx70zf}D=Es2 zS&CQcA-De07xSv7Tlrsw_I%{8uUnyjv~ma9c{{kxG(bA1iN2O-ulNlMXa6+Wp27l^T1}Um@xHZ% znOo1bvoJ;l@O*7Ec`U_-6;jtIU4S&c6!LG#fvhLf)nUPmaA+tHNsPFoxk~ zSB8!9_vqS=^aZqH93f^l=!5~!xLlI()(&VGC+Ce>;n$fnMcgV@ZX_KdwrdE(+5NE~ zeJKFm+iL9TefYH!`~{FcU82RFTu*#)E>8KqbN&2_bG1SRLHUtbgMo5$QW68O?1Ls8rL;((wre8+1qdMLqhk@uy#L|dLxsgG{NB8eSVX?`FL^dI#~t>Y z6DgP6USZ-4aAO_Kuj9P_5}uRf_5`m)eZ{kpgJL1eMY~qu|w_Yrs)z>(gdt)Gl zN|u4E6*E}{R?`p2%}Mjy)3r3tC=9mzqE_wy{=UDFrE)#|s(;acP07CQWsCWk-X%&@ z%~NKj-}Q$8()UODLkLk$_f`*qf6psRkr;erJ9zcXy7=tz@5vC4;cC8n*zt4llkFZm zv+`(uDiBQ)(&<9Iz}B=g$Ozh=t8?V_@7NlWdt!J=sRyl*E9JT)F1se-a&fC zvu`vtZlrgQ8whhxEsRej&}Jae{dAO(#31fP6yu$>W-p-{Pc1?i-5*-r%Bn)R{gdJv ztELm5s@}?jc4f~S(f0nL+MT5)j4!&WitUl@GCLr7^zT@CS z{DKktvhYA@N=ue&Ga?3v*M;lQWokHmEnVm>pAr5$B@6_gD2h!}%pgBlUD>YiC*M9g zv;Z0l#xXKS$un_0EAZOmn93|z+xJ?l7$YcZF@LU*>H6 zX`RI1l^5`b0c- zE;UrQwd21v`sh$L+G=%C=o(0OkLwECnO9;vlM0dF&O_O9!$$~g>op}mTGMCwx2!0B zeQIdgVnDR3o{nFj@Emw(TeTbiGuU~)a|%%Ov!8{K4{g9_T2=ep;{txL>RCj#@d~-V zTeX+m8<9wm8^?Ul?&aqe<=#E}Wjl2`f|I8czjON=`!(VW>R<2pTfW;D$^DT1cvsva zMcDXJI3~r9+G`0bbBxhLcQ53`{91gZ?S5Mmy~bois|_KX;jxVS$B+5<5IM>zK!BuJ~xc|w*G)+0>7CjUfOgWq|MkADVl z1kn0PC70~ze?twTm#vMg(CUaJ*ZR7q?Tz6MN+YIYP2V4GGc_He(q~h3{a%=gC=XP_ zLB?uy$d@_9$OkZNdZY;Vvj>t1hx&UDOk}i`UiLg1v1UX?1a2Cp+Ht$>{A!r$R=X5a zk;xRX8s(5eeh}AS8w*_aWu`N#CH1fhv<{_33x%sb!MJ9$(C{s~8SpDh?8qej@kOY@ zZQCqjJ(f_geh*GI?u0zn?>RcMTpfoeFt5kisZ;ZUlno~30;`Geu$4hxkxw>rDqm#PB{5(Eb{qv5%8?EbSa?Ka+GLq8}TKVDz^ z3!e`L`8Xw;==dKnKt(uLM8@wN3#a82^7|-E;ZXd@n*JO);Yoh!B6O587 zuA`gftD{w$eljweT=Ugv`I?rP^D2+1{Nipjbw+nhb0}K%@TIw9P}H_h}zC= z{-`lO=H%oP^?NYE$kPNQS)N1!{4!th5;?11q_si=Wo9Ik)oS`4xQw_5CHFG57V!zy zbWN?*Os#{E3FpjD*vx%t@2A(S>+e}#VSAhZmazCTdeX44R)%rwA1wK!^$p% z!9_f`*OV4$fXxNA*t`|3dgCUn}_FMGcTEMAG^|2+#&h zApbvsbgw)9z#kIZs=$b_zYN+R>Nwg9+FtwNm%$tUaUXbDW9G6ehtdE4@Ln+E-@^MS zN2f1?H^)y&RF-9@qRz*3L_Bb1m-B)*_fok=bk;a=@*>0*9k?meYT%5Qr-ttE52*my++pA6q3YShLW2Sf0x>V66(db?Hui2cVy()DI6SWwtHKinz^XY5 z`sT4#g^$yRARB-=(6xSc{;u z6rX*9{J9)~==0UY_LyrIosl|s5JKolWp#%?8#{bctm+xUF7NTLK0ky}RH1ABhE_kv zrzn!h=~+^W_0Lxosa3p?z3HPveuWBg=P7 zL%|7O#Jl}0hq0z9AjD1;EZ`i`&%bf)m)u+F3_F?})*>l(wTHjP^S7v&tMEx=?>N~! z+B}xPHM-&Na1{_sC6>lg^Xs|6=KqVE?Z;+MzwGM&o;I6s0US~VVC_TbqlHj(M$_6f z8(0#53R5L{cP`kMfGsU&nGV& zns=98Q#JWzxa5c^%~w{(_*#Jsx9*TUF`e9s{~%75C!D4noY1`&NwSw6H|v_KXIy^e z^!3ct<&V%|+bLWzA=HmUugX5T@dX`QiOHTxp9S9-dHfu(6HJA4m+8u|SG58igBEh8CS>DVi@RdZVr-#>+Egu= ze%&Cmi4%TL5nZakuV@BG7*u+*zb9>CAua+5gUB?}DK@Djxu23nJ~+8VTXMRd}ZYSo{}2reD=6o*eEt z`c!u44CgDxLsU@Nq0I&8%7o_)M*>s5j}id-gl4%e2l+87o%;>vt#KoOV^TyZ7R)40 zks51a5mO1M`lkO$b+m^odC@<2#8EuC2cDUNxH;j2d8vA3c0c!P&WI1c4vBhAa*=8F z70(T2@83=eyW`*WlYD1TFZ<1nFdXjqPCmp^7oZOF&QP%d&SxklLUtj|>r@7T zWG2sg6z?J9;NM5iaLy{6;Z!6ZV;{SROs(2bqUHaHRoyE{XIIERvD4o5u-@Rgj6BAc z@-}L8hvyluFYim90t_qA$pulw%Cl^P;;x&McmBZ_?{$_TPJ!9+f@U=KDR$4&L(=Pe zig!}n03++#Re*@v4L)re20UFYiZV?OLv+8dD>At`KuZ?L7 z#e5UX8(&EIYT>?KBKOF-%b|~ZQB`DGdS8~I%QxY7&bi=Z&^@(31IawJkeuHg8@A(@2X8-!%l+tIk0bFN-Ai<;BmoFGGqdcah$0oX|esBJ{p}ji}Uqko3q0BMACw zu{(3O-;WvXq2qDPOA%j=DNY^=B@r$fkSL5#!{nkEbf6e}sQ3B}@;=@pu0=Xnj7b03 z&qfHV@5Wx$+KXuQxWg&hMnSREVaa6l5kg`l&xsXNS#I#q8*(P>U&?{$932;s@b2&~=#J zDFO9W98MBDjLXycyE#)Wrfbz*>$$Y$O!E}(v#rK9n$4M#6bGgxDQW6>Cx5zAI{kW% zqOW5$Zl^d;pIJ?-ctTn|P(;RRyj^c@Es}@H&)BI%tDTzP7E2kMz-3Esx(K>6{f?MZ zw}j3&lMh7}qnGB~HIJ%+vR-z8)WMFKSWKp+-Vx|SFp<489%OWr^IN&m8YMsj7Y67! z%jCwpzDT=wE&D!wcBjL2(_=RQ&pm(lhBeHOl>I4e-4m$rxIqF*iouSK;n6_3UYL7gw`ZAnA3+=Evfp5V0fG8rA zSk;!fY5s5~BpH6FQt~l_*>gSJ`Jc2eZjmDPV`>V#BEW`;I{hIWhp) zvUzVnA|RQctvr-+UivLM=6tqnuPDbRKkWsjx${w9>W&X>*h;p-!~yHWClu3p&ql{* ze>{%1ghvK0`J^$8Lpr|;!#C$|_O9nJxH!xnJHIVH+fGd+%K57~+$*=?+Sa}0(oI8F1>)I}q}?)%;|OC+qlxXti_ z`}gqdAzj_e?7pab0FRe_?-L^DVGf2zdDhXV=eUoy!5Lt__U+WEjMgHVMr5r|u=tjr zgs3|le}H*iCPYRNx>S$=&Q-e;Z!;?qXANo-4&{2FVU5whcPC2eK0cSg2StPosYw-_ zgburP!(*U;mQG`5S2Ni-zRqflfHzu?+$bxOu2n^ek;x53X47ppNnGs~+3o<_8TtXX zIuwKgRqeQ@gInSvXP&vr=o{~jbkqz}=k{Z*j*}TPh(D*;TYI(H4e%^Q3Q^g(K*Qe% zmz0Xa#*sPSyXN-_Ew0;BYA{W?^9pnEz#X_cQ=wON2;E><|Xub$`G!_w!*6V1W=OL3h$RBAZ5FM z*wHk7W$7`IhPNnO$QU#oO8Ka>J=0(EYsClDr91odM~sDJEESplEz*`K(U-EUsmI~m zx+U^Z?0TrQo^Dp+ABJ!`+k6XJ@1~8=r>gCVcK3GE8!p`B3_h0nlQ2QYIOAo?d-#bZ zL==+iXE4K#v?tf2=dI+OBys#yxf*A4%pKhk39P^5V`*Uho&yuBqV6LC!Y1sMX4N?m zKIsTnc?m21GUZ!LfS;Fml5;;|g|Al!--)JdJU<&FFv)Bd-bA^moP4zxJWbw^4?HU3d^TTyU^_e==0n?cx64Ei-f+V?&bRl&19Z`a~yv{!86% z+5m}9mjRj1>zdQfySZuIbTrJh@jUZ$8Y8$OU(YB@4<%J|(EH@{?959qC9NgRMO(KP zL9#P1GGJZ$H4@EvoF>y9+Dlk&-$cAGd`lTO%YXW!}D=gFpD&O^vooz^i z9}~OjW^$wzL&n-V7`J3k={){gqvJ?!W+%Yu0t z#3Eh;;sj^4RCJ_JjmtmAht;K*A#+wP+t|}Aq#}z_TMcL7pO9KHgYODA zFte-0F-@v4no)~YxXsJJN9HDQ<8*q{WvqJfS!#}(%u{Aa&s0tCMd*VWD=?#pTCq~q zz|p|kubm>rfUHY~^iQccnKCA->0NZC=RC1d=ZTlGeA4AWr!EIP?uPnk=PaSOG50vz z*@^yu*8B~!NQ}8Na6y8m*P%=tg{0^2Vg8wYcC2ZT^2lH2dH;4sbm_kit^pID7Q6am6*l7Zg?{!Iq{q8$7UJ@6B*Ko^~tkm`6+0TcVF(c+5IQQHMoGooo%{_vNhA@UKRt$i&FMEN4hJoWqDjU4jUTY(syo#_N?LhS2QdGf}uKLjA6J?_LY3xVFJdh>Qix*0zb~EWJ?P+nlu8Ku?7Zr6@_GWF!XqKxa)hplSm3{{iCeqhv{+RS=@mZ!- zF80hhFgAp;FIfwJVMQ56n4V}GtQxApfsV}C(s>iK3hy=!U=U#E=z7)(_M zZ1qV5i#oG|L0?g}1f%5iX_PG*H5D2)`-1&I-IP9E6$gMBZxVg5{7Kjctl|p*+r~GJ zhLleuQK7#=4gH-7kxk!7e|zZ5WP3S#VK+6c?**Yd;--8&yuM~NO)y*8f(rZcXT%*~?ptp+tTNIR zr*5%a4mwX~*E_Ne+nL_n9zKJ@;#H6#I<-$p)^wP{k(&V`?76v6Enj;|w{1;zj5FyLee9gk|A{SF5Uf%33%?tled+U^!bO_4v4l2O6|GvAGAk(Iaj# zXj=iaA%oi$aRJ=!Pn89Q zyZB)!6V{JAB$ODozTgo0P~?9~UDJ*C`ZJ$~L{eBhRN`+@cUhZytNR3r&}-ZSYQ@%^ z$a5eM(=jIgQla~^Z1ttt>c6h){d6?;@>8dCU@_HE3uL$kM-Hn4Y%KcFEJ*I(kpr4L zp0~XRM|1A0drEfhL%|jD-B!FnVt$Q>KlQY|woRBJ_``Z6$&tsEX8ZDG?PC$+yK1B_ zL=ODsE#ZjOK$)&^EsKwPz+d;Lb8b?eTNpzLs&EPACQJ05KhQYmT=hQeR@c`#$9a`W?>8Tzy5lhpt80Kk*^X&T8E0ONeQ)6tgDruo@6lQjG~#H*!5A zH}s>9mn1ujB1YX}Twe0xHsU{QueDBlD}v{AL_#LEP)*fUPg#p9=vr;#Ycx)+MuLt3 z6%!#j{(B+QkECI-rZ*!TTg=&Iar$lc`u6Y`eFcVe6R*KMh;%iWBaGGbFlgGfXgRm5Xa~-BLUvCjS!|ZkwbQefN?MaE9^pA=5GLM>gLzAs$0mlcDQ;GT) zOo#M#2F7+>Ep#eFCs}Jnu6511YB_?LP<(ifA7y2+B$MNw4JAI710)2l9MukTOtW^% z)lm8Yov;If}ni&4MyF7J+qc(0?P{ppUDz<$LqLXQUZudYbJ1 z1qW79vnZTJkJVVB8vO~wPz7_QN#QU|Tur8IJ?H((XN+i2-M5|EC0+yXc!y}yDd}fQ z#56tTo?R5d*@6yWkCU^`?T4t|7n*n7V7#d(O45JeOEBN@yW>2Iqr;A_2J_k!p8rIh?MXH&#cdn7j z;^bC2Oy&L*<*R3GcQ|oBjN_!_V}bnf4xrQ?a~>Bf$jD2WJa`kJR*BfL-zXLZNY0ci z75~}+awcCtgq(99>!h%^Z@Q%GkB!lYB(V?(d++!uBJ|$tJa>hU$}@ZP!D`ICuF&fs zl?%N##cozi%z;|h=n&B28}4aEwtGn-D1FykteP;v;0kgpcXQ-_OtaQ&_FE9Wuv5t? z`l)KC8wt4xIkmq?TxBI7k|D#Vla6amWzpsj%@LBxC+y|vVhmmaF zoYRcI-kkthSM`B^IbG-Mij6YMqYg=qujl55kE0--0ewG*QF$@Yxugyy+#AH1vdUOs zOpd(t18j}7RQFkVD1De_QG0ki&-#}h!h3RlTPRUdKffiEAarAR=cno+6%SLn5w^GAOx38CV#`7*Z9v)R)D?32JJz= zhSQ!*FrBTo422uESJN-sxr}y)Vm-mA5h3*+1!po$$9QK;S2<`KN%m?z07rrETQm0f!JQI38{*t@a;& zRa);q+*8`-Kipp`hK)QAl~(%?kC)c#VUOzZA8sn$=s(<6+UY+K>BN7yr!=HS_bj-- zR0Ge$L!~AD!{enDJjkxXU%w2)btSRX#3Jv>Z@gp~ydD+>@-<|AzFrPr4Gkgi>I?Mpj+ov!#mAAazVvDSTdb%2sR3#fnXr9Yy8 zdbEE5A77?GfVw>kfMxBams3DJ-@ky5S5qKB@ty_1z4p={P(T>kzkrW_Qy>_MJqzgL z+DpGj0bz3g0{%E<4yF(OBmMI6vG&sMQbtJMzl=Ymrc5xp8Xi&HwU4@Zwu`#GGei<w0cORWZKj|%wuD+-mOsRxP*aY1hb{No zE!URcR_d31=|g`WCHjMS+$>8<1D@&{SpH-jhpAKt{9kY^Vt3Zgua7(;|mb_MOcBJPb2G*1~Fm8Ki$|2?zY{P)l4wkT`GkJ zd;q4mUEX6iZR~Cjz@7!;(xh?hSg+#yZ!jOfxU*+tdC}}E%AS7wot>Yvul96*wu2o@ z_h)FDZntgsXDuvPNn_lrp+-j;4<=P>VL5ewY@*P}-lCd1ZKH>nYk#QUmNq5tYJdoK z8V+@9UOaG`Bs*PXnFQl@Cia z8WS@WN9ghLUI1fP`Fuh`T*M9nC!FTg@F<<-Ue_;Hsf04h1uk;T>J+2fq7Ovd* z7a8@TAB)QfZ#6E5oYj>akBJ8h(u%ycQJ>NwJ-vt*F%4u9SSpi&V{W_xji@4+yIt#d zyw|-_`g`ZItWGhW7-H_=3qC4G6DNEIKM4M~8G|5%AAX}e)F9Q9dg&g)z&5@B@|=lk zpyS*27brnN8Xw2q-k2w{x8;U^EJT>Sa@Joj3VGdtiR$oI z+o+{**GAp&vD=nj}Y`Y`T zQ`Fh}D5BhAi$4^z<51#T)*}Py)|e;bCp2zI)F2^aI3xn8rY|oW#}lHP(rG9TEB2YSw;U*D*rRo51(s#gm6Bbr1 zgCgj><<%U($#!)sOQRbJXu0iTj;Rc204(O$m}8n>%rTXYIVL}AEAz7+P|cI=-mrv^_NegQ zOgYw<`}k|?2C&Cfg|qrdSssv7Wc&zQe}0ymfg)YAjSW9e{@Fw9yf!;OyoBc&$xvP& z`X_w&DDd|$m?t5nVY{bhn^2*|-|`C)=kM56siVp9Q>i8t|9<7B6`{oh6=f?3dG}Uu zPHVfi(sV+|>QHHrrEOoxlCoHg_fDlZtX1V^-=mfi)$(-`ygw6&05`qFQ^;* zhablr<$PSo{T70q1F81DwgDbQ&ZLk0S z?N#?`uj1dd_ZOBg7wWnGm8req>0cMRE_*^J*w%x7A+>Exejf^HCs?|UFzyD zt@uwAVLRzn@h?dcKb%}gVy(Xx!avNqQbX{utm(&~|XFLg~n8Hn6i6NO| z6*);RhY-3Q-euxGOig68eUa|Trjn0!snWH|{)QT_E8nj6F?Zfwm-iN(_Tx^gzjfuG z8b7LU@#THW!-5V6TwUc|4?jep*SSS7g&G(lZR# zt0dB^v+338tp+wFk#1+x?ev8~I+_PkB@61Glzz_W#3+gMnQ#{KvbvIZgUXLw67U(5 zQxkCZgl>T1f{R8$s}75to4uNsu0RJ^cLJZrPiQyc9=-;%IX$Ifx{Keu!%jttgOG9Z zVZ&e&>a|Z?Pf@p~P0hwfI!3Mo33fiA8y`+aH`v^=;!fPe5mBfX3>PkpxdkWJV64G> zB&z6zB&|9#HT;!!RnJCQ%}H-c5eGdJu{YVN24Yn&MViffVi}qizFTgtBdhH1n+1UMyT+7h*q=NbT%YTgDL0z;jngGoo2}^X8SY_f zaRr{52a4ar9R@1dW585DLQ;BX$M<%ho*K86XSu$d$ZMqj=0h1(5cwOk0lG~>xm&1f z+pp5RIe%B9ThSK3#4Y0BMnE!?CH)DjGB(!Ceyee?54WnI7u|fqwZo#niq2~^-y=cp zDpCdOq{?#Sj&8`9AK=cIN2NDviTl&By|$h#IIZ9Y>$Wx`D}L1vC>M$sxp$eF*S@L) z7^gX$Ax*3S+kM2}yisO(cov`HN7$|pSg#PeVw~iLZ#^AQCf5vG>Uz|Dgv1$R4HBa= zH@uOh=zk9UCi^N3oHvqY0;APhu->_|jqce_gJ!+e^fhz8X~Gw@*EXvyohG>wy;`CG&(vGF2{T|^N*gMHkl|1cOsnxX)?ntEAprQjXg04>TrklPZTAjSY3dy4 zk@3Ut9-p6j!+*6%T4t~oSfmQGk>BwFdl6{%-wJ~z5Z@AU7j+0UKiX2(=FB_n zqyUeELov~s?FKd?I0X3Nk}dg8KYvjz9}s-~uVH(u9N(}b#mTdYNA@pO7>^esT_(4xWr1b4XO-A9!{Wwp-k3C{4l)BZMN z#)dDNeZ*=UVn)opOS8M)HDoX5JZMNq(%AYEBM!nL;@~Y>t&7xp7WS{P~<;fppR zZ`B|CO(=o}z4oC3?TTjGd05kK8Cx8%1x_s3CeU;Fh^r4j&V)O8X*>It=I;50adyZ$ zl)-{sGsdpTcf?)6TCj5m}1eiayUQo=pGL<&M6>TKAX@4~X1L^yjt zv4q4DKT(=#QQj$Gf=1WTo}PPZf&Tb4WcN_iYV0c0H>23*oL)>2aRG+&8~{rnv|A?E z>uqBF8Ma^-J0dPrd(3ZhrnhpR3m>*^hj-CcGTuy}i?@!frhu^<_U(1Qpui{!$W9nO zpcU2@oa56H3vf2Fhz7vtmoNjbpOze}O)7mJ6TlcBdJAw(Y4&2X$DrvVQ=JnoA4IG! z#?RR8!G?VA&OK1Sm17`WA}mr?{Iv!OO%ki|CNpGBX0=q15t^iD4)+6IFAs&6F(1u* zvL+7R^H0e~(3x0eTN66$WV!%xP)ZY+S#jWD2tKpUc>>$0*X~_^ zM-JxnX@IiKR;?&hNU-|G?I8i@g*4su{JH6E zH6A0jCYa*sk-S9R^9!?))5jfH7J@{tEZ$;}{?<~EE**@n@b~^<=)%349;x}QJq&81 z%`m9mAMT}IcRtK1^F_)Ony!TT{20ph_iC_}=E@!!jL& zk|ntTdcDip@!~vbJ86=ofS! z;@s`CbZ#BOCJrhr@ybn_e?pGG+f+9{JccReUH+Jo+Osp3INrgcvK}!Ru!a28T6hFm zv6dXg4{l&ycm*-zShHCWvWCR~!QoU>Gxn-xD~X>f@)#A#Gu?36fSJRJHgbpJ zg|Pl=xn5#)v;#96oo9Wl!OQ(!XTB`Uaz;hK(wY7R%RON3Msw0A!V7bjxzk4HjPbl5 z?(I&0szZTPa#}RQ1Gf*a|F1AdD7Kk?qR|`MU=kk`!{t1qv#wL{nQ)W-NUPrG$xMO3 zfc_eVqr1%%GQ8?C+f=3-5nmB)Ue7nf2tKN+#ns6o8HyXQauI>~nn<)*KU0;R8f|zP zjuP|Ch~l=0cj-%>FBp@yZ`s-Dr`U)7%GYnx~Ni99DFkjP3;TUz$_4=s#w zA7O4NY-eY1Lm?Ucs<()O$7NyupUW61Jfzg&kKVnQDTc|xry3#m=ezZj8Z?JMf-{W< zJ%?-e+$W(`XU(E7XWJYB?ff6H({jDsb*ip>Wzx;L#J}?8oR={*MY;AJ`rU>t-3!1} zs({O5%z5({`S-q)3UxqOO~xMcS*z(I-hF9>`yDE**X-vMOhnT`rTg6o+j%==5W@0I zLG`0f+q9e#Y694i0BYR~Q9$>$czzV)!~7|nW2y^?gOJ>f_veRc%MI^%v0QF%3UHx; z@e?snG(^tpx_$|R>EP<9LRUxJzD~n8tBYy{q8__PpF&pG-=SQeaK={CT#}4Tn~TqJ zeM1^2+ZEDy>62DCEzi@v;|NF0cAVbFJhdJqgczavsUN&Tglmb7&q|#e>{xqf3p8DPSO>4F=s37pTRIPLjT|c(f^8jRr(ioZ!hK@ zM;$EfvvGg=PQGrQWBD`9%AG=%tbYTi0R2P1o=ErPkV~u(gt|IhbNfDbvvIQ^??V3A zWR1yDhrGNny6WA0!p~ZbBJEw_zdQ$+iPNPt8qGhg5bb53PwdqI+UMOxMrDBmX>HY~ zb2q0~X|0T`X8U?VU4U;{PD)yWViQ^<8!=~io+xR>%ICHiO1citF>_nvCKF0JJf4{wGSae z<&c6n28nNGLiRqeHg$ept+O#Uwzk7+`~$#pLhL~3(I9)Yy80SKW3h5yAdyFns;&mX zMXmEv4W^u_aes?QSYo>e#N4T6=u9OZh$J5`^{rF>*R6dhQq?~Dm#ou>v+m5)=uFf- zRI(lIRh%FOW)7-D&B~U=P0Z~tgPQmGERhnQttJn60G>LoS=k%VCZQXh`6c^_29yWE zg{|14@_|uTuTv!56SY@YkYKEd5v|bMiHRs)!`e`x{-z=s#t5F3?OXiYhP#*e84C+L z@0nQMdTdjU^4e6$t!+ECxwK43PyrQG1ryz&4SZXy=oZ+@FM61{ui{8w8gO&y)VigP z0Z5{qxm2XWwa(ttoYFs}A0Ts$OGp%GkQA^YbQ%HCnPaEDSeQu5GfjXo#KL^`QH9)B z&otI(Zn(i==B@qala#OB5sROJnMMp{H9x>SB9iB8ib{%ElqP3%)td!G!oK9Sz z{WA5>J8?`edU923d+l1~W-b2MX%i!dQwnoLU-Vt&^Ceg~%<0zV zl<@)pf3q4}ncB5N+hYKS&EHb&I83{B?(w}yPvZ@IPIm4J$UhV#u;H^B@8e5Xc-qs3 z=Ii!Q^rqU-8@DcG=dlVEMzKj(jY{PvDxVyOF+_&mx^*4SYVIt$hd%4pE+G{kr5dxQ zB~+}s2wUv$AKe=x$v*`hUT;kHYN`@ztwrK$q7BDkCyH=u zD8XsG`lGjYukfpAUxv>--@@*rdt%P!w1kD4AMS)f@W-5pB^Po>_lu@Rf5+QKL9UGa z^SIUI^TS{4q0p@>64$tZ>fGCfDMTU9sYZJ7DDZ+{^{8dNdFD>9y>{`zxTNuBFWl3; zQmJ^t@@DW-mzq{!As6tz#|!q(1taBSEf7()&Yk{)D@x`}zXq4uepl7YA+kM*w4+x# z`|_**dxo9{l}yE+xO7O!yP=%ks{x%W61;E**5iMf$IUp>ESFXcr_Esg4C~mf`SUH= zhxoTZ-qSzRRgh3)&a25M)I)fZ_cUiAP-FaFF&*{VrjD7BQhIiz>art+Iu68b|B*Tl zu)G(`1YQ=V^bctzir6UX+7(%W&?p03QPlaMPL6rrTe)M4;e7t~Yk<3o4Lp`&I|1vD z8<_fHec1ro&Y~XGpFCcp$qp%=>Dnm|E9t#q2`R=si_u_CdXw4A&UY9N#p^|olW${D z{_zS^e@{0$B|3pXdI!^oX!6r=y#E>Q==U-lSvN}s4i8Kq3njcpo^kiui=TkO)_wUM zBL(cR;?x@cJYtrz7ZYawR`kS+zADCzOI?gD06L6!9Aol5WM~^mWh6y{25786jNnQ z1Vt_4Jkk@@PRt-~>!g5qJkte=y4Af)-OxFFm!TB~608dCyiYO%K?UVS4%S57`JBim z7Sypdm7y)=9s)V5s6QnnHg#Ba*4Yp!wY8k2mCJBfbknPGfUx9CMRY$=%s5Liw3a4$Y1i zv1%e??~>eUb`6ZH5yC(`x8WOc9d!fX=+)kdx0`-H$F8CbbzU&B|GjnMCu4mS(~RcMYiwnUpk_AprGIsb@xtoe=do*`s8+ zO>?yX7sc#je&MRcA3xkLGEol5fT()mp%x}cRp3W5Z=?0-r2aE>%(fnVvIgH46NrR? z&;o%=6x}@uO%TfLR59nG1DOF+`s3oX-n`woX z-$++uX&}7Z3xAZp3>xL{e5dr@`M&-@cIVUH&|-Ez{KTX<{hzbFE zAu2|`k$5W8(dTs5Li|YQ6O6Bs1ago*F=ot{&o7g;G|pMGMi|;5fiooPG3qL&hm%i> z=(*1b`0*%y?tHNaazrEf$T~f--EiJo*mHN-meu9Vg(gFwvzkC6!O!7d$rXxz|i!UwA=fX-TO+HLOBGJ*gs~O z8%3tuqX0B(jm`^!VojC#olU$v|7y!U2;VA(SM@I_{0N9SdjUhvHLs07=%!x@#<3&% z(>I(z8$ez${yDk)wB3f6wNxQBAJ{35x(%zEwa=g-U5Ip1-2?MjY#SLP`n*>NvlN@$ z#KFXNo0w{-6ofB~&(9i?1@?`Z0#Qqwe0_)W6m z7@nioz@F_lpB9TUtw(-(q+bOd7kmjU{m4!SLYOln(kJHHLGOy4@Zx${;g)1an1iUD zs%404m-H5#feZP_UK-p!)i2xFiCR=}T=Pb`D9W$tE1f(1-%97WpINFCx6J{pKD`X` zfpZb9m-O>IOQap}5Aj1|WA8IFX)q6(N!AUD)4go>R;UFIHn~Q;0}$96dpC9q%Mn-tKk8oaB#q0C?E#gCLv0UYr&GA!C* zfZ)>uLsGanx)mCz^OCWD*(hMZy%<*J0`sVic!7;D()aVmVcyQesa(YA!0jp5#D3bO zesWD!%ZF%c&;auh$?kPQf&Ad(rdZyye!=)&865zNf^5Fx@2XH>MmIwB37G_xaCNgyPzn4iYB1U3L2Gg{aku)}aR(*w;bvq5;j zheMHo(AazIjiS)qusuXSmz7WpHWig^`#!So!-2qzmK*7HysUZ9pd0PHu2tRf5$3U< z9uGE;P^z{9o=8dHL3_f!zW%QD^~S<6g9gP9rw08VdZXP>zXNZy^Z8Bu)9!8y{=?lr zP*iRz+`!H5YNNE?`b|J0F68*U9gI)%*spYT_b9VNYqi=LE&O4c)8e$OKg>SSYEe;7 zcIQb35{e_Pxd?qzZWbo#j$w-K7^cd*?@UGgodsIvLE%HmxBDdqwu&leo;LK6lgX?R z7}6*L*t$51v#;gWX?(EuflKvO*k%SyhamGLzFSEpk@|hz@i-s$!Cys^Z_kP(KPy4I z67pr;d?$(^uuAxs;S!b)MONdfJo)>Pci%6&*x)8Z4^bS(*CK;h0#u>+k;)35+G`u% zH0N(b#wFKUa?>TFw}9`75aX7k+w{En!Tx+F)(9fwwRw$g^F9KgV@fN#^jf*WZ;uHz z)O@!cOw1S9&vhnO9bgYw-?(Yso18sI(^Fkz6nRGsr@M$NVq>Ra_C+U)t>jZ;E38L$ zYCI}5GGhp6nta=GcBs$tMG7AsssFS)Ug9I*f9U6eaq4`N{F7F;wPeon;lQOwWn1#o zLDr(ZA~48l%k0z%{rBbL#cJsP*m)mzZ}Iz+{Hz*xEle9~oD_e8zZF)~ddf&&;p+&X z>OY-CWr+vrX9Z>m;s=q4 z-l1!^*tp@?(sTaN%qlb8*oU9IF5rwLw{Z+dFRUBn{1c|lP7OPc;6Z;!&Qv&v z3bOP#3oP?B2hVzrHU=Ks{kq_>8rQQle0((0f_1arH7X;C^XvC8PD5G;Ieg%WldNWh zjGx=o;P8HZFyq50M8CGPJDs4Pb=FFQoPO!oc|#suxuJ#WGCG)VA11dj-?lK{q61#4 zZtR-3HM!>$YtdiHn|zx={sRwYqau^EJ$Ahk9q>&0R#kkNskb1#Q1$vFP+*i!2x%5H zd4)cy$=p2u@^;fFlR0Xw94^TErQ3KTOwk7QA9ziLtn0lwcrtcsOwEsE)I@F7gD8Befc z8t9j~D;i)ub893(dBy=A|8rXRT0(dB{FQAN=hD6K_EIf$XloiZ7n6Ag@#q5hz9^r; z*Eh%;Np^xTU5D(CuxHZ!NbSKt*OIH~0B{)++ArNoPvAp(!Brbtv4E8EX)g z)B1w6#mkHqRv$fm#HTb+fGZ_jFf?w9)YiJaPYz{uO(8W)H=!))>2x`m=cfEGbLGbg z8K(Si{qm2gd|56(H7--iI$AgL-IN!HL#atKTCB!DYTB6^rc#6G(>xWp5D=Jul)qN5 z>x1%I|9XEUc<&*i{ya@z0bwCisWRPd>ZqqN)l*4QOFHG(%jiJ8-`btq3bos%4+|i8 zdl;o(p$REIv7uLJlgEki*xkDAn1;vxynR;VvAhu@oeKtlK7`r>Nt<2^cnzdP*HT&Q z0l<)cc2}RfXC3V%A3Fyok+WO4?KzH`i0k8DeQeh1M#Qx>a8JohVfRKEG)RvBfewxr zZh&J^pY(5XtN!{mNC0#jZ+3fI#VOYT_=rOvEDxc6=)<=yyE3MxTp z5UMdPyd*-g$vfejUHMuEX7vCIUbT^;^@m2gNtp~ufd;p*4Ll(dzGPVA=2KYQCfUorP@R|Ap z_}(i0ckoT};Tzfm-_%bEa^rv3oF zdym*3e_sOM$A8YjSCSpy5+Ay1bR-^6VeSG*b_+kNkHJ^vi)E~eX{!ihX z)&pPt&jS3l&^};<`B7RAe9s(e;Jfl)z<0m0FuwQbw=e!o{Q-Q_zwsa9@2LlJ_zV3! zyFT9Z*9SjJ>w)ihAHL`L@MZWL6u?*TdH78I0etHY{}16C-2-1+7QU%Id@pQe{`GJQ*+D)|rbSI`4r=*|GX3Ln0Ew=lk>^}u(Q58t4F0pBqJe5Id< z&(t5l_twb&5WXw#&*3kW-SO@KFz`26@b%g8{(OkRUz`tLhQFJXMf6Xr?mZg-vNxAiiKrY&vc7pDh{4E6p;$S1=LjJS0XQbFWkMk%a^Ka@jD+a2Y7 zd@%56-*rzb(H7ZXOu}_V-aq_w#KFDOiI?T4m-J09@$UE2%lf95dAIrLFh0HOsqn7% z(^2E-oj%5!=BFbF>78zSF+Y7$-}Fh|Xg_^Q-}EWoa6f%&-}I?ofuBCJZ~9Dc`#}Z| zv-+mb@}5^Z5G&plq_B>3r?rd~3#T^xSKT$qfJ6k1#w#{eBgB1A~s_n}iX!`DGLBK-uwznP4BB58o8_wiF2y zEzuFMn)yX` z>NIlg{&em-ZzD;W6?>z5?b4SaW)-k!+<08SUs(KcP>Wqgf~HNF`wOug~WP(!mEI%H~vjcdI2dpepvC=#(Fo6*w>wTg=&I-0V_Yk#qVW!2!9p1DqaH+jV1?P z$xN5s)}_4L4ePrt{k*L>sNN}5#yOz#Mo{h62MRk3&od+>)(Mt1e*NRaKhtP*D@2yY zuj_WkZ}Si{0p8)6Pl>k}`?r<8LFw(`7kSn{Q;m7@-*ogCKV9`P3{Nl&I8OY$mJBW*B!Q24Yr35S0Vl(UQUi5Woj6> zqkHf|m8#|BH28WwjYZIzDD?e#JFnXA*U+)?{yJC_^tHshxC%{;KUeiNY_F#-ulYG9 zM8jG=XPWpnrq{Q9&-Z-$0~vz(?9=Su-!0Tbv;V@En0o{OwveQM+(X4D8F|W;$j@09 z12UtujtC{jeL|VW@<4yt{^H1eoH5bdMU8z3FiNB9m8g3RYH!=TPX`I;cjIBjm3t7H zW9m9AQ<=ptev6TwzVAIxMzvWSBfhHEPDY zVtR(mdrpz}M~c(2c2XFP{ic(MXP&T-#PIqMvh5%nCzI~l-uX9X^KTvaW%WPXJAYd?|ASwgzxQ~Kf9ZEXHg>$n595VNZ8f9v2AcO? zg3@-?h^O^sJ4^QO%E>~X6L~^PB)W~#5HeEdX6a8Yd*(d++EtsYS*_54nZsI`E}!#5 zU98HPnO;|uu}e*S%XY6q6Y<@|GMc)SrXYcNQ9sfmIACq$tUC3i>_eAS&*)YSEp6XYfseMxs_wY}=^ z2TilTeaw*+%1`IMs;Rc@A4~{`z$EjFx?hN*Acjn(SP@I`D>V`*A{ydfCPP; zV!jqh(2q()HLWz`@oja9S8Be_FY><5gSvxAI-t4(l;WOMlxb!DQ!9><&~X}@5V1-uL+vD+%z-av~q}dp;{S~qxW^rPIbD@P57<+3PC90w-Vd> zv>qRsUB9aPoBIQoNNerq4Uo^}V0_K8t}O;uzuuvy-ZvB5pb0<%R{qq36|3&bW-@OSNp1>hozOslre$eL zTS%cm=t2!45D0`cEMaRgArL|!NhzgHDPLR&C4tiXf4_6?z3;tQEIH)+{@;I@#5!-e z%em*Cd+xdCoO>T~egXH7KML$YPtx~J-ap^oKXLdr-v11}Chwm(d<*Y)hwpFXeSi3V zk@u^?=O+Cu?@jqCSPo}?2zBNj*=^g^@NUXRH@|)2Zb0p&KTZkGw-GMX=CkPriH2Ggo?8 zZC#A2t$dWp?lYW!epfKTcc-BMJ@#cNFsD5JcGRG9yK=s|>4ZN*$xsnrj+_golC?NH zKEU5BMXx(ewF4Rle!9 zYgD2o9uiS|#p6Fc{%MJ~LHd6`*{M()-iboWYp6mUkMdUE@H;3`)Tp2S2_~u%kouc9 z%9O@?d}Hdq6K=she+RmL^ykb>?dc0loTm14H?Q!ermj!nLe-OByj1YL4G;JeeAy4^ z;Dd)>4YW|`Tg=NJz7yKhe%x5iD)A+!Jw09k1L5@*k=O6~vU~l*H%Rer{c*w%-^C8S zr@X!WM=}rJbde}cFSq@PN%^tokuM$wiy*T5rV~ES9Q1Pk?k}G@35TG6g}5R}42Mkr8sQIq__SGB;&_q&`3S*pU3v_$T|GMY38!o@9-WF z?fQFo+#IxaKIJaE)z`m|J%RcLZ-T(Nzs!*M1FwAv!d0FspYizX@zTkMp_{fh4IH=! z2Wo$DK0q+Vs(}mcUHG@kYTkYv=)_^+;(0+%K!A zo1M?Xew&4TYxND&LX zJw!wL?LPfVoUp`Aog6rw4CvcWTn??i;oA_jk@Yz@Kwt25@as4<$TaXj%l`(K++8Y< zxso~T5u1K#A-QhgrdJ9_(Mi;PKTh6y3B>+Wt8d`hkhYZz5rRp1^k<7a|JmVNq`Y2@ zA;e6J0?+*|De=`v#1i4*MUjuKzM(~OQ7$X>Rv);Km4uy9ru%TUq`HpeV!;3TQogd2 zjF|!K7)JjdVA0?u9L0shuXO&=a=*FybyMu3igG`OG+Yk4L2~%J&pd@xGBAW^yA2cV z0MD)h8?L^d?S#kfz!J&*h1ECEUnqQwEim}L#_L`s_%9k-KO^{$NE*T4D$XZ73;|1d zbmm>>L*Zw*JWl_(;Z0~FZ4}#o_cNsa_6t5&`T-`p=|4tdT6)mgID_uKlMlZYZb$@R z;qYSGf7oB;4QA9L5}^Dde8b!D;SQj3FXaCh=U>e6y8VLBFZ|o#pZ+)6X_y+~`Q=3B zz7t*;nM5Gv4l&V9$)_N0EC|b_yKOVgZK0dHym$x_%9{x2`8Y0$1en_ zfxP_SOFWEQI1$&Rx8J9aAYm?XbIwQ6G_!2~|L*ai+PBS1eZqnFJcVcfb>9KLLN*Zju9r}*qj%4{>A=ajq!$-Co-#R1g8Sqh za~wYRm+Zg;%*G!Q_+bgB)+~Vu?mNJDQo@h_OG@BVQ$iCi4GwE?S&ah|+;@QQq=bW7 z0-y3Xecu6ou^!vOprh@F$L{Khe^D~{D z6Um9GLLPVXQ)Pd6*WjR^FO>ajQn_qelY4%lJew)`dkd3I!FoSc%J`{rIW;w#N&Dr3 zk9U4Bi>GOSE;CmsE%`xaW-gO2H~S0OTuw?W;l(u>KU>D3w)hHlAuKUCmhz++AT0&8 zYNZqNK?V(&&zCbLgYS_;*UMG$^gROCn0xcu>u663zC(g;-{MrJSjJu@`?@Y1HRThDUde`+Z|$BV(QZe12cPu#jgT%*)$szBpg@i>Xp-E`w(JrTP3&A)V>c;ygdW zpPwwJN@esyd%(0o;LoLsMNrFDYtwDZ=Cc7iuU^8Q!dx+jiqd{iPR(Tec3ToLEzFm< zWplt{>r!$DZtOeMGL%}hERfG+(#StuDEUF5RA!%b`3Buu?VnDSQ#spy@*jveKQn8K zV>w&9hiqA$zO*ShGPrAeU}U({FJ)Rl6F)iLJqD&L&w@eyTqXrVw6x^1bJ;R76OS>J z;a!uNDi=y%{Go|bDnA46naxb?v(&Lvl(JB0qlcbEhoW2ApBWDWVjCu#if3 z=hJEo1!+ z-j<$`1`m8#@}~-ObE$mV&t>zOPT$+Iy|)3yv?tC*!$vx%3WZV{NP-4Ev)Q>!DLW-- z?w!w1$@qyq4N`O7XetY_@TyFvI6w{_DWx$+Tf0fXOj`0HRbpxu3}4w$%Qfh@Mz6Js z4hz|tnHQ37dP$U+%6Z)oUL1sHHrnDG(S!M^sZ0<|&*ySWc0ibM*y(S>=8(bo z7|hHS%S&bilKaBJx7G{!j-xkU$hTCcF3)CzFw08no6narQ-zsqem{mySXmw;-d}45 zPQ2c!LJ3)-VnGr&2{(&WMqkdSa_epNLK7c|jrFzk_H7#&?(6jnc^{))I(-nG?xzCu z`_bqUqPEss>rbWf9ITTWKb-;p0(A^LP6#Toa+zx~IfwpH%T3Q0bJ;2IR;2OO?cN7g z0?xT5{4sTA$$At_6+$w=13!aV%De~)^QEbb(4vO?RSw9MN`+E0hQWL;E%R2Pn92Lo zS#TP=Af!L!jgjvn=qc}+Dp27gqN9ZpiBg&~K}3E4gW>tPNsKn&T*^S|HI*{cnNlV{ zm09mk&6Wytgk9kU)^?@c_nPu6eT zYf#9if|l8!6@y|1qBm&G=Ymu)kuQ`o#at@|R%^O2na#Jde)*FKfcj)%5qa6!LKOU| zOPA4ZObC7BePh1#d?yK#ET=8L94jPqO0}VIJ|>5|fdJ{_=AmM#a7`9n9?vn2GPLAQ zAClg0^^=%~S~;Ul?8;NpVc_U(Qf{^`^@Ot4^UmVWAIO8%!7jU!z}M9t_|xE+*dXq- z177phOi${y*fAR|%i^AgLg3v z%~a7Kh4QrHgGM2N%Ll3vEvgCCZEmUjIr=qLzNxrxj8>4Do`y8eV#LH|Q6dsc7a?|P zn#!DDCKRnGzUtN@R`sIJ1Es=I`mw49=TiGHxG|d*N+~Gv7`vh?EvbYF`MfE+-iL~q z!t@tTH^mecFUStc2xnQ`-3&bS3x0dUF?gm!0V#+Qm#!4BJvzLJ>- zqMI@R99LLCZjs0V1$s2M-|3%Ct?+Cg`or0inRI_CRh&Irb=NxM>)7#3mZ8L|$a)rd zYHnhxSDCb83$Y~S^4?IjCLb+_ZvdqRoqAOAM&#!))0eWKePUBlu&mMVDzDs_vnz~c z`hK`jn!_aUEa=Ic@qQm09kL`e>$EW=zeI3j4rsRXuqw4qcdbrmnBVD2fy*jta^3dF zR+mOYn}bf0=laO1DI$WlVKPBks$(q_O8bmT6XR>k%Kpe0@=vDb#$_W5*xB zd|rl1m#aUIRL#GlX<#r53Nj?gd|^LSt@Ee`9(^!ksx1>87U?EiAYMJwvN@A5bsUY~ zYs`P~)jHP-6b+zV+UFq0@43exmDIo=PoFdVr?Vxjo~0F_FSQq?BWHqV+n#7C(!*#4 zdgU1DP3l6iq(&O50Kf|RYq%VV%=D8>(jlB?O-&*GW)3ssD!yt{#fr5>Cv?hkRex0B z=ahxYU??e-?Hp8h99HqWSwwLD3Sp$2=T}@dJ|$C|A{vs&OGk5Gf|g z|J6JL0fKoqtNMN_7ZiM2ZeW25N(E}AsElSjOzbNt%#AODpP@siUt`oj>Wt4)dJp?^ z^WZcrAvd=*i!$VNv@nfo>tyGT@bzKaHi=JQWx8YX&VhCe-fv@@%0L zu(BHbqw{RYKSpyC+ZHTSk@Y23G+k|qa)__tb5*;RfW+puh;5^GDUIIl?y+H*Ej#^C zU8|kcESUVsr84*wR>w@LB&$XAYPnGGbE(oy25hFvUm8q?6_Kni<7Pe`Y*;^u;dlyb zzFC-Z>eC}OuQ796YNf=GrQ_JLFD%!kv3?r3x;#H!0J_9Qhp+Gh>}ZRNi(Hwf{h3l> zzKGGmi43;0YWY#g2h<3qQn5Z%*Qph8xJT-8{N?yNVi>M5bn;R20gUcg$zv5L=7-IG z2L!b1ciZ32V#3L3pfP%~t zSHL^{zN=yIqKF1>A>Yj9{#liZ0 zg+-2mKZ3pK$q`gG3x~9SQCICYt*|}Ovbd&#{)%o`a$1!tRW0q7t?G}rYCg6!&S0^E zNm;e$$|Y4ODlWQ+10}?}hI|VXS4b8ALa;V!!2e`%nP4L|8Ixknnw5~{Q~mbTws*_0 zth9B<@jgadw@8O$8gJ1)lm1_rrB-cS>rf7$C1vxlVNi*I<%1-dMyHxJEb~)^@0l%0 z2m)pX$f{OaCt6zgvVVLV^>pd;us`e&h*n?8GF)F+meGdQ4JjR7 zsR~xN+-g3o2;r2Hie z71GP_0jEn-9mpG&T*1N3exq-GFfCeIS4X6_2VWOhW7?mbjNv}sQQ^!o@X&#{{ zrGs3fYG^+TOk@q@Un-qeM>qsiJQypUja4bW35Qz^gqDgl+=9JkQ+6G{*>7)iKR9y| zhzn}#-?|=>&e;j7O6r36acaHR3q#j_IF6*5ScYfI3=%4cdDgV&*~q1qmWYbyI~5Ny z<~0FIDZL{#qlC42$4>)LLe(#jVw5GeyyPBy&)yxTxoF6Mq}?{klvX$_5y9Q?tVenk$V#VHliCEqb2ljY-ByWYWwylqwF+W%HajkN{yh z=4Zw`H2S{9LVgsYBVP_R8P5|HCwu_a3)G=#g^`SA)o6s2%AASR{32q8qAws#aufO% zfgoT(U35mHV^n^OIONAS7#sdL$y05Yt7A6FFWylb$RxP3A5p^w4bQfR~%*ZQx!w(oJI6*t^};sUh$6Y(58X4Pr2<2vOhgtHaEhUD zFhDq4jU5jYOknRhVl!zIuHf|dR?wAiT3tHkV?bE52lJX|jWgahMCdI7AE;7AQ@!x9 z+Bz!YR8wUXm-B|Vd)o)R?xdF=@`i`JpDKcOk()w zGAP;WN6=so1$*GBt}8t*3P-EIjYL+=M2= zcW$oO0CP#&rj*&Vj%0ThNG=YGv@waGE^N)_hbOZ@(58ZouM}i@h07%WKt8-SY%LEc zfMbId0QrSg5(Xa$wAt;D|6$h4G z`Cw-fCKS_k-Dyc zQ_;u=-fWEDbTeG3JDn;5#8R1O$;{PK#>S#~Ff>%ee3o|-2G`yBDR{ZqXAnC1fUm*Q z`F-wA6U4|Gkc$1OqGvA~z_@r$o(8scr!U zpd-L6013+qdNVnQ=1hU!p$``D-;dft!OIso`rqJ45KP2tSyV#z+T7NuPMuOl!vtYH zLcR^o+7Pj#)P3qERAQ{I#dCQRKgnC+I^|2Em~C}m!>P-87isto7@K9 zD!;$fC#^6jt^h9va{5?LK}&!P^vMiCV})uTqT3=EV%o=?*eMQD>eZ=uj6;}P{H@LY z+LpCQjB%gvd$8~qvsWa(-k5$c`MRANiAKRIxfCFBv(c)HAs$$2#4wT75bOjb67~VX zV+~OZ-J;pY0uaNkl$ylKA8O)kv!6-KB>YyqZ{>X=G-$+%XJDHYXN@9SEIKr^n3;m( zFAd*~vnfb%ENq-zz5rVQ0=i`(L9^;~Dhme(T+PsZ{ausLo#%bD2~7)NdI!#Vi6E6Q z6&gDvl5|Ozc(@ldl^|o-5#%}xA;Cs}j$$6W7C|JMN{n1UJj0G7xllwW^GJeN=8BuJ ztk?_E3EBc03`KI;LR2HCc;Ln(R}c%qD}AVG)T6&_fwfnM(tEmk7qn&Ns8JJ8^Dr!2 z?2IsDy{JI7HP*0kfImSu8|~wo5xsD71FY|&8_E(NB=#rd*Wju~?OM=;>=Er|{svFyQt*$yTjv)@zW*g=z{FrcYLm(!@{XtmG_U9vky{bMMdZpLNXV39^s zu-^r{RM{XJ>^Q((n{C@j%;|Xz*g{m?QCjGlX1b9rG*cXhJnYPva`JGp?`6E3X&(s< zp0ZuVtsIKqQ7VeFg_6=#M8kB9B_P4M1qxetl`kde3afpe`%AH=6c6H5p$HqeN;t&? z!%XIsejNh<*Knr@Xl@?{Gm+5KG*6hpCFWPD7z#qbusH06 zLP!%xujmjM1e%e6b0+QJi0ssWq=Y}hJz-+*4@akrH4I^cJtoxgSwsPvN`qP1<%NM- z%rUg7oLMYmBOo*aO(4+*Oa2D+CTySuet%ZXRCdTlj3<$nx1TRvhf&k%cjd6gz=k{; zS=Pf6E^Oo5TmbBZQf0?Rof)`-v~Hjp}!$sCi;a912& znZ3*O!x-=4Q~@IvWWhKVNdct;?1#w!Tjnt+jQ%AHBHyke0>2k~nn}{e8ViS5lk82+ zG2;e|%tNuE5^l&1d~%t85h~nlf*JK1Mo9OR7UlJBb_f(*>tQ4lA;1b@sTF3qACT+&hLb~mTL;154i&|1 zS5LA>5;S?twDFoR{F3_ZIru<^j6X96XM5VhHi3N`4+%%{>}az2|AcN2XC z8a)$|C$_Q-*W4j4VWx>}I)(_c>MEs1#b^6rKE#^PqXeF_>i*jBB??{3Z3EaiLiueQ z6QNKHL(1k5H@%{;KQ`Q$qXt%{prheqm)w;&MDOAEw6bz@7le)xmqtvc3wb))vAY~W zOq60eeQ^mRQ*VIq3oBCXU_%704a(^9o8~ZjCQP9%e*1c<%p!p4j84?b(V8~0#fD&T z>XQ*7W&@kK4(zba!OXIVuJfJR?~5r+dd@sUH>(r6R6u}{tJbwd89y{p)Tt7Ww=xJR z#&C#nz^tGOHg!yHH^v-^wI7TjD~Nrtu^(0{movr22L7ZfQ88u30%t0wA&WA0+J@|^ zwQDYTmw+bKHYQiJviYgpybLx>7{;W~j382(@XX9A%TlgnIoX+=)hV$z@DL5F!noyy z&K3i5q=#A%qP~(!`c+6XZm|TZur7nZW-KVtgsKvX3K5(YySlo0;zHCRs5o$~8&l}G zEESXn@|Ae_Ox!Mim3>rvIn_?4P^DQkFxFtng4_KjOdYZdKxf!yU)I4L5T34LW1WiC z9wmX)7d3vc>Bh()Y%62V49$>2#@1jn8r_fbK~~nP_F?q$VyCKtoaV4)1VK)+MFWms zSj}TY6G(1Dp3Gv3@x`6~eoTerg#xzEpe86!7%_>N{mM$vcxoq@+}~kSWXe-qEQ44> za4G0QI7SMDo`qvKTq!e$bO09`vaOIR_GAV-=VfoKp$EICvIVi?TiQG0VQm(fsG~2; zVg0zVK`mkTt@ah@p^{B@$I7&eg8__&-;6+n9Ku$NuFt(|sGecsm|$d;0G~0YhgR96 z!6xxOfhZdd?x*kzQqv5Kk|7J_Z(g+pP%-Mj2vIgyPM`}vDIvKy0ii?*W+$=$CFVw) zIWeu$oao8s2pH&$xe-XrVB2>doQ(~0lmVEv5se9hCwDU|(!!fz0}X!G+wv>ox9NWs ze$JBv*G?42su7t|uaKMlgc*-QKyEL2PAKRwgs&-zVOv563I;89dPy(CCx!)0ftE%t zWYMG8ZHoRxz>exF=;l-!79lJPh`MO{)L}%VXvaU7cvpGTh<`1{Tp3pyI|&)i_J(c6 zbHlJ=5E$fPO3*fId+wt>fa{H6#F&*@T(qGhvUBrue(D;SdSPqM#6sR`uKG=d(U^dW zy5zQflZjBPs4h~K1{FYVaNTXg>{zEv7Ojx+m{nm32NS6M(Nqm55Ip&vU~^(*?vxV-Ej`8 zTE78^Vx|VKMxB8XTz42$<5=n)ajnEOoJ_2qq=Uku3A3kDg{U6Q(ed5F1u+6wFoO$2 zkVs)9Ms?MOAL`fbqBxwkW_c|P->5FuJPF%GExk6Ev8PR#0+lEk8Pu;Mq8qzhDE>K+ zpdirPA|?>wm;|ED)yc$VvGvV}-O1=(nuXTRieON?v(Atz84W+F*`!KhMH^M!TSOW2 z4(vV}A{=i4K=+19AFH87vM9p*Rbz%wd<}==Uo6+AzaLk{+Qw1igEgC|#eNe_ZH&HSB$5RJJ@7~R-S-twmkE*SXRa6)OgoEO+q0BHl+WF{NZAL3otY_PU7@Wxl8 zDPCzDB10l82@#51A+69! zI|PP&>zc<4#vGe*yeus_WAS7Y93vVjz2+rLm7X#*=RIe7+*&n_OG6Q1imPfvGTbT^Q4h+0G>r6>?d2x)|%E zao9#xH4~FTjDi zI3!L>f~?`@dEmubf;K=f<)b)iWhq|E0aAYJ@C9(?jKyIFwA94qiq?vvQ84 zO-!_MD7WyPz#Ryci^8TAnqnTOwt{~Od2VzvS=H_YD;btmC>SJj%oB!cR}w2}bb=TI zr3~4)bjQTNQ*cEG35%i1Em%vCw@XAOXIl){fgP45&+vAC`+(n_^z%dh@Q^>$>+c=% z_YUBM1)&!Aw_$w=kFYxMQLSuw<8e33mTen{MzhPJRV|yBdan6Z=8d4aY%wydv>fG{ za9_S-Yd0U;3LUIsV?)^LN!)Y?2cT*cE5*!Ur3EjWX}6p{Ak;LdIOJ&!P>waY%rP!O z5TZksTkg1efN~ZpsF+Ss4ALkYxpqe`^hhH?%*r=AZ`zfxI58E2n#x7Q z`~)*DtS2lJf*dO`;eHr;jSFH~64g3`>Dg2y5gb?*g3)Oy-UkPrj4d%LV{K-rtX=}O z{EGv_k~FgAqM>0VpV^8KQ*p1wXsJ_C*gRQKh`d3)81|+V7{W;np^b4BVY!Yi9s7_* zq*U7?R{V%dkjN^^fNg`_{mT+7ikEVgJssJhq{XvD=&4X!L~#Q_3}(w#fr0Frt|A2u zaitp>TTwh$RknP?p=9rYUU=uMP>GR|ZxI}9Eo9`-Wf8Ll2~v@xpPCRfiXc*n4MMvege;2Mr~F;BPc#n98ux3WuGlgx7k- z`C?TOcj}HEr#wD~*P?mb19hO_qSJ=DM|T>d6UP*evw`~roFkSu%d5KG$Cd`@jA5O6 zKF@iZHf`L5fSJ^s@D+Fhod^yDzb#~;nvaZ~ZTL`helc=kj-tpRA9nE%4j)osqqP~$ z4V(mABsN4t^~mQ;5$F+LlME4}QO#ID^q5yo8WxA`NouYEPGUU4(t(*Yz87&}+@l71 zU}xS5(Yqp%1mr0EsZU5*?mVFmPf#dAXs>TTvU+mIk5FctOa&TmT( zsNc_qBH?~7OO&WFOMD{`{IY-&F4j}eI6m0Jj018;!s?dC9)^44NwFTr+PkH8nst&mJj@Cw z@CQY6GCDr5AbV9{Vxm1il7o^UG+{z2#Ex7;H#2z*n_wO%(a(!V0Ha3nSNg@IQhi!B zLzZ^#-@o6IbFD8=mOx<87huUs4!il!@3X5!f1;TIARO_YTRBGA()E4x4ysXjw zx@Bp&2|iZ=iy`*-EMO?tE0gBk*s%t*o;r0$>m}jLro_syFB2$1JSll~4#bx(v~!S2 z>lL?jjmBV|k4_X9KAna7i}>F42p9xDiU}&3RK9u83`c#JHOWTbHl24d%!zGXF#JRw zHzS0y%Q`F~&xNi)#pr2~5c-ICmzbo`Az-8CIaknHVe-;*A*07)1-6HYrs=$9i4`$L z<1`0x^D!fQrQ8;d$+5AqMpXYew?$M?o$8Dqo=$8>97|&-G>cM*Pur;HB(jmf7zQLE zLMyFGB*O*|W$p}_Dt^@xzZGQwDax=+Kd)=&kfvuwiA z-HcI%GTuRnNQ)cBknyQe$x&+^IRnA1quu>|7*E{NG@@b?dtI?_ojQuyBML@I18XDOkAWB~7cN>QOqvmS-?@Q?W5ZVSu6VcF{a=q2Xy37Ykw9 zGzdt?*iivVqtDfr0KRuSPR%B877*2!;QUkfBX|J2LoupwikQGW^&% z+BU}xA_^ticrBuhp%_`2jJu^2J= zvrQ~-6wx4<-smhtgknF^AQiXS+D2opfcfrda^9Atg&3~4o;{Zx;**^#!)yxbnAi@j z5u+~kY}xksX;MHoOi4NFK<8jGOBth2htUqY!r=iSpmB%`mWA-7xUYhVUZ4cB;U8j{ z7?Yi}#37=pNT17^9|I8E!zMG_bit=q<4}tL`NPd}Y`W8;b!^1z;}&(>Sk~vJD1M9$ zOZhOfsvS_V%_tB`Agq}fNK(wIh&9P9NXQLVJkbTHTi=n7>XsR$hdu0|K7Ov4dYHik z!*j0`rAUw%R-aMqYSqeZ^4$Edq-jfR6i$&<{R*nZPFRjrna0D|G<5w2(LB-{Z0tGK z+}M>UOtcb=#?T{*RfI2oC4AU%%VQIcV_{Eh(~qzWFC$#DB6OVXYBoDVBV+v@u@y4F ze^A&=s%}f1cb*%()7X87xD+RBY#t}DFa|+<$!+5En-JD%wXEQ57u(9QqlV5Fh72)V9U4<1?>=+66Zs__XOjxH4PB_wTj%8u(nHr}& zRBU@A)5nheiISDqFel3hgx-Z&rW4q67l;fQjy7vL7X>zq2druis;Lz>fzmtCUDTW~ z1{pL%b197P7?!b^MJEL;e!BeQ*H@VXkwKKXoCg&(PFpgfZR70Lp_o+L2#Wx|YG?jQ z9p^%!ll_^nrQnA}w?w~krr^mJR-{veR5ubQKVk}m&c^T(BB5}N&{ zj`i4Y)e1W;8{31c9vvlkwGpp+BCq9m%$b@&b>-*=@c=- zN~Kjaw6wI)ePDqWVtj`MbGYuK!w7Kv8>4FcU?@}0M!YfCARt!Xl`rk#S{!P6YN(bPK=%mX(67DHvt3H~EW6cJ z%raKkr)8c5hCOmF+!!PB9PQ}!GBW@F{{26pe=AR6V-Is*IINDoze%nuhOL+_?Z}0| zmJjK5JqWXtY;%smo7LsnK<^KZNWAqYtTpZiLpX@3?Yxu**O8Jx8af-W(5}Ha9m9n+ayw28lBc?f`2os8_BT7FesuX%9dr zz>(6@h)L{1TY_~^rnF8x)kf*#jp1W$By3(w{^qW84T20CVcRb15?$R#6*;XzRkf$BLst%HkM1{xDLRS^(mvA9s=km2o)B^e7JMzLa0d9Z*8yj07J* z35Cd`5m63TWD0KmFpGn3YaW9>0bMc)PY%a&BhM_Le&*9#J>gR_AsGg-jy8#5BHor&UJ| zoir@Ks-ra%`Ow-S?UEtNiOZD{9wI5F#M!7`2@43$DJ*Cim?+}MYqA_@E%h;>zO6*X zshon5EiXDJR@%8b%%C$%KTsD(t;mKl*%d{3EHf+m$S!|{ijoYy$Cpm7zumhNXf`!XBgl{Fnk*x(TLO&nmS$$ zQsAH?IZb-~2HaE}_G-|8VJQ>z%W0$*1w!q9iw5U4du|WESOy6Q%R;6N@iGC?S>Wz;x(=fF!+nJnF-+YaXgr}KRc+0fUHma(85uTDGZdPRTgawmT zSthTbp%~ zksdxQ)tIR5oGs}hncbz7;_fQkW!$I{2?oVjq_qm6JuPUq;&eo4HXp@HXroZkZLqZX%5F+VQNufQ^ayp` z>A@H#{ZX!&Dx_%H-67%^3Y0{?p+syZ6@nlJbpyY&g4G+n6P^BJgwKQ@|v_fN~g>MvR-asRfXaghIT=514 z1QSS$n8qB{9&J-cMU$X=rg3Ns&YCmfwNr=~MbTlgQdyIXXZ6iW^%7%*VG>D*Gcsis zjcf^!dC;gEAzFqxxPZ66Fuozy@DM2kw7O&F*M|ca^NMV`s6dy?V`7}gB*c*#p^3Hh zV{O8d>4`w}&?jrJP!)~VEOq&~3anL7i?pRxI;$$lT&dq`@ihvikxuq%G3=XVN;-8FVl_6Fzg@Fx(3^4>D86pwE zEP$Rc{vxp)VK{QAqH>Eo#Y!~ya~qso16dfI^*4Z6zv>Sn#pJftKoE^z$`f#Gok3|K_1o%Wy=>!#+W<@m;hS|!+LM6lg_ zHP%#aU)6#zS;9u4KW3ejd;2v|Er6f;gZ59M%V<;vu|<3zYS>h>M&;=`JeC(?P(&im zsA;rxupfDiVHA~yp^1o+T*j)Hnou((7)2~mp^Z|%=nAKM#rIsBkj{EkTHsqZ3MX5k zWnvO!Il2o*N@{dpC=9=m!K)*Gxkn!O$*ls5mnvLyr9#g$}JF+jXXX&pdbSH|dvYzu~Xt>px`5d(6CH4`}t16z4n)@vk z&uw`Ywwd?7fom$#d*=Q~1wM~e+}rY23J;n5_ZWE4z}xDSd#ibVOP%*OS3JMb++SDm zyb`}f^S)@{Y(@I3%>AVm&qvMukvC~S-E81v75DbJg@=}TZ`1v%@Xr5D^&F|F=l`_! z+woQfSFc{Z>h$AITfO@DQ&z7&b@lUbzxsp|PhNde!|Fy}<5%~+`yR0eFAbb17t)(r z#&N|ng+jW^^D~8M{N-1d047s-q+dEUA8PRNJt&49;$zvk$`^2@<#=2+K@;RrhqU*I zD<5B%ZPg2>kp%M9-tZIJ`1~@xxljc8?GxstcBPq6c&j;7+w=WAF1x&ZzZ}BYGT>t&><2Ee}bxRKgZsS5OMK_V&~438YoqZw_kJO-d^nK(Y>4!D24r!JV6qk5v<4O za9$7tMELRU8sDXlwFgTMtQhfqGWCAwr;_y4Dx9#-@uLSzfEi~p zud=X6~}YiJSUN(6EFcKVti)4(cKK z_zKrJscQ<^v)rTH1?d^nAVDM$F7L-d%GIUW;j(!m^WULeozDTGf8^xysWKBJl z;+|9-GS1^0FsvEJf$fRd0dK$7y;PXjsI~Adt$pZ!elxJ_OMw;Tb;QcMCR@TO;MlOM zO(lBpK55s?%PF-9KO{J5rceErYqWIFt0;e?1e8lD@ixlozF;!81}ik|tx~MR3X+J| z&aM}yJ_1;yJ;vqkEcao_We5EeXmAqqh$sbC*JeTOh{`5YcL$1{AAl8_&s zSaCrpX~mqP{a2qKrpqXby$_~VHi@;t^#5}>eo`Dh8l)7mAO;mr3Xt>mjnz4ZhGoX( z@PJ7Uwtx2KRE~$>QeeajDopN$G%?Mx;{+C7Wo*>_Y~{jKIai}$<|AQo93&n`P*|=# zJeqa%1IfyeH8zZ8jx?Lf!VRr~DBl0qobriYfCg z%>Yx-vh)<$43CALz-$dXFzHZG_lufzLjZ6{i@ckXg8D!eNDQ?W!qm}?!a)* z2sZMM4{ROmQ|xM&92>`V`IVk8QwMOaE<3c)IlCU_As#pl`q%D1ok2#sA?5qV`^J(g zC1ejZXJ1U$RC+=kM-b)2Ei(iR%sC1+GOTvGQ3TLSG;ae~PNHGXhwi~2`As{{C}Aeb z3dVk#gctSW)m`2;Mm1Wl#Dp3fXJLCf{a#F!LbEiVBacoq2uLtV%#f8>X+aW} zNFFLxSvK+P9U1Q9cG1;}RPqPP-z7W5>vaV; zelK;kEuy_qjnFc;9O^{6YscZkYo>ca*%Z%CtMh5bgp(6-{VbdgjWBoIBwxpao}5|a zH>xmH!D=OZ{}Brk{Z;5Y$Eu%s+5#$?UHsFXPxC{Zo#IX5Cy@B{-;lY%k>o`-6QfB^ z82-dXo#OI@?=Al{yhiJJQ;g#Y0Z(3e!jNBJ+WRQed-pXdOPgCxvK|N zaiR^FyBl*8PGX0Y=lNAK|C-UD17$=v^&jU9=b?fj40h zVZ|C+h$t)BB*siN-l?m*&O6!OSo@uBo4~svv#Xx_?6I7LjD#Z#=Mo8)He5FTlBl>h z_(GY`BWwYp?sfjF&K16@&Nj4baD1QzNBfNq4EKj59Oje0UiV-fRSPAgJth=U*zB(Z2`gf__!v)i)N*Sijnp4f+og*f1YruUn;zd6 z!+r%@z0kt*F5AM3>#k39%LD&!PkKmA5KRPet2pV)5G-4h2p;8Tf4ZJp*DUCryFsPMn+1))h3^tA} z!{y96XB>b!#wDr?pG`QG%DQVYX+eRNxI0Npj`3MIezfq74DK2q7#Z#aMg}zz@8hn> zSa>jJ7AW&j9@w<4yMP;TO)^yI%&u~Y$CgeZ0 zQ^%2XiaBRRK8S)Tm3_-?E}g);2C;hkwoNeeFutEMXud1NsD6JyKKzpD71Ln?-g~87 z6idS$$Bdtj0_jNm$u~Ja(CHm@`Bf-g)m}NqV>9Mi@PnEFY^(5jGS?`)KT7+fDOcS5 zW5koI7KYDioQ9q4D%Uh2Nu)bSag#jo5je1rX8+B3Cx)Va8a%CPZ3fKt_qYM0T%ro1FDz&RW6^ zJ|0c&tv#WKATkYq_0o0Nbll7*=1gdZEFEN`LnMQ*?|7{}Caly(e%eg&7dGt9z1@}9 zIV}AAM*UX~5yh8*@0|Em_=1fxsX2sdB37^mD~T>ohQ~x(TSpsI^`mzJc|26!pk85F zB|OAtQqT(bP%D;kigS_8w=t`Er_tN84&U|geE#*vwz=sf2>Xoi5}$XDN3z%k>q!*ae6)CQGf z!^3{j4GuInZdQVS_(3*ld?o&jyqfl9inP(JWjz2SjG>Yf(=CS^*&8`l(!L3ledF}0 zS-#oC#I-0Gt&G?|(GS3eE3Jz29BeYzWWo>oqMNy5uRJ`BVQEk|g<4zIi4s6k=gujX{(O&vte~mw@_E|7-G1 zN-3WoFJZ?fid2@BLPfDiOcjf9dO|5ff2o~W5HTaV73)KeDP}`E7}uIAmr7Y2E{#pi zIP`eEn|H%`M%oScSa&Y7==T<|>42`5G%vPH1+%#XK5^gZH4Ja>%yzbU4ciA4b|(S7 zhWwC#`SH$f+>P~jUf$_7x3qiwGKtA#@^}qlgM)yo!2XHkAdw5o@U_pp3!u#H}KU4e$2r227c?mHJ$cf_vWtAmd!?;-7Tu8 z?9u`abmQu%>>sAx1mCF5&(!R{n7yC;pvO@1s>2;rE_*s*prp4EvJR7-TKgjVd$?P} z905*YtV=uwhO^;ef2p60Q>17ID%mMsA=#0SXBI7?9L&6>(tHtoAo**^s|em?J75Ln z)##OaTpE~+nDA6Hzsnc;hj=)-V^xT#a=-#tpjLXx?#sa{P&a7*!~)Wt#8u-_kMrL(3PzH$O z!&W0>Ef5El4XO7$(i$t15k2~8Au|4eKS{&n?q;|Z;bwrJ81@PZOUxfQcnQ4>`=m3M z)shcNiKF@3x1r<|T0~{X{Oa#_|u2T}G3ptPsCvIU)3N0QM6!=9jsGt$6J7OfC8G3MO-ROgm3$%reud&vfE^+OK0c|4D2u(PlVMe83S#WSl1QtaXbyJ1DH`HuAQ<~ zeLw~kBTYe9P$K5%LU;$v4`6tNKE>9tFz&OFhOMJDN0?i7b-~b}{vNjqoz};K#P`>FIEmN@ zB?v-9pG~;sReRf}@VcWtyl(4=TyOMRQ9!tamf$TAnFblr^F_6l=^A8$*RnBU7lrr9 zun8*1jYgE<&_71%;ZbPmRNlcOgu&TiAgN^xfFLf}4E;`y}R@ zwGT00VEe9|C}AHZyJ1=^1)1IkFX}qhyNWqRADa2a-JrWh-31t()}MrTul=JJ$_$u1h9O#3Vkb69&UM?XnT; zVjza-zJQ+XvvG?^htOg=0sk`RTYh;2&K7wKQf4Zi+rEcsz-!F_|NhK)Nn;9Aldf+% zz`=~u%(yqLVNKyP<`3^k?LmYaB`8WkQ!#9mQR-;KO@}mw+>9L*&nd8NXz(IU!ORAo zntOwrI0w5kJ~8oQ8qMW!UKvE7TU6pH206kqBlSep3)E*MfYMcr-OUl>lLQ%xhQTH{ z^gQouk-pBoi%ur#r>Pi;8Aw;9hT@Q4&d#mYM~G4LfeZ=M3=4*f22783=mvkrW?{;t z@RDXT)J1-#T~6Yn1YM@;S2xhfX6XU#!$lZv7}+&WEti&-4OZ7Zx}`0&7ewrAs@!A0 z7U~Faz6|G7DqIo@sn)iL1x}ae5No8P#sAshrzNxU3S%HB(kG#kmC;?AL*yT2HhwkR z<8VhWGOkb^5K#G87bkuWnp*T!<+ctvg?GYbmQ-K6epVw)R*RmZ11v{Q52xEW1E;9^ zG=G9?M0a8N7_#J0_p$J1=`k^HSUq_IbOerUad3utHh8$(aJdD)^ed$#Rxvb z0%4SxDdQYfjgL5blo6ybO}p$FMjd$;&rpO$v4v%aIPs_QDY8hdl2Q>)qpTuDF$Ky} z0ZS%Z5Q8j07fX^*R4S*C3!xAo*g?)t4K-3HQt_6*x_Yk>p=2MT5uKQr&+4rzIa70R zJIN>$_QW>Pa2{jybaed@`Za(fHh`Ossc0t_RQQw@)Mu1SoU>*42vClbzjSm_qs6o> zlcH^y=yakZ$*B~AD!ztW@RyUbJ3MDv+@n__*@!Olqg*kMzgu}^dZIaCc zBRd&RB~A{l!wl`BD)O0yu#+VA-lgXfiR}zE!9gFBuJm=?{;}(N;a}jw5QMM-j$)#U zowU)3Lk*ICxOKv=1FSfY*qO{a(V7P(Oi`B!v=7df%f+CxwN*Y8hk;WlU^8_BF2hz# z6Z3PeXPv3AluxyAnP4l3(n*oFJ*>tJT`+-h8Hi~66sDPIKB$RKV&Ih0jZiFv%UyD8 z&NWIUO z3}&=znW1brPNcbuR6I60BIX!Jop3I(TeMeOS2x~_y3!?lK*zxSrRP&r1XIU_vQePgL@m8FrD-IJ3 zc7EZ>3j<-q7m2Q_usZN;``~yB)l#jf@6x^=iPNx(DHk(Bo&`qxF5uY18I4nhgfPbh znd;#YMC4AIU2ED=qx_gzGnB94v>Drva|zG5j&!ZZkvQRJJPXqO{b2L3D9Xw=Zj)`oQ}T6)0zScUO)6g&UQd0SS25!;r;kResV#1}-9 zgSw&vV)#kHQr0SOXrOmExqY8RdT*3@G&!LGgb8$6J6Heq zft(}@m7(edA9U19X}$S)eC6-R0}Oxbh7&>SAzXU@qBbxpFK ze%ovtxCz8DB!fn#f?2fn(l3dtGq$a_K7)M$5GuvS2MjX%}}^ zmFJY`U9iL&zA)#QA}{(K;t!MztMG6P*#rmiOW!v+J*!soh=ZC{6j++vCRt}egL^Pov`cV@7a zf%i>qi__C>ZR=5;d?CH9O|l5e6IdtklgJl!`K(r-CD+2@|gBQa4=r03^~US)nHlqA})x$*=;rRFpGjN(AAX4$oRnGP@I z%GC6i#jeH&-*fn4>eEoCy=etp*Et_JliqV;zsaHC;PLVMTPyBkiE*>0LDS!Qvcj7U z++v_-VP!^he`HO(zQ-!=51ISX?t!tsUT<`4WVCN=f_L7~E`~IFLt}lHVE0d-$6)bx z`P<mC^NdUuU_$z7wPgMCAN!`Q@enTLH>bKaKZPEW#tyr5t?(( z|7`8_y1ILY`p1%&jPJf|`>T4l4trPhb#`)`O6(c56$Vn6uN=E~aDSWlB{)wOF;+6< zWScYQc;?}Rh@1ij$zhb+Fv!0~DqXQ#t8$VBUM&-LC&ShXuPaD~iEOzKx&dZw)E>!I(6eAT}hDI@J^YHp!jySBSbb2w>#|CX0}PeiDfA%oOK0}5$VGA zapb^bzXu+595x&YWnr_}3w2rrd|5^@SDe5{l5k`;2xP=Jyq)_x!593*Hmp2(Y=A^? z_yXLJLJ^Uh_^3LT;F!pzO|UY9cJoEF7Ec3{PRf_(6AU3n2VjnLG~l#h%4iCwBZO69 z%LF103Z-7ueuF5Go%Zy%7DN%LMqGZ4A3*BiFAQn22wk z^Drz#U9bUS_7%r^_~qhyrCCOI@#OktV~92lQ*iukhEi-mMAM4bG32)xUh{YszP_8+Xkqh34fJzr^kmFaBzKhUo9ztuo{{{chqdeEkSyUn*u`g-M5 zK7Zr0EYIRoS>7?| zf622f&*F2e^;M>~?SHDG{q@>e?|EgpE4{bv|A?W(-x+A{$IX2`Xw%=eOuBmc>plOA zXIY-br(U@$ef|+s|2r!1sMpSV&sSPsWjfpbXYh-tXP$`;nJCT&vwSYg*NH4t`Hn1f z%?X$^qRFe?GlWj8GF4Xh=F+%*|p6nAj7EX%2Oxe~QeFS+uQTgh(Mfwr=D{0V=L zU%W2pglVR8U0T-Pt+M(|W66Q@g{Qa%htFdwxFVbG*dyDmCPWe4?BfCUguiNdWcRR_ z%pvxXdpod*f|~$KIK;Oz^t2sIDy~tnEWFK6U|^$^>z(-qXXX9n3o*##(S|3&Mbf!Cxk;5P(q>urEP;vO|16_2NiU2zy;7~ z^vV;(LLn!l0$lBcOz2o+UlaIO;M{<9={?wYBaIT< z<78$DA5VqxcN%+W^ZKn4T`Yo_2=9g=lNPS&3=fhBQ=Nqpu^dg%Q~^JSnjPoToA_1n zFqPeDEDi-cCLYB?;Bt=P5$}O5KMc$z2~)XcilC3xwq2LR=tav~ri8;K7*CEB7YT^n zT|;+vVyVuTp65r*`Ol zJveL9-?{zh>FVXL_xxIePrdi`o?CqCy>du)9Fi%E+s#{G1@#C*Z`3{G#RKy$H$)Q=iU%DyeOjtLYXi z{uFv>0$H=(!hS@*;FC)ZH^?`5*;uT~Tk+LFH(i%*F#qSw6{IpXC3u5o3D2SL$T$eA z6R+cDC;X6xlZp6AWG3M~cGc#~6EYd1G#e`ky^s}FO=2;y$KxS6N&njmR)RS!l6_SiZnj4geeVMYs4YKojud= zv8YC=1q;2^e>pjy&84FXDISZmm}kHWea$*=+3pBQtOp=OXSHkrB!+UqsS=Z>%#;W` zM_kWlx@~K|LDS){rFXS}^DQwmhi#=h$D3wP)_fB-Hl78<$gn?Huau5@xl7VM+l&hL z=dzRhs0WW}9KaWEJ8U=-*BsH8(dR?$Jb;E;HkE$TbEu>8iR4Api7hyqKl(2EoU0x5 zK!vj%I=k=^F$pVoU4iC;6P6w;=OP*dU( zbPXUQ8$cfHciW#WcDQP(mqLT5vyGUb_c)G`SYrMS@e_@s_9#*ry5dLT?!VLwq_V+S zdc*dXiN&&O#>PGy)X|<;|W)0tGp9W#EgjlJg;qs=D*ay+YH?DDt&&)+&^XDta*OKz?Teax-AA44ZOv`dkj2m z;B^C<{-A*(w{e&;Nvp)h#RL`lc%vm9U%|>z!uzRxI4UsmllKywqKm-DtD2Xu#nYqx zyBP1I|9%tq{I}Zt132oBw2l5d4)^@WC>$y*pJ{kC{(9bh27bjrd5AyvoBKx${E318 zVbe8g{ssg8;Vb+dx%kRIxc8?`S3Ys^M*01OP4K)MKeI((w)D-H$Jrf|q;$ ztJMD-wrlCp*LPvS6A<@p-}*D9IkdT9m+l&=o1v%n>TNU4ENU31hKXg zU_-FB!E4+y+K;G2$l##U^O3OATNkWLH}Um)uVpif?Hlg(ZP8n{_hMSdhNQLtQr8@8>4 zPiI0Y_%U^~ql5@g6opFgSqUEU&mH((>!xv74G#D9!&}&8*ZH!IDiD()JFou-Dz|d~ z^8Zcv*Z&%Ccjf*6U3BR?9LMX~;!#=7M$_N+xoz)*h7R`L)@Re%`<22(1zl~vODmq& zE8jlnAiz1Be=mCV%zp2ReR)i(T!ifLlYM=!n&3z^s#s`Qr2N=EK0cc8M>MJwDWCzt z05+3hR2$-O_AyeEOXNI`X_%k_zDFDhRCO5GDJwF+iKRftGe*{M1Dkg!v7Ln zW6Rj%hmW{}1uG$|BJx}W9y=ng6I$Ua%VC9kpn)OyPVA6tOKX|gH3;dW4W~LE=<$|N zG5EOzM$dZzwTCj^lz9ae-!skg`uoPQ)DV)iLK{1+aeE=aNrUTx(;#6<6zpr@F$G-= zL2ALn(;D$dCo!0IL_R~4I7x{r7T2gADI_~&sQ&Nm zO7@LGDK6xf=5SI3UZRSmP;m=x#xEP~^9OJ-);B(;s3r$4@6)TcL|dZWOI$NGod8o1 zVurwDMi)5w!S)^SE`RnW$95f;OEkFJygPi0)36xR(iMIZK$NHC2#1v9k};j;!F= zQieK96UbLiFRqbU_8R-@DhUdspPA&S>kA{F9hO zY87r1MPTF0bbaQT_1S83|6&7QZeWXnT?TG7aKOM_21bgO%jdfMrg?RUu8*kWY_2_J z7j_Dq$Qm_`a6?tG9jEwrxY*@C;ry-Z#-bHr9RF#9&|SHaR{5gIga~I>}vI`z{?dIVZ+wRO{~^ z8tPU`VcS+DoL+Ec%z(2$hKmkP=o7M^X(A{Wij@sEgs+(%R`tr{VY-;oI|4I0Xoeh6N_#2;{JBjcQp4^MmAUto=d#4^Je9zm`?D{Q*L>_{gg^EV?j_uQ z^~Zlg_(=EN*AxEE1K<81gg^ZLccq~_?|9%z-rsk_*AEb0a!c-og!kOGPwYhdpPu|B z@BjUanKuxQT)FDk2p`IwI7K+swfg6TKRxZ_HxYip&tFLR>NVLx!tZxq^$o(()iduV z{Mz@QcM)O#1INFL@Rv87c0b|1I~w0h`19ND*hHAS<-=PEzxlL8rI@==<9y|143&F>Ii*7dc&Cj6VWhh9P0={>TO@VcE3eu41CsY9P8yyMA_oJn}r zXK%lR@K4_MiLVl_e($I5Bz)(c$2Ae2eB%idgdcwB)Xx+C*5jvqi17EXEwmCoe{l9v z!oPl5>hB4=TBbircysr6t|2_}>W5bme$v1H7Qzi{zVQU%>u>nb)r7x!$45^jeDC)^ z{Vu|d58Qc}@ZDcLX_4^Ur^RIEz4^9=xAXobx19b@gm;~`_qBvAU2`WB{&6n-hlH!H zocaOblRNjx=CsLF?xno{R$Jx2uC0P*b4~%?asSzBE0s-kN+3pqc8jJB;i2Iw_il~lWV{JM#9YC1HT}=H1**j z!hhU(hwMu$d!Kv{@4we}*8_yz?|oDzo(JFdE!nd<_t~%gC7=J|$!~t0aPQ;U9>V{6 zD1R>Dwi{>umhjM>SACl>XgR)@@Lyi`yp4ntgN=Vh_{D2a`!3-{SD!FS_*dP>iGgFy znp5uP{pgzMuL>!qcCAL?)nHzWC63-mkso&_TkF z-1gvogumW(`(=c`d)h}5gcn}V`hzW2l|;hx=-KO_9| zOy)YmtIx~*2I0S+xGzt5%^45;H{oOFeEs!=m+$}f8p5ya`0fm0;n9yjP5AT^cfXmi z=kAaFI^j3oeDEs5!|(a#HwjaJ+JAgE;b)$>>QTa7kIvji_{5v@?SxBr zXSWf)@%Gf03IE4|=}!{gdVgUZ;d$Si9V2|(!l_>&d|v-4cM*R4#mB8BY<T z@DraSY&zvrA13^x%Rh1s;qiNKzmo9%&pdc9Vf$AP-9dQMJ0EH$eAx#dxq|TEz3D$C ze8rEa{+;m8-m`a}u<ApE@@pMD$RukF9{ zdxRf6=R?0uc>Wn5J(ciJ-+ccc5uSGUH~xk2V^4hNTEa6QefSi@2k!s+>j<}g?}7gy zeCqb^&JyMieET;E|KY`V|1RMbulV?X68_V|!2;nz|HocJ_=C$&zLBuFcl9%bU%K$b zX~HW{S@nFvXWp6l1H$YFC!Zqx`ZN1dgneJly_j(EdyTge{?GeQdysJa!12R`_ul@z z3kXxMn0Y_p&t81hA;O{l>;U1z3;E52JNACdR+X?U7k@_s*ac9i#A$;pOg$;zSy!(`o5dOuRPyGzx z8IPWDIpLe0IIe}z{<_=Gka6{Uljn8t*=Le1%157rAp^g@Cl_SAzV7{(U&8zQ-rhYz zc=8(_`U2s=UH8g3dBfo+e$M+ZKlG%?g;PiF_#562z2<|$e{XI%@J`-;^`*DSc;ESg zdw1}D%~=mgyT4w1a*_9c)cu6?)2;_UnBe`d{ooFv=Yx0L@>1Tv{rUsKf0x~I#_#d| zB_HsFk01Vd%R%11-S_NS_yO-6Z&V-~C(H3;+J}i{AA{ zKKHkMSo%A)@PWH||Gs}ZEPVN|hkkOH_rG=E5usz|!=L*$@Biw9dxYLUeAl*K-Zy<^ zpYUh)m&I#%|G|Cj!beYBzQN~xbHho(_jBjJ^aZ^C$$8sEK79D3J)h_O)#Jq<5w>Oa zJxTbppKQ2`@T2#(zngIW4__*B?%Z2Xx|#RC_~g4po_*p?*PqV&rAI!nj_~{^K70}3 zGfO`S2=Cs0crW4aobfr4OBZc;4k(1-dC<9+}{3R zAK^`tKhG0>Dfv$egyVbe68?Ts?$-D4{+k!SNyhUZpZ@kg(&xnq0_;k&LMxs34A7o0BR{5Q^e(Q4j*yLi5g zt3T~NtBd#V|G(IK@4%R{|Ns96kwl46Lew3-ZAg@eXcINj5)!?nH)$h95^O|oi(nCD z8LO`rJqW_;EK#FISS5B@(Nmg5QVcMI1vuzu&bzrlcLUp8L;72B>c^j(g%Y{AINW>vxF4ayV&pQX5V z1Gmj^>k?~#C*JNb1E-wYqyn9XJaGrjgI{z8e{FX)1pMCoP$bx)%)sYh zp_&fAg9o+22f=uU=qq5CblU}B(fd|2!6Q4ARp5jPl~ce<(;S9_gZ2yKJAhZO z1`hw-6{C~d(qO5$$N)n>d7Oz_$?9X#i{V-8sU$cvj`zZXvq zgFmb}^aQ*#|LR}h!xWQE;My5gc7Z_|HcP+;PZ~@FAIAor1UEQpFMwf{hr9+GHRyaB zyltD|2kK0Yi~+sfvfRKLzR!Dr_nvPp1g<=^t}^I9dxAAsN4Km#n7rx8UGUAajQ61Z z>F1ZhQSY6u{HGV?cs#cR&k2_Dz# zegvmF?41C19#XR~XcBB!2|V1+!UmjZZe9;;pXlrl7GCET2d2J_?E{WI<<%Yh=7`-` zaOjJgiQtcG%(sCz=3D#>R#x2Zfdg%v-+>FgywbrduCZsp3eLBkz`k*BUBG!(>7&4l zRZe?>Wv9)s0(0~C2}C$Rb)u)i~Fw>Q?B zv3B℘N59wvL`r1a=e4I~#+^y~>({vs#@i1zw)GfaT-%lRm7!`n;*c#uL}MS6I0f zvszjVc5S*0E)Hr})Tsh?IdQitSS|V|RzLNtda!o9p?G7~Zx(w#X6@_Ht@W0$d$}X9 zB6$2+^DN;Ckz0B?&p@Lp+U~4vh)U^J<%6a6>k4+8XqADbxn+Uty>%81~(g7NG4f*H}L^ zT4%}H+k^xCSbx}dX`VIQe-FCQ1iWcfx+$1&FQ^u{W){D1f3SH{7y5}oR;(R#@8QMT z-Ke^{8n|9#;e9n|@w`@bu-^8V2H-atdm4hBJ>Ic#Wq7f+tpB~JGMu&lUq)Rx9@gDWHBW5K!A+Q)z=bwx&k?@t~b1tv90Vf}4#$G8ya z8E@^vz=sKZo)A1~M-cQukD`Zxg?ifrfX(fmv;JT@W;5&O?JPpPaoulyLr<{R!G|8; z#q`y_;BWhUe84@0YxsdP0yF(V^{I46u)=Z+C$Q%?{C*o7HM=YHcitJ!;3=~zJ;6D< z26hKm-AwEOCN4VM8Qh%BUu5%FPfaK22WyS%2zG4ps{TnF?*QE; z;HewvU#Mvxux(0IKhW&*uD;;+sjpqZy+7Oc2Je&`?E+qk+usY!YI$cMc*|AI#)CZ?$`M#_=AJl3vfllQ!l}{^JcsPf6a0J3-lNga~15@V$T)O zeCoSvV9VdyUI$ZN4$lCmFWYttJYW6gP4Hf~7B|2vC4$nyCw}WLgFCN0xd@KkYIO-L zveGLJYq?%eZ5pmp=9Ge8sfZr_7LZA4d?@728~g7%gb zCW9rzFHHho53<0!Zw1nk8a!mT8@3X z25kIC)79XJK2a+{hjzPGfrsnA)`8DE*e?fvem{Bz_~U~8KY?ixhj)MvDi+-i?q8$X z2~PcW+%B-h^6H{642gS+k0 zS^Yk#x1F`$Y0jqK;kr-ezA(^evQavieBg3d@aC0a&%mb9w=%)LD)0W_vVIj^z_-?` z*f>#cnd&X{;jcHe2al(YV*PI8nq&UZJD7$?fpx;pu=cDSvyrt&3(L}0xc>L9mF>W# zX_l;>>t>y;1ik&N2v*)3)JIvlo#-;s6xZ8sZlVJR9iM3l?(lC_3`|odvvLo#b7>5{ zg!`if;GOINtQ}2WaIX#YbCW0eg4;9gZ-N7zXPpJx)oU6JPEy_d9sDi2e{ZnlmB$(| z;6Sg};PTfEv%$m57C3?ptZNJeo%=1l1O64}GzOe&`tlg~-5Sj$&@%O12-q`iS#z-A zu9`EzBbM`*fx0mb>Vg%!yl3rVwA!H%^f|L$sK8fQj;y`6>0gfZ$Nufs*2MLl2~};t z3$K>5em3mvh;qon5t}z=AANQYIAJ^SHI%eaia#qg!)6K%bi2 zs59taVX+%nNL%+2xYsdzIGEA6`w7rG{>^o;&x20h;1XTCAn?tx@fW}f0k#Lh@KV!a z!BZ`U+yyte+#U>Sa_AQcbkt7F`U{MhGM$Z2<)5@D5B;@fToLfcx@}p%ul3Et>d+lx z`YZ%Dr)N$FPbLj+3bxug;4wJ#+`T?vQk+W{@KVJ`Ibd-0R$ic4=gHT=2M?PZ2gl8v zsRb`CeOwRR@}^e;=-&74IMCjvzdbnKY}Oj^erVHgK+}VhN`fJ)?RS7HZ)^5}2PeHV z1{>FRssMKF`EoP(d_;{V;QZ1{r-3p18zzEPuP#u7-A?fD3ma{6Oog6m^!_}!%FkgK zSY_z^S72<*2F~Du`OAiY&z{!22O3ul>H&JhrN0Dcp7VMD{;@N|9qc{R>=4-E;f|5u z)y_%)m{L6@4gB5a))a77UvF#B^UdWNV3DQ67J>U#?=u0f95gxr+JYrH!mYy_f7Z`c_SSj$=tExHR+Wi|EfSpTMv;%97SQQUO`5nCis*FZ@fFCxU z4F?yWh&Tz>c)GG5*k!)u6L4M2jqkzJLrZr8i~iYT1n52W=^1cFosKuaEQi-VV6WK5 zZ@^~N<~o4aw$yP24_sdK2l(*ln{D9t%R3bZz09*Kf+m68mxKFzEp827x2-z?Y`$>L ze9+|sZN5Oq!rg9lz;_v0OTjY3hkOr4m%rT%JkyAOkGtM!T50H=?zbxps>hDs3yzqb z`5RdFufc=B_X8d}fr)MVJO!&49TyCC^lW<({Q1oEqu|+fE#g2shcTDIA$5KU1-DHd zF&e!5=gGrh*yXANz+zjL-v;kiEB7268@sj}m>zhlEV$J?dObLJ`Jvrl%cF5dVEl)5 zOTc>zEoyLPe8W8$7_{(3{AA+lA`}YFBS(kJg9C@ZhB>02pZa?s8QR56y9?>S& ztX}>!_hj)eH0!koZYCjzS$%4Uy_g04q4%oh;8LG?EFI?8r?CDRdn0)zu4i6)SPfio z{wnJiW;?q#gdVqLH0$RNlC4;ONH|b+Hm+CQrSbuXC8?i*&vy@Z1SjlwVCk!L?c#UP zLvG&v1AK9D2g}#^3lon)FB_cL7xW2Qn+m@7dc*qZG~W}CpqDcm%=*1|(cr7l--2+ua!Al+vcfp_hhqHdvy71j|(7P46*abXaaw6+LtBUc@rOkJ& zeT(buwU$^@+`RiTpQM|>Rh$n0KHcREdik8 zczUmR@Iabpd9eES7dybd+YZ+R&+eJG5KP{;suWnSQ1VjH-FS*Ac(laTt>Bj84_SL_ z95#9~^!@?eOM?eJtFm^w)6c36^bt24*tl(UeRxsmiRaZR;FC)#Hr@>1GI1*OqC0o6 z@q5{UyKJ1wO1{_>*JDgh`~;R#-mv~U-)t>w*SF0REpdI!u#$U0(~ve+;B24Z1>k+} z!K{A-1@(FXy-G0OsA8h8H5<>KdC?L8I)aPNdkj`KS~UtBXZqqG__EYtHm><5U1j~b z%&vznxITS<^6%ig-BVaU_PSa17IceiR%~4O{=#V1fB(MN-51w;Z1wC9+VALf23(P% zuzqrJuk{`1U2m;&0NY%dmkzExcQ^#RaQOx6Zyf?34ujq-^y)isqyLo7;5CnAc7Nzt z#3}-M)52Bnfj<}P&h9HWOO8GP-Nkr#Yp`x1ho8ay#Z@ZsL<#jIuwTHA+MqgY;x=%% z-$gUYR6(-r5zYDUijz`&x1K7g;h z`V9f&ef>{?6@zVugP}o1AAlb&RvrOPz0fcdR9zc65cI#<^)&cq_pLB+=Kd#dzzVze zcK|(-W?lj>UtW;~EsfE`++P2u;Odlq{$RTuMQ?(RTW!06S4uX# z25v4^xjSfExa(h_Ly?gl;4P0QzkqA~Z}kCfLT5e!I|uHM1y6Zy`yNd38(#^m9d=#^ z_71pX3!W|!JrCSlyh~xQMxpY%!9K=y8iPmnwAv4D-B-LG*l_#6IpE-J!-{~1(sR~; zJJQbDfZtwSIvpI8v8gJ!*ym6Z_{jTN9WZLxiX~v7kh#UcC1yp}fq$6WwgbaW{3n9O zO24w;yaQdwfp?NemIFs^X}Ae2v9q!rIOqJ##o)b5`%8kOZ#>xr7QcS0IymXV`HSGw zi+9?C0XMh32EVyBJ`^0gzx=P@U%TrJ0>hG`Z-bV*xbK+rQN=K@$h_-rRoSL{v&5D`p_MCZw?4r~ zSUdVI`UNYmz5~}xf}OL&{A1wptJ6%ubBFdifp4E=v3&gY;wtN}8+JIC!1W!Q;#j#Y z9nYTwPEM?H7T3ETD$@&ey;_rvdoeHgb2iT>4y+wF+LX@vO^Y4(S^KJzxFa3*#^Wc< z2gg-T8~`p>)>(o{R&QCotg}7E#;^O){P}!NFkfGG(V^Wf*!?=td?`3@Lam>`@0VHp z2CmuKSq<)A7tQMZY1VC44_VLC9^m>f8RKh#*N$xU1&0jT^fTD8^Rhp{u%OedACAzz zXYH+}O%Ur3>IMT@zb|fL_ATtnRIv*IZ*{hP4jvt1vK4%+bz|e(iy&Xt4)!*9&f48i zHive?eQK52QDB0Jt{GTiS<2s_`GgsJz}o9F*tpVq>k~WZ5zk{;`yZC&$i@kWBbC3y z_5K+RT7%iK{5j4;uegrT4>?;+2CutSIST$@G0g~^VZK)buCAFi9z0-omGuuh-I0>e ztM7fm#=m0o*UW-mcE1pS_4AYu(-qZf}>y#*bxX##=$3WVSUJJmFYtJ(%Wd@jLi;TxZsQ@AyUsKyTbG z_Ak)3mg6q4s#)bout=E(&B1Q2DbK*(jx)A_vA!8v&?D{%8_yryfBpgbhxdorcyK9g z_Gsv*PwCo#Y!jP_qztFj#vKyb|pY4=%7x?*h)Wx?dDrrR+EY zrc|CV0UYiytr8e8aPJ_nLv&UmI57C?RnWr9xf)o)HqITaTiI#}*jA}>6WpChO91H5 zjkj?Hr*HB~0O#y*JqO-=ailzW_{ocY;FCjZegOZvI{y;5$t2|=xU0&Hwcrw)j396# zEdT&d2E{%GFK8V%fUk#C4g+s@ZqNwy%dou-jyYnY1L^U>-{J&eqB%sxNz&h_u$rLW^KXs6YR!- z-&U!W1U5IZcnVf)(76d{ViO$!I%;ok2YUsjy#z;g9&ZbJ57`#KcRgWo)y+nr0^JK+{@o!@$z*d>exE*TmihXQeo<0$0wi><8|f z#=n1kb}A(k`X6aCmV>G9GrYj7_n*`R%cb1j2bNru_71EwZG1bh-R!M#pf;`6ZZPna z#cQzr{m!kxLGS6!L3G^k4cY-7i5vI={L|H}1^CL*ZUmTYwrLBvyv(v}a9X?5O~JXf z-iL$oFgi4h`71o(BFlfF&ie3=eV(v>VOHsl4|LNjb6Ni^w$zG^GsOpYX@l!k>a5U$Rqvi)


    VMYH~1 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%0AM4*#Z4DaW#!YtwUwV2PY?wJQ4xDJ- zi=CZy|TXB`mLwlDq}I+Qd3 z5k>(~5J5#j_TZvJK}qRu=`xVC5Dc&out37VKrC>NY(mOFQb18b5Ky`serq!`=XyQo z+;`u7zw_?<rdHPhYrm;|u>Q>!N zNOj*-pi+U>jvusqxoPR{(Bd7Um9vb-owRfvTdC=zX#7qa5Bj+Lht&T0clX18jt}ZM z{O9=izp+35yN`!o%m2^u@qg?1fEV?a`T2hQ=KyF1@LvaUciDmyuF^r}Z{Lx08})a> zc|87t$rU-)ZJ2uvP+bQ2qkO`NtC8Dq+U!Zi|2jmdROBV&bT6kMa&Bek&4xE96BMWB z)HZa`(hbmVJN&5bcvmW0YQP&L!u49p7%g54mYjr}+t}I%sg&bGcYtu2KiuwOA`9j| zEnYUpyI>xIbK<&i%fXf)5BZUYkAUfdd4g#zw+X7&dIXLlc}W8@+-io z`8blPETZM(LZRkYLaUbtg_=(VEnO8x4G$($Sr5)W8CtyG;299kyuo`nJrBEU{!yaD zp8{qAn3m1WW0<3|6)d6%%rd&bBqf;aLVGI!y3q0Ounnipp?^JyyF-LM+JeC^1_B`k z|B2;Kjne853(IJ|G%VkOM>4d{mBJ~hsJI-vBlD~$+7*l2$j|Muo|(Lx$4%kAn=5wr zP)JQ$e=RcY{I&tpcEz?{xn(NxjGc_Q+b7)VJ@DhN$j#)nG5zRhhg=p#pB2gvTL*9O&830mqxL2=`707 zTBl5ocEO507Ax?sU?6|a_QBS;xnPZr`b%$lPoqygH#_iZyI}0v$zN*tI4K;}tHoy4 zxL~^_tKEk#O(GU4Wads57fkBdqE1n%MP%`$NYzI883ov|0` zm-e6P=tmTok9*z9bjFnLPhHbL$U;6kuJ!Kxac8W$=~IqC?Hp>!yU{4Z)fwCAsIKKG z%0eddX^igGa>hgkqtBQaV)FGjj0d?H z$kDfrvb-}KvCct0rop)`bW3wIkJT|pth6*_XL$7t$|w8vqK=CrhDk;xubP=gA2>K5 zTQwcAc(FRy)ZPZ<>Sku5xP&8iuX%3&E`=|suk+guUS>z^hfS5ybag9|`zWtxzTE+1 z>1>>zDPkaVwpQ@!6Vzo{Rbc+5bV%bGQBPIti0K3vLQEWkopQ)hy`I_iLBe;~iE zpCD2M1>b4rIXhsM_7Vl-yNMJZC9j^F8V=Z7w%5_~O!MfAap^}1;ttr+6%RTd$MhlB zc({^}F*#rd*)q3W`_4+fqrsON)NYSiZWCN19@?oxo_Y0ei_x!Tc36e9;`z&d zGw9nFLW_!{?J!}RjD3r5525bK53i(Y+hLxEJNGTkZACi8qrH!^+F{ za=1&GEmpD|4RjUiMsBI}ywi%d#f&q)JsA}mMD|yOIIPvS#dcSRjow>7jc9UeZRTLL z#p=r$bb~)mpmu)xnmwg9m>ExcSE+SB!W|KRsq(lD)*o>E%l^Z?NZL~_sfSuNSl_qh z3PqDesAodi%y||Ytkg&+tM~H=^7QI+?)|0Kn0s2z)yFr6(Z-#fj+V!*G4VxH<||8T zP;rv}n6j2NcJ_Qq+bhKhq%WzvVik)u=KuMb!!@a9^o(NBC+1Qs?Bc^WJJ=F`pw@?~ zHvTwfg>f=&V7$TGh(2sxT3V@Tg++0S9F{bhMSuJ_oBW8`3iFf`T=RTx9&uQv@gT9p z5?dN}_nP?H8f0IaG*kF7ON$QDqLX&XKDx}7SaGJ9 zS>T!>bUhd8sBDP^*4m|*@gZskIbzk+wDgz-)(y@`DF{uWZe=CDGa44yq=lhkW$Oe& zu5Q09T_p9JTKq@UM8J>~#bl1DWK$fjzMDkXJ#bO*cxi@RR^9ux+jGz zUz?BzX{WqLkL4u#&&J?eJG*NdnjBa>hLvRxQB3%Ihgi~Lm8<5%j!%LqY0+`?)cd7#%}aoaazHmVqMMn;i_z<}FWkr6fzQqFv6~J^O#sNPa}NmlP~Nm zGQ=Jae!p?RV;+@K$?tbQY>0^+5uoIW4j`$H%qNZ23^AplLl;BK$5CE>Usp8-LoCug zzdUb!Gs0Uv6}7R*09#CW&RTeV6jc_!^@()Y0OO3c#yIv4pc{ks9pq6nz$nZ&Z@Vn0mJmK@+qkJ0DW>F}I?A{U)1OKnkUP|kYLC4saXq4s6;&P|osq0Z6*Pn+bQ$%r zS|1}H^HTSi9i`XhQ+{s!TI^Kli(H6ix^9!5QE^=Y{$1n#dWmg;zSV*k0&Wmr*hm_C z4jvu}v4?fB_p)T!!Mb>&1~$9+OL~z`1hVGG4cE{pb*!;F!mz-s8X4IA zLd=7xj%n2FBd+`U72TXaYriK-4SU3AzT8=>0|}LP644;4VdAD+njR;&q4qgFR-2+! zv5MZ-r;O&qGN3}5@Tw%lt5I$Ru63- zayrq2oc{PWvxNvSaHZz0;DuOZ*K%pGBI0&fXP?B*JJS zgLy3_8=ZW?eX5zT1si|O#_ld$gN$f-a+DL~G3Q_&Zrj?AXlh;GiN}P^SZ;Hgt{bTc zjde|Ay+PQ7eXAtq}@Z*Aw`1qC1E|bU6%Pxc5FEk{56;PHbDw|_j-6#==p2(@Y+bGc*0t& z>d=b}LPaIg@4uh%AYlzQWpe0pO87HmbAB>|GeH~^INhN%fEJ?Fi#mvggw@#Fcbd{o z%@2`1Hl{=s0tp*42FFi)dW$@>tspuQgt6pV{X63)ULZWoB%%&M0ONe3yjx2@5f#3d zN!UbKf^FfQU%RtC2Ql4aN+1zH{z?GqBr0_qQnVom>RRkX?A@bG}v@0frmiA zIIiqhSnZgBT9`7!HERd*?cTmwy?W0@6rV@`Y|`#5#;L`HX35Uv?G`OQm$ zfd>T{iB*+odq6I;+59@7wzxQ|?%r#}kVAr%JTDCj8=t>_f3+MHzgod2IxhpNVn5$! zU-J-oCa%Ibd>VOJps76?!=7607a}M)0$iAfaapQAa0huGp_nk}@B0!nrZJAR5V#Bqgl)M^bx?#_SvN=VtcjX-) z^BfF4+0(M@{@gb3P`}}J+4%FA7Y5`3>R^b{z_JICbEnwt*LcW3h3(9%o3}a)MHb_hOwuCD_7d_TGs$DRv4Qd%`%&e!n z(I}bIi*AMKfF&%a-rpbliuie&8ph4)0AfvC%g{&_N=e?mY+slzuz%ox>sf*kQu#d8 z%6e88$kZ*rUgy(|EPnloq!zXVTw*MC)8&1Qes~q=Dml9Y?6&xzDY3d1Nyr217lrKv za$2WJ=TAIEuO_Gk49x5V!gJfD^*@#%x(;EAb)kA7w#lq_-lrWI6c`MDHlqio3BxQV zB|XS@$~Dd8P<`<9j1#|MO)GL(FZxvIj6U#P9#a3^sS9N*%QChN-31nZTYJ&E=_^t$ zz4$Vi*#(~Ej%IXqRU_;ncO6NgyMdNe>a|)Zt&6Ta`)@G7L?oFWZQtU z0XVSLL-=y}2Slm+$fqx12EguKFvpnU7@FZwr~2-N0pPJ3(5%=wi}df%a?PJL09QuQ zy(Y{r(1&Y2?6{|F2z=+Z+Pj=;LyiT-_g@Y(1jVTNU~2g+!t~g~B=&_N02`c4H{SS+ z7CXBhJTPkriUL1w&}C~u%~+ysU6qZ%cKH}q_1n{kslXdXlQ1J-G&A)>W2^+(CA8H; z^@S0*-kF)MK0bujoGdxBVb%y>LfzKK$Lmo4o{*pw%Ell}w^_H%V;Idv_Xx3t8G{`U z*C_bf&Y+tQT11XejKR&|xX8mN=TNWoBbhBT#-L+w)fGX>7NnO_f9eg{1WZK61)rXr zM7FCLY|afe0h*#JI?7iX(Dp~eNof=lpcC_4Hh1+1>U6fC;LMB(=-SCNQn-E?QL%h> z^B~z2u*HiH-Cf^_PM>bvmG;Ul`! z>w z5S*Cml`%Mjs1}5;P(;l^_{?M0sOlkved!ua(P?wAwf6a{62X_q1-H# zgZEQ<9UM(PAr|1u7I351cm_>$&{eN}ZUMNTyua^PG=Q`!quzN_7GPt`$q?rygJ|rO zz4>(|ORy<_v3BS8AIQWqgz;F2B{+CY^usFc8RQJ#4xhcxEkULEIR+zv5j4x|Ow#Tt zOK>>);fABfhR_G;Y{%r4tiXC9aWTJxKhTM7d2)gwR^X{2v;D`$LG)`@%9YtXE8zcT z%_+Y0A87eOth{y73e1G6$*q{^L>a}FJt^5{4O-;~tL=K4knS}Z4z~|lgRu6y_m&vV!b0?K^1=uD|D8k^68G;ncg`Wwgx(Y!diJ=HdT}Ogs`v z*mBSY)_2j-S0G zyztU|xWAS@(X4!Nz!sF{NyNTf-;ZwJ*+IUZYYSf7oXeE-oug z+YA$SAg9eZwQb!TvNWbuZ*YY@(2%>Cwl?$|>iTf8L@Qzs;xFDS^snJ2v#MHtsOX%pOdRK?3^g!mUq|hM-*Zcu z5w3A`GO|A6%tw3hgsCgU<#i8g|E?@CY}y{^^9L`N{XB;hGc=#|THyfPcDy<(QpZGj zZpr6qg*bqfB)%PsV0&AZd5Z6_asai8YWiUYbI99$9WN9QIRGgw6_x;oIYjXJQ3c7% z4!~m1T82kEnh-0J*4d?~12|+=EWANv9$oic>NVp>2XGo2<2%#GND(mE{B3Z`0bF(n zJ7jmClZ>Urm2#jm&c(QXIpb?+MgHTIHuv5eMmG&|? z@zu-cx*g&Ox)525I5#4h;Yw&sLb4-Rsj02bC*6-Wa@e;YdF}`(`_prtSxqCgjqalU z9~?pZYV(lRcxFnJ<|QTDDMvuu$Y=a*XaEg}@7}Ug$O(M516+?!6DgY~U3e9hoPgpq z$Lac2>|}W7`BvQ02}G_q_~iK*k!-uV(w#TN32ar1Nu7}TjI=mV+GmrTz_9N?m5vk( z#py-0%8xuJzixK<@kyCwtt&8CWmfSkuG7N_n>A;v4^i z&S2j-+ODj?P1cYs*0o7;1~+q7W8WIaP+lXUn>u;UVC%X$XOEs9D*(&BSNIwY#Re*MaQzwBZ@9Si&4=O{?&lo zss^rnF?Rua{24Fnp0QKL<Y3{toi7vqX@i|kT!470eL+_%4!DAfHlrf< zW(LZ^wpE*%5?z6+0_S5+rA}1$t`aAs+lM_o%$J>(|(-c|nudc@qdc;2ZKJHE?uU~$xrJ@eA30Y$0AZAEj@zTHO zw0|Ae?^CiwZ(5O3)>SX|Sg;N|7kF4b=c7I4=*G?ajf!fq(lZ?2B<}@~m-FWDbMvgl z&Kx_^H6U(GZnv&&9b8h2H5Y$lPkJ9nHaXuMI*?z3ov?3=xF>UfeD0$>ucJo|CY^ot z(-c=Yr7oAtTXRVb#*x`A^gYCva?#V$DG95_#LkHy?Ur&N2TtF8ZS7f&ZDD`B_J!|0 zN@%;};WNvtv9qN_JEabLa+{-ro6O59tdG~`YMG-U#nD{fUeUh_Q#`w?ciG2K%GuI2 zd+v)=VP7|`dl7$Fm3;8gBQN2kci4@{Nmm0`UrNV(bNju~N-Tw~>{Cvx0hy1dbDqn% z5>t~KQMH#;qo~BxWh*~?i{*Ju>aI++q#Uw!8B*YRi{0=S7hlKXO7Z6&D4q6wgJqFjp^S${zz$yE4i&HmfU;(6~-9w{p!>! zPl|H_8|%xl3asDF)?Uz3of1JDZ??3oz?4I#SxeLmDW~QXyC3A2V=5s@Pj6Y8Qi{?H zT?)m@v8YbY&h=ujfAlntosKEPh&k`N$0lqkl)b?x`36ccuVo@d7N6b8O8lqtcbS!9 zy(=6?2IQ5=Im#xUDp(2DIlfr$@#re@=_je}-y}=0S*vY_6NDtm4o@~8Q9k<;+cGGp zYhQ0bezP_yLvy+q+f!wd))DPZUKYPJd&Z?0yQh(t!CPlWQHnag$f3FjvzxRWN=q^! zGZg7c`70M;9xIt0qS{=^QsZLb(sv56@cx{pK_5Lbb^Hox<7Yr-Rl4>h@mK-231dhi zGpyNg+l680&)cmUsjwuIcsY)2E6c~g;sa+VrFW2TXdQKuy!iqXlneBqBAQUd zc2bDuCny+;Te9hEMN5jX)xFc@dr|CqhH!5a=-u!u)>jJn_zIcS$J$_QV@3uB2W4U%Z)14e_JWcj= z?NS@Eo2gbca_J#9b~n@Qh^aQMz1g((+K@wYSqe7(xQ}@~eRh7PU7h?U=hNH3*LShH zeggBf&Mxu{&vez${X5tvjt!5IEm9QqN7t9!xo`_pzG1)b`$;8=Ia)V#Av6|l1; zuBt-$(I!)O-!&Zz=id?G`$>-s1WwBi8{NQ`SvZ^<*VZL#XmrNdsHR}6w+63#$E-&g zy0fIG#_0-n{KfH1xfU`RdsV(xLN^g}n-XM^5mY7@E=rWRz3BpWPL;6j!COVLw)uJU zJ*0R{v~$_fGohO(cW#_W(-A*`rLafvFWbpO@&9}xcqvaLR#myY&e3%VWy?u(3uZPy zZ2#7=Q%(t@l%Jmk;PwK}hc`F|e1UOoX1&m126BuWkEc{i1i(c6+n#AuqWd|b?6jMs z!KyE{(fho4Dea6i*|!SfK&o0o$vHUzN^pjjdV1w~Agm-EZ~2;svf^Pq>x#TffG4Bv zF2mC;l*F?SBnz%z2JYooS9{zaKna@0BSg@a2wO4)VG&Eu!_w90n)pqt-t9}W|}vRnFrkj3Fi*oBA-?zcej;u z9kIR*hB%EPxh!{+F@Hh-Pik2piHZM8aNc%`5$DHPPsw{gd)91IN!u!NrXz2G9LEFj z_PLeyCOaLne|zGV#Ncd@t4ZFRu~>)P8j{wx)#V}hu)e4(?WzK0`4SG=F>Z#;!(js^6jHeeOB9&2=+&M9qSn+M6w1egFll z!Z!_^iYAfO%dFx|Y$@QOLsb9r_gly|kG$UVtG@tK@hdNWiZ>&73`zO0O6CJcq6p!@ z(ybI~e_*u!FejrwK5jhQg8{EcQAwUbrW7BGSA0v|3P6%`Zn*OzQ?kXGs?hL;0&rI@ z-nKczgM3%b?dUP>LckiKv^{F=UUG_?Y`xU8LJ;&eK%U`<3Hh}phoJA8B5>kbH2#X~w@8qzF84eBEI~mMZPZ zF8Wdomh&`r-g;z75ea+kC9VGwoDkh^GB)Bt{$`pyy!H7@u*a>K5*6c0R(zb=_H9iG zP+F`VJFn$NIZjG!QaoP*-ZjMDS#7h2Qg{BQpWJ*2@bR6Q;wrVG7~Ts|d%L$3k-X}h<{az0I+%gOsJzOY{_l#Vz zG^zk=Htbrd7w=6zG99*ID_Q{-Z6}Df1-p=)o_rOhh`j=*l0ve16?DmhvL|MGPQC)& z+fJQTIAu#2#v*rB48H=$1f7T9B^p!GpTu1=w0aFvS_PXUZg`U4pOOhWUi2E6az|@) z&X|x31x}f|uX_VLr_&Vsl-($+latHF0>k+Z@Sf z(cPY_tlt6^{csEQc2{y(PgV-0@GY2mnkZNz?@rr)Drx(V7RBE3juFGDN^rRx+osf_ zMcHc6{QBNNC0Jav_@csbXR^YfoqIS;-vNbF#942<^}&^pUjn+m1XT#4VEjM$lBhqp6n}DC$l)Q8faIyXIIxABu^)K6egBe0}bJMsnTz9 zl;ImX*XAdx0qf31$zQIAQd|$dn^s*{10JkR$hP&}Pf^T1WQnV}N^*HMpib)8?3088l#MG}pMUMD0h2Fm^WKgepd3>*sqh!5 z1qUCo>%9@$LNN_XO#Y-@3nm2F&GkMxQ>+>>$2I$FL1!3mar=E(th*!aXF?s;9YsxewyM(S<=NM)xW6@FjiRlZ%hiH z6xj+Foph)JE8q3J{j3&2u4Y$>WQnf>&HD#ci|0KksR#C7w9Bsp%27;Kk1QN1dl~FE zUFxX=w$1ySqNRc;G7~b<_k`*}o9Xq!kaOx}r6(B>>(+edbZyd78S`Ha~aqC4^$kIXCh;fbq zK#14%=!C5GJ!0Gd`6>RBav3BxWVZGhNXMYi=NBPWY^`n{!`)Gq7lI+(KOKy6 zf$aCs^D%`?+%9OX2}x8>(%l02Dtw!Q1mwBFN%5tSIl{f_`C~|-$)a27klU6WyL17v-_`B-QOJ)!Jc5HDucn@Ic808t zeP?U}DU!KKT?2B(@RLpQkY4^4tHmMjkyi38fs7;&8JHlC@GuVzvkrhg2J61IL0-bV zYic3C+0+yjLw=Pqd-MoWYRybq8l>Is!VBjiMKUvw9f4$%y1OqB68%u^<^WW*qATl_@%A&nBuco`u_gKZgySq6Yj#Iez@kZW_^bk;zQ zEtdaK1nGJXeUk$z0GzNJkXiiFIp-krx%o2=Lk@0Qkr)8k9;$xQ5pqlK$#5gcBS%L3 z)gb*qn9C-}MA90I)sWZL^y~3KiWoMkFhD-P-YP%DJOFt4IM;oJEWBy5vIf%AKA*P; z@*bkYk^{MR+t5@heEN1?5dEeZ1h)sP=|dU_N>x~?3z zdkDFTGi^^Q=n`ez|;ZL`vdf_!w)4e^Kcsyn~Q0WwIpWt}0UN2A^6-Wt>>>F~B`(tgd zkRapp*C+5m@-nZ8CqO3Jtcx9BfaifSv!gALO6r;6Rgf3nEjd^K8R(T3m<@SA(8wnR zQtds-BOcQK2Dfu0WJZ{XogZYFo4%zzWU}2AQv;kXoQ5ipq6d@pzEysZc}Z#__K@>x=T;a%N{$c(RUoVGo?Rvfne3&ygaj$RnU{|Tl7~Qq z+W?rU;o%w}41ky{l|?O(W-;*`RglbH1oi?*dE$oJGp$YE{PEPKc)MVH4akTHuH^GT4cFI&n8km|N`)h$!~ps&%Yxd2jJezGG4 zQo{HBU?k+mnBf_F$e1VtHdRP(vtIsHkRlwfM2V1}5<8?@C;P#726e?k$Ya`HG*Th^ zT~Na)$h|fVwhoZ;GMl|rA>->R53YjDH@Xu|gq+JPx!5|<56)JR(hDJO1VDlYlSzrjl%RR1GS4G+19aJr$IK1efB#7S#@mW zm=oltdfm(FkSgt;v&A5hoJXaMkdE8So7+ZUd!mJhiy@WIWV5G31{xeC9fkbx_L71# z`-E zy9zDH?pr@P)<9OgdcwpCIeo5Rb>{#aX9A~c8Kgb`MZ24j%U;=rM?kWT!F#P_~_uroM9y8?2xALHKJkW!3gr(z&8WL`b+fUN6VRI3X) zp&2)}4$@?kp%4e;x<^LafAsc)+_LkIuOKyimqg!zGG}hB9;5)Vv{Y3cm5why0qN zeo+Q8B5NvtF=UbAU{~*te(*zElD`s?+;~O#KIC|pq5By~`-58NeITEm2+7|C36}MJ z-vGI7Rq9f1$gW%GRr|m9gEMzayx&23ODiNlfGid7Dvg8ubg6OJ7m|9u{@ZtafN?cB zbqp+bk6Pv)H3lYE8}99K7z56$I4#Q6#(;_=asQOq7+_guZXd-w20E8kBQF`tScc6h;SPP z+n8lbSp;j zD@F|i9oEmor#*&2;Q{GsVWVM?Lou^zR~iNwkMxcUi zcNR#r41tvOQTo#rLqJ8Ec#rAv5V*$IzE1Vp5a7=~!Iynv2yBsz$~6ca0)yuw{Z`u! z(f-#z1iny`5A2a20tcp7MLiQ80!;;Oi?lh1fS+h#7}NM52+9RW|JOmVGU~=XmUn|- zU9XnP4s;MC91?QKyEzE1+&C3!d|?pq2}JPOIy#6z( z!VS&?ZAG7)m4owlCWa^#67*j%f14MOT14Te9}KY05F-lu0pAqyj&LfxZcjvsPDH`; z!N-)lJWlYqQQL9NMFYAy#5Bev;Q3oLbfAzG&JWILPLzG`0|hZ1brh`D4F$vK%wS?XO;Q@^?eJ-79!mGK;*vu zK5xJ13F(56TI_#z}Z$?=11v0KrMFKa?Qye+It^8;JEJM z>I>#QU|^z{7zdz#%7$%E*7Sguf+$8-t{!mm^zptUqupSfdL3if~D^)cPNQVQ0u>?K0?}LWJ87(6pK7;+dZB zK*rs3`SphHfFZSgS9Q^M@PWtlhxq;PwD(rNgZY9pi)D{}2LZW@CffbJgZum2I8p2G zpym7fnQWc!pkw{zh*J6QVBOa$-D%QyP#;g^+r9WZm=d@WS2)=PfWlyiQAZc36_7hk ztnC6y^Nx{~SQof6?8%*Xw+mc}A&wO!b%7n(Sp(mWcY(Zf1r*7kE+BB+0d8IJe?A9_ z2)nz$r~I6dOXMz)l75)DLkfm3m@dE~U>`|j=>jSd#98K%POx&frJ=;vPB6k8rfOH! z2||e*&OOTS1jRiqY^(2ef|J{xdfvI*3ChzCMCrwLg2koDyle+M!Nc3~?agkTz&n^& z^lDEhpuWG;2~N+cmJG;u0?KEth_&LKfIakz_W}M+;1|Vd-NMibmfH_4vmfe!*CBP! z@zxIDP#(1=v$_K;_bOcGRoDTPh0-{5A9euhd7Az{lAJpA3@%qpr9m<6{T-}-+roQG z80`$NqG7cC3*TT7_{{h^!C9*eSe##dL0q>6oL@-r4O}lhP{p2H3?3Xfv$Dkh4PctO z1mEasqFpDlah0yn_^HxJdk>0Ue!L3R-<}q3Pm52Yxp`<*p~Z`&)|-i%3jZel%?fSw z^9H=h_>cKZdI0ZlhF^pcy8kP|hwNV!nDoD8@H+l0_59ze-|rjKLOU)Zf1w=BtwLkG zGBvFMjgd5}&`9_bch$oCi3CDCjrKIk(Kvum^DUq;l12j>v;V}OMDvfQ(Vj**8hL1J zS$I$K_wD}G=hx#GJ{wsu@FCHHSwf=#jlwjNXe9iv8F5&W92C3*aUGNYsu6$*Nl?~8 z!Shpuq5|c=no%*s+@E0QSK~RPA-!XVz!cbO0Spx-sp%Twe9t!^Q zE51XjLHTFRik~9l$|R+s;Q4Kag1@|p*YS5Z7trsYHT3*8!310XK_YrT(c6dDi{8GU z>-B4Xc$@LDR)KHsx>IV+JQ0`Y7JwD*j`-|~Y?laSO6Oi2!|uDI6WgQP&0AgHh37xxS#dAYa- zE$BV_IXDRFd0WU0>Wqh~MWNa#Zx?T0s7s8d018(FC*c)L!j*{y5_anw*cq$qXlj`1 z;mVAmN-`&c^FgT34bm;x!x<`ocL)yhU5KY)u}f7Ss>sIE?9wzg(bQP5>Z_XDsj8dk z?$NZ<)7+z}XT0ERqGP0~s$r+6tFLQ9O<}5UNA)x&XyaMHCfKQJY3c6LHL+NTVWz5U zVrQ^hPgmUn>fpiEp+c=|aE)Kcg#^Y1y1UeOn?eoRP^}Z*9WHdsL0SY8RrQ_5x|X!$2`bg~@DBFIcSN|` zdEyoOX>`0C0^Al<=faqQ2LquxKiB|oxO5ALmxrSpREVcUA`nu`hvwf^49z32hUWLb zhI&7tSVQ|8D6G&9pyWbX@n&dV7m5#*&rn3(4$T`uxd>$zic{s#d?ggdcTo2vlv*f} zFz>%Ywp0zxyFsyq^_GHs4&^?SOena!pzQC(6Z$zoxk?LvTr)I(i6$luRQt>KL-UWJ zq(eCcB@~Jm6g)02^3c8n%1AxbT?yqSlnYRtp-}3mdEj}4Li?|R`~MvFvz;DS;}6o& z!^B~j2`uN|DKoGR|4w0o<^Mb7Xf1V&nP|kv5Z{LyX!{X;fBFxp{qk4zLmfQ+?4gK2 z*$PD!iV2jD@VtY|6L^diK*8;AARC~3h0;s&n}Fnm@jao0Ly3d#8&KZBF>QkT*IOt> zP;hrN%;RTah4F5~u&1=}vvBxZAz??^{8fI6!v-gX^f=_7{1x#@Ae_wM zdGf$XVF4s=H-P>sKiNsp4zvC{fA^o_z@Xpa<8wn26g)m|NKo)Raeoz>9lkI6n?JPv z=8xO)czAr=MB-ogNs&e}>8dnp-ZO>dvRR|0-tF%KbC`Rprw2HHf3O^Up|+_gC@H z%BB1NRprw2U3;3^{y!t>A~ighM!K8MwhPqozlwweYW^xT(%p3aRprw2rI+LPZz@0X z61Dy2G!kgzK=-Gg=L4JwvVH-+PO^b6Uaqp<4t{}9LHYq1C^Ublh2AG9kRa<4N4p+0ToW{lT(kf5G}?oFr+&lFbC5V_@aJpN)f+gOihm zjg?~&7yiWX&kcP(LFcbA|IGi_c>k(9euMG9n)JVw4vv$mo*qF@b(i+vrEBT7TX5T- zwO?StIT|lhnG#1OiN=LU@GCNb>QA^tWdV(mi8TKt8fp0u{={%WfBbo<4-`HqGEit! zPW%vCcuu;A=7*03Ha6=b#1q9-0q6)y9o46$E}7H_(XJ;b((C z$HmRUL=|%Jf{R*L+=|x?H~2Z>9~why|B{TTRH2bzLhE-LNv2dcJui8hTZKk@8dGR| zOk)9!^mM-xKVRX3n_o%wrGDf6gA3mGcwgXsO;3xv>4N+JGlIvbr~j|`&*X>4q1WM` z;jd-V>w}Y?7qtG?7J9qs;dmHs=;KUv{r&g98us_OP+k8huYVN(*S^EYknZ=ho!%~Z z8T(W7uZI0mhW{w9e-!`MaihEOYbD)|ADei4=)bklNpCkE54Yon-fntYI;o-5Z@M3y zcpAE$PI`Vnr^D^^GU>$kBf6bluRkN6{?Eex**yL%J>G_&1wW6`-FV(~LoerN{v7XT z|6lER9>4n0-FO~!`>&*z{b%X%HsNV-^K06F){P%ec-&vE546jK48CSC{-ciSE@NFg z^UWLNWj1cxivM=|tNGu$K9Xu_*NIjdKT^4SyUjwC{%T4D;vXf6VEmUri9prBK$ie~ zy;PFDM4%+?m#YmN68L5M?~Li+=8-M|0lonn@B_E&PAV|KIujPwVr~rq}&1`az5q&izX~R+^j6ESh`#mw45`xQipG{T}-Nne=+l z$3dT#|4Mo}zts1i?Vta|`~P#C(8uS0t3T=c>(A#F+&(@(K2L}wM2^p|hBsB53vS$x z`XNLL5G3J$ZFmSmgjpC5kF^y4Pf+A<`7rz!h64|0X5ixfHQplJgYj42f9ziTcfm}5 z=lb_Jh%BsZ?3};##_udd0tbN;-qkE7aKT47Y*29bq6IfxmKV;6Sl~S#?vMZfifZGA zv$CH<@X$rS`28*2-_rlCaOlATXCVwQUpz-HIF7vVE|;IM1digeUuq)+pDR)8#r;bN zUiam{`2DRF^w!}2g!*H{3EPa%hJHUM$M39vZtEZ2?+{@hG5+*nfH@JNn{Mzn{n3XI zIX^E5)B1S@!{wXcB6L(sApNh7)b#i~4ZpW8u%pg*T4};=bh{I1nd&P4{((bo?%PK$kO!i(|93;zC*{wAY*L~Xga|{ zoNqpQ+5!)`t{5hbVH(5bZvgX^`^#X*`<7?2A@6se0IF!ZoF9UEo;@tTqg5Q1%ak-miJG(46UV@j+Zq@Huw6BRQ5O9jT=*k=XVACiyp)Y zuNk+1q5aKT7vp>{CD>ewRmyD=5-H|qeyOEx)^VY5UrhPIC&3y>;KW)ib>*E^wcGuE zyps@FEi06>VcL*lv%59nZf_cP-|WgJWB-}Xi!3w6;)1u2**e)xww#I2X}_0sUMkR) z-+I691um<6kGl`l1EVNO*;*@aYU*6_xWO2heTrX{Gxkz!)~P1Nn!>uJ@=o~wi2tt` z;(*|~0BNgHt5u;s$FCQOMDG$#Iw4fDbV~`x5+RW=J;BEHZ@4t7x%%W?W2U`Y!$il_ zMZ%6$UcVx}Qmo8$yI6yLv&+dp8t~r_0FGWm|=KrY{D2 z&S?uZ$3!+oW@NmGJiL~a?8@D}FQ(ID|$r% z2n|V4S+dl!ciJdPL*y}kF?+{@W$Ba~qKA10A3O6+2UR>joAtiz{g!#1GwLq{HC*;& zzT`2rb>FIIy7|&^-K@D)FBY%Vog=%Z%Ou{^`|(mfx4X!-W#_w8ylH5Md)*0@m+ z6L|H7&^}|qs-$;2i>`g%R=IC+)Wdwgz8=#J2kj^7cV6`#oj!hI`iNyee~EgWN_xy@ zpnkA+%6jCDxz>ct#P$elRe`Rh>qe}VPfFTp>uzssE}7buCA75D^VHk@VMs8?W41{Sv8{=xB;~lj`Ae?8@ct{?%8s?)$1|<_ zhRAsiE2I;;d4+Ry5>j7FSDN^b%gg2G9}-Mk^X=}swo^4hJ3iMNH$QpQ_50cMzk475 zPx=489v~LDNuAymP}dnUcP3sWd1ARLTfd26i-{rnkbhm5r$NBObE+Z z@`}v=wm0{@?NZGmVT%I!P?7KtVmhIfdZH`4QcqqE{(`;d$yaSVaQ{nDj+-Y@C_;?; zZC1W=ki^~x4IPhOMRILeB6;?r1Fw$Qdg3KQ^x?^!ua90?HgQUp`9xjECwGVC{1j$( z&Uw`ZDM)u(m2Jr z=9HXWn(TRs(FxyQ^66 zmw%FTDKoe*&*1JktJh>^$Ci1AOPg+~8U6V3@zs&;@q1T0J^D!Gx z_TBVaJ{CK@zx#4(&*#DC=lGsEJvdpu<@2ey?)2~V3au&5k5#(fR!6@;&Z*5i#=RYm zU$bFZvn~6I>*W?Uv$sT*gB1O+#=XzZn zr?d3^d_LdL|NHxXKUY0G&vk!YXJ==(*IA+8hVV7Jp6s`_VbfP?-QMuFI-RcTa$sEi zJCA&@FY~E2zN;II%gsIY#({~ij6RuuChN(!#{6>Pj&ZB@{QBIm1s8T6@#*kUrLR96 zHa@fI*vIC7T)5}L;@LCbTd_B2WWc*^KCJ%9Cf~a6eDLY&al@K*IDGSKCu0s)n$|EN z;pFTQ7aRAxb#|Ri?QcCaHa@TH+*OagvgOWW^Y8n;?9oqd-a5Te%Wvn0Z>iL3{O;U~ z;c1WO`jja>aN(!7yxC&aiB9FZHhQCP>-U`dJ~_H*`95Qj+wS)Cyx5ANS#!rsdt&<3yPp1S&dyb>jU}?cO=i32M(*y=B74y@;TIf_-1pA@PQ&W%{v&ACvRk4a z3A?t%Q#X_<9~e2{i}KUDHedDKt2aOHxBihw{h~fx7?jYkUEu>A#&n+c!_wIq$-6(= z=-a1J%K8dPr~G>ldgpBK>0d8+`04pyz4~06oqGm1>({T&+UnnZyX&Vj*UxQS5bbj= zY-*(``R{Hi@kgb5NA5g)rp3mWwv8m9YC@TP|M4=Vd+=*5YD z1a;z%#XZ%f<{y2JO!&OgXO0aQX8CmKwr=7054Rpko4;{c>x>hVZhp~`(XRQ)WsMFc z7u6a5$CP$wSC-oU#HhDF*t=#x*w9`6snxQ(m!Dbswa|q9O+FsiVR`z~*++jHlDo9# zq!ST6p8aaQqw!bMN+0Ok@?8H9g4XVeZgaX!)JxCrX-|}2yB?x?l*`nQ^e)~QqQT-im5AK&HIwM6}Z_`i61 zw7+z+zf`lw?V4{Gn0cP_D=^J`?Pz}1YzBLI^W7-(6`lF{sTu6)=Gwkyu)p54KTS0k zPS^*vf=4)eQnLO-I{&}-+Zl&?DUxQoa~I8w1jL&y|k3n`uxl9WZAoQG-%Mk zStrfOFI3%^nZj?Kr6zIR+z{7QPv)1rT)%k5GWOlzT0TYBgw+YF?abl#xV$c?Kox!eRP~6hwPO$ou+D7w-^{}Q7O14_u z`Pk=ex47m0+39tQxnKXcpa0IGe|`V|-SfZN{cpehueO}$eEaQg*K__qJ3d3_e`0`j zKiH3huLfD;fA{?V*~fofy?^yp?entF+pazRpKVi}_y4Qs|DK+Qj;M9@{L)vgqUp)1 ze~R_?%o<|#fBO0R=y>h7yInp7Fh5x1Bm1=_9i_@RuJN@8Em4hM)2>vhl6heT^V2Sd z8_hoz?awr-IVxYz{Ib_qcU)KXrW>l1bKH0fztnkYzFF992$|L*k{@DMf^*Ix_`qXte#qA)&Bf%x#oL*{ulnTwVeI_`_F#<=lTBIGc>q!jO${;n8>IuT_d>6 z$aTqJcJ?So2WxN!^MXX#nQ;k8ZJnCbp+nhAb9-4Y(ZnT`muHuCG)hSD_>C?1d*jcy z?dOMpZ0me?=>68df9%hX3zKyJ>G{o(dgc9NKfh&USOX*R79xtnq-mPd-r5L*W%_i$~4}7Xi{8;GcB`2tvZRd zI+ks3Ubic&V_8T0CT51YF~aqtYEE4#+@V%e7IOq;CZ)wW>m;@<>(EPDxn66{^~q8P zXPu@2Ic0g_GS_#R|2!iqJv%PdSuZ6mA=TeGf+vLfY-U7UuIo0J3lHJCkSwRYnM*V5 z4Y_8dvV-Kzq@;TF+wx6t>$T1@(o@p7zWGnn%{g&2)fpA@@B7>w|B)dJfJ-0oAZpz%HSiH>oWBY zwOq&QvCx%EjNnB9%#T?-7IIv1=>Nk`^U5>$htIJ+FN0v-BU}#<>p6-CM^ciL7a6?# ze#5&KZ)6_e){m?_-&Zfan>g#GrDw81{bcJemNVPaQv8;w>$%bEeqHxRDP~D#9?Yogzro6oT zUmwBWSk7sFE*j6%*>GOLVOS0?M3~64fOQvIt2~hzhjLbecNhifz{)hKG|cwy_{$LwcPYCto5hwvD#0~P?u}|9@SUV z1Jr9ZJwtV!H2>J2yPKaI+dq$XuYUjiQrtiHH@7cpj$Qlb$#(Nro-K-9b+#yQ_1Pll zn`et0Yt9xGqG0XWqWpDdi}K!L{(9!W&HN3_e~0-fC^%bm>W#BSe)(sM!k<4|G=0I@ zq8%?V{vzXx7=MZJ#f&du{1wKRGX5&#uQ9%y@z>85Wjx0|K0I5r90k~cLY#tQE6c)( z00bf&vB*Fk9!EY3Pzc9IERR6MA`kf}Kp`C4n2$ijA`iu zz0Z6EV8LSI*Bk!ZJUxol{Kzk>#-CB-_FAA6O34Pp}L!jB1Y!|OSVZ9>7 zd3Ej#Yy6nn<4J3Lu6kY_Fw>geL(84j`m;2CSPjwgv(&R{wAK&Na;LTa42>UDgSGq& z^|TtH^@FwCNv%Ik;|J7^T7H^(QVrAk9ktvstv^NM`_#5teu{cb?VIeY z^=oOl?OH!g;~Uf(T0TwPuKH{J8d`3v)*q(vb!s&&KTO@KHqiRjwA^N`pRDoKY85S? ztZr88YW*r&Zll(Z*Z2yxqLz$O?enl;}LF*6J_%gMEmLIHcP-|%Y3R><>t>0JU zFR9mR`M&C#>P=ezS}nI+>xXMRUv+5taCN!rr}Z87a^}gHq1sc{^Gbo{f2$U%KdYzI zN?P7eU8L#D)z8!&>I-VVT1x9V)N$%YwahH*cWk_b zwbRqq{KwS&>L~5^ZPiEn>8Z|E52*FDzby4#wT$)?rRJ+Ys%^Eu$?6wsw)VS5EmFH_ ze>2p*>h0QJnz~-~(SCZX@LmfGJ#>P|IX`+Gw@uLf&>kEy%V8rolq`lec>_R#)j zso$vq+TS?!V|AGJw@m#-?V$ZlRzFd1)_xMz73z7ltM>PVTBtVE{zj==)FkciW%ZQW zTKjuQ-KtjBeqz*D)nC*=?Qg33rCL|}%U0i0W3|79>T$KX_BT#_U%g)Y8K5p!PpR#+ zze(zDwWju$u5M5VYJbnEhgE;=ZT>nG+Ex2|QvFh` ztNmrF@2cgrzX9sYYKZnXN!_ki(SG98#p-FbgZB5R`k7io`x~aNReiL-2=#fjqxScJ zx>>ED{q$G!)njT)?e8J=Bejb57q7mqUQl~zzfY^D%JTXL*Zo@LhX4d39I?ni9`aFu zLO9C(TI56^B9VdVSdJYy1;6ra3*pE>K6b!Sf$50FbQHkh!*WiGpjG4+rvDH_&4k=rMTwc-k4>oON4rysg+yYmT)o+ib^ic3}IRIL<)!70hvV zVZU8D&Ti}@l=JGryrxX^<90>1aU<*A#5y;#>@6&FE9ZL~+pNj9Zf6^HSoaQ&u|E51 z$UYh~?|P<>WPUEUN3+gY)*Z(-cwGs<@oaMf+kTjROk!V;u+F2b`xx7JoNYb9^lX+1 zXFm~4i(=Vmw$Yz?1DSUZ+lpoT@vNK3HixjE6t*#(ZKtun41_Vibzj%#9dp#>>K3(7 zJ*S?!(^`J0#vSdfaioT6t_-4j484qSWnDIi! zr!$_%cn0IE7>{GTDdSBUZ~E1*MX#gj0g9$yQv?sMj@Dy%yTRakcxs<7@X)Mee(2w~mb7|HroSa&uWvi|P|+xVSrjA8xXF^2Vj#~9YX zj&+|wL)Lu@16luflPZUUgtXqg!)-6OV>z_g%>-({8J_1>{5c%KXdmP1a z{D2?v6Mn`o_!Yn5cl?1OlsH%9Jj8ZOpDPL|bB^bRb4AO`pDQ|bJ>wM_ugrKA#;Y=Z z3*)ykejDR88L!QF-E&3Z*PJW5|0C=1uvHzl%^F{)R{Pi*AEs_q8*I0xSJQHvwSKb3 zSF2UDe6qS(t*iB`Xt|AAKVIW2)QVa@UfrnH()ty(+y<>bSmVpo3R-@!x^($z( zby|Ob#+RsNwfq2eomx%nm(_BswSKh57pbMSe6+e+t)lfyYq=F#KSJXR)RJ00LS3O& z)cPg0+%l~nrt$geMKw(8EmJFK{fk;}iP}TU&sEQ>J+$5uwXD`Zuk{wGAzFTxdR7h5 zdW+Q3TK}xpTc8GO`5EeIHCXE{P)ln4(^_x7+EL3-Q%|ZLwcdR7qIy#6%~jiK`6=o# zwXK$)tDaYnX}wu$D=j}!J*>9U^0U;l>S3)nLv5zz$Eyd`W?FuRdRjfG^`@!*T7H~* zK=s%1)6|pd0j)Ply+h02r+%T{q2(v3->Y9}y*$;a^k6$Un#Q zcAc)ip)Ob7Qw!8@)k1Zony0>?=Brt1hWeShLk-(!J+HM?1Jv5bWqNs^Kvyf2rm_6pKHoror`^X<%O|jmx$5n9UsFFv z9ao)>`mP2#8u_w3+Y9hzBeac=S+As{ZE4d|j&>!j@%FCiK8_Bq>7^YVUE{uvPOkYr zjvybWYrSAseH@)#^>uV{)z8t@Ri`7wbv%KNZm#|3Il7lK+YfMr`k4kgdXzKA8SA*q z&os}`(=}e;=;a!BlnAS8mWy@7n&ak>lg)WMx%N-zKh%`-$aS5+pJSA(B^{%6e~fX} z*D+S}?|0Sdc))cYzK%T2AMb0<$H(!ItGWNBwuAM1b~|qH z{`+=j`-YE@e`v7xZ|~PWj(}F)_iOLO-miTe_H?_QI(4#dUeP-K&9j{5pE}JGX|u$( zm;T|`U&=b_3=C>KAg=M~dwA*6Izw~nq_uVX*U^g+e_?^B0oLCMaJ`mzcFKq(et^ZR z#Aas2r8@dVb$0msH({ABp%MI>lI+Mx&q~S7%;E3MT|Ok&>&;rPH##~!Es4JpnC__4 zzj2)rjq4;j>V&qf)2nTrNN1f4dyOx9_H*4l(&;}ncSLdbL&E>^`{}N`thawa532`5 zt^O8x<>TTbO>Z7)P0tCl8l@I@|1~LQ{=>mnZvS8xYy3Jb|9)p{{Nr9$?fst8a?QG1 z(=T?jI!NQi9Y=A~kB3<6e;aOftvXXpSMBxfvr~iJpwf=?PR#SD{UDWSA9!DE= ze)jqcwcPCy*7^@dS$$OZyS?09I-Z*9v)bQW-EVbxEcZuanA;=VZYOfv9?ZN@w1v6d z%k8##rBf%&bo&Xz-0lwdVt7t zJ}ypbdS03}eObEI$gA8x_h~)P`}a`dmD`U>w#K_y^}aOC9fLyfC>LKG)l$Ti2-0y~9Fc%qJc8YuP8|CM7iC&oU>ZrzP8e zuxM0P6YEa~HAx$inVyr86~nJlIzoGfH*XfxJ0zrev&*-GL%aQXt<3DKlp&4HI@Zv3 zhIJg*J!Q3Mrqy56qv~%@TGLBuJV)bpdujaNRr|Q@exm(9pxV>@b-ea*_0;&29?N;I zXRrU3mU~3C$3NG0-q-X-x*zTB+RMM>vA%sAp0)R9_iFR)<*wFewg0Ov=Q-bV|Mqt5 zCVJeDuWLW{{I50N-md5Nt~UO@)?cfpsgJAn+v_!rKdjovVLvX5tG$2w`0N(9{EOQD zw>r-sRQoud*8IJiZa)s}_Z$21X+Iu3w_{K5r|sB}tJ)g3kFT}HgH`)+W*cn<(&9!WwTQ{Qazb;@3C*kt{GGw{G_wYyuD_)?Bre6@ z^$AF7Tzpb0SK6ee$0a&Ov74-f^o*pDEgbxsenL`WQd&ZiKBxE_DUqjzoF%VZ+K*9> zNv;KA`Pcj|_~oIf$lQ*F`JU3n0{(Fu%tbTT;DXyUbJM)O8Q(B;IL$Yp+y*DN%{*^| z$D(Et*YTU*AFTFU}74sdAdT!${Uo?MD*}88YV7fVZ_xq`W z+p^wnx^K(d{C{McxnInE=_rw%V1M0ej>+|x7)#_N+SAN3HO+F4!~}amv)p9YG?q(E z$u^H2v%LwfX;}%`TG_k}J*U}^gHk0jzl`n*|zKWsTtho+v8?g zt|V(_{%LOhY2n}xie~WsW&RqeBPT1KQU1(mTuyd6Ndp%-@o#2Q3V&LO8@U*Uq2{lV zrevkJY1JygF(NB5ou#vxl$t)o{L6J9nMu~W+z9j6OViS`a#9kB`6__08@8NgZpOL3 zWyz$JOzS4^l)Aw;A^A4xrT_U>Dc>9AAM?LCC3A4>u&q;mMPNAbs1Q_^__ zyHQ-%mg{I=C$S^nMs?Ona@L7*ItJEByvMrCm}i2l^i+=1^|x5LNYC|+PcA7A;ld+U z<$}E7!4Ae<*A`xypg-N39ha>&6EbpKYnsjQhn&)Rvf;?gmCPxOo7>q*Bbu<3mN!p2 zaU;zO2Wrse9j^BY^S%(!v{~~OEnD5$x=mbsLSj;~BRx6U!PS+$dq&4}?;XislH#i? z>+Utriq=!weQ}v-_Ck^2y?cl7_oljbzRRA}t546UPc4(-zQ%9(s`hl>TdvWWXL(fsvT{Ylo?^t3z7=o<9$0c$J6jz2`KB_C`rwrkmv6QqS>^zP~ z5jTd!WybSYxvo41v*q;6M6L+EJeb4Pn0dEzWM!nMCtDL-PirG`QnOR6@lxhv0`Cs? z5~a)nuCcgO{&<Zr>tp-n8AD%~=o(2&%J#Yn z)9*{q9R8<0WW;eYiI=xy-!hj|rYEGQdajVcCD17e!;?nY3#yqJ2_93dQJ(u;@5=Vf z9WPqP$&XAD)4e=tHw?&iG{!*uox#3-e0j3@?yJM`Kjr%I_?+Zq-o?`SX;L!pV3)2M zcJQ!D81Cd^!>pm^9mRglPwNFlUDpuvY?{w{PJ*94Yzn9Gh+64U&%(*2t{xDgk_ ztC7ZKC8VUpq>jEcAtx;*fsYPMVq$JuQcpn%T)vo{*IsXj$MVZP#_i?)Zl`PgCL`lAoA8&&9j+U^cbQMo zJ?|XGyYV~}%}WaKH@Mxu6=*(m1@#OKitHNc;AI1X`gGw(#@y)AHMmc=OE+Syzn174 z?;jS_E3|V=->yM-nQ>k(BqAuHzqMt?dq;$J3k|z88XnQLXYZgcX36k~-XWnqyPBK4 zCP82J)i2tN^oi^mW0r{t<}l133cvKwu>WXyFaF|m@6LS03+mj}5f&P0Z9S}Kr0aD4 z^g);jF}=g1LVNR3Gpbj(^)qGP({1aH@Hk(cg?*2> zzJxKKNHtDOiq9G1(4o3M%*U8*1w}^o>D4vnuC5VbU3)sZxn5o+JR&qYD5|R?CNVX} zJeFgIrl$|rCnDyv6nz6WJ&Vt~l6Y2kgmw$-9nsbGR<(Z~?s~p=j7U%9$HtD($li^c z2DEC?s!5;Dku91yI)sKrvBRLAjXUNfWVLW~F#k60Xis&pRO1#syEggLl5EShEU!j! zd1<$;M}@S$a-Hnt)~vz5-k0wj*^K4cdo#EBR~}t6kH4L24$Ac$J`j&1U%d)jqRatvllN)=RZq7V3g1?;Wac-`a%+6bK*c`lw%HKcoVK6h^*8B{9_s4y(=YOI3e)o8ve^m3Q2YH`=oqqo+zmezs z60UDC++xqa&6;ojepZRn*73E|{EVBgT)$*VYyMrDU+D3BT|WGAPIEq~n(z7hUp_u1 zTwh<^ulb(8pJmT~#@>D}@B3e&`Qaf~&bRkpPWTa z{dP=BTFMnOW0KMm-9HP`8_E7zXsZ@YTwAjKZESsD&GJu(OBkADZC6`&+pgK-e+KIw zD9LxeuKcf*v!wl>$DAvdv&Krq`V{=tf4+PE{NI(!`+n~B-}}CQ>p%A``0jT5Z?o^; z`p;h9^)B*%{Gnj(gR3d!WEoF?W4)_w*UT>w%XeK1{&Bv0`2Fa=;ji}L`#Ib2=6$CB z3l(<^zPs6vH=CLMFXXxZlHC9Q8U8Qd19_bMgBXv8FaZz4d{=G~%+F#T!4y1-sdx<2 z@HnR93CzHgn2Dz_3$rl?Ph&2g!8|;R`FIZbcpeMz0v6&$EW%4zjF+(luV5)&#WK8x z<#-({@CH_56;|U-tif8W!&_L7x3K~5paAb;Bi_R%@DA_bozC$Aw%|i-#YfnNkFgz} zUhke`uQKWi+(?UE=3A6$ddxE8)BgR-~| z4( ze>6b=nxYw+qXk-`74Af9v_V_6Lwj^UM|46Uf)I?(=z^{YK{s?qD0<*7^h7U&p*O;D zHzE*;DD*)z`l28DV*mzX5bnWX#2^;`uKkZ;Ut@7U#^C|v;X#bYLzsYvF%gq68INEJ z9>r8VhG}>l)A0mm;7QEHQ<#O>n1iP=7tdfGp2d7ThkQJb1$Y4q@gf%CB`n6vSb|ru z6t7|#Uc+*{jum(VE3pcz@g~+_E!N>JtjF8ffOk-Ucd-%gVH4iRW_*Ax_z+w15w_uD zY{w_qflsj$pJ5k1$8LOqJ=lwV_!9f^6%OEQ6yh5k#J4zv?{FC3;|Px87>?rve!xlm zh*S6pr|~n+;1`_5uQ-R_a2~(o0{*~76d@1)dHeq#ef$6C`QH)9<3A4ZNI)Wzkc=T1 ziWCgPaHL`c(vXe}+>1zVnUgSTa`wtce=Z|iy6wzuW3wtcgX zxAm^veo?6_$1jiB_lv0+?E9y>HOjxmuX||`mND;-hUZ`(zo{9_ftdT>ef!0&YnC^k z=$d0HZuraNzskDyHuXDKCgv&Sis5R<|5xkU8{+L_5C7%u|JAy#?U(!~?w_lyYqoC= z+&&MQ=XTq5^RMootF3Eq>td1P0&nAUFduHN82)PeX2HK&_wt5{N)`8ha<%Q7$A59_ zn(f=`U&C$l*uD++^9wg!Lp`;SJLKO%yZc+Y+VR`RZZ_upH!=JAyMulFKCEDFUk`Kt zw}u(Idl718msqn zWX5F-b;PH}r44r^@Yf$w9oC;$j!R9;;Zv?`u4*&e%1*boW)6a{!8@AIrvCn54%s{( zMr#%4&KTD%=U%J!mYiREjDLRRxV@Zb^Nw4~ZB?DB*{2z9i?-%Fzf`}mYVKz4ETK95`5`Bxujfa~Zk|Lw_U8gH()P+O|4)H_xC@!Lk@J@1v z@jQR41)Z(h_fI*UmusQF_$Tl?YkT>smVn9m<-z=>L@jk++;R}Ihz{xEL`bKjf$ z+uXy4i(^sil~e#sETT+jv8>H7HXp|>Y)J|!5;x=h8Adr)@Y0N z=!ifBqYFaN9X-$!VF*VAq7aRK7=S?-j9A1Y5y=>eVMs+9GLVUEj6^O*V=TrY592Wb z6EPW6Fcs4<9WyW!voHs9F%R>Rj|EtWMOcg_Sc+v>julvm)mVddSdR@Tz(#DsW^BP$ zY{Pc!z)tMKZtTH6?8gBV;vf#;Fpl6DPT(X?;WW1DVLiNaSKP#$p`uFdh>y5tA_mQ!x$GF#|I(3v)0R z^DrOzSb&9CgvD5brC5gLSb>#TjWt+@_1J&{Y{VvP#ujYFHf+ZZ?8GkY#vbg$ejGp{ z4&o3F;|Px71Ww`H5r{%G`e6VDVK8D5k3=M6D25>w zX~;k(vN0057>%(QhdhkO1Wd$aOuu>(7?3%jug`>-DeP>6##gu^(3V>p46IEB+VgR?k? z^SFSEaQN`{hxu)=((pxDltTshp&}}y3aX+Ss-p&+sD;|7i+X5)M({@fnxO?+p*7l~ zJvt%~!RUezbVm>LL>R&mfha_y9|m9$1|t^nNJKJ*Vi;19h74pP8zYg6(HM(y$isL{ zz(h>O6imf5OvenOCgT+G9KqIE*7Wh7&l6Q#g$?IE!;Qj|;d62cOrLgbzx?7iCcn z72t=8sEjJ8ifX8i8gQZ(YNIadp#d7f9|35F7HEamXp8pfh(H9R3qsHx=5y_y2tzm` z5QS*;!vGAzV8kLGiAcs!3_~i?kbz8OV>6n3;n1wl* zi+Pxjd@R61EW%L@ zjk>6Z251C-1fUsOpcPu9E!v|a0uhWZ2tjxBKu?4r91(~@H2Prx24OH_5syS9V7KJ#{^8oWK6+SOv7}{z)Z}-9L&W$%tt;JU?CP^F_vH{mSH(o zU?o;#4c1{jHlP3-u?d^81zWKV+pz;Xu?xGg2m7!e2T+KEIE2GEf@3&=lQ@ObID@k| zhx53Ai*WEwo09NBY51Zn%Ao@MP!W|;1yxZE)lmaZ)Ix34MLje?Blsf#&Cmj^&>C&g z9vu;gV01wUx}yhrA`Ib(Kop|U4+Ag=gAt2(BqA9@F$}3lLk2RDjgiR3XpF@;iFz)Gyf8mz;5Y(N1vViPuF3$|h#wqpl&Vi$H}5B6a{4xkVR zaR`TT1jld!Cvgg=aRz5`4(D+J7h!%mt0a6-8onrta;N}5R77P|K~+>kb<}_pwNM*% zQ4bB!2>u8_GqgY}v_@OBM@N`fwGBoWgrGZmpeMo*jtE2{8vQT;gD@Deh({ulF%-j) ziZo;(6WJJvT#Uw8j6)vAV*(~(GNxcEreQi}U?yf^4(4JW<|7{qun>!|7)!7e%di|P zuoA1W2J5gM8&H6a*o4j4g00ww?bv~x*oEELgMHYK11Q8n9KvB7!7-e`Nu0uIoWWU~ z!+Bi5MVN2)m4pvU!xv>y4i(^sil~e#sETT+jv8>H7HXp|>Y)J|!5;x=h8Adr*5I!} zJKDqif!RO=qYFaN9X-$!VF*VAq7aRK7=S?-j9A1Y5y=>eVMs+9GLVUEj6^O*V=TrY z592Wb6EPW6Fcs4<9WzkekgpjptLAsi%as3XMx%sum539}0_ih-PtD$OyMaA)G^)}V1)>3P$b=10Q6Sbwt7X;e)N*QhwSwxW-k?@gE2%fC zRn(i+YU(X&b@f)Yrdms_t=3iRsg2aes=wMq4N#k^&D9oa8?~z%qIOfetD$P78m0D8 zqt(7@KefL)Kpm(KQtwd*t1)V<8mGpq32LI6q$aCF)S+sMI!qm|rm7>h-FhdV^X~ zt)x~~Z&a(OH>p+Co7HOSEoyc3R<(wDo9a|+s<*4P)mSx7jaL)YL^VlGR)?rV)f9D@ zI$TXvN2qCPx|*Tht7fWMYPOoAj#TecbJbDmXmyM_R=r;xr#_(OsSm2-)rZsx>ci?p zb&@(+eMFt2KB`VtA5*8PkE_$wC)640lj=>Swm#D9(OVwA^W$J6{a`km}h5ClNQeCC4R^L?DsB6`A>Ral1 z^=);7`i@$lzN>Cj-%~fK@2i{D57aH{hw4`KBXyhlvASLTMBSl&s_s-jQ+KJKtGm@N z)II86b)WjBx?lZDJ)nNA7OLN<2i0%YL+W?xVfB0UhHu}1 zI!L`o9jwNvud6H6H`JBtDs{E`rn*L5tFBYuQrD|*s~gmJ)O+;{Gns0Z%8M4dh8%UI znx{Ufj#nR2C#Vmr6V*xTWc3ksiu$NJReemIrarDtSD#R4s86ah)u+^1>TGq6`m{P% zeMX(9KC8}GpHuVI=hX%33+h7kMRk$-lDb%ZSzV&OqApcmRhOx+sms;Z)fMU+>PmH$ zx>|ixU8Am5*Qsx*>(#f_4eC4UM)f^)lls28S^YrWqJF4uRXZj^X z^)q#s`nkGW{X*TN?p61xU#k1nuTomx&UuU1g6S9_^pYHu}MjZmZ1K5DeuSM9G3PzS1m)EG5Z zjZ@>*1T|4jQj^u8YKl5c9j+FsC5m+atEE&Q^%}LbdadfKmQl;9*Qw>y@@fV3deu+8 zL9M7(QY))Bs#VmR)T-*uYBlv1wYqw%T0^}}b*eShTI%g;ZMBYCSG_~6r`A^+s14Od zYGc)3ZK4LKP1R;Fla0qQ_?ka~|gSatmZn0emWRl@ba zFR7MNebj5z((1LUuUbYet6ry;Q_HIr)azA0^#-+~T1l;}-l$elZ&ItOH>=guTh!|6 zt!fSRHr1)tRBNfXtF_fSYF+gXwVqmEZJ;((8>x*|f3=Akpf**Tsm;|EYD=}1dZ*f2 zZKJkT+o|o<4r)iWlNzW7sljSzwTs$S4N<$P-PKUFhkBRVQ|+aOslC;3^=>snjZ~x5 zXtl4}PwlS`PzS1m)O*yyYK$7I#;NgYf|{r%smbaPb*P%64pWD#sp<$dO-)xb)O*!T zHA~G_bJUUQeQK^cN*%3^QOBzHtK-xM)I9Y;b-enJIzfF{ov2PyC##RBQ`AS*sp@0u zH1%NDy*b-wzXxT}mm#WLu*VN_e z>*@;i4RxiuN?onKsjgAis&A=ps~gmJ)B<&*`kwl}x>@}|-J*V|ZdE^0x2Yei+tp9h z9qOm*PW3Z&m-@N7Tm3@aqwZDrsb8x5)vwe8>ep(a`i*)}{Z>7sey1K*zgLf_N7ZBM zarK1ygL+c^Q9Y&pq@GrPR?n!vsAtt*)pP1^>Us5d^@93`dQmM>9iLktk4vZ})l#aD zdX0Lm>Z_Jf%c|wo3hMQ$pL&B@QLUs_R;#Etsa4gR)oSW3YIU`SdYkH0YpS)>+tu1? z9ks4{hgwgquQpH{s*Tjfs=wMq4N#k^&D7><3$>-%O1)EUt+r9ysqNJcYDYCt4N`;E z&T1DmMD3y8rS?>NsbOkwHC&BQBh@Iij~cD^Rr{&^)dA{2b&z_GI#`WSW7Rk{UQJLF z)g(1p9ik3ZQ`BMVa5YsOp{A+nYKD5RnyF@~*=mkDQoT>jRY$3#)iLT=^?r4n`hc3J zKB$gYA5tf%533W^N$OKp1xb(OkW zeN$bdu2t8mZ>j6mx77{mJ8FUYuDVfuPu--xuWnX9P`9Wbs$12M)NSg=>UQ-Lb%*+? zx>Nm3-KBo6?pD80_o#c-ed?F$e)TK$fcmvssD7g!RKHaZso$xG)$i3K>QVKWdR#rB z{-B;ze^gJYKdGnHpVc$!FX~zKSM{9wn|faTUA>_GpBullJss1?;pYGw6CwTgO^T2;MSt)||hR#$ITYpA!W zPPL|5OTAsKt=3WNs&}aM)cR@zwV~QbZLIpMP1FFjsoG3!uC`EHs;$&J)z)eowXNDt zZLfAvJF1=3Ks87WRy(U*)UIlX+D+}QhN?Z(yVRa)FEvc>IC&+b)q^+ovc2hPEj9Kr>c*s)6~b+ z>FN{e4E0HMruvjROP#IGQJ+@ls?VtN)MwTC>T_zo`ny+h4sAniMm7mRNbk5 zrtVTdS9hylsC(4C>OS>Lb-((RdO-bJEmXfz531j)ht%)X!|M0y5%s8gOg*liP=8QQ zsz0iy)SuMT>d)#K^%wQ5`m1_Q{Y^cu{;pn7|4=WgMXKwAl*d2jGClLF+T~zgU!yW^ zLN(NY`4M&_m>*G@*Dq*`jtE8wdLRrDh{ga6MjVomf)OyULuOuk%)H*%{df=$V=^Aa zG(3Tsn2ou37WsGqi|{g*;x(+mO1z16cpC-Sgb%P4AH!VZ{u#{m?R)VR3h^xt<0yW> zY5an7FxRh}SD^R7wYUxyP!Uy74Y%Sp)Wq$mgZl7CbF@YW1fnZ?pcldsiD>l4AjBXZ zNf?S$q$3kK$i*1sVIm&EG(3Tsn2ou37WsGqi|{g*;x(+mDy+dd7>sx%Aq8p3MlQzS z0ZhOoOu=KAj+vN)XYo8<#1g!U<#+?Du@>fchu^___yFd2hCjhB?1j0$`CFK4nty<~ zj`>%ZYnMy#PH_#&pgeBCjkp=Nq9*F1Ap+16ZP5u`5Q;EFpf3g?7Ks>&RAe9rxfqKF zF%geqI-bH@JcosN8Lwd#-om^103YKs?8Vpk4##1x&HV-DdR+4=Up_vZ4=SJ%s-gyJ zqX7cY3hfb$?g&E^24FDak&IzTLncOIG{)f}OvYoFf!Uac=dlQ{U^!M{9p1qve2DG% z414eu4&r;9z)v`f-{H81|4|m#qcUzr4cv};XpCmK6YUX%5Zr}u^uYkcAQ34@Ll$yz zKg@NTlVGmZd;;eB%x92~7h$f$d=2K>%e64qTfPT#jpfHM*HwN2b1mgJFxO8Whq-3* z7ntiLi{Mk5w+kwu5~|`>)WRKTgr;bPb_hgggdh|>(HjxygMJu@!H7d5QZNFU$U!c~ zVFJwch~_%PSuocfE`Yht&|F_=t}8Ux6BfW+KWMHSG}jC6fw?}=To-7r2Q=3Kn(P0} zb$=zV%dlFE#8K?=IaA|gim3v?K0POnQOYt^<3s!E^{51xrWPJzx6B3HCv7{ zoF}fqwJ3w@P#)Lg22{e0xCuAo7Tk*4P!qSKF6yHZnxGk4qBYu~BZANc-OvNQ5ROPh zqdx{A2JuM3Pz*;JGLVIl7=^KT0ORp6CgV{|!xJ#qSj~pHzUo<+YpY&>xvuJEm}{zD zgSnn+70k6%Z^2wg^)AdcR3E@xKlL%pwNszLTsO5B=9;OmVXl|@4(3{^<1p7r{RDH3 z)UPntNBsduS?+6;Mj4dD^{9v&VXlR`1?D=anlRTu-2rp`Q)8HGpPIv5_tXaFnx{@M z*E@BExz_0}nCqPGhPlS6FU<8#_rP4+lmK&GQwq#AP3bV#Gv&Zs%QOb&I;IC z23BJ&*5e&)#QWHSkFXt|Vi&%^K755je2c?4iWB$|r|}EU;dfj_3BEY+!L=xh^6*0? zRKd-tj@wWRbx;ot;g6B48bsrKnAif5~DB{ z4`4hV#$-H-X?OxNF&lI7Eb{RJ7U5+q#cNoBRak?!umSI46F$IJe2g9V47;%x`|&jn z;yWC{ah$|YID=nt9)H06p@LEroLmqAG4d4b((!+<^vYi~ux8E3`p-bV4w? zqC4(F816fGp!W2A)>39;e@HFP(IV`}7Sd3S& z46kD)-o!e*jRL%f&G-=8@CkO}bL_#FIDl_(2;buve!waGjI;O+7f^(f6?p%LFRnuc z++{V@nJh({8JVmQ)pFS2nT zM&o|u;UP@KBbbWEF#}Iw4xYh$JdcHV2}|%Qmg5bq##*e$JJ^W#u>~JtJ3hrOe1U!V z3WfL+{V@nJh({8JVmQ)pFS2nTM&o|u;UP@KBbbWEF#}Iw4xYh$ zJdcHV2}|%Qmg5bq##*e$JJ^W#u>~JtJ3hrOe1U!V3WfLD0-qdBG3o@Fc5^(FcuGBJRZhmJc?;}0y8libMY+l@d6g%Wh}*OSbd+i7m&y}9kaFVFFG=DTm- zbKD${J@n*;`@YS%`@T~>#=|_8H{Lt;u!_duU?cpq<2?WX9c>HMh+) zdvMw}{zlDniu?PAc|Yp|GuE5VW3>nO+db`xG}Z04IWK!Kx808|+@3-2cDwCAqj{ z9B!ufLVehS`}0L_CYtjZVb7%Q^Ml={yWh9&&wuW>%`wgte z$Gzg_+52n7GEUfolN)ARW<787?DbkR-wAtga>G6rZ}aSJdYfl{W@`55ZJxb9X1fOW z$G5rdZQOI3`I)Odc;0qj*39$Vru#JaWzFq=_C~$jc3;*k=eb??_YwEUwEN@F{qdUO zwl8zr+qmbnk#6gF-gaNs%=6r)`!x4u&Fx&b?RwsJU)Id?+^+lcka-@o2lw|i_vZog zv7@oQkZ!ww46)~XPV3;dj=Ak^zWX%yeVE6hJq)sM&<1X|$GY7v?sF1zZ0^Tl_UArs z<{S24=DQ!0J>T0h?#r3y@IG*VOhq!@8}1)V%rx^{Y#xvHV4f?zO*8A7>GoijGyA#Q zoN%~smucoc^<2(;?C_k{%F8tKal~`E)?TKy@iNUE zb3ifEy`7Jl=Ixx!bZ_Tnrh7X#Gu_+ynd#on(Mi=0kKau5JO?w)^E~YP+WkDt^I04` zA6M~SrX_fpmgr?#l9y@8UZ$C^6Fv7k)XTIKFVoD|DxT{O_cATj%QW*jndiD`UZ$mc znU>*Y+Pz+;WqO&GTu_4hK(d~d?@-2U@?V157E^M3ii z_I%*^d5HVhm1B9_*h5462L128ZQcgn-5jIm+tZw{neOd; z&2(?)Yo;6Cw(sqH&9dIk*G%_zzGk|&^EK1Gov)eh?R?F#cspM+-P`$^>E6!QOgH=R zJYO^2@HXAs`I=?Dov)eh?R?F2Z|7^KdplpVPtWr;pG$?qJfGWx`FzcN+>-02=5s-NFym%B_Fz7jav#s}7&o7Pxz9JBx4Dm-kKgX!8!#WI z-N()63-06QSmIzl*Ruz+O>fi9vATc%#T={qxH(qOar1eqJ(y#6A2<7PA2*-3n9r^3 z!OZuZX3ocRnmH%WX;EILnd5UmPjfu(*>gbc&!_L_=d;(f>v^vGy081+bzk>& z|9PHcE|%Z@O!@9--n*Y!r|xIUcRw5cJ3wcDGM9;$OecRb&B#oqyJfRan#(QQO*gXL zG`DOwoxI}#Q6m)CO-s&8a=)V7WZG;G8rwOUkA02$%eFI@o0gm}udw9&QP16FVLQ8@ z+0O1~meu{t`0hT>`0i)McRw?}``pDCYytGOuO{Y?4pXUca!Q@;C|^4-s@ z&v5|8BQ_W9#$DzCn7TtS7w_HeFdfgVf2QZ|=cLmvx@9w-+b*%KR{_jbjT`36TTVNvx!vtUdt}ZW}bmMW5@sr)@IVjphc}ZLesb%tfEgTsN5;VE5SP9;eD(Jh!^;Z*$!* zaNWCg|8^IhNl%1|H!(8doAK^-O%m$_V}gi;h$x5{+(-CZ`-1Ot}ROC8^67F zs_Xe}eS2Hq-nMUA2mX`S*i-rEZ`(KBcB%G;-nMUV+qbvv+uQc-ADLsm*)`I)_3b}j z-?DWU)&GCzxskWi)fGR{RsUDH?*CcmbN;vM*_6+e&6LZWIWp&sCP~@NIU{q%$eah65O8{ef*#Tb0i&H7}_y~3Z2 z-fH^eM3716&EmC^-?xfiy++sDn~k5G&o>+YALVb6gLKb5%P*wkJA_HkX~_*F&!!!d zgWqcV4HiM4`K7MMyo^9hfJo50Ynz`pXumvF9Jul$%KT9sppIHER8gI3J&3UdT zf2I55Q-Yrn{Jh|A3;wR)?+acnxJ~ef1b#76+i(c-Gb3Th0FQezHQ{?GPLjTr2o)!D|J7T(HsCElJOYZtzwK-zGTsQ#w7PZ*MjK=Scqlw^8S2 zU7pT|63gY}E6pDW4jMcp{fwa*nP-O18g}+O&KdsBcbz-pyz?&@dEvV+vM#>l(ov(| zbJ>{7uedU6?6~pS6DD4jbM-ZoCSN<{x~bRS@ZQ|KY18uyW)v0`&zw~h611zwiC`wtnD) zZENmpzklt2edxm->()Q8;Ugb?aO1~5{)tVW{M4s6KlGW0J0E%Uvs*s**yp!?;lIDQ z?Msh8(e>r8e0BSiU;Fxwr=I@C&S#!|uKW3KerwmaU--`M@BYvC_I&>bKkWI@kAJfF zr$77oz88P-%l*Il^?`$jUOIfF_h?`2<=_1F*zbP-hyFkQ>Ceai^2)0x{`%VMC;#?$ zI~^6lA&!`r4Hy9!$p>5vqb=fi7zEHR4hC?1Vw^JoLjf6pOaSeE2yhmFI(#K-VL}2U;!=$TmrZhFbY85{5=3po5lbx2V4Q*yH#0$ zu>j6p#sj!sz;&RB0M6MtU*}w%^K{P9IX}M^Fa>ZOU@G8xzzu-+0&)R)fN22k$?yzJ z0bmB85Ksi*8YIt0@qL>T0Ou?mQF(@?6mTP89)R6>H(a8Gy?7dGy$T3W;?Q3@H4>A0s8Q90nW#^a73o`T#M&%YfeiehWAT_#NQ)fIk5G0e=Mi z3GipYall^yuK->JoB;e4@EYKCz)8U00DlMAfZCeHRY0e_;`T7Lp*xj;c>L6c^px=t zH~}yba1|g2a5dl>z$CzAz_ox%z+wOk6b3{9O8`p&)qonnoq%P4T0kA39?$@21l$E^ z0z?7LfEK`VzzV=hz$(DqfaEJ1gg27EJn&5eOb6rx3IHTO7N7($8!!hj z7f=eg5ik!hA5aFk32-yu7C<@RR={n5F#wi}a2&hjzbi^t8s_EAcOE%-O# z&u-P}y(;+XFY4z<1)sTHKS!U``0&FTKiR4A0SRvxJX83JH|y}uuWFpCJnpjd{*KRS z{(l$#(l(vm9|UJUp`ULTTqF3LE=@1`ipH_WG;Wdb?+Lz0!Vi8*hhP3>jZ>B9-&Ovj z(w@or_`hEMzkdDH_5Vi8pImRr&!+v8>8E@CSGWK3QvS!K{f!=s5q*E7<^M;d@5x?|*vvAC&wiw|^R^ zMIla!hWLGfGkk;6%_W@YV~TUmIp=U1W@2H151o@CP;S7QXIJ>gNqYuNb4B z``2jfyHDdDc{Y3pO}LXIebd~qsHVQLrM`;J5w48ab^fOP{{JQ}NGf0TD~aVa;mP=4 zRUeJV6Vp$X&d>hn&3Ex%z3Hjsm~xr$1ycUmk`EJ}j17Or8%%H837xNp1b;h4{;QJ8 zUzYT2(lzD(ipa5lr{({r;x%tEpVdk6?(9!2XNiPgn8cS{52@-YSzdCyj5MjGYOB7X z*}_9zO>=W3?3>eIMO&(>ttB;Bo^EKe!Zl5is^*5KRZd7_Q-hLF%ysXkmPW*~qN}3K zkvglYvbNS&46D~XzM-WV$O1=0lM^)@Szc46#8!sGP0U7K)6$l@NPV+aTN7=znj0Fd z+J^e2zJisJDr-qYQ(dJIF|9JJ^AwImtD0&WktK?)s;4hav0PE#w5En-$WmiXBc!73nrhJM7OJSF7J|{_4NI)1%6gqa=;w_H0Bnzr#d1Xy)<>K0iZw3cXHW^#ArmnFzLQP@I z7@brhk-ElarJZ$9sLG{KuO(>9DBI9#UWHs1qsg0VmefR=kj=V=<&ZGF8hR3`wdz~y z7K5CS?UKlHgiKVjqpRwxs+$_>YwkuQ9dMOZU0KUqm`4;HTTLaX98YnjO%2TrRSmUP zxT$72(o*W#++0~z4H+o)^!deBw7IFJs=1{p;wrt#hNNaREwZu-c}MLU0`)b5zT@f_ z1;S%3X+eKP8kO}8;ej!#+{9>YL$m4>OB&D{RqxmR&-4S8Z{{>oSx1@S%H~Q}cFSs@ z3g{M%s_)FzdZ4+Z)DG2wqQ2QEcTIi7s)?$KK;t%7N38lt^NNP1WxmqNs%30J)!_Bf zW^`jz(%i*&!UQo2o3A;d>$;~8u4EvlW(yX(g$u-ptjaDTrB9sfV=gpXJMH?ek(4s04NCP4o=bJ-S zW~Pw>T7!a3k(8>(+lHNZF=C=@D9Aij9%F}K%-FJF-+WccQPsyJHOC&bL?ca6v`MtN zM(;T~u^q!TTl#@xO`Y!>otLlVb~INcGnq_VCC z)`Q8!L-Vw$hfRj+gjcZ!Pzc`~-R5l8aKnmv_j5}5RKGTHdZ$vRab8-=J1gmMYO4S{9I9*{F>-8>#mjtbX1rPq>VyDE)uF~sl)Kv z0^Pp_)@`XFDRUWb<*Lg1st9}FJQ)+MWf9%F@yebB3cI4|`Q}-5&8En53>IPR!>_Vd zfT=0Mo{Vy$5uwLw1e&{|9&H%rn2f4J15kV5bHGkFDGd2b9j5274ZqO0l_ zH`Kxc=#fzK-CS9V9`B5_lGYL!xv;j8s#39zU8x7MO67mC`BZ~g(dtT$RM=WTnXqV{ zr^2BgV5w?w9IPZR?CBu}Dp7Y0C}8C{j$%#>U!FEz6aPRL zS7lPJ#Br(Rn!Xu#P^C5XRSg`L>1WYqE?$K@&{trPr!i})L}PQ0fL9845h*paz=c~J z;V98usZ0?0#SFp!5kFNq0`+5~$~<9>-;Ap(lm;tv#dbE~#_V|6BxOV-KGWi5JV$tm zOY4yrHL9XvjFV{WRT#R}2zpiAFd=8iJDdPs^Ba~luRxQ+8K#wS^HnZ}g;h-WR|Y33 zN|S402x@G=DH7TuV{1e@I)yhMJ4u{}G9~{U(5%WOsCTP*U<%RdmS$ybk-pJ{rU;B^ z1U)@E1$kEPbF>j!&J7`4adW^l8{y~Hz%E;1rS#Uk8Dp2#z{!YT_jXmNhx-LTEchwG z-xYjF@NvPRFY9=t1y2$@OYr2Ubod?e+#>jX!4C@lg5c)`e_wE);8z3>{)(3OPQmXH zoG-XS(kqwerGl3WUN895g1;=dTX3ty-y_ez5gh!gPWN2FR|uXic&o(o$#sj+n*`q{ z_z}TR3;wR)p9}66eCBqY-Wb7?1Q!Xe5`357y9GZW*yLlgJbzj6w*~)PaIfIM3m*BT zPIsc<>4I++TqAge;0FaiD)>pky9M`1z3i3eKM2nJnoj40gj-MR=OV$?f;S277JNeR zr4s)d!DGIm;}^*DV!=g1kIM6h1V1A98-jl#xLWxCD9@YZIsNNe{s_T4gnm%)c%c^w zPT#5dvjvw6UMqO9@U0O1A;F&zyjAcEf)5J*li-XUTK;8%3k2ULc$wgP1wSD85y9I9 z|4{G&!N&y;lXkg4aF^uUmvr4P&mGGasJoTb{~mm>=HHW!DNk)u`PL*o&q{hW@se?> zdU~_vG5i~(9`cv!`Y^aP1>J-~FwJ#G^{o|g1% z!jrM#|7YX*N$IDOAAW;;sp1>DDVKRZEP8F^oA6|8_zjiWEXw(ghkPib8G1&x#UpDILNuIxv>(fy}kvOi@B zUKFlfQdPgGx}jm2Z*-J@f~HuwZK-!A=vEk$gC&^$YM0j(^apqAat*sjV@t51XUlW0 z;L@aU!&fczevwxrOP!p(s+qeacze4}$KYl1yh`x>f`50P=6hZ68A3l-@MytT3CE+$y+HaE0Jf!MTF71zUoL3HAx@zgMTT_5B)m3%y6^26xMIm*7sp8w9rs zZWLT0xKwbi;B3K`;9-J&f)5IQQrg4dZ^`rf1b)1+NjjTyVAEERkREUt0ckf+q;ROz?$*&k=lvU|Zt< zMeuJ0*GYJl;JJct6@2!Gbb0~7e-V10;1>mdPw+E>pAh_r;0FcYCwPV6i$v~N!QYpB zeM|6Df}arlIl-S6{1L(T3x1#AsNfpGiv<5%@FBs*j^=*%HM;`P3g`m#0DS-Rnw<@( z0JH+S00#lXzW17)3upv%0$u?01FSu-*`K^CC(n~3u~@&xGVhHOCBbBH(Ky2y7OPEM}G ziRCA8g7?q9v(vKE=A_l(;KxNcF}?sNKR4k-@lSEO_8n;x(&nbsr;V+eeS$@ z1=Gu}pWqw6xTb!}_?BoBZ%no*+j5H)p`wDDN#UugpT=EjAG3SZ3< zoCAq8U&Ek)&?;9>yqeFva8O3ct8Y?|>R*P?u&XGmF#25srd!kKB&*&%APp;?ScR*s zzQY0p*cFm$5nIG!W5rufPkcnP}6wL zST6EmUx(}0^$lZ5K_skR`LLeGJq-}CwNY zbLRUZ^~-(Z-{b2{Td2ypRdAQ!9fG?B_Xs|r-ZsD)e0i3ouqtdtU{$k<`*mtwxN>S0XSDJ`M(VN zP1Q&;ioH&i5pK+3RbMaIld7uImsl^Z+OR5{nkrW%h0nWbPHA3Q(fE1%j}^_SQMWZAkwZwbct)pR*nC?ryc6>ewY zc6`H9X& zTrh8Gj_*{M`cZp%a{hq3L(O`rKB}d8q^t6z&O)e#R_ue0b!F3}@0@HXE19qN7tk5? z_EJ>oXH9)ga}9Rno2$9qhV%Nms??4yH)`s+(Owy5hOvFHlnJUlEy1=smaDN>fSNZU z){>@%I+NFB~;2P)#6kmttO^+*cS@>&@i;5%647vJL8No$bf2Kr5vN9mk-rMU=c$V zid#3;XVn%GHf^wzVN8dWH?7!m%$c6wIpZvuq~RR?x${*N8H&NG-k`0OZOi(G`nw}d z4ajC#nNn<9MHVS5>9eq@v5MwZDs?D_I-WdomCQHgI^W!R#f8Ole5ECMWi#f^o9!zp zp5}v(f#F{Y1|`8Bwcb<{y_OJaKa(GeBx;d|rBE3Os;b3!EY%S|g``ZIPYj(;??$nt zRkf8-Y^mUOdP&~=`S5_$HD2XoyifTta&P(+@ep~S55Ox37zUu+&)V>~Xu~))S~<wa)Nxy^y8INwIwTMv3$zc(?bpY9rO{|2J=nj zHn85%udKVl=PH9fAEMJTm7{6(JgZjg6FU!^hVn#jXGLL?U6R)ErdX`y_$9jKbXc)_ z$N_Z}o6R)zi+MIm$8pqjnPb1L6-_m21X9*Ao?jJVG<0yj+PGG=XsK;UY-gk9mee+= zvkUVUl~2BA5!`Wj((%}0aNbP((&+;wB**6%6t3aH4f;3A+hAGUT``MWn^E+59@rX7 zZ@^{$C=U%^T2eNzpaca*{Zc_?IHH#8i+l+hL*0tv*dUwQ(Mk*m*tymtr;aQ2ivYzd zL!=tPWnWcAhx*l4-o5H_-%yt{G(V3X+5ytji6OMNf2mvG!Xl z!W#ESG&XdDtA%d(3^w5gTPfn3@MPRC>2?cl6`aiXzxC{s{NzfxHZ9flGoo7Kq8g12 z-QYh-xZyL{gd6;z@R{e+;d_LCvEa#XGXCl0|D)kgOZ^;_e6`d&PQB7xeb6gAKB-h% z>Ec39(>=zUGg*m^J;Rg~el|vM{b7uOp0K+&nU7{b80IT^vx}!&CB<`Q70k1y-Bft- z#TWb7n>FaQZ1$}sIDuH}gQ>vuvjrxX;mR5tRtpXed>MVI5Nid_3+u@by$G>77=?MB zNc)Byf6oM51h^h>FW_~+-!SC<4HNiR!SJ`U@IEjY{`OwHUkrvn+IY6pe6QO9;32-h z*=PA)1;gL$_af|GVB7a17+$yS0Pv9S*!EeVUGyv4elI>>cQ5GnQhcRE6+tRcId~i# zS(>5l5SfyChS7WR3{VbFJOtkjKyC4vr%qr`d2k3b6xumORkK-j$3rz07=NWA=ekE> zsZW`6)ZEQV6$wp4WdS7`sa-N2{<-53a&bkCRAvfb{41Pb=DcfZZNp+7Nycn3VuGa1 ziiSZOQ-9xF-zb}$~X@OH#apXuh~7Zev|p&sI7e7#h4_b z%BEH~H#bfhKYqoE72}rHw~WJAZN^9C=o4Mss_~0kmPW@_H`mqPFm5Pv4+lr*zP^SU zEuQ31U$|De)xHD|K)GzJYp2aj7hSewpH;JbL9G!~sQA$`OaY~_AXo9@5v4xM=D2uHVZ0&P=ap%4HEv^5#6?!(eQGgKwLI*I zao1^2s6{NkqYSEM)Ukc37$=0L$K~vEyOOVla9ZJ<|Kwytzq!HFeNMYO^<$ED{CrC< z+PHT@4Udm1adV^zo;xz7=FTf3mCNGU_g$uRPkWz<2}@MY@+Gb|ob$?1opTDx%Xs=( zbs?U=S7MUal+=>Qrr=5Y>cJ=N%K+yC_#E>m!Z!zQkdyXz0C%OIwE5hc1n&Sn2nb8~YQ#MQ{I3K55y0mX#Bswl2;UES zpM-BXq5ZPP*EH@CY`w0ZI|Wyq)X%wp6Mn&+f_nt}{;tEb1vdt6R|;nZH7*srLGVGr z-GhWLQ}~8zd~k!_kI&6W4A)xh`u@+|rSp7gD~AmZ^n9z-cR}Wm^bKkj%ny)e|8HgjlbSY9Z-AmcW3 z!(hr^189UCd2g0vmF8yPt&p>WggGIr-QN~iG&GbxJ;UFIEU1fl+XcwAlGCfv$;{9z z4kN*H3{VX|-s}9{X2huUGEw3a;}6(944>T|Y#THul)cX15%AxER11|L#?1j=C-Qq9 z`Bb^*C&($2@G2*~Fl5#0?BvM;2=l!fd@;yTQ(z?re9eh`DzD&8ySubRHP8^%KmpT2 ztZT~ZLOo3gVqK-|EW8C48uoyHT4==jz_gIHE;ubTrejckD7$@dUTAXLkiyWxKw!Lo zXlOEMd7&}j0WacA3#AuH_S83;Mxs48U3$QN5%N(VsQvtq<)4PSD9B)%n*rsc4%nN3 zgP%sarVRdgA;=eooF4Gqg?r6Y41Fj|C@A%&1AJpfAFzKQeC__c(1^A`VQ52I)6mce zNQeGR*Eyuzk*L4j;Lk+7;8vtRyFJhrECG9m-~S7hO;wH~2=BVgoj%)Bw*>1q2>*B3 zm;?5wB;7Xu?FgTi;a?R>XTH`Toec>83;2Tjkj^dZf*pg}2e%EmG1L=yz`s5an1aq28Tcx)4%qxgk1nqW#3S{+nc>hg`s3yzy#w@e(AB1z1dzT3^j6UM%@%W!z7zCK zpbs)cVAA)3z5#T1e`UUofxgwyRa=D}y=8bN^k)acS+_dhi=FVPAY~zZH^OJ3J{jKb zFJ$}ppE5lyP@HCNXX~4p8MmrdQ{TF&Mf`me4%h{Z@1>)8j*bRyfuv;RWc{*y+ac%R zRf***0euhXCqU0fdnL;+U>}IfFAS|s^S|!d1@e`GQQk;Y?1`KMb`vW&DZfgdyHCZ^ z0#kz!STG>l%5X5>wU9Gr$^m-{?rBHwLhX{i2K3U!2kdu{E*I&WK`&3DvmJ(`oE4zo zf%~8}O!fB;e|~60dmt}lwFO~n*jdn>XJ+I%_gdc>zYOtPP5i7k7k?DuZ$$jgYjrt- zlM!F((yWjrjb4BnB;QW(?J#^rsrin8uLpb!S)Ow66}1Is)7)3+J`A$9&#XV>yNrCb z;4?ODgos1$_MO1 z`ki6eSEheZ*UNg2PwN6RLsmx+WpC&B)HXP90rD{hN~{N@0%N6p>RVWuDCddD0Xv;? zvd)(JEnxj7#hm&yy(UjwJ`|EZU3N9RZH_x$FGxLH`ES2DMo0-KaD0 zjku+!=PLoFGsDJ)Py- zk9aGa57_^u%E$3)0ULaMfWw!6scP|B@P$zi2U`x2a;u<|8d`S`yreAYv$s3a*XLepEz#Pegre&|9ta+{RJ{B`{Mt+F(A~V zHJIvkBAnw^aOwpq?fo|J?Ev3G@|A!ug&p4uzJ4RG)?1z$|B$Z}3lG`nKpySw9At|9 zVmQl+@?nY67hH?@sLS>KBH9z^tJo8?OWWY+0BgeX9*5jq#4p4><=!o}kBSAgH$ADGTb(91#h$_LB28ue9;@F#E|{3*-X z;cpKVL$QL&q2~y}a^|ByS9Bk+C*$5+jK2`{eTY9K(f-oOa@O4)l zvOmMfD9<{MjUDvm+JpI_F>QkiL%DwVI2;&Z{lNj(ZWcR%j87%ve)%JD(v zqZ#SsEV9jH-)l0{B6PZfWHx)L3)j}Klsv@c;}bp z8Hs^s%qhaBBE0An;R_L7eTwka2w$5bob{#J2jO#ZAAH%Re{kK59+Phr%F$!^{_4%g z@*G2YCsL%xe$Mt8vGkC=nEkxu!U6p}?gz>`Qfa_ST<`5DaD z8t`@29I|t9kMY)uAVjaW>2Gy!L3lU9A7^+f`*?3^`*;NLv+qom5A6r9f#_P)&!%OE z?1wmi+jfz={6(Dm6eq8vmHNNn>F?!d_**>#W@Pvu_Y836d-=%6#&^Phs5@l8D&<}8 z#~f!J*YY|z9<*~Eqit|L28AE%MG|MigmFP6g%Ni@t~XiRa)6)LT)$TW7hQKs!IZlfa=WiRXcvq~^94US z(Vbs!xt$jV{&tI}SXtfHe#oA4VbAV5l(6o{^zz>YdkXq8jN`%m1(M#3#C3@xXYFlv zs5>ptIMg$}g!BKIFJiuv;;a5VgZVP=k*H{dA4)?f%^%`$ue_ zZ$a+tb-}hFv$=A0BWx45UIN!+>5Bsj^S=xEZ2a>f`{%ef7wP*!pM3m~{b54{CjB_* zU7)-B0qL2TaO?&>S32Y0>{YQdc;-d=7SMZ6B&JXLPV$33pNw*;@fGy!zrtTiT)*|wL2k?jK7a*W%xaUC zptZmUU$j8vas3J23xj9}9FGIr9ZW zvj^x^l7BEWv?1uv^;9eEUmig^Jr}%WuV#_dT+m+$?YTK)dMKUs7`zDeHF97+MuJ`h z`qdcUJpCs%_KWR-PjOa;XC_o%W;(TyH~I3!bXdPf&|amW=Vu}>3r%@pW8M3=34TT} zFxPt=O|TpLng6R3(^K^edIjk3$GZG!%9S7L!oJoZlxz9`1#!xiZ$UqlpZBQ(v+VVBQ@ZI>+7aUhB|o_ZH-AptVQNSl|1RuazZ<`QmtX z9P|yK_u$@F+!36&F3>)xZE#5_d%fR(m$oZxm(^^q*)Q2;Y?oaF^OLlmTo~$44^*C} zT_|@iL=!&qMYKdb`A-A(A!^i{3goHvS6>nFWG0X{&Gr1uJZG|#!Y+LA7Qs+<5qfwWj|1>4mBh%ZA^kSf&Jsjz6y3t(@FIxluI2gEq=MGMj-bSR? z)t;Ch^(pgW*k{mpVq6POn&;N1igiJ?5C2|RRy74;{-%PzeC;6;g%QaC7_Q0o%3~bksb!U)bL|HndfI<;(V(?uLixG z%s2Dw0(Wt(_i>12yv+#TituFnz8&;_(8oCT9c$m-wjw`N8h8H=*pALP&VIHK|H{Acl0B7v$ZSps%k_pMNAP9w@p}#U z8vpwx8`Br(QsoDICFt&Pn)w}$@^1kBZu%YPmwD$`wX4|X?lS_P_4Yd)Jy-fQ8tYw8 zzhpnfTtHVk{BxYWHf(K=z|aA=Uaw3re^bF<^o_*)kzNLR1?b7;sRg~-gMSU^tx5dU zkIkU31^r6gb01)W@J&hba=@B{dg}uHQnu$V)Q|Gn`*y!%Z^imz@Le~ZqJ2c44h92P zdD}O$45a$QHl$bnVq!ixZj3@bG=l!)F-UJ?iu9EJ%D(W1v$-DO(I@gUSP#RwA>cop zpm$6s3-l47KS6zt+Y&F^T8MtPg8gn_7tt!mbXG&&%0OZ|tiR(Z&j!$+9fb0{c(c@B z(m8^7f1JsAj`iP564Rp|X`c^18AT(_t4niE>Szb6B0D48DSLsq-!~LY7{# z1c#o_vVA%czaHaVaB%tQ`&;YTfeXFYcZ_*a`Y;k3Ea^xe&8+MX$1T?PMx$xmYz_U>UJA>1{&5+xH^mZ&gZ1en@uGdnIYbdasVN^C<*^Iy$=v>K8 z%e0KZA(GMFXm{rb$*c^z`w7hX&N?aUKL`VBElVsX=_5g(oJ3dc4|*x+&yh*lfmzP@ z8=sq~d}4kT3S_Zw4)mYZUIay~fxPZ}6Vqopn?c_P`olq!PRcdSLd?1R*xvHAX^5@b z^BCk6{pzq?NrGIe{8`vfU6Yu;DnICBK%Z=wfkE$zixDR(dA_HR0De}5X}?l*Fwuiic!Y)E$C?kha| zk0Y1uwP!5GlY@!v$n^4A|DbH*tl-_gVNmvJ9l z4!O$DP-k{AH%s$laz>v??YNSE5B^p69k#zq{*NZ{Lx0yg{4>=!ym=h#Pb{%K)QjOL zrv>_p(2L;XkTYAKZE8(3Lz>q2{fK{J{1JNw;+Tu|bR6{T>?8Kgh6qf0=6Lu&zZsa` zD9|gwe=Em*Nh^Mi3Ii8T{<3`AkgrXMujaeyRroChoU`N770%gp3}W8=e^$)k%>nEO zfAxeT_Fe2po#0n}1Gc1{2d&$%*Hap}8mexgsdVSa%P2v-;mCjIZx7q|Oh>%!I^F}^ zBl6at!cfmB9C-HDc9uJsjq*)Al3?faK_3bFO3=T9du`|DF%7jBrtDlH_Y7uoOr3>p ze6N>*FGJK_$gl6JBleGB$AZ;M-2F4|C&cv+=hM>zgS`D2XMAFPk3_qyopi)5VE_Cz z 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 z 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%0Dkl=fEQ`E9x#kEKB`xJY7~c(wED~ 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

    t5FX040~-3VBbx}8bA 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

    ({`6vM%X)#LJeuIL+k}C%X}| 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
    *D8i{VpZ|s_RMr?Od~x`*z$1YF>ie6ewV^p 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ΝvUz`U!PY+)I}V4 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 literal 0 HcmV?d00001 From 98d8b3bed831d1177423e550252320eb22960893 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 23 Apr 2015 18:09:32 -0400 Subject: [PATCH 090/536] Fixed a bug introduced in 2.4.1a causing serious problems for genomes generated without annotations. Fixed a bug causing seg-faults when generating genomes with a large (>500k) number of junctions. --- Genome.cpp | 4 +++- Parameters.cpp | 6 ++++++ Parameters.h | 1 + Parameters_openReadsFiles.cpp | 1 + STAR | Bin 1792798 -> 1793054 bytes STARstatic | Bin 3646356 -> 0 bytes Transcriptome_quantAlign.cpp | 18 ++++++++++++++++-- VERSION | 2 +- genomeGenerate.cpp | 9 +++++++-- sjdbInsertJunctions.cpp | 9 ++++++++- stitchAlignToTranscript.cpp | 4 ++++ 11 files changed, 47 insertions(+), 7 deletions(-) delete mode 100755 STARstatic diff --git a/Genome.cpp b/Genome.cpp index 0c8f804..e52e55c 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -135,6 +135,9 @@ void Genome::genomeLoad(){//allocate and load Genome exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; + P->sjdbLength = P->sjdbOverhang==0 ? 0 : P->sjdbOverhang*2+1; + + P->inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<> P->sjdbN >> P->sjdbOverhang; - P->sjdbLength=P->sjdbOverhang*2+1; P->inOut->logMain << "Processing splice junctions database sjdbN=" <sjdbN<<", sjdbOverhang=" <sjdbOverhang <<" \n"; P->sjChrStart=P->nChrReal; diff --git a/Parameters.cpp b/Parameters.cpp index b7deebd..7f0760b 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -827,6 +827,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //quantification parameters quant.yes=false; quant.geCount.yes=false; + quant.trSAM.yes=false; if (quant.mode.at(0) != "-") { quant.yes=true; for (uint32 ii=0; iireadIn[ii].is_open() ) inOut->readIn[ii].close(); inOut->readIn[ii].open(readFilesIn.at(ii).c_str()); //try to open the Sequences file right away, exit if failed if (inOut->readIn[ii].fail()) { diff --git a/STAR b/STAR index 5f27ff21264f90fe2d9712f0ac2e6bb5d11171a6..8a260562744d1a4626d8e7115ec03c0cc8eebac3 100755 GIT binary patch delta 281729 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

    7ZmA5PyVtC*re{hnI>79Wmk^wzwD zrDFo!l*^-Je^WF~ql;BT3j!`+IwRuvh6*`@mctWW(<-QMhms5fvxm2Q8m{=1*S9i< zmLc5t`Ny&L-#(2vn}K*wDnkL@>8Dh1xgM%{9;Lq!;4O7?k)d&Zo+_)C6V33zbwWAO z#Cd%vK4B*s*VqR#Ja_ZJ2mPpgwQZDKRZcXmRE^|88$KN_PnHvrcmRBo@n9%i;bhi)c zKgE~kKelo=$gY)zf5rJ$Dr=G)QCWPI76a<7RiAyKosUWdkq6n6c(Wrh`kcB3lK%p8 z5t%s1N)X47ggWSjLSKq+$L~WXxY*U#eO1Nvwb7IUNKHj z$hQdqz`{;YT0cT<%8*KcBntrXP3T)$fIyzs+ohra;hQ@-q8dS787eze6^#?tQUfw} zbE~xEiz}X^0L`JMPJ|XSd~bd2K!0Sl;Bz${6j}?86!~^lF(Gm>GT@)>nW!!JG-w&E z9*q4~su(*AJ+|uu?E-!*5278Anl1 z+(Y15ew*(_j=REDETi265+8f`nB%4H>wipoLD3+}6&m6a|PKO@R^7~fSgUozC(wVJYR^}SnzlKOo z`=1@s=R5>mCCIr#Q)U_jri22M)AE`MSGT>){%W*`PLTWw7ed?^c=? zJ9a))7@DyLlzz<68ZNbvso%WFR|}y}e<{C#p#gQk$jMjt_xc-vqZU9E0XhKyV=&PL z!6v9=*IUMUANh*EhzK8qp+@tT&8}+oLRdSToTagbj^+D{*6=9<14LM03c5(mSVucv z95PG_5OoH_DP=?J?zWUlTY4`9Rg%lD|G!enEde5=J=N(9#(=F(Art*fowvOf28!m+car3eKoQ`;u5qAf z+IoUs=DcdnWZ8IMjhw)F8tZSqdO#a2`E#4-RC)aGt-c#w#$oPQT` z?q^P>%n1^Wo$uczx8iTJ*({i?Lot@fIPG|}CgiK1^xr~tFS<^8aLXuIG^ltR^e_pJ zB3LvsW{-=OJF1HSIV)IHbAB^MW(UJ9z`N5Zbd;0%!QjyMJ*8iW=<0l_r@SXbEUTVg zsfW*IJ_*)!8<^vR$^CYSxUP2zp6d!d)l+V}GE?r#ZZe>@Xyv@sMfR>OK5<n zWrunqLJy^Sa!frD?o`9%v-L!1;7Q#{e5|H48FEuS(Y)5oPSC)&5Vo@~9Cv~0f@cEsJRWmvkWSx3rnZqhLnXm*@o7)RS~#SwdLkUqIO`H z&Xx+0jA9wf(~ZQVL#mSRJYm%vt^U`R*nB(vUAz+*d;puMBCNI&tRfoM`Yh6q>QpV1 zA4ZD0Iu!m%2l-8;2zFGKrz6D*=Zy|>L6itdZVr+>O(0adB(Y>b$=3z$0cy|7EVCZO zy4a4q&Q~sU7g?lI`Nn%23tS^FM2Wzf%^)p84c1JVggD#bPPB-OsRvE)yrb79 zcrKn?K;eScs9=w8)x5n``)X(Tc(jOhe%@NX5e+lAthL-1En?CNAT@o7nKiVM0>k&n zEWoh?9cSK)1l#Y5o)rg}Ju9((P(L>X(4+uw3XU;DLS<;9yxx`G zO~Z}#q2A7W0qCvhC^W|aM()l*B_r1@yEGBKoyS^AR}*o}dhsCEYll0QvBNE7MvQ2g zhCKBpI&PWjgfbvMqbhHJTmL1xx@^Me^VvKG|F|bM?cwA33|+xttGURa%ATo^d2ouK zngKU-s(JxDU8D|l;>i_>L!(=+4032p(%SZhXOUH1y`pY{m6)_J^3dua~d=g<8ybM7~A+O zw2Q+E;Z)YVO#ZQE2n}RS5SdZP#r$wj3oL%e%hy_nkUpFrGRGs|njSJI;%D*fP_G2% z<`{A$5r#@VjGpv$ZEHtY!SzWBD&Ta}I=EJjmLeW6B6nyhYFBR-NBU>s&I3-}=uOiH zTZ+1+uRUisr@5cCt{8%*el`OwG!i24^fwN@8>L-^bt&RQVHo=BU>T3tkwwpQGt5KEU7WuO!bg%mxci>Q_MVOZ(r){zP5gm-(rP`!?vj4eY0eSDn0ncqN@ zH*;onPtlWnp-Mw>qAP<>0p0ED7~VIt$an59K)@3~_mn|B=r5?dBS!`%h|bkcT5Qk< z&lZQvQ3;|W_TFAk5Rs04xqA{sn8VRr{@zs#F29P$+ddAJ-MfjOonZ|rhA7#uyQqbU za6)%6$G_`bOB5%IMKMqQ*mm9&gPxLkJw$H{(~q@fa8L1-Gx|OGTTcvp;?}%!oWzky%1C_kk4fqxSglW(j~ztv048?V5u5D z8j}uLeHVg!N`oG~0ub0Z9&AJs2QgYjsqa|Pd*AH~B#OmQ0TvWsS_tYxt12a+tD@#B zrE5Mf4=0NF$VJuB2Uo)rZMA#EWA)S~#AOa4hcneiFSxLe-VmJuIaMqqk zs@Fj$l=ncwcv#=9Nup;5BbbmS&wPxhEd$E;0PJVW`aN|JT@U}K`6pOuURIILO0Mb%U$_JK3( zE64Q__d8ek%RPNWxL!8B3|MO}PAOwIKB_K7GFD(cJImI|qJ<+{j!za19g*_+WU;E9 zHD(9ms9pmIh6^Y^C{d!Tg$}wGp@YQ{L?;1w1T#+^4v>%c6~WFAYRRm=qLnYP-0c$W zk}>xERF?d@uc%Y=5mdIuupQ8(Jsu+e>?<1k$J|ktuWHE-cf$`m>#uvf8L=sxN4<_g zcC2(x0(15vM}KbtoN^~JCl@);|8`_u?aFqkyB~_!88o|uNC2VZ98Y`ey9bv*OeTsA zl_Qqwbwa-Su9CcPx9DDZga+Yf6Kl#Y{X|H}tr|qNHR3%0mY68@TMhX{KatTX^)JQj zy-F&T?VEd1ZNkvdwLx7mha+TMiUz-qW&re-Y@{SoH^RF+BsB8-&A!(fvglPL-|dFJfwU0i!&% z=%185;_g5=;Cz1(0s~lSfZ$Gi^Z+rcoIdg~HaBO0sP1sy(=_+ZdqhP?+k{w7s9Pfx zM+QbH*KpcFGJRkX(%s`t%3tUB_QZU`y@M3&H~%sa;ou>@mIU;|&pUl{ob|!0>+nIg zH@A?VEXIKreC!s~rfRb9AQ7E#u9}5~1(sJtRCIaXpWRd!_R(d^U+U!I!H9e z-8Ksg^EcxVTj3z_yZ_@Vu)wvsOl5kt}*(ZKc%p?*wcZ_uK%#m`6LDajbsjfGa-Nc^3 zK#(7`010xrVi}s|j0VUB9(W2F|{)E`yOn3_C0gRfYjWr0g|J z)Q_*D`-3|OC@TAf$?d_kvA6*Rjxb#Mhwc_O`vFP8yfI9C8~G$_Y3s`LFzX>>+N)5F3ODw3Z}N4Um1LjcVo<@I=NIf85V=IrIvQ*Nk^n?HbT^CRY}8A6%EUVCP)9NeiJ3l zX_KKY`V{*o`0D8F5u#R8-Bcd(-5=Dlo@w5UL}K=$h<@xE1h$T%)R$}%>=B*q)FAVHAusvsjjIoZkh7FRPkWg&o@v3{3l?d zD@FB~-wNA9RvLOKe@Yc?T9Od!W9c!CmDOu{74ZkBk5Es$MYr2=Q>aOCtwgiNn%L1t=sTpz-!cGzgq)44BLzA;*a_BHPYZa<>;jFCdj_+QAe)ijlhh)++J;*IEw4ebWmpWaeHqt# z>FA_-gVii^{}iE*YFln2&LHA68}Whi^-D0{N7xTb!>%MOCi!u~zfmkpGfJ1f!qRAs z$)1F6-ITq@iQ2=o&voOfR|QfoqH0TBbxj24?_#Pa0|h_xtM&od6Iq%8j}rT*$R-2m z&C~KfE4Pmm;TX>+$BA0L&vCGVVdtS1G~pE=6m58l;XzR|k?Rq4U5`R*FqKt`n>@FL zst2rLgx}Rw$A+P@-UD)4_}eK4~6%fvQM&TS-RMj+{<$9cyR?!R=)F)nC?iH^(KgD-}W|zu{MT#C!m$@F3A@r zh%o2Y>hhxrqLJ?!tvMKI7P0aafPg3TVKKvbw1<4 znGw_UgY)h&Y=66ECC)pQ%3DpY$DOr++o|K1F;u;iY~ckt^$~2-Op+@f0Zo`get1Mg zq>a14E|+L=FV?Xq1eL@>YXuNmIzJBi*7=8dXV79@94<}*+w|l#o+>aWPY3juK~Wfs zjsifjj_4Vp@cd1zB(EfzP=a62%V!=HW18rKr%_Nmbv(j^mza@ASdD&CAgezn{F8Se zhhupi_^3W+0z8_iR@uL%spU2RXI1qg5?s?&f{3u^RdA41=?roMY>J%tn22$HabCXu zm}p${Rls_ho&wc?IS=%NDKCF~46z>EIDcH+0|({)#}TW&c}cn+7mYivEkuo4{OmVs z(5|sYEo5@}Sc89&Ps^%4;pj=g=m7+0h|A~Xg~zd*io??rv7?8VV$r) z`S}wf(Ruic^nFrvcC?juKPlQ*KTg3t1Fc4=o`{p>vL~Syi_ge!o)nG!M(JtyRlSl% zr1Z3`JPARya7EbG3U&Dni;GQs&YCluO~db+Zs#Li}gi2Zgp5s&V6!5_MeIc z{snL)(FG+ci4tZ`75@o1@9{cqUI+i2M~iC4d;qZaNv_W<;Y zZGTY=?8UT4$(*M}K){OP5-twd`0Gk;d|HJ0KU!SEH33T=mZzTjZs6>Q22C;1ogBkrH*?UONV_vLTB zbTV1e?nmF{iuvL#N93&o;DxJU&#O_~PG8C;E!Q@#zz)cvyTpmx3f7H^*nI?z{F^x4 zfQL!ezm3y11KQ1#(T+O-T%h@!iR#vy2^;O439{fhQ5(*Ad6!6l6-;ztHCOj2TER5* zm-DV|d3+s_uA$`Ncw*jxopLVk>_bm84ifg+xjT7u&EhpqD4Y+#G_o96>|?!isYa!r-Q!?ML#BQU zjbrKOuk={bCyV5{Y|*&qtsg)HOiC+~?aG+e5H6nHU*}7m5OT6BTm=I~-^^cq=U&1* zNi`IQH&kAJL8S8V$cs3u<$I9T;GwW*UOMD+FCt#N`fIu6Me#BrUn1l; z7UYhykS~em0jnWh&)0nSNk0@tNkz$hs06Eg7Jr;7PgYwb8il4nexAFu^NL|ZOX58g z;842{$N`H)bX-NkR01+ONV+kEAqIX)!567y{G|oBgyBKEw)N1>A{l$3Tu?P#VM9a& zB&8OADZg0+*Y+WKYmvCGW>r-3G}9NyY*7K@H2LUaQ8)U1v_?b+$p@T9K${%&o^xEy zAfassz_DMr7_$s6kuDbPu#T>?1fE}AnYcu>u9lA(#ygTHotCa8BBbg@ou`j0_B}1v zFA))ezF&ZhPr0Ajde_Y&70Z8`$kR(iN9$hK=TKbj=8P|6i=WKxE=8+Kp-s1dLhGe= zeAg@8`(3YUt;^%`+(xeep(6TwQDD$_L(}gRxh=kvJ*0#%fWql5^@9S@#o!{$IE*+kPURNn8CvDWClH z_ekVqz9gHco>)_=WUgHTspqMwNEG|=6YLUhUL|F>YNPHgjWJo5F0xjLO$IWymY10Q zq(k{z*wZYBsgaFjBGHGGMqdR94DW9_yiqpd%~DODf0yKLu%gf?+_Ab;;UT;5yj}Cn z(uJSu!pRZS(nt?ted=xG6!&SVT{qpTO8`d9MwLb}nK0HW{-M&G8jgH>lP|6`d=H%u z~t1ji^w)r2$Tbae$N>WLF& z^Pfb9s`R-NPCB07$~ccGO5f4&Q_ta|-FY<%monX(;1JSz{Pr9a0?o$k!e0yuu2Z{a z?bvi@d`oq}dby|Xr#&kXDjiS+Y2#Bm2Bv}m!(uMd(3*-W@AT>Fo7=NW-_bn<3%CSB zJ$Y-Rh^Y59!$+er&)VO}LAefz!cg-s40YE{qE>X$N((9Tto83gSbz1$@{(+}wR5eU zyGgWm{&GWZ*(4rxOqUHdW2xO;4%;l^(<YgW1YozBAto(b|Qs|8FIoFtOZxRBbRK!de1NSyDj2Jqf?yC8;vT$PH0p? zc0!}7WG6JL+pnWHu$EKg`R(FJ^*Tt>*az6z3*^xqA}wISYZjEy`iL8zyKt!PkO5yHp*!O-z4_9Q8)~)q<7En?P)&eV+OGdZy8hFbdZ!5{OI-gKm*qz6 z7Ux9ympFh<$lQ><;vQ#>>)I6HK=NW8!O7fOPCE995GlVBLC&XQbJu+(x;QF%p>Dq< zuYZj=_QhtoE%%8R92LC##Zz?q@?-=aO$ z_<1W_^vPu`)3VnxH0$nZAHS?7PaPEPofm87HaH}985Nh<-d?%f!tX`0v(hR%y?&nT zc~ra-wELNxMSpbly?35>;#_^JoR6BFd-bSz(h=Dq4Vvs~IQMPsZV$yby~sp3;M0*q zuW%Zk&%-(==a`t#_{Ou8Ew4?(2qE9={u9OC+I;mA5`A6ou7e>+gw09^ z$@*rg^QM9D+7Es>58? z`nQ1oAt}Wc7rV@^6^GDy1`S6IyLkCw^&9%tm9?z{4sU5LC1ssS&WbSrI8-eHX>4Na zb5;|l@i4L6a6;5^E}A0`o)E*FKB2kIeiTQHzFJqOdv$ekSzVp+m*w;{!uKwQXR<`M z@ec6M;<Q06vZH+>yBhei4z*3VY@nYq784BcJ{a1~NzP_)YxBu~X*!F1A(bh$o}^ zX72T!+foiWg%gEO$RH)c10IL9NsRw&+s19@i+ty~;aqx#%RWlf3hIiIzS(ybC4A!U zlU>CxF&>}b_RVM_XDTr_qCBw8_V1ZlG`m`l4qGGEpi$qsZzHof_57nU!h_=(&*t{_ zh%Jub#UL#GhQoL6{rEBW;FL;T)8h@_xe>B%fjEh?Nq-iIIDDom_6&C1=gWR);G`DF zv@>FovO6)%;YE~KoH@Ghxh0J^8xpU%y5+(j$Yzt%ckbbm6vVPu{%}Fmi8+DH^c$!ih$|Kr4VCeWLx(+c$s_30b}E_2koEr% z(M`62s6BK2cQbDjTZ_9AchH05KNz&%^^Du=*$478)#>u7KScf34-sG1Ro_qVE=rF6 zPq+5T<%@hX2Qo9`oFj40)`x~uQn z{l>yy@e8D^BPog5DMc9MR0%kUMcFaYp3gzZwk=R}Pk-6%qG(xR9x~$2dLEFoE{es@ za)u1JB=RfG0(NM&Z>A}4UxIP(Eh8`E)JQk^?q#vW(NcE4f(XrCIqZrE9TI>I0MFZ+ zoCOwx=Gf%yG3Jn*?3gIHe0)gGJ2>wk%+r<2NDj;=@IcA7Z6t5E%)27$;cTbpiim8x z22ZF%S>mtedoF^jB`1ex(nho&>$NFNme_~^vinsr+Bti)eDA7g)1cRA*kXi=qPWwb zzp1i&RB;Yhq@Rq+bzBp>4ZINF$7efDtQtG+W|8%)_QSN~_{!FU$f1nY-jOg_IslhL zDkh|QsbI2%if2a2fLmftWZ?)lX11HB=cNRWGx{s8y3LS7W1I@Cn3uNR5)Z|$MVD}l zT)zaK>U{~E0Qx2HQR7)U#SbUaeUPW-jFp3Ki?PmH8FK4wQQO&Rjy!r>vE@G5F}vTYn-1iZ?#?{|Qg?`0(5t ze~K!O3C%F%-Q}Iu3N7w_@;*g!m&%kh$l9#S_g)=WF*bUS`&AwES&qvV2IGjrC6WzWe1eVK&6q zN4E>JX3MpM2scnaF%^t1>ZRgIee%5SFEd!V>96<$RYC{bVPr#ZE12fEX5%PE_{tg< zW&G>)sR-xwsTA@dm{(1+pY!^C@~mkF*Rv!O1t_mi6^q|`XNN}_)(w}9%9%~0j?il| zhU3GTr-qQqmRj4eN&f}-SgcQ94Usd-nK5av*(!O*15^2`<8br}&ets>`Ii)1u2No# z%DbbI)g8EGJZSKoZB-JWxsDHIWO>uNMHMJh%9{=AMDFDBh!zjWsG)6GD=yM1rA};+ zFO)ZHAtbe?yji<)Q}ELB2c{O)AopN-vp%jq+#|14G(#t}Lr|17CqOhjth8bvmMbzj z>!zm@?7VeR`qg`2r}Qq~i}>Y*W;FLnK*J8GFEMk|bNdeR;86bFVX|*!GpO2; zC)gk~6l9K>BA={mMj@j2N@X*`d19OVtg;#IuRDLPKS@p-%C-&;ke4c(k)3qG1{PqK z)<&*+fHY5Cy`Ie{@LV*G`$BdxAv5ss-RwbfXcaTedG=oUbQLq%uLuTeE_T5yKvU8G z74o|(=1}L=zOs2$^O+jw2jQ`9c=dGAd%IeNBlNhds@bN33!ai5e~xMpHy*;RW`;Wx zCdtm#%&sYeARaJTUn2{@W*f3#n0bATth^Qw9xUQrG8Iixxcb|hq~6TlptC8Ur!^Q3PXUbSio;5(saN}12^Ok_IBv`-m+j>qB_~wSW(5=*j`71bz||@-ICba*x166 zgDVVbPhYvi*NjU0c9jLmeDxo@cdVv%B0&bKc+MU?qi}>G$UHk4(@vqv(CS~LUa`Sw z9sj~-W=3gidI@?CY!g)nXexeSsmP)r1nQG;xkFW_vxss2b%cuD#%-g6@oAl@`sW>+_Z$A#Izn)5Y~DA*1h z1!sK2dv<@ikvGr*bON1m!-HgLAM zTUPNmLt=bO!`852Z`k^Cl4n%0^&d{*PU$22`E%imjJWCc_T%}1e(EhPLk=c?3z3R0|nJE?X%RjqaqZD;8zSO7LOv818NYzU8|`M8(c4b}HHgyu^c zYGpSx*KTO0-B5zvP?gdhO0(NZ@wU^UP*q_=pdF8y*$r*(X7@;Q%iE)`U$c5t$8IP< zuCHkZ4D#|S$VMIOMO~=g>IKY*4fwc+XoeQ50bb0EvJ~@bjE#8%C?Pl2+$C!TneF@! z0;SiN(4Rt5C*`PMvySuGLYWa{Mz@_$0Q>lo1@J7IF?*U;yj7s;B%h*bH{=?D|(uJ?p=hYt*g`g;xEoFpp326gK_8 z$kopLhZZnq35!ncc0b)$Hmz-j_oBD&58^x(;Qo2qBLV{6Yk5N{RlJs$WhqpQHvvsh zVcrDB3O<1PQf)K3_IRCV*%z;JSoY;HdAPP&w{i-tJSEnwtt_f-)`^SuW_*uN?|HS1 zlfO1m@NN>baL!0My2WZOBV`pNRNQNx7DJ~s1Jznx1I{Mxmo=m0spk;A z@-{g>8!H+Vx|dsR9?)&VeekyVn8sic=53QEzm0CwqNPMwq^6^;Vavd#1|LtW9%cqS z_zYM{Ica(zC*`G!T6wlBh(xf>hnY4@a8%h#$sU+HcWRL}z3%M{M3`RJYci}p00+-- zh2xpE1!0hCnp_`d)~Y$YbiI*wy}RU3pvSqhv%DH+CN_R+e3Z}6ba=H<$ue`0R=e86 z;`(3*N}uB->I8f;;GuAH8RD$?rbm}r-^H^#UV-pS6P7@>#mnLK%=%_1?}^Lwdgi^x zN6utY z@>HI#VTnznVFN1@ZWh%b`^om??6)FL;(2maRW7Y>*6A~?v&DVp{SEi~qbc`$Hunb- zJGkEw2)%UCH_@Xlw}ULIZ#L*v$wqiUBh1hmPI0>0sZ)?bF|yNOGm#zCo$+cKkdfrR za(n~x-k|WRJ;9A1)qNBKl?dxhCbszn1v)=vk z?S|$(-Spj)!{m_*=MmMTt@tZBA_^zo^vtBq9_9(GzTOz7*SIV3$BJXv^Hlpr<~T=$ ze4~*W5CVhkox$#ynD#eW-IJB#vpaYZS2{0?!OJ*+!`od2H{W`oXCin04$odRjFx z>-%?RH=ql_$?@-UO7zX#D<5iNwn@B9A~Af%`%JDxfbr@VJ15o7Nmbw29idH7-?DA+ zRVT_*2cU6lo5@p6%&5@MwZdBFCu90GAK&>t^(^fOS4TU_rZHF%<#v?)Vz5BEOFkB3 z24UCg*%-4yn;96%?r?{t&9mbyv|6jNWI4w)79%OP8nA6Hz3!IzF=kjoqtbPw?Yh-D zA^@{Y*R|=Lsdd&)thH_C5ZSq@85%lG524buk6|<5Nw`|j!J>Ua2Tgm(4Z?z;ggXct zCJ!|=8?ijQ zWoR5MLPjb^V`6s4&mm49^-_$?Xl9NKX%R!O6~}$>xE$Us)i8W9sg}Ii4C`(m8Q9!h z?G*jx&gSL>$2i$E*8CdZio6kP#$o3sCeD1X;Yr#Q`xx>-pre30+7ejDO=!>&Ag{-n zq2VT6JbjP}rw{Nm?pQ%Ul55}zfaoQ1BiXiv8CJV9%?@-d%GRhT6{8IiNR;bCj9UJ4 z@Zlh9InlhCwVX(nueUJ20DTX(H1F&1qPN%E)45}jm$4BWZv1agMt{15Do(Q}k3moO zcwRKqx0wpn`tRiJmS)f+zI-tS+8=iimQ=fh(BSjvi)sdEimRetJ8z>Jh7LQZPs3G- zB&)YZOe@a0(a6e4EzVJPPGWJ+_l;zFD>JxjoyP3*t_q3qC#GOG2cfHCkT+P#9zj$D zKiaP2+FW^^xk6moI@-!?kQUVx%COPaq$bg*2x0hxNfg2>Oap<>9h!8r3Hsojc6Fhv z%(Qz5LM=x6eUydNjh2YC7my~?)Pk|e_25x10rRz=gIEaNt%_W}pQ5J=w#Ca=TbrS6 zH-lH!eg2DjLMl|_8vq?_6Ry-=u+I?BnhgYKVINv#-Or=sh1RBj+D#kR7i1Z_bASz5 z3N+|1cnysg;zi^>G0Q`D)wN^?hCou*1&TdZ-J4-GbFbY@fBa3#o?StGL8aqt@{8_? zWd#zmgAw&XhN`74Z;1q6l&`db1jaQ1vrgI)c!)Xy3G~;)qEH=W8YHjK7)$ELHwFz} z3FyMI5~yApX@HIN7Bb17xi-=q`qF90_!jck5h2~mqKNX8KzYLo)J)a#dMhG_g;_t6 zu>uNa9g*|bK&RA4^?;hv&@4kZ=#>`U zFfn|9mfa1|5AuB-+T`D*P!)C}oJ{~hf+o78Zo2%S9oB_IOV_>6uG`(N`xVlxn}g6K zann3O2_Y(`M z%;4`LHJt6+cvU~0SQH`b#(daVUp7XSryTrB8v7YKU$(KFF!@fr8969F&BC1za)_H~ z)IptC6k*u7PvR`U`(ENcqS*z@ha9adMQZF{aQn;p?ah{hhuElx*r#N(YRx<1Z2rE4rY)|G-^K*{HS>a)r0npdUDIYxvMSp zp6)p8#ArQ(m~$Xm*3@3eT*7-3xq4{ksgYr_OH;FMXgY>}qO0_@zK~&27pL__O|5DD z$)A%i2jMSQ_P$zWFhfD@l+&9)KvZ3} zMa1x+Qr-lELdTfUUA@3o=IjoJ;O>hV(RFy&5nb=^I&v2pM65}Di&6^YYeHcR=+FY! zj-G+?W=FGb?gZDV`}G){OeZ)`y#cK533@upQyWm?zGlIycWp3+WYzQrRZ-N=Ue#uY z$yJ@rdd>-r6?qsmu0NFR8K`3?|FU8w)yOYi=@pUyFGt9ZW*W84A}_Rep;s^R zW(eptdv_yS27*Q2s;;V?<&dss3%$3uu%2Al)eH*wT`O3p{LU6M*JsD%=C0VfDr_M0 zyP9DEq4vNeub=5ku)qviqnp{H=X_f%dR^S44up3E0bx&DYg4eeT?(wOt;ax8wYo;q zsfPZ8Z|F2OYs&EV&2sYXZl+($AnMp;29~{a+e$Dy9NToyLnS$i`zdB1|5@Rzkf zYZaSTtpu9Z3hFc1Ai8*D=O-PBpwp)^zdL-iFQK`ft=LFq_e!dys8PUGoR@)(`c&Z1 zryc20GT&x%#*sG?`t_eDi%cIl-Mt2Jv# zVuJC^L}{WiKqY1!^6b}Fy0y9e3V@zelogy~a5FI;Z(;VpqC8{q8NjF|lwcR|R372Q@x#`iKK)84|M=Uel^q+MTk2!~8JjmOZ_H!xL) zI+ihIwz|UFXng!Xk*xPnzObQn2ffxry=Ysl1gO=g<>R$p<;vfCnGsPuR1?#F|#GhJr($`zSZ)6)C1x9AY8T zTF?H0)y3oF^*btg$=AkkRQSyrS`z3()y#HUv!87zPj)v$gG!{#2-Q&aBX#o7LD@Ia ztQFXl3J3nN@AY)O!20djJGSUs$VjX78my) zbrpQjG;4w2PxU)3QIo&HcNxnj&wcjbd0PL4jt|_W%o_A5@PhaUcdo1ps*{A$E9;|n zPRYtT&(0}XS$|SpK9OYBc3umR&nKC|m8X4!@b%LG^E@WkCz%0h_aehP*xt0BIiS4W z3$W-&r}}VOrOdFj@}8lYkBBkP(C7hxe0{v*qMp2PyraDy(>&gR;lWbg#B9w{9PVhN zwXKMMvbV_|z0G=Y)VVESF+H}65W45R1F+toWUo$&Z&3>M9gW9t{3r^n*Lj>wg5$mt{kCzz zsRDegO+!6sLuq$@7@D|JmS90DgC{4_EAk z>P=tjD7lb|oJ7}hhP_zu913(q25TfV;Lc$&O!$+mV4dE*i}}BY;{6>K3`2o?osIVY zDEkt)DvPgwxcEGh8>FJRqoOQs;EpRO>cvp8T(gwS+%q&yTrUcgc*V%lvBf2`v|nas zCa#1lnq@AfmMNGObEU+x+;aJUzwi^q5`2YjiXl_uEYHqb*@y3%6_4-7z ztr??UR)u(OfL7;eHoCQt+4TvAz-$8?s>2jyQI-FXymJiX(s^eDiaP_eAT|1Ij4bS# zp1ps?V{Crvl-5{KGwYJh|LT{x?|yqKx3%#;l;^6WJu}JMz1gOWDGQTK*NU%kUO?do z*>}K`K0u4Xo#$U6kAX%eHkFCz{A@8Yfg;po;V;U?*Oej?9@m=b5%hN-iUs`rfIZYeu@%3|ALsAeN5s#MYvJ8j@#Ebi5IN0od~QeP z;J3Noqe5PdP1X1cN~5Z(qpL7O-yWU=2a00%+I5{wh>78l*MqtAd6) zS2BF@-n}UO8wV|49Q=sN!WE4Xm$@+E4e_`zahplj_B30JYk^ogNUP&Gh6ExUz+d%_ zIpT;j4rCP-(I5)dSY8de-!t*vCf)_K1ck@o#uV1DtDo7SHacwBQi%DtIsWoO6{nU# zx9+SNc@*RDbo`FbjQ77SLI-QFd)E?s25XVFKIL&Ys8-ANRV7hji1ucKhG;R=!-R4; z2HRHS$06BV>9bh2eN^lpqJ3<8PRpJ;6kDIznpr+f`}@(ibe1$J2nt}lvC~JqJsiA; z`H17gwPD7CW!_j=Q}+nGQR+yEP4s+HYZH?5;0|1Jiw#Xx$8-*ZUid;>^c=7X5Oz$r z0Kr<#swcIlhb=D8?6B%)&np*f4T*@L!iu{<{q{^A%s_)9R6YrOZVz~=fKJSdZpxbw zN9|*%h1C08v-;UvJU#*wGsJiLrGJfK6Nh^wF|NC?ZedMDiV<}@6>EqPQg&nM@ye_c z7@OQJ@oikQcG zQq?S>x(l-?UA8-fpx5)t`NH8Q^Cj6Oq?nl<{ukLnLR4Vp2{+YB9wYv!gevP_R7(j_ z1-oca$+<*#zCH}3b}{{FEwsAbO=YR4eL1n^X%F@2#K5|v7v5Dis_-u#a`}vdE~^$V z0aUuA-w>i|#H*Y^w$~s__8|MuzsOb+f^mhHBL@$6DT{g8piA+fd+}d%&k)jpQYM&W z0}Qf79%NnqMHWs7ZVL9wX=;)M8e~}x4?68%bk}X5!`d}&s4?j-0Rp8g!pPTB%5fsG zaaxgIat|QJ3iy6_DYXK=5a|k3rg?TWr!06`Su5UO?#h24Z5CHy(Z}4HsvUj1zvDQ(>5tvH)IFeJUA|+dbv2u z8+@*;IbU8VFKQ)fVYaRJMQozhGIrtpI}cpoVibowvw-Oui(K$Qr%`b44t^HO9bPCY zd}IRs5V{xmZRM|X?}_b+TA#-^u(>Bei#Z8U1$CFPPgYeud*`3v# zeQ%{7O|}z~MGRhEeaP-JUOJ<1rROF`Ght?VG2j`59aItHp3&;penI(-D@7-WiRApd z6suSc)y0};w5Ct4QDPO#vuw|0#ppre%t65pQ;c;eHN}{HEB!$-Tv)!$C5F?-nRLsP zB>jdV-v(WYVe4iS9Y(J$A zwdS^8?ubXnXpL$azOq<;2vbm*VxJr?|E+r>evH=I-jv=5(~pr#tBm#I@j)Q;1OC4< z?WpW2Us58w69-{RGCe#7hk$fZJVpz!rQ8tua|m2Wyg{^5?@78k!#d@-zwSJcqyG}I z&mn%T5){pnq_OovYY^dpya_E5_yT~QRr3z3W;Xa5T{AyRs%F_uvF$mndy^QjN8cP? z2YqvT0Tc(5&c{1=ttX8ejWK>Ym{O+ zvzxLI4HC=&m3Qxp+T*m5x*D^U7xTw40^D1y9H+GiZ*b=hVhD`etYstShN`LnDcIAW zfM+k!fAKi2LvRjM>Bispw}Jm5m=He~_`K$??|7|g^Mij77*Lri!s%BG8ep+|f>Zd{ zS^0i#V+@l5&xtY2JL9z(;V-h9EEJ4yi2AP$04|v00fGrygWzxv{9W9{<+PXSe_RJ6 zE)v8zstMOQO+~Qi}l94c#B~Z$TXdkjmY1rkG0@!+;gl(O7}(G$y!6d4KzHYGG}Tl zezI1p4y92@cl^=^s&GpjwgCd~UQd~3Z#&ee9b`F(|&9Q!+R!EX$*6XfvU#k}XWXKEd01)CaEna#sNxeGx{y2fFTr%7A9@;RlT`dM z!V|9nj=CQHf;O$?PNi)Vm(_r@m1h3LvyS+##cv!Gxcvg+G2{ObeUmW6o-d{(X*FyG zF7a}b)-=%0+D640+47Q51~BgbLmW)f+Sx|@F8%?Lt^MyJXsT8NcP4b0s?{5mWojY; zWm45>)L|{?gLOCoWr;k`T2ct={y?J+{n8h;!}Sj5{n9E!G`kb4-bTpN#jDvHr)oal zL%uiV;o2|_>8SZlRq{K7I)l80=J$t66dckszb7c28Y-cMMgWf6le}NlVq#AHLVX*s zSagTIAnc;M+?|FX!{oDUkY=)TJUXibcAsG~{rBXmMtaY`Me2*1-FEvg@%4*ZecShc ziQiw;;%p;}MaSt{^QW?uIY5Oljkeb)<{QC&yn_R^8U!(n%ik;fW~5XxQ~cd2*HqEo z2(E0Vc)3%~6p7sFS~uGe*NPchf_FJFa0V72AHOc9&(K=g8eSLg@cezUf10J?(TPB+u2( z;Lm`0T0kjZb0>thW7IBvjbk3%Wx9BCo)#4UUz(%288S@1U0{@2H9Q!q(N^im^6YZt z6(l;fJTK0+1C9u7z82Ys3lTrC49Jn*r1Uhhcc>u?8$#(j!ofsInL>Mll=J2*DaCv^ z#*hN>&3x@eTaO<_tV5g9Xx&BfPgC~l9Cj=Hyx*dlIF4=^hx}8DZyj1Q+aW2uQ($xJ z#MA|_xo#=i4%__8;#LY`TQ?Po+6ypSpH(ROEr9bFR4Aq`fKB%QDLZtb_O|zsXdSZ_ zGq$qH4;=So8xtjCXk&v6IjfDKl+=*Uzls%S`EkN zOtU7SJD3KXwJa4Z%+fXg{x^T=uAqNN>_Jqjf^sf1SB9E9>otNI*qwBpPF-wH)0(tk zO?6e8G-}GT8}mzlvwlfU;a1=k>7G3pZf^ezV@c00u5CIhYVr4Ca=KQp)kkM3m8Fkj z*_nbsN<%+auPXv09n4iIzPm#%fiY0MTcYqf2^pAm5{Yt2h68IKFp;f^HiDjIH= z_Y!BltPQdyoDsjito89OFIv6=y5GJNeP1a<_c(%9l|7ntuf3wJvkg2g+AY#vvSoZL zK3=4K&>-t09Q6)D|0erTr;~8DC)A$t4fl@y<(QLVT81_%v4BXhR1DsV<>7Nisdz9{ zy3TX_hchPZ65vxS!9V6)hJA4Ox8w{lHw9l~A}S<_!?>EKF%X0TymE?_85PSz$3^5~ ztx-vtq35pL%S4&Um+fN8Vy&KE9Q5n9pQlcXw-#&d9pwnL?qer&bL-$YWbTGPI7PU+ z&gxrFc%g!;C&>1A!oL9=H-Yd%5cwVxEUVql1YG=s$k|YP)a2kGF~F%+8?_9Ut;S{F zt9UA`H^K?Cw8POvxJ8p|>Zc<0VVT1jPvRw&zjE%rGz zJ}r{(RNmn>?$_{(MRmEw$~!4qEzw%|E&9#_=sYPVEzv^4M*nCEcZ{7E^8FO~s@B6A zT+a`*5Dq?fFVR-FcULx1yMZC)-%=uCvE2C$MC2kzP93u(hArIVMLdkL&?E^`(qb)6E<^>pOTGLX@yt>! z+wm1D#a-3k9A|mVs`E_Pt`dxCn#}M_dB;pa@M)fW!82tcQ~Yv_!?ALZXVN$%(WIJ9 zZ^akA@?;0k)V?N5l~Ru>mIXx|7l&Wf#zk*HJ-db8g^QLfp_h6lyo&^Lto{<=7MF~# z#q(KO^S&e47%@~z%Y`y6Euow8l`&SzLXQ;bL}e&6tnR9w!|va2e0 z5U5(ZS~|URLTq|XJ7e4WWp>&!P4jN)**}c>@?ZT!7nD0^yy^bCe<`wG*9P|d5ruFU zHUB7!YF5Km&y+)EimHZ{OtDJ)(NXc(8`{7gc2D%jJQ>yZOo{YlRL+x8O>yxJ?fL4i zJXoJvHtP!Oqn(QbV$^b+CQQ#xTaKpIt>-Zhk$VH(^d5CQ;Vl(h-G=Jp39ljYS7>$p zTu_g@2)`W`6@(Vj^8jj5RahKqz#10_66f7A_i-TYs+u~5d^jciQNF}F|QwnBk`gvZ7kuNpj|E5;G z{|*&GgL`F32??_}Dt?bZe5Amb)zlb&A3EpW`W5ryUF(i>kq9(edo+~$N9aTRVP2yDEzW{N|KaHU#>lm~Wnd_>EeJcDpW<*#pb%Dalm$%U%K*jZ_DJEeJRcfO~2N4@gB9yQt6?pzpxo+kI;zwSx-s2xUy876VjzbE%gj3>po%s3SEUa>S!=YSqH7FuY|KlR3k3Cs)it z2I$HRnqql9K-5{KHEX?jA5_vBtI5y+kY#;*TX@zqjcdxk9#Be=D*{CFDy>O)d8%?H zub@MbJ~1v2I{n2R^Zuiw?q6SgA@YFFtIStvHEl_`LSL;7we>kHMy=Kwb!&|3bk)Tb zbOwjNl$2-&+}46L+o*pw3$E>((pyqVv0r?#S_`jQ5%%kP9D9uBzUG`S#6PRGsM@&@ z!j*c}f?M=5^b65{jn=wVFdC?Yl}H3o?EN6F8?&~F1SR&8Z9v7L$&w3E%++jkc?!C zP`lGg@$c?66#V91abd02YsBODX3;r)mA%Z5Abxb@hm%VSEln^d9`aqNfna}G(?kfA zmCawF(#QPOQQqDo=DiCyFsrtB|6MKI)?}|ZiNE2u_duY92;MO*VFJFX(XwhExJNWu zhn4V8Yl-LAf&S?|;!XaI+#?RH(|Xw^?iQ8a)7sj$?G`=W(|VSFVK?|LxFqK7@CmHm z5AoNWXWU>xdNQT+B{4AFr*<9aoohERXB984#KjsG{MtG3`+Hh<+sb{S<$A59ZRIX8 zl7GkV5=+;^86VjxHm}!Odsi2i)@wb=pWF$iEzha!{9?`;+5N-p-rp$(zOO~wp4};4 ze_uXyx9Z9HVRdyD9 z$W9TlQ5#*m>ZizZHg4{PMqJ(S5E2?8Tf~>2i%lD~7)+k7Zp0$Z+0R9T54G^NAAJt= zM-Jff%(UNu#)BM%vIc-`yH)U)nQ$^Ey%n%n-rgqWeW;DJW$Y0bKGbUZ1);hjU&i+= zNY}-}=Rder>&Hi>`@!PVO{zq%+ZL@C|IUi}0ZU5OVns3rVLO&%p=d;KTf?kaa z!zHyp4af`*kt>;}v$Nrw-rg+c0K5F7xN=55y-9qyNxNrT`ia>1vDOp=?{7YagYXi6 z<4=Vrw}1`}>C{dUyjg3cUMKqUV~ly!p8VQU3;#cD7GpMR6K!WUixZo*ezsROiw2)) zeL{}^heEZe`K{{E_yz&&iaP<70bz&6-C}fTnV)DA980%SIdjytkN#FKO9XZ8W3*D; zi?|D6w-;bCk=T6S3lwT=RRkX2LI$_Y^&jFGQ3NUr_OAx}r$_)P z0GQ{iwxI3K2-$R#i2hWoH@wehWQXEF!*w9Y|HPW2gd$6|2RbraAt%ZA4S}NFsoVrz zyIpMm6sOZT@@TIR{);}<#b1hHu`>KQ$re5Wj}dvIwp8107mc=Rp=u-b@D`D<70%_# zXJYPFt>M5t6u`9`kyB=Q?HT2QWmT5Si7VN-w9fC%)_0z4sw!|!vPzgh<02yKo0uy% zi>q6;pgP-CwUR@g{6T5dMEHHH2>VP6ZS|rDf*=BWOE4&6?SrE$mVL5{6$4ZgDW7Te zY$034n$NWE0b@TgkZ>5l!f3ozT>ng)?5&B!ZHQ`Vwnfa@rVR}q{k}4ekB%whu$Nfw zyMRzb<6#(6_G`6;|L0nthAo)8x=I^nXN<&vVhqC&Cyp^#@qR7Jarq;ny$F+-gUfu7 zpax*E!NZKv7w#xkL$6JnIC^n!P~HR8u0F8NoGr%KnA=v8tYH82MqD#HMSNx$o&OQEjG+yw-58968ASkGY@)Gxi9$X^9|`kCpp}_Bc*151`UXvs?Ymm(S9D;k(%<;@A$YUBlln z^fE`4V}kwTGrAbJfPV}riT2%Q(QqgF^A_)mxSiUQ)fPb8{hS|A(P{%O=bo?FzEi93 z@ZU&+Lf+{2_XboFx?8Ut9Z%fC>KP7o4Zt{6w+LuL-4+muQ%xl1R5S48F#zG|!3TGP z$gZqx441&-P)-XIWurnVj?cI!S0PLLE(C!iK1n>WOY32K;XNUCX}u%+ppeXrD{oYs zalh}t^@Pszl7URlRAZbqtc-w}qRMWB7R(nXC+f9Ccl`Ege<(!UJL=O^ICg7Qn%snH z-LV-F*0f|1vbNeoN3@5jFX&MLA41V_jJ#4gutju)X}mj0ug1+t`8+t;ow#w3V>>67 zU!jYgAlcOy%yJUSD}`|n4;R*u6H5Wp3sQ(#L_~Q?8pM1+uv2V4$qpSUw$al0luuAh z#)Z_&T1@IM-f}3=A{{r<&m%e7Z~0+ao}3WhiX9O{vF!d^0~pKIzlXR)@cKIr^Q5_PRZpHgNFt0HaDLVhTy6zK zU3yn21rrgg<7M9LlP8xGqQag=S>=33JwhbsAjLdE9sN#OvXLa~Kt_%urr_}eVIkEk zXL<=Ic7S%jPu@}2T*|N#maA#0r6j4uL=-GB&birgIYH<%>FDgZ7(J~sd7+XM>`{mP zUg>4J58;=iJ?i)ogHJB|`GbJ5q9o+G4SuV|6wLjoShxsE({Z2C9#b4Su*0!%}l{wA!QS#FE*C<6514 zAu5n*7_TIPz4l-<(i;RKo`}wtt>6SbU3sV_&beCo2282&z`BjgHwP##O(1(6t0^B3 zrHBq+U_a)qJz~rkTEl=>l{yh-NKIIhi?_aji)*$<9Q#6h%yxB^2+Y+YI~;otF0Kk) zT*e`z1y4{$SS(*dEfIqCk3({<8g6QpbJ4Fk1FGbTlw2%De7j1yC^=WjQ7mJXD>=l- zr9(wHe~(W0ko;to$jilUJGLKkwHCH>t3>^M7}l>?B@*{()9NmJ8)e|S;ywz?I3;U1 zwqu>Rx=(v5_=-R-&K7NQO7*f3BMcCaUN*7eb~>N`y@Q>+nrQ!P2ip$Z;+!2Ika86- zgUWat&db+y!g%$GtdtYRA2^<8h*Zj-3?L+dm1kFE`EqzyfZ{l=Nllhs)7u&^!8uhk z&zC_ek*mr^w*LR(cpqA4V?qC{x{Z?ldBs6=UdOXV#6hiL!~x}r%XH7|e2+oCIQVhP z=$|)?UMx7M)gBCE_Dg@xY+wIN_iV*m;Ke^5Qka^@KnAv(1j91p z8duR>F%TWQ?bLSB{1D7F55RwS;G+*|tzw>i6Zqf4JdMZJ4ExBzasw{7MikGswMg#p z-~090)#B74=;W`J!gd&c53Urg4`cGYawX^<0b5Lj*q8d^n|->M`kOB|!s*c=C%r3P zKCHD1dIY-UcjUXk%bep&ntB)#n+4n|&L7t1C$3c$93PD7)lJzFlE>pQ&>-bUi)GGo zl1|1$_Lxr>umH&KLjVnP=~s(3g%yd{i1rlxg3)cf0t`5Cw(`1SXPy>>3D^&L+RL^# zR*2C@u*f-Sg>W9xLd(ajK#}@Ac>Uv~z%C8d=yrN=KN(19Rel-|(JrDC$RZlg3=6AK1L1;CX+D9PZvAC)Z!YdfU0@OJw10u z9Ku46P%{e-8w$#o*H?r_|rjDxC6?+*ruf@50q>Z%P~#(E%)lH9nW9Q2ji5$p7o*1*y1 zEiiNL&Z4ZmQE1ZAlJAVvl@@qVDezi=WlSm1Mg!A^w|_htY_Y)A2u@Y`pmTsaQ+FWA zPn`Qo8{Bdz4U9pbc`{!8RGW@5%5v2{Ey|xC1S+aSb3dgIopaA8P+j|!HfFA?dOnan?~*^{f72Ev zP#|_8LDo`25FDAh*A2i3HTBH|0r8UM>DP^4YVsSQyxa*o3}=hmpM}5@Tin4P1_XQ2 z8;UjGXbq;&={*iQF6cyX+yIgJ*UB#fy`GU@ni?lDOSPnSkDM){RGiB1Qie-3xKIXQ z+hr>yM=!DVd##>`JAu2Cneiv67uUCVzhrC{StW2Q?rms=Ehz%UXG=wv z9pP~)wxVen#_x=tcJ)2l{hgq`A9sHb!?#WLaDOM+y%Eyu{v0nuGQ=k*5tNiJzC5YL z<4?^~$}YN{(x&v=NF$<4&68hKr|3#C#=(1t<_Fdq^5kbq+uMSBt5V`o6FL{8wb|8A z)!O>KB5t43S~eb5fu3kBeTDfT72DMYG+#CMlJ%C|S^lX{P4UcWt$v**@OI4NX{AV` zT2z%kwOqV)TB{S{c$rdZM?O&lo*<6=xM1h3oC63Ah_4!)m@j@jt<7+>K_+o{7eK+$ zFxj$zf_5owAfN$UgRnG!r&+mWTu0_lVrh}uO@MY)^UUb!D@h1~ zWVy$y_U5|fM+ZVIWYOSl$Ej$NhxE5bmyCL#Os>nI3b+Ii@ z6?e~SPuK=85d+U*HLU#-k#r7CsJ3vPL-^JWr`U211B0-a#n(vot{{reX)WuVM>V<5 zW8Itm#~@fqe8w*fCTBZu`@Pn#wG#+9QeZhUEW*LmljT7)R%2<;bc;rUzbtx1y#2k_ zsb4XTjALYTDcc6-fx8mJ;8x zAU|3nE=m1$JZs5|4;OKWZT@&!M4H@2<)iRI&jmc0EjX zMXS`#g2`Y{s;GSdqwY-$MBfWqc=?nCkR$u1SiMdQte(mv<}jMaVKj0OQ>NY&eP7ob zhgyCLvjJ~L~v5iU*;-c2e zJ5XG>h%nefhw#gXIJ+Ilv`#U%i2}ux_i;k3@_YY1mEQ-VFdv&dbwyZ#7Fp>n5W245)&&_oON=ehPTSsoS#-XnMcH!a zh?g!QjBn8#vH21rdF^w=)k|9MAT{9p2hN%AWyD4OIOC@{X9K$xd$2!Q4EhOS*dNUn z&Y!eS-XY@fPdH%IWP$kOCoQzjKTr!^i1Uq)Dw=^i1sH+op7OW7j6)`G%n_q6V-slX zEOFv82(O7aE0ta4$w{!4_^8W%X%2|P23J8$`dMq~I6sT+ zuUI}on}x%yqik(50+OPN{L(scz=PD!fraswZ;^{QHuHn@`TEF@7Kl2(XtmpRw~~wG`j=30;Jjnt$n}&7 zmuvc(muvdUtut_hW!_6-!Y?>6U7XBhEEM_{6>?_QP0hhGlW`-s@vdW_rT$-Cuc6Mr z27Xl5^iPoeUN@C!+y(w1;48@7(x`CWZo5!_t-4gX3Qn!edK1$Q(b{*9r9|) zx9@`otscmW02t?F)T3w{c}(UGV8(2UpC!j+s%E$O6=N2^IBz^R@{`?XC=BDov@9{P zQ0v$H73gZgy;_|3roB$RWj0@CcMdA{xBCn#_Kk72wEIjBF0e;k@k_5RE*ENztMGOV zduPEn=KNAGi|SHq?!8^aNNu0vFI0VO=Z1a@i}(X45e`P4@0D>ZHgl49k&Z)BF&VC2 zQ7*ri*P|nj$!uQh8AV0svQqCo@OyPG_{XH?ddFt$cYTK6pi7w> ze9so^mmME`-!E-DdvWJV=5NoqfTw0~cnvSxPmdbw$U3}m3&3877pmt0?Wy~{?HOn6 zc?*ItHs(M447GlS9k!?LgTY*!c65Y!ciRpqzzY|+xv#^BjXEET`+pC5K2$pB)tZ z6;$%t-ONFC@D`OJ|FfsiHl5X9LqYt~{y^rvGUFq?J1PCr zGQl@K^RWk!5BO9fE~_lkFpAIk-k$2hg$dP{^~*SB54#-~_7B-)R?4tDo1b_rv&-A@ z&gw_vGpe7kXEZ-z&zy*~0T8XajCa-rye|5$>VQ{5mt6gp-8sSE?wpN&bCy4@*PMut ziMXz47S@+1;J?{{8Gpt{?T6UYUSXwWKJmbQ@`_(tIO;b(v*&}zqZAF&j%{fj*tds$ zZC|jT&&epUGHc+MvrCq<`J#;GSs8z3bXlYro&>vTr(Ks&7i0O4^r9%I{G-{wT|tPl z?TOo>*>9RtEjPS1#cCj%N;QzJFJyoFn|9aRR{f4Rbyd4zi=QdJEXJNi$El*qHEn$L zm(S4TjAdG5WBaQKV(~StuWiTf>@(LG-2clB;r*wU;J7}`@M`C$rp zI9d^R7k>>nt{51Xeg01jv-*?ylVdIB+e$H?25R%T9sVd+vV-{HZhU^02-9Pni2YmZ zRbH*Nw4W%l{?=L`A|dB*j5980h|7Ot$F^0v@VlWk4ruhep@A)Ea3%dnpBq}k1YQ7` zG6`-33OeDL%q7D-m_8HMqB)tHdKeGm!`j-}h~HMk*)aUZ!uXCGTHVSVF7HWVrUAb! z5|?ghwQHVSq}IaAbAU`TwH6*bNmRY54Raj9RLi{tK1glf?`lHTy$hAwo!Ci4U0M4; znSdGRBd?N-ODG3qvO;8ZVl&>L2JC(JedJG*fvWb{&YMT&6NqQNFd1zP(qp1w(bfV% zf?6PmqV#z4O{Pp#Kh*L-0;lGDxK+-6fpTf@E#^=mVEtkde#_h~zdu0?yQOswxs<3d z!hwN^K5m<^GX-)GX*l0Qo|y0Lx}}YOdL1n8Us72@$w8BtIs*X^#=Do(O>FCIpX~W8 z5V+jF5ZO>&(a6e-e;7AWIBsh-eDg;sc|ygi+ZYui-`iT#a=)dAc!{TTd?G~kJKCe+ zYhZ&I{za=v3|RfQYQ`qsfIHe_H9NsJ)!+nEQC||7Ht^{kt%i>AkGwrre0@g?jZfiJ z8k0c0U+6CzDXKPV_KVf^YBX@@qGY$uTOr^e1Vo5KNT-_ifjjLJt3omVAhIdXA!hyq z)855)3=_@uv|aJZKNu+v87&I_!TW*hCWvx(wWvpH0@d{h7EX*fx8y|8|E?DH=-y{a zfx9J&MF5viCAcz<@}9sz^2A+?A%{LA^6zTxYp+4gLU`HdIb@CTQSoU0&6njTidOfu z;QpA6xf>ZCmhNk5l*&=-OF=X#rxv%6#>2}Nv9HBeWygJF&VWt;W7DWS$cD-1#))_D zY0W~$BhMoAO$S_k)G{!hNQKeUXMoZ9G-ZW9riF-;x3p?CG6pf=(Xf?2sY?h~dxEHY zUki*^j{rJH0*DEdYVhDQ3AW+N<6r_nrAYvX5V%nR=V3x{Kn9E<6<$k>XMvpoy+q1= zYzMa!EAPYS+#V_R-q)g(cYpFJ%g600<+G+eEvi4z`rFpc7h@i1UAulZjEpeHN=n6aP7L`k8xgdEt1f3EK`7NcqgQej5{5zq zu2NeWp&IA5;1kFN)VRoRN$^Gf#sXo285+xlVE$8E zK;H~oepavlbaz#9PD;@nSgqI=k$U;0Rz zm8l-(y=2Abgwv*nsDn(al}|vGLm*7F;LSR*N1hSKHNA%| zc$lcF>%qpp$Y9Hqb4!_W>mg#0uE#p&J^`2MobMagteYL-2%+}W!dr4&X<&qX-vb}{ zcxfP(Ljmks8rV?*Ljkm75$^@87qLZhiC5VPb4Zd$QOJJIA--`=y`QLAUJtOXOcpK6 z>z8c3Mr1$gt82DqBL~1mp(Q1wC7nYj&W7Xcx^jl{6L0blS_y~kXhty=^eMK0q2kjD zdNu3i7baQ#`bPYQ!@p2LA7I-!ShTFDTW{7%q;TXzX4mjrZS1Gw)sj&|#JGxjScHE? zxP9*;xdck&i?t}rTHvV`l}yDp2X&4eSZpq12aDW_`U{R^lj`?D|EBsLFr%|D&ur09 z4k|=m^a;z@@Gy*ZCPpGL(%l%=0g+Ud40k}`{GF?;4ksFlho$FK(j#sCriec(>5T)T zhfpeP2e5M7bMmmtx-phojb~q(Oj36;$5L|xSa2+mA`kaiirTO`*|IvvSn93HdQd%M z2{2loQr;0;7C4u9V=CKOz|E=RY-PQ%3ZNP?Xhju$jxD#Mm{&!w@5p$ZVsbo$78EEa z;?uY?{})5sG^IfKtioCnoWfcpqTLy(YNs#p(av%IJC|NL#v*^k!F^2+Y|9aASx;RwqKW( zh@-?ctJFs>9w^@N)4#HPJ5fyZN4@1KQT7D;dsYmdD%D%rp6!=?+Fx(yT|FK=UAQs$ z0p?uB_Qjn(qHa|^(>UiC2qCz7(h{x9YV&OF{rhAesj5Hk?QkD|Qrp9Ya!o%p!_4Lv zKnFtHLD35`XQUTkO_-lsj8BPA+U2{(=QZ2f7+X$$sPiWS=FS25*W;er*7k_V=-30N} zy`wx%_Iteeu%=$W&OKC=MWF8U;ARsM4#tX~YU+&w3Lc~ISU)aRO|=5`x`VpMLU0ub zRiP4xlZEp4?j|=%ih*Jfi5BGD!l!&RhKwrT8D|s*f*DTm4**m#U@j;|Mxg$}n6K;} zd{_)1yNdxlcQIb1bm-xUpo+o2@OW0HsUD0<6|Zkk@l-9nk^fjK48^0QF?-RmF0G|^ zYisXgnXiXe>j|LRoXVG>?sUszHSM#awmx|HH@(XcGKOInfaWzRYaW*V7J$k%P=)gz zhLPM`Y_6?0s6N!4Xyx0hx42YWf7`aGmzZA%9qX80VqG15y5m0U2AcA+4(c&b^)`TJ zMmOb;55qVMAed*pWtz0AT3F^jD`k&o%73#Gz&C=@+~)C>sa6Xy*d@vR5Xa5m z!cMEnu~%NS{2c8AO>q8b`u7%&(W1DX-coHcwXx_Z1#`z=w~bm&jr;(2=YG+nxq*L@ ztXGDM!nS%Ce_}f;fBy`J3H5&9AJw+SJN5OZYLjWHaxKP)gx33Aef@{>YD(eXRcvpd zx3}%+C9XEm8`_rl5|0MKKtAm$+VO8@Pcb}5@99v;jZu@_tyG;P@5`EOT+*E&ZzDxz z3g;u=VH1V~YKuFcDR6wWNn-+c0hMX|I_>^-6u&SeDB5i#?BXZO0CoV|Qv*?0Cdl-4D}rm>V+7P#SBo4Edm5Umq#XH`JR}@Bx&q@1xG5Vk12?Y60?a#i*H`CwY?W z7;P57vc_@UD128hLvC*|xse{ybSfOT>ynzPyijd1YiH42!XvgVJNX%15rOc5I3f_&t_86a+47?8;yxT@0Zk8wc z3UG=HI&%2~EAqT+5%$RpjHk8N7l|fwZXjP>PzwDx*u^!$kocW!^ ze4QLegQJ1_9x&VzxH8q*!901dhlmQ+>-kNgX*s)=e~R@Q;47XB)~Ke{eXLwf@o^KqvTb%pv8Rb%Tg@tFw}Ycn(N-r)%_^3)7k@R; z2idxG7k!&zdbPTZNN%csZrjjBv2 zk5F_JA(ytDJBlq~dJWMmOt07R9U2uz;NMaM z=$%MjYVg`j-Ahoye+&6EX6Roy0TE^lG+< z_Tr^x`YhY$UBn;F^xEDHMWyC?{n$HgAyF%qc$ih0t7-Ocrs9!W91F%0>YuNh@gV;KQwpA7L* zY-J{MLjr3=DlQl{@PjKyJ6dy+fMKzCElRJ^=(RQwhRdBfi%P_u3!o{?Gi}7@E%dfE z|6wD7Fl|&xj7$-0v7)6ure*=s_!w~#BK>7!D4UNFPueBswA6bv%?<}IIE{g7EOdnZ zw3-m!On_OV&yWCMEOfc0J~4b|YpwyBmv{qiO;3npO$oUOfhpn4R{CR(s*%L^c-#hQ z<_gL={IuqW1^CVRp*#irUE}eUvqg>Kie(TX!wCsOT~PZ~0HJLU*X zkE_Qi{L(g55it>ZsO@xLF)2c??{^HsvznrT$$LLm0yqLo-01tUgTc5F85&95V*>#w zrPn;>n;}gF$kn)J2dd%B<-e%_Gqgt|^}3I8wfoujoD=jx)OWkA{-PVeYF2h5LL^4& zjcso}mYp7{SNFCZ=quiCtv_yip|2=ztskm&P1#9_X^d}fm`0K^jhZnnpqr+UAt%MM z)5EfP3vs879$9lIOoaCE2as5#Boqn8ncbtUzSP^cq>nh&PLH+q?vowZUT^ActKVBh zchLLUzUd`i?V!7CKgWvM9rgQFo1+zSP-|Fcv0UF&ERKTTm=}V))eLQimG?n8K1Ae1 z=@B(=Fi+&&GStXB(a2k9o%E1^Yv_--kQZ%t&SlR&EkgF|DPlV5-8-f=MN+A^5^Z4y zB+1<1O_JBhv(%fN7emF4PI^SZ-FisjfT39KYs8=VGOD?_*GX^USG6&Ei>5dX&BWym zL}X_@*6#}-xmK`a1h7W~k=9vnRHK{4Y%E)SO zeO9b_lOg~Q5+Ym&7zc2$u4vRnZ)dyEPz>*)hd27PA*hBRAVUdwQ#Qmm860h52>M#M zc)yF@*>4c>E~%r^h4O4YQQQU7p3`;Ag58uWgA9ECa2703bnB{D_HzN~`W$^7yPe7P z#FJh1MzzP22tI~B6`9IVlX7jCLAjZfvq<@&aY|a=tt-9+W!+n~4a!`Taz_Ir&j{3o zcyJm0Lj7)f<(iL>_C@yT$c1f+xlC^$dUVq}*>byx`Q6awb_9bK)|X&fz(?Km_FbL; zL)TtDQUSwaQ-h00;0XLlV7t~Mfh25cVCh~CpMvOLe)e z>xx0qdKBJzppR@4(H%ZAoq|EKd@MVM0ASDSIqbxITw6IL{0pcgK66quZ>;2MB2o;m z*i+p_i*I^7da>6FUJVPGOU3e3LS9c_PS%zTtFlG z^w8@&SVvYYtF+Z*iMu`q&0?7_g42Ci7e-AnfUsLgP&57K%~khMBH$lzBl(jR!x|w^ zVsm?g|M(Q?$In9Ld|EWtUma8;nET^z&Jp-P8C;iD!VN}%BLLpTr3l&U1rlsih*pYvzw>*H zZe-zH!`g{oYE-qV4ghEdbD-DJV(H|MkcGdnsbr?p8J(fMsUAMSr)x<_c-bZphN8I-eOWC? zJ_(j7yVYa9e(CS?k_G2(@n|irrsFqMmvK?%@><4Kh)p;S$=scUg*%lHpZQr9mW$*J zGku;4ukVFw@1<^W%u;o@d#zgNyXAwhX&lhIh1sXKTvm;)9@eHFkjW;4(S*_?+DstU_g|8pu7r^ia_8Jrb@3M!n9dgx@QJusUk0KQ6PE zyl2O-m<;QpTi#-yTnZ5%EDhzUG0ZLVB#PW$UM%b$SoPtlPQsv7w%i$I2p-7BAW*ZB2Qu+F*0M=tDg6#|B{14SRu;4gPLFbS6lBP< zYYnr9Y!T}Ff&5^CsXof&%}mwd5`_lHCsmlKdd>H@F-E4ObhB>?_RN&*EubTPs+p;m zndwj*uVkkFW~Qw@GtI1uOrdMutWH=qN0 zbrq;W=q+=jf`X`fJl3;$Vnl&6>1HAJ(^o>7^XT{hT#It&{LPWT4p=K8TMUg#yT9@6 zAiy{W&8NcU9~BA5jsZ31#=nFcvgCa{7r@FTg+^l!+k7@uQSWVdE@(5+Ibaz9}TXOCIu; zc@+#@k+1|^>FQh4>5#%LL^rf9Dp28@x^kr7h7X~#W}9L}gCwUe#qc%7NC1Rltb~a& zAAWm?5d$&eoP#?;QPJ^G6d5o;glMLsR!lUijv%)G<5}Cg3{ER zs)K(cc$O()5V+)oQNnR(l$0m}5K4FxP15={E|TDL+;Z(B1Y=ao?A_=}QI3x-Pw6Sz zP)y^gDMesO)`;qZqLNK9yeLL{igC#_W`9$RsiqkG_7J1C663Q(tS3=Vq_;buD5618 z3X^6vX@a3G!rj_hZdRV6vP23pMVe`f#GTTdo)l?-DH3-_shRvrhGzKfA<`m;FW}Bp z%7lZb<4w`XhgC>yqY4ozdkErq$#2FR!ZFD$+;CGkMP~_D-K@5kOyP1tk&{5-J~Qq4 zM0xlhO4rkr4ggQ-ek)JQT3&#BH7GP!wgR4OWsH02 z;5qK47q#v;Fx`1StgwNN-*#t5RRyWJtn|~EbTNi0HG#kd2RS{pBE1>pon;=3{^dPZ zhR2L%z(5RXs***fF{9yRj>Ay)b-AiXzbXHOgwQ%Vx_IYvnA$vthNOBgtRS+NHl{3b z`|kR124YQHx}egGqyGukaP+VY0Z@%|ZpwGqF>`3($gyT26^S*)3ng>)gzqHlJmNlFROqPBzR=#qMpsDd= zF!>mzuo_xRfocsieYpm#al&ehasB8}oP&ac5SzbqJn~al zgv4?s;A0$vVl|UewLa@&k!R7xQG#;pIE*>?r~fH!v8+HbFjlYWIL?ua+iKA(&}u<^ z16{V~6#N8o!EjH_y+>ChHv}Rv=YP+%JHxH)YDZZEEtAFVTJ$xBI>273qZ&YtQj=_~ zA<6r&JfoS&7is%y*lU^gB{e`mz+c%iziK*|hgZA`m{e|L3z`cJBw5}-?g(C0^Jj!p zswFCO3i})TH>VcR0w(ATsDVG0y|PkZdeM>`?I@z#vCzgiPLwZzuj_eiDUQwZw2egW zVLDSe-`mxjy1543#Ai652M$DLcZ~0NLm_0A!Urq>pN0TJum<*)8w~IKvq1OopniIZo$q zWJ1QOnwOwFu47mqH?Q^L)M5)nQ>I%eGs{uQKQV3y>z*^sSqc$KHPv~3Z0Vj|N&O*u zoi2}|R;@-!muz(+8LsFspFp;ymb21E<1W;ap5#ju!m}rd{oR4Og4~nX zl~mWDsn#H{EXTWQhD9(IT0i^-rtz-yx1hW^P_4O;>hU77SZ zn2u-1AC~SQgXu(Ak8PFz!e9{7FCZGiN;l_WG)Z`S=ggqg;PsryfIHo9# zcM<;FWk+wAh4k=;Amk9i8(nIN;)bF|#531@syoI~Qx|=JaptOG0Y3x&CD+ZgM#Z?g zV&kZUx)Z29)&2)`Os$V2uVv(w4~Xn||F#Fw&oE$5qFszk$aHKAoN3}4ki6jaoQ63;hk@gzYpcO5&MA~=YZ08e};EQTr_ zN&MBsp9M%s2IY`}NDM1q-7$g~Q;4w_ZLS34oiZGwO^#0!zZ>yemg2az41O+k2nn7b zeihdrSNZH$IFxdH4bYj08~QoSsAzPFsFb?B9`s1(!YW@la z24-c9A|60zEl{D{gi0ppAVFY}q6W7IWLpz;lR|ZBg~S6xr_s9Kq@~&x;nuKpo4k6 zN5GrFD#9_k14>vlHMxY~%4R%l7Dw{Hoe5ykkC;Q?Vy6Rg77OXrrqxliix=_dzs)Y> zQuHD$<8}@yBEZ%49mcK>LonHpd0kgALI#KNdpN5b7~dptBfl0&qL>`cxhCv zk3hC5pe{NFI#*xtEwTG2JdMQRdf)TYb+gph@KRrR@!o^Ys#0kUkmh;|`4qiMNl`%s zG?~Y4p;%u*vxHm&gi31G@A6#9PYMe+q^6HPJ=vIs7K7>UHVh!58&V7PosXrq~OkSV=P z+60sKlN%1BDky#uC7uGW>N*Zu*Adnlj7I|vtH|{m)v^^()JiO-RvQci=IzBCo@EX{ zQ{{m8n>q9c(5!3MN<$>qEc{h<0`?C1HT#uu%yDQ5!?k2sjSSx~8E!Ed-v8TRh?`MD z419N;-y)OC_@61@1e5fH=_(F@)HTrrMi~4YaxOuYE&L za2Sotoo78ZqGS}-w5of5f%@B$2K@tiIXCMq^iO#uiS@{tRfLWg9Az$uU3KAp3>05> zKHV8 zuru))SK`BfcSF90TDN;oGRTVK!+s)h*jYL2hUhw8ZyBYo&WZi~w#Pjc=1mpn5K<>Q zUAt{Y*zvREri#b^5bMVyU~ouvQ7~R_?emu39g+NwPf*Q3nW?157ATixxTV3BRuMk| z>nyyOqUi7YC>$J`XEF~{PNzRZLJAhk%;-Vf>}ah~Edtb7qf)nuTY)UNfATBRso-X$ zaFt3%a4h2t7+wwLC@4bBb#`vHg#O|4Insal`<0+#tj)*@a6aS*42Q0ei; zO097=?YT$eab2K_jG|3FgG$F8b@&;>dn5K2K}YVDMHTRuC%XcNxa};?^8B5#AdC8l znffgqi-mYD-G$=d$Fe}4g753B)F|G&aFCCfv8`_dK<{9)K4 zPsF=TRUPal&;P3}iu~vGS`HeXuQL6BNIx20FL1Cd4|Nm_;J*!T1?t%}JRB@q31h*Y z51q4dkYT1Wyu;k#V29TctudB|8E(d;9`u%P7M2*E0~VTrN73_Sbs!PBlEqqXg%600 zdXM_@TiQ<uCmJWfCm!!WD5eNv~_mFBXMKxJF>k z713-eNFTc*M(}T)E5gaYMJ}ILIW+{@V=|L^aVXqmLvb+MSz!|WDe=ux~pp!H1 z2f>4AJE(o+RPcv5JPkqpEy2yzi1iAFs%?Q`Eh#F$s0TKF01I-}M`F<`)R-EBk1_Tb z|9(W}apMtTe^Jkj95>+}PJ_uKD3-d$=tp)AKVY_IgkSTsq;vQadKW9|de3Y$?k5^_ zlP$imqVxh(B?Qh#0QLp|5bA6OU^nbe7lBL35rho~^pGHI5%;4{o2LIzX{Cd%dA(>} zN!;~O$R|!tf2466Gw%94TqfPH546Ir5$)p|<}v28AC2QP+WHio9h((16n8O*Lo;wJ z>B&Oz+YG&KwU6-ZuMxx92uk7>=T=eYCB2#VP|@clJ*><0%P2hDgjdco^SaeW`78w@ zV$dO>mz94iTf|V39hB7((!1;tn_kkxn|~jRFoWT+V=zx|gw+ds>fUoOK`+0wd@$yI z*cL*a0c~|*o2ft6B9-8bf*yHk?|WGrx%&zp>6^KyAPYNxcAvd!T*vpW-uYcjnW=|W z@TL%yUWj*R>h-)|7hlZOJ5;EOicw(Kiex>=7U~j>lJ%A$1sJ&5ogClKzX$|p<-Bq< z1Ki#OC9?VWVigA)%rleq5wRmxnk_D)Qh6@&D_Obk+YLn`lRy#>YW3kHw)UBJ0FKUD z+^L{Pie2;cT7lC_}N&wOl2S*34&O-nzyP_4UJ+D&E+?l?Ttu^eNecvsgxTu4E zsTYIbHDg#Ii{LIGZ@l+)c|b9B-%GR&pYA>7>;h(JTnwS|g~Ah9R}0j;4N{=qS)YVC z;xgpUv0!dJgD6}7V)Pw~!n1Z$AqR^P`o9%lZL@u*gfNw5D#c6AQ+=lPfz8yuy_~c1 zI-AIvtv86`=9~siV5s69AN4*h#_yGR9BRXb(f0Dv7txCFuawoD5^}b_y51Km*0kK? z@tIxr^^3Yc-QF+bUR=g+#;%T7Ge-}ol}JNQJ;2)_XB6|<7~@hl*Lm^v9KFL3e>0i) zU*awwL}6mdykGjy#^Y$q&Qoj4S=aW=^o^{f%znvy?qe-X7SV&3eAxCe%1{zAf*ltA zm6v#OuKsMBnm@2kv_vnX;JC!cXaop%kl+aVChO4c;XW}j&)ymA+a1W!apyH)*_etO-QDwd!T=#JhT$UGMyE?Nq<0$ zs$=7YAE~iGpWArZ1x0n>KB+42!JoLy!T!MGX=m`+dcUdoe1YDgZVv--ghC7$q!8!f zdXvgifpLF<9^8Ea<^`yHa+l`swa7XbzvXsl2q%^T<1+X9GW`td4+o9{)kup|rT5Q@ zXBO)9DjtUGV}h)FS!68KqivnfiepHKeoFboxxwR&exU_yH9dEFGvNB?41@Nh^DIj; z1CvrCgk=&c&FyZcoE4#|IEglbdiFtJy6g;e^)Q%$U6|W zVgOR{j5r2r`a$!&OL=+bG^+&z2edyUJar7EaGWF91B+0A4?Fq3nMJ3-ZLANpqtbkl4G~u`FJ-cLZ4Tx@$73BeB94k~`b#x6=74wmWDTODP2dm^9w5YU z+e==icG+{bQSQNDgItjpd%1Fo9)m_o3jZG$b=NO_2g603=!M0|m-Q;GcAzxMI+mk& zvChwz(C(_C&={Sv(I$J^$3LgV+b<(B4mAu-n3e1;{ZMpcc3F)<@6gfSAIy%)zd-ADro2zw$er-zj}sZmkRTGWB%XNNC;X{wLqJ6%wM|bpA`Z*r)Kv^n&(`H_VHiddRqp zcn#L8wJ@++@(%)g)~Yrat&(9h+WqT_$pijDa+aAao?D{VRu_synr?~Rs%(2&EL(!x z4_clOa)};RZ=>49GX^S#%c)QIPzf}yC8A{}E(ADyTBKy6SJ`k{tl{59r$r9`PB<+t zWMZ)Dh!PJn^%}PS$Jd(&^qhVF5lXGZ>6*7=!V`P+7y+nHl>|&t%{Cevk8fzDnl(`F&r1yqGi1eP2BZ(x2SsKFYbQYqY%+3 zG&5cU$x)9WoNZ&^fSMd$$nskdp1DNNM_t80>6=)~<}FNd%$GO`idBc0DU-A}4Ad!T zxWYDr8P3vdxoV};pOAm9dJ|ayB{hv%6TBUWJk&m3u+xvg0V_N9G46ck>V;(ClqWk{_J zx2Ri&RKI0hIgKV7F&aTwv5NAwKTT}SC^hUDc( zEafa*TD->fVff}6zeXai@$!@8^PS}Gm&ivtQF9hV>H#hCvDy$c*A{OMsaq`YolnwG zz>Bn_H0L|XWs)ZZSpEV$Rm8oZH-NZ@cV%E?#;S?h3ZDE^fZ*aT@R9I23-w#4ph_rt z?J?2S30&t0%r4r^9)56f0%XC`MlE5O%AH&}7=@Wlj59(m7~>?hp-e149e_D&Am zw>aqy4eF4(pJUHi^5Z~t3y17un9~-RpE%^Y1%?CF*&K3$VX`eSV~fLZpqi+|lm^fi z3sA=+lsz9}aQzW_I3E{iOgKUn7U0|V2t_ZDTDG@AlDuT>g8;oyoSFo5^QK~kS7grS z^(>8=T{wzY4K%d$CwUh!xv?kj5c+(~1Mc&VEgsOF1?X|>Pg3cHxNkC^lkqF#3pWDA$x zlYELTi_deohw?BuOyK6)i9GTILbMxxJ{S9s1@C;u8+Rr`Pw30;B7uclS=)OLD-?O5 zh^x<*`nb;$kMC{u)6zKLV(`+kC98N-8qU{fLJtt7-`uAjizGLZf1JiGlHB!+lV%*G z<%>Y4pN`X!MUr=!6|fa>d7Y7Di#;AXFC9EUy%$TZ%H2JP;G+%LM`-`PoWyf>;j}QTRvXA?zI^jOf69*`Uq+lnFhO76#El{&E3t4>8 ze)^6iXP?0bkaV85CZjd_*X*CfelXQ!3sW^eK&J?|)GR$fA4&3)hcHkZ?d=8E>ipdA zA$2iYoz*1u1gfBqTm30#P;GB64PPR;IbUFQSd1|*ua7?Paq1EKY1IqpNaS_WEPHr|5!d&9`*k!}+XVUjSNcY5x9GbdJN)rQesPvCgV=;4&x%H3IRRbogHI{>w zhwP-7<(P7`*-8DEOX*_jL3*)V3K8penQN`Um56{_wo)1>UUenqXQ?T?u|H$V8~q0j z|5-AN*nQ-;3Z~M;9p<5{q_PGvp)*Zc4LPOmz=QHqu#VVGtBSEjeeyeM<^~rYRZzEWrE_agT{CvFGV%x1RKRm3 z=Wy557Ty;8hLAxpfw-6qr&&Vamh&b`UarPoIcgoo1+|SxYHv!%86NfAb_AfN5qKHH zLNR;5upI}R++h;RaZ#HWmFLL#)zuJ8`dbYFa``9KN(hWidz0q~F`c14N1*x$f3a!r zP3h%}?xLXezesfxc5rbpDk%B5|2{_@#Ysb7Ce`Hu*cEXxxF%6=m)Uv~s!80xfNH#M zGFr3+UetI9qSek^%$z>n6N|SIMXr@9H2(@4tovo;?<@X(2Np5!sg+Pl{_*0v&|hF2 zj*$_Qm#Hu8^72o-dUrRiTq`+hH-o%G!MbVs#uujPa$D*ATB)_$EmUP%c5*faW(FEqUx&&v_iWKp`6>_u6*c#)d&Cq9PvV!Ijss>3uLMPC4ju zK+mT2E&u?B{I$A&^KP2CK?+8<|8s-nEf)PsH#bP-2eP?Ivox{U2Ik^i&GrPdlN~Q8 z%=y|ISH(b~#9O$VncJXfUsq#MWz(E!Y?Z*q{~Vs&*{h?uGlPTTzA#?))#l*fD_jRb zJvK@e`cFVwHcj$1s82WQ?zCwAhS!@#e*J;EGev%Wkj`4&SL9bT|L^dd(xUCLW(P5p zdf9GTb1(%)GW85y+bH??H`b7f#`q0+(;}^6AS0(QQioy*+Dn5T?;VIB3j9@a0&$xE zDh;2+L}`&@qjKAT6dkl90yt4+ngd|<6SnDTE`65HFN>-h)^QkLTL2I*^|A(%DGUV@N$X8g zr-44Fc~Ek|0Xl2_IGENy$7w4t%(6N(pQ7f$iF=~u1bZ{)SQtwb?K)JBbYL`j8RI=~ zBGKLk{=6Cg^>(t`EOi&Yn`r1}j05j~r5`rKlyw$~@{%|Ki}^!P#tx~CI3rvg$qb|h zu?G~lSAF1OZGSo1;j?bA1t~Dl?mnpxw3yAKF08g~;Skh}GYQ+qIbK(%X@q5(UgFlC zGu{p@a9VdlvL4<@alc7kPOA};e*_ulW7`!PiIK|KNYj6lY8Y=JE{}Kkk;e^dr&3c` zN~5X1QFm>mtG`L!<;pVv??Yo*jD)MUQu!^?OgrNSu1Hg`PnfD+*-RU@NEIiY(obU%X9nb9lQJEp-$L@(+RnoG^DS z1#FWNB<$l*Yi*$=+i)=$yGLsL8m*YpCt#C+m-@>pI=xMD785p5-Zm*&EdG_^w@VJf zY88##F12)DvA3Ci!k0@MskL3SqF-Z?>p<7GOKuVA=wcR94}(+R1M!kAOc*DJYW*)d zQNRChCx@o*)K=y!x9hZ8PoaNE%}X3)(jvi!^)%}bsa*`Sx!$gpJA?UF$N5_I*$!{o z_sB~f0q_673@w65xrc+N>!{ie+@SZ*N{ZVdRdP$wtB{x%gwED4qwtXK0d@Csn!Q7c zu)DB|o0!F0*adatI`icn(glO~eGUDwQ|d2ft|X6LQes11^7UJe(zQ!2)h~v+CM%%H zeSSu#Q%u^a$c~X6BHPELy~wn2H1FFbg&K4-+>ZT3MuQH~y?_Px^`Zv!+^(A?71< z=CM?i$Lh}ne6@1a5$pn^ zJj=Z}^);~Z%&&~FE&iQ=`{9B>Fy!l4LlOp(Ydin-r)>9)aen_AqI8h2a5S5_?^jRK%O zqu0i%W5&Q^X<)S?7Y&a+NUZkc7-oPQ53z?l45rL|nXeJ=Se-CS<#j3+%& z^NOQr>>X*o^^!4fDQlzcAn|S@jlV1TR5zgBvFQm|e?ZM2#Z-TQL)2~Nc>Aa-6Ck~z z-t_sy-_rPBZL7&;`I*d3-_YB;lDjrMegAFY@bu)1;c4p#s&h|@tMFtPHv}FD;W-D! zWy=E^7l+Z0_aL+qmr~|EDN;m_B||Q5SqvNja2N)8OG9V%TW)sNDEDczqdnRoUv>Og z9fo&+#1$^e#-TeGKGhblEh5&{cm|7zST?WZ3N$T3+ zoMgL}MB^I{3}ze<$PhgLnF^rd3OVlf7=lGYhL6`kKB@7Re7xW<3|I5Vb8%P%LSW<` zjF?MRDco0mioTzW)^Mb^{)C*E;Zv!Y{KLf zh(N!{ft8=(w8T(!ff}dRhIRdRRfF1XU}60?491uMjmenEWPF8r_ha=M1RQTJdV*xU z4=E6Ri#9xzT$^|1ys`bu3PtH%3(fL=5Hdp(T4kpxeMrZw=Pj9ke%NMFoRn{c)k zDW={Wx~$f)UEH50KWDACKb?7wyQls8Q~q;QZ&H79eu1@)OZ_P9 z1^l)8Q{oE=FLUwK7>iu`)c8%|V5&CjixP5d%YRo5td2V6*xJL%A_C6RaB>%bvjm*L zh@CQ=Y@&hF22Nex*&5*V(nCLGRI`fEo$ukC3}-a}zk!>7aK2kz2TsX~JOPWJHFk{4#P&V^l96(oJVHTD>out=TgpvkQ#A~VHq(~>uzra-CES{mZ zNqvflw+;pgk_d ztL~tSI&T1zQ=`ypbt{sv2de?&amP>~vQsDaqM2{7;1)m7{L34uiy_<=9qkJn54Vf2 zIusnni`2e&2f_v#&ndM=5n$n%)S?fCy_5DijEdLG!Gh9$UAiSFP}%oV`9L-;J+mtt z3$tnmkY0<#BrFoIxTyz$-4_L`!3os_01Hvt(VI@cmz?xh zjYE6U!}n6vpj)U*RN7;^-#%&<_;%eu$+UxMDrT#8zv;V*xJ7WIA5&aC(1n_QkW5XY zwPt^0qU;<;Te>B>bRcN&>%Om zbL$H6I0^U3VTm#moqnc4Ztub`OS6QG0KI`@Po`TuYELf=a#hjPp4^1oUexVC!-ec@ zI8SLp_AQx!@_2Z=+zXSg=aRGC-=j%de2_yX9x0ceV#*2N5k5tm9Yhvcg9{|;0Sh~=1q64wuVeo!Fzp}MG)v=Y^iL0F{%@*XC(V4E>%HN9eovEE9cMy9z(FRGLBpMI*Cv#6(J}gARIPxhWHx`-WD6xcm)c!dtp!OTe?K{DW+aR)}T(9H*p?}R^0}??0 z(hfxH`d0+F`V0N5T5KUR7wTWH>y>eu=%bfTo}@1QA00a(f8VU}~_^|Df>r1X>Ic5?Gt*IFZX z4hDVZa|l%a7S08DBX*(wyA$ECHYM51Z9Imz;xyQq&uLJT$^1oHhJl^sroHSm09EB@ z`qZk$^55M80GaEU`-W;+=*8}?$H6AL!MwxT z1|-dv{w|vNH&=azFAIW!ZK#H$>?1`s1Kb)KF4)|Yy6>FN(aA&z{5DOpI$U@DZ?Y?R|HM+^I< zRK`ViViRA{_VCq>i%SJY@~d!0R=Z){rxmqvkzIKCWPpoYu{kY4)i6n00fynm)n;xD z7!gpna4Pm#Rl|@2z$P=8cBEW&1Q4crJh|BrOUGSgKHBoYMSdxsH>TSa`^e+^RiXlhGv zrnV=*K2!&0AO^N);D(lLy^04OHqn-fa+t{2K#wZQZeqj+D(Nma<(?SlE}s$|LaCAm zWOL0>it&)EH{IHcM_6pWI1t0aYR*P0&JEOx3BiGj)El537{xIiVCWM1Ucc$^@R|Y^ zpfqF8A0BciUzZ4OrUY1_taYPav}Vxb#yJ6owzSE!##F~so+kFxr`?`%ZQv)Jc0DG#i<`s5HH-$b6Cz~ozbOtpc|0;3?Co6#D zPiJYUSYE19)Meq+wTj%tp)+TP7%xkVmnzkvEmh<`VnuCo@|FYj<;;t9sg*ZmfJc2A z?Jd_5kLuAn{$|#r3;dm1kCdwT_NYf8{H;}w68Zb7E-m5j$+~oezdzNbH~bx1mwcTGv z?hb12I<&o-Y^to8(yJh6BxAL}Uj3yZ)6CYc3rk5y`!3|+1Nl*_A%*zJt$oTMlRVsT z4-iaV)Sk?j8inkpm9>O=sm4IsjFzSMAZYs^hB(@F}Upa9v60%|}^_|-PY){uP-Eh79F7hWdD zKJ^Hc%L$tR`ZiD= zA+GyVZlLTXhSb(0BZB0`c03v4%T=#o^vm2ZnC=G2LE=$0atW3LTsd+V4~x8|DD5!A z?FWmo7T+sao>O+D|J#BVbHW;G_trjA`}5_{^H$ZMfI9Ow1yg#7-Phq#XJ{>4 z`U0YMyCX+!vqF}{QC9-!SZz7dJJg4n@E(B1II&$Aq)e)zD@B%bya|+N6SI44EMk2E_{!Hl#jJ+Y~m^;y3u?bh} zwBeHgWJ=4^;e55M)$##UrLO!?wD+ZQ^<@8uPcASTPh&#m0wC)V{?r4&tJp14?M&&- zO(yIk#i7Vbru5N@de)oSX`D$t>P-{sL2;VwN59mQ!$qVY-K{74*}p^%S!}B^rA2$G zxs}MXzP!jiy9#s5W88kC{sAX$rf526d?SM?0oSQiqBHg7h!QqHhdJ}T7rBMVu5OQg zIZ2)=t*J>L(a}^Iz~X8Y7b1@rAzpMcMD8zst4j4l!9A%}saL2R)vN%7$0N6Oz-O%z zxEq0ep)IRxfqLYej)sH>tJkute(wVtQu;T;6sDp7tYdRdk?`81G6 ziss(thDp!X@=pQpNn%x4bi3<8QyR;=MV=RhN5~Z&{sNbo5+>MWYPL#lyJWGVl=DoB4pcj%4I<>uq1T*&ZYazpY0Z>LdtzZg)B5+nNWjPT zUaKFOZ{|!033{c93Ys$>&b6-8Gg9_*eA2WznidADLk8TJ6O)1)dwgB#r%1Vr*jtg_ zM#^Kw?;e!gL=LXn-O0jVF&JIE)YkB3`U0ISW)BYYRl9o7@g{P;nrA^-Q+PoEpQcYm zZ05Hb+PFo}4G|EBeKL8KiDw2g+$f-_+@MrTOUyxapBp7Nm8&F{g+jXf7^l{HNgTIh zqQl#Q4rw2=tdKQ!^ghQHCttOEvC=g7!qP6GwYjwJMWr3Fgp|wdWhsA$>*6SRjQG=) z#zo1MCROA@w|`k^pYq%_KkvxuVEQix0z6Y#-!q)J5QC#k@h|FYwuF4fV2vJ4GR%Jj2SHll$g$yhp;Q-NxseGL~-7k<~M_0 zHPo5jG?OQaM|i^cD><<2w5n(f&j@U#N4pjE8}sSra)3efbtFR!#J{^E#l*<-+?SQr zGG(Fh9h}95Mp-+086$_4aI^@G%Vnrx3;9QJ+=VW+kY|b}F4U)`{EhP&@FlisnxaB| z?dCbKYy^^f9O-^buyvX*LEj8h|h4nx7`&$8}cQC|ahSRj1Mv*jk<~*4a^J zYq_P@pI}dnxH-|KxKHFn+vDF#O?BkZ*J^1es@?`O+uuu5hc=k+A1FyFZRCKc`6bbX z8}_vte+Q;57c~W5IK0%cy2Do;t~&zNL^yave`2fW$lZbI8ds8DwZR;^ei;gglkbSO zrOC0a+)soWX+m2}VK$bcKikSfMZ;3e455k@$XLV!y6l|w6}ozSNs`*hKYFbI33uUz zMIO-?X4~z^&Y$*~{nZgA=|DSqfhbdgI=7eGIP5iogodx7=%iiX{iFBQjYj&jy&UcI zoLlBr(Lm?IEn{U(P95ao;;KSv9pp#ip-f{s%11;M+1#{~yxQO%4(je2hQcubb>7Y5 zI}_*bP|qB7s)1~}$cx1>8(P*y-Y+B@itmak$aQO)(G~n8yU@O_vMG36!5i%&7=MgJ z+TLky&BX|W>`yAgo|yM<3NrFaBA$H>-at}>2E2!m)ua~8R%m#Bs*cC3ccm8 z#L`zZq&EP2KR2)LE$=hb^>N1}5%Vbf%&Mpu6o^b+7 z^F+xPFm?8N>`Z!pt@3W5H^(F4el1;uh@`^#9d;I?cJur{PeJ}PRJvCZ=DiKo zcc=}^gJ&wW{}xm3O%EvTTX{*j@&HZu&Bu9>$y$?HKcLzp(81T-rCuYTD5u<|lo4`A zarr)79wE0BC-0MQk{smF?Y`EKc+D`%J1hp9a=cblpdm?eTyzB5VwbG-forTSPl7Yc z#DP*_VA9a6HXLAE7+{y02B&4{!Mb@KiDbE^h`vWb$+Dw}uRx|`xwG3H5C~0jz;5Qx zTFP5#hjspIh-9ssq2fjb^Zt?Y*P>*#TN*jL z<+SJI@`8$`|j*+{T8%l&ukhimotc2Dt$c;ynHWr z@pu?Bx-Fp}#>)Ys!4*0_9!3o1qWRN!`G`SGyh2AN%3CksnDFXWu4P^$Z3*X z)pz6MWGDz4IV0GJ)MVmlfYnmnm_oyiaVr zME)uAcv*2pKYMeTHmAtWlkC`Y=`y!aa*3FfPbKZ9C1EImOa;SdRpi(`pJVY5P`}Ty zZXEm5=UB;ZTI`va?*DJ<4VJ37)Ev?74rbC|96#0NZ2}>(b{U zx45=%=@Lc`Zi4F1)H0Xo!VI}Z#l4MqpA3>FAH>!O9C8HU?h+_RUGg_Inkh$?OFfPB z2@Np>*=uX6$*1YNnerCjdQYla878`6HW~S*Dk^ew_b=5kK!vzz!u)SkmB*8-XJ|m0 z998Saisn|4J0o_qz`9RHbE~|pmjX)IWE6zyV;d!MS715=1kT06(299 zI7?)lw+X|WHu;U*Ie8_;repTh@q~Fxx*Q|KxD)30bL8pu7T(wc;r%F&{l|!4YaVU+xjO;K-YT$k2-3lkRHcqnZN0 zuH}ufxO~-bEG`$d?-9B=U#=ip9H9^MC6_6Mlic=qQKoJ0DdRM*-@KyghZtk{F z9&8X9p5~*A5 z87aUikhE8@beK2&2%WR+Lp;-<@q*osqXph4vMZCiT<$JWJNvRQQYUc6EsRPiD* zfGo6EPwNgZHHRHgF|&5jjFs~D?W$-I(e^FU!@RWVVmSmvH5_6y{=AmZ+5-Q6C+9RS zPPY~R@elI~j2Cw}7~?*MQT^yl-r1d$^fQEii+!~0XW7r+V;>7m8?YZNVE%bVjYB4* zvgk75>#tRX!A57G=za9`XF0J(zPYe%Z(3Yl>c1A3uX+NmZr#xwkzeQSGgIm+d35=l ztxO9oPrDsw3%vh+QkCpiLpPY|LpxW?e~bRR&GXhkT@wrUn7>*ppRyJQc2bp%(Ddu> zq~ABn=bfg4;dj4h4J!d+C~GiFuW=jAKl~~`HI%nHhxSS4F0oTbmHwdRn`OrUEtLTy zww`JLr;1(wreK#AfsG8sBWkaw+neP>&UKP)tfFy@FATer?OD@{Fs0l2B%8B-lg$|7 zHq+?e5HfNdT7S>KF zhXEX21bl-TX~sJ8{8L_3{lX!TdK@r>lA5#*IL338w-n*niuJ>W%ia{w+^w=}jLqb8 zYW}ag0vV_RloY*&>0CnrAhg|xVj0?Th7k=T*@Gq@l>3T# ziz)XYa__X%jKFUU!stko4`bevvXGu1Mnp@}p+j@zr(%z*xyBK>qmAfIH0?Obys?<1 z6Ogy#7n=v3kPjKeZ?5K`Q&`X!+g+*SX)HkQay9>WS~eNPMpw!`BX<*PTq)|T{D)ZQ zO7G9gEyVH+YJLuO-yN>h|D2pGlnlCd4m&1(pGS4iL#qUQr}G#v8qK41=jEQ_>RdAZ zjUva)r6GT#YrD>+>d&Fy{*il#e`k~3zxa-tP2c=0Cx~*h>HNR2 z6wFVj_7{+U!*trn-#fENT*P}SM=V^56I;?1$Q_LYZWNU+{K7qn-LLGlGp1!>) zhfHFP3dbLJ^TDso6FLX~lrA7YN_oFJAd;$^QjhNB$lU{R*aG|9PVZv93rPy0hZRBF z{9n+lhZTcvQUt9qwCTT@vtm{Z+@T2E{{PCH6*V22hToE%T)sq<6*Wuja>P#hGM4qU zVkOO*rB`~|7Bt)8KpP4eRIAnS1h2qVGr= zo-0@M%>S;c73(k?A;F$6g}D5I<+_W9CKqRor(bh1mrScgw{ztyh7FXh%HHBh65&pT z`of$J!@sm3Pp<9x`@E`FR%xdvHbPdrsW7V}dRA@6(%n4FiVh5-ruVUGZq=On z-^UUrzI0z6U$vt@>XP~kb|cyCXl7_&+g$T6hCe3ZbSBK9c)4gGh2%qyot#6z=3{NA z)EpZ608^GfhmqSu`B158!=RlSa2`Bw{wIoihiUuPWUBK>_7@e>&AlGUr3|9~Nc!fn zJV1OHLYE$+Z~ifYf}TLHT9%~y9Y@faCvvPX4<^s2kXZx2rSVTey*49s|Ni0ZuSC($ zut1SGh=x9syNZg#>DV*5iBP`P{o{wxz~?ZM#C=QCpQFmphSQzr*!{448eM)N$GXSC zR%w`sb28!GW*1Uv9mX*XM9+p&)Js?yU53)hm$I+>loST72+-N-g`g2SL8}a<@~`CH z4PJUO;oPxRE~lwxkIVDow}aBdKg}vk@dyls%oh!TMk>M9q*Hhg{q{<(-1(QOh1mRF zlwh)6gb4|9nzC^d`C$<^uRN~cNeNHl6n1kn`Git>__(4}iFzH%aWN|&(Y24D$(X@3 zF#@&GPd`p;19^9eSezI-xvMp*$1@wl77_s zBP?Zp{bQ`=Ye%s!o*+*mzq2Xl%e;Rsd@J znXt%T*;je?=&Dw!ueiBe!X6X;9Zr4j{*Jq2yqZ1{E6|7+;w?19#f`v@z-i&?5EZC|Dj=neG| z{P7qEM__u& zj%HU$X>Sm(I?^y%2`a@Ad?mqSbys`Z1T%p6u_GOom8s%lXKJM=KZuHP=KG2gC=0)q z=8E=8cY_#bP2Cyv8wgi&|!$9yXBQi&ez&# zsD5eaINHYS?x1uul&vths#Qv!Au}82l2OmCtpXM_I|e1Z1-w;!oWZ zL0z4dEuy3!m2y#Pm$PlkC0d&jM%$YP6%14Vh@iGE%0`FN{w$=mGuK!HglS8C)tu}r zC@tNB647jxij+hZ1TyOpQI1C8BgRU1aYw zD(|Tr5;f}4B~PWJ*xrjbMuwTsgM8d(-$T$`p~?*j!LW z@spf?2<2MO_MVJ%rt~o;ZJBR+C`I@w)$RUjz>zrZibyrH0gd)kjykpMh+^2JuIuIH z`3QKM5bETwc-plN;Tg;%J(tK3O7&N&Io<5=KV(wx)~9{`io0D$t$0fbF`?#%{>nmw zNT^3CHI*O{_ujmtCIZ~-xee088-9g}cy?sU@q$Rhk;oL)pq{BieFK!9)kXm+t7KR+ zN@uqHA1bK(YeT%*#&x9o0m^C7qAKkPR63T5(U^o+Ax!?{5u{+FcQAzpp#c`ZreQ%! z7x6<4`YTBB6z_uQK@i&OI#mlsJE{IOF<3d+bZTI++9qqB<|cjVGhwugdZ4By8drR+ zVDj<`YGzO|lKvh;#mNludT$``S=uzED=OC>L_PK|LRmwNBK%@^D?)qt28k< zM*(kOZCYZN87mAh!6$;%cUPrf>nRb!hU;aim&g)04=LqK9|vR=lBriWi@&XiWi`O%-Dig!dS6gg9| z+tH#1&Q%yvZra)HNYlbh20ZsJOrcMbPa)NGq~fd412xLxl;R4QvvA(bk31VF&QV&5 z4jA@v^Fp>E(MahphIrE3M#^k4sRGStjQIE{^X0}$I;O3aDKQd+ z{U(WiiKXh;)fv}o*M&TXP#iL#74xkM?=#i5GkUQtR( zLm96y%uiQ<{3w2p2aSzZmWe@r$eWK@9h!K_(?Z4D&OeHYv^q;pIws zF=$v%*R@?*C-qC3ja=ibwCrr3Vn-^V-~^hvFeDnK{tJc(gjwuZ%~mj)Mc`#sfqz!GYX* z!J{MMKyBEgqv${>y^t0aMcVSTtC!-%Wow>Cy_9)k#w(iCTltZf)e;metC^z`l+Jcy zoofE+TjjD4f8C{V$x63!WgfjQHlBS_KRq<7$%?HI&Nu1tD9D@}SIyN%D>(+y2?1l2 z22OwGaS8{VbI?aYQ`$f3+B|AJR(UM`xk`cKkZAcObN_M5QG+;tnSv+q&~d>$V1lyW zASzs;nv<0JPLuEaZ!UxHn8!|1$l!MF79#mDcBR9t92JhXpVZyAsKyk<*Da$E;M$=t z0Y=@TZ>A{q+!_}G%=r&MwOf=uMXBcY>87QK*#7|By-9|t5T*|=P?xF7N4L2*EPz)I zd|6cT4fF66<)lH_{$q|zRZ5GNBd@$J$Vn+RLp#o<=_Kdz1a;mwnvr-iBn~9l0vAN* z`D-?}2>44I-+5c<$75I~Wu=2f)zVkYOJ^v%4NjqN5b1_+eN0=;k>QtM`c^tR*y8E0 zFH1|fY(AH!d@V%xmlQNxaj5j97T~-7`&u)Ze~WKU>Sye7)zcTu{bnmLoh<#EYR*-B zOFTZVgZ}#u^_;7iT>nOT2)=92ydeWvA}P)0L>UUyB`U2UHNKa6k|{NkX_ zMCxl@*5_VhY#;G;o-f~kH)n4gs;%X~+~8x<47X5hT-5fbxn$TuQ}_)AwZnP3 znW1TA1MeIdklH3a;r%Iz!*ihl+FfG7Mtwk!U&1Pwxf^~A^Zo0Z& z@fTNiQHc#o{feu0Y3!Tyy(Nn^MOmcnqV5}%MJ4=Ft@-Rx>E8Y6!v>{^_+=+WY*eDe zM2#NTLR&!RS7!L=!4rX{~ZVcfohf;TCFhMy^6lcI|C{miX4D=#q!1X9!% zrAb-ojJK6t=GjbF&;g^!@@+(0K;|-i%<2~97lZg`qd8-%QrS@E(g|;?%xq*0sF7PJ zdmH5Mo!>}oN9JeEwYOtDatdU!-o~1(PF9r>+5fY-{U1tGgBbENE!_b^)LU*oy+etG zO@9@6>{M!q?>AEHPEcz83QF1ufNnpUH||u%8^qrARDCxzk<|6(Ub~g62Jy>Uir9mZ zan4{GvqxzwzF$el_h2;H@e2j+Mat!asQ+G!ePw>33wyys@2NzlvJo>DGG}5kF@LqW zeU@?ur}2KI2K&Ig(|@M;eM+bp)SrIXr(CY;l=VM^jKyw*KR9gL$U2b9WU@d}DNfTkJNmlhuY`FAX*z=IeWm-R6ZJg96J zhJVO2N4f4bcUN(;|F;mAW#n-LOusXTzB+>0P+V>EKS$6<#EvBt_!kiVp}Tp|UrK^O zI1!ybt~4~fHJ3V}#2AEK26Z|K6`|Q8T5%GbU%RXM+)3rS5W({~r5l|(gAvNPllk!( zWsE_L&tL+0(9Cn_HGMnK%5xYly{DRQox@bi@CQZwt^DBr`^KV{|1YAA=9=I9tt>L| zRA}D6p!~h`#TP*MbLQX+N=t*toko)`D(jr=nK2p{F@`-$y^9mf;g^&!Ymq*V#$840 zwI6NXdR2inxW#z-a1BJ;GL7n8heGnp7>d6RfNw^c={kC-I60MEZh{XMO{KOs6{jXz z_6>@%*Z6MfNEUB6yQ!^tMW#G5O2|*zE_8gr1dwI$%enoez%lX zxM4Pk#@vRO_8f2i_cn$*v3LXxy9*3@4l}R4tNdyZPe)LPTqU4f{CMvAMTOL2Py2fC8`6Q!czFKX~a=_jH_(9chlhQcR=u0Mf5h#o?f zo+_1W>_cL$X!0|qf)pB*z1u#7mOoP}N)3XJvU}e%#a(I`bT$j_DbJOfHi0`E2hioG zN>zcc2H6OZaBGl_0SUJT8ML!O04@XoB))+3;xC{o@s}Y=1@Ekj7R7dwSnntugJ@t- z*OG5Dv-=W75;aAWhjo9hVkJ1Gko@CDOo+G_Dl#0#=9#-_U>; zXq8@dXw3^{pO`q55?{jf(W5r4d#ThG#-TdVUcbc5>S-`Fe4^B+*jI|X7&kjUsFS%cnx zfKG*@DD6HfO-1W|wB)1Gzz|IDK7avUd{k;1u9EL3#mi|K9yZ5`*itw!9_^LC#$+As zmARxg_4uTOi57in*(WegJzV1dNjWZd)~25dl&<2}+VrkKnJ-5BYS=eSShUfIt6sY= zI%9MzvtlxEpRD5^mayoZFu>V^Z-%>!czjM z27f09P@FJ&hzS8SjQw!|w2;580%#|HTLjP*{+{f+*cu;96}*1VpITaWBoOoxh0z^c#Qs z2GBYF_70%e{OuV)ZnpS-9YBrw8x}wb{OuAzGx*yvfHv~CT>zc3HMVtL-JRtM-WY{l z&6M866qTOnq89Wp*O!c`!s#^2u%T>}($tqtEW@JO&{@S8QsG@2s9hMUkn&K>l!KFJ zXbbV`s;*SUX!I3%-OR0w#*4DkCk@V@cXz}jOsI$*9zs3V+#FWcI34r0*5-rdj2_ly zHVi`B+|zY~X07RoqtU6%bPk)xWqP-MT|hmv6lb%)lTkL5={gWGf9ue%V$BiG#w$V? z0?EVGm>^ObnNwVi6Re$PCt#FyC{kClIj4+ha`G_Nbmf}$+dbVzuhn6z&5)vaWAV@G+`b1q-HD)r~dECSthJ?*P0R{JJ1> zSRM1M>PBaS%Tk2L@`VRcY0sLZ+xVv0ctZ+q3Nr8VGnO-y=V&Z4E0NWY=rJ<`>6*VW z&50wT_{j&3aqv#tk5qX9G@*uZ-lP$TQ=iv+U9gj92YKN*j=IH=R}Y_EE9#<|&LcQ; z27t0$;8idBpyo8ZxhR5#WO&z)hUx769rwN^ z?Lbn$B9fZ8q?vWeqn5FwI9-EA)-nzjy=%~&TE-P(MG#F7FgB>xCy4cPJjlRTap4aP zm_>Llts~Z8ch6$LKa`RyF4P@wgsoGF(ic{@VTAkJVvCG5z4;L;X0mh^fztSn%9vR2Vpi z1?XvNBMmlA@&j^@)%uo%A!pM&C976K?jRB@K-JWu|y(4csknG#uS%Wdmd7l5GpaOkVV< zfw8%@XO-9F7A6Oj`y=R+z9mJyT^Z?$&T_11Xf%oOmFa#%V*@4Pizw}wM~g7y*P@XR ztqU{O6am<-8D`88&8pFga7f2``E)wm*iyuJncW*1%Nx8MDsn~nHu#jW@mAQ#nbRa5 z%wmN-P9gf{p|h2!ePd(evTq~3(f<20x9J3(?@g;48_i;=Cv}f7ZW8aDsZ^vfR{ZKr zT_cVCMS>?Chy(_8Jn31aF}$f`h1Ui7mrd#268U&n73elDssUke*sE_`G>4b^m>s-$ zpao2b3%aZ(@jKXPtn)7PZ4+aVOI{-|^yjlpXBeH!YQ7i!*#unF!h^0fF^&>v+|3=D zVptGU-Dq{Rv0mwcj#|#qK@ZiQj+7g1TwWs6LFd374wTW%=s0OP{Q5SiMHZKrny$g* zswwy~s``eVWZmbh`*K_nH)mXkI@BGGFShT*0+7!Ybjai_+uH1!FP>G@@|=b@kK!$Y zLrLwjth}tqyScHx(@~}gM>JKEa7=a_pG>)1j)pf!*KnvvTbmn0L<@I%(A-!@tahWy zCWN1>NC_rmM9{E?kScz>z2q^dlJyCHYIi%vAPP&XgA((nWBU`1O9e9C+tqK&(Rq`x zl9QG!peUJ3JtQk>ME(sJzf z!-L_Pt%EnCpLHOI7RIl=D%MAHxuWvA6{NqOj|XbW#)KXAl+nT%T(%XL8O~LQgn6ir zu%~k^j6aC!4m7N#(V+ydOmT;uS(@gy1d|~$k@slAqJJDmaQPDMmf+ot&9yy``dG!Uh~Gb?9#NOm9eTYI?z>sl;~Sd zi&BS_CSz-(M~QIwnWv*mQ&4N8yKpK;ajlJhZFi#{DQ^mr>Z)6i88`!dAt##qBd(d2 zUl)L`av2?@K@p?ny+Cf-;gxYnloDcOj>1hPxJ9KL{nZ+1Y%fR8S{uWKdmaU~F*=Jq zMrzT&*W^O-+WL*%Lx z0nDcbunet3)-48k29SJe%%pAelhr9DDLKyAwAJ~*&$$f)O#bhdqhjf$cOhzb9b~R^ zNjxSA>Rwa}2NdTO7O{wvuhNkTDo?g;jf3mA156Z(8Wx?JJ-Sn5%HBQ5!!WT@daF|D z9hA(|$R{ejl}%K7G>`h};rRjHR_fexw5~0>Pv`Ptb9hhS<>CF2-GAt2J%!YMd_otj%HFjQ<*(GFUcTWz(J} z9k)0K7ECuqWkF2V_7~zw6W}#?(kACvIBHE^OTYY80(7fpVF@bK*O(|nqLfn zzAbzolgD7AM@8kaC27GU&4I;Wb|C4aN7NY*;^ZS5J=i$FK0ya?(Z`(*kLc-O<3x|Y zA8N@oscx(0=suvvm+|g;NOOi5y?qyGq1d`QOLuswQ`i9+G)DVs`%UwPJfw?5jKQM9 zb1FU5SW&!xM*c%Fiq5`o9y`>C#p8Ln2KyUhNBd6s#fyx|r;pzlyNmnx&0h~QJ~sHi zRXG}^J<%OFaLW#qc3u1GrJYmFBfd4lsuOdU_Ktv@%5Fw?Mi{Rfv(Zo~VT-K7=y;Ox z|0C{A;A6V}|NohrLGGO)V~;I{1hIBd#6BS*L73W_TG~-dW9=YFZ8HQ-sz|H#Mys8w zRxD+@=){__r)n8m8fuwtTt$T@kyvv7uXFDmOFp0U^Z9>&zwhIh$AjlR@AE$Iv!8qJ zxo6JB5kr_~;Wf3hlSem$KOfBX{*A88LjgXz;Nj=<6}4QLpF$n{Aa2chn(W{|;Rf&-Emv@djb7|{U;&4MD(Agap{;Se14i->3n49TzIv<#SUEE)7;5MGr4VyJ5By{KAH3hKKpdc4vj<4AC%ay{+k|U; z8ixHU1@C6};c@2(melqkbnB)3_gvB$Dp|@8=k#Z2_}hFB?x&OV@!NcpdSRyuanlJ| z?7)qg-7@f7{S0X2w`e+khJZ&8`CYYm5lcQr`-fosO*B1tT?bq<+AcpV=UY(sw3r86HLkZJ*`^Cx2gW&apZ!%v|0<_Y?ceL z>G${sBr37xN#d9DuNe-VU>ViisDr)H)MW+VuKtfqfYCQ@>4y=)xG}_~M;k-FZEjg~ zE4ht0?gaUk^A=N#tTh5!SO*MfKGrI)YK>uuMgAXaM5kL!kF`EOP8lmO2eHWAPEj}8)67@c60lm-I;V_+AiJ?bxz*GJ`jB;GO zgT8nl9`z5>wfEs6W_!X`@n()IJV4gfe8(!ozh{|x^3tyF_w>PPzFzefOwNkWi?U(& zr%>^Y19W0FpIqnDV~W?JS@KS=K-fa@tz$G|4I&wIj8-xZ??A`a@UzeD$3Ax~o)5&dBJhO*lKE!i&{vrD6L%w0xtlz^irrh1PTs9}Z za1^5gd(kMLg2A3Z@W8!aok?F1*B?RpIv!+?toOu%BUE`EAKGSk7K<@CgeCF0J?P!u z>ld+JfFG+f$>bbaatso+7#4S+;p_N%Rnrh!9x!n?EnUag;xvco^K}>m zPaUM6*755&>tUMt5r!AzVfywXe!s96^~7fEI}X!=kNIWX)oe1lcy zivOxZmD|(u<$)iCjT8efbGrt(v^;Ed3Ol35Bw) zPDZh-ht7Y(H>;I?qu%G@|k3??tQuj~! z_v$r3887z6plv4aeDd47m~=yg*nThNead&Ppf*ElvjKO|sU1AyHt=}Q(Q}vQ>(6j6 z;)Ka`b0gmfZ!fE4qI`$A>B~&q8ftvu$;;&b(sJY6L2-=()?kVBxCL(k&R925k0tw(xhf^}2j3x8aaQI8H`>hBe7Qdd1;fVuNq#@E3e< zE_Vl2+J=hWyTj9T8y}@LHa`=tNx$3LyYD8;J-#wFbvqU-ayk)h=aa+YH^ZVb-s1_h zv*KbSK3pv~Q&TtpGPid#rMs~x+G(?AtDEPv!Z>VxVT}rJ*|NUmTi5vXRQS_V<~US_ zxbe%4(wBTt*btnz_9TMdic5{4<7ZTF2Om|r!|`y~yRh$++=xWqHX64Bg&Vqy*6!eM zJudO(-{Khx9sP@M`Sx7vP4vgNxQ}+*Kv5pPY0Xq59lM5}W4l|i;LkP{7VkoLNb&IT z6?is@|7Zi{c=%P^k}YJ*!kj(DPRq0Kl=;?YbTJF_42_G*@8oB2>95ngoqWx@zWHoY zJz_s5*15}c*xZMo!CsC|kHzPIHj;ZMI!)mw%G=4e#F?I9yZG2p?FM8uXrx)5?~gR6 zkF1tH(kOoK^32)AchVZzb|p)iS>FCc`*&l$hrIlsq~NXwwR_^Zb>!O1 zPv(C5)DyCgU#tz);`K)BLghIuJ#T*z$98~ag+$TTY<^|+*biA9S+(pjKO`3S(%a&@ zYdwR#JYH7US>tJbfX9o*t3(+G`ER1V?_nf=`e$iIvEo{YdSW-~ph$T!>4*+*T(Pp0 z-dX&LnU;S-sQ!-blMiX}Av~2eU**|-h)>kkKm9==PR`YZvGFPl&qUuuxa3?Q8CS&T z@p+abd>6eJ6Qlip9hZuepWZlv^~Xa*>yMz);68qYPvYDkQv0L)h&ErXM0{+mX_Inc z5?$;9rdG?uS~~lUKHlkKBiW(Q>kC)Xp`-lJ>c@}@Hn3x=cpJBfxb%~v=L32!haVyA ze3u!xEq?hfy`RIsRJ{A6 zHPr4HA5pU{w9+r2KYxamTHNKZ{Y@txSwr??{EIaYe~a6f>an!i!li}<7!?!O(B)(N z8e?^M$|FHAk|J(jO>chBpJ+OmrEAFJblqX;+Pajb%c9xGZf^3t>iVYlJoAp@g#hVbqn7Ls_`S=sm^;V5RlE*Dx*6*v48_< zSJ1>CF-S(gNuT|Q<<81)(pkn|mQcB~=$D@?@x-3xyKD9S?cti_p>Z9%UfE77&f!UC zJSIlx_<7vyx2eTXeC_ewoGfkA%{TD-%Fd!6)xqNH&F&tj1FIID#mxCk3%`RsEGDqa z^uMq|GaY4wMVyeuY@^VPPve?CiVK<(tlrN56m@SyvE$)cZ!yDfE~o83@m;tn7wOhd zSS^=-UBvgPpS_Spn0|P^F>ZBS5Ps*`xu*#e$jDhZ?Wo-BOsaOCAHsd$po!0(LZoVSg=@QKDqp8bAQdF z96x)~o=2je53jOm9%hKmkxscU9}(Bgqk6xf%&W|#N2KPJ&TfAO`2j__w?w0{!q_zO2rT_|1ui;u3+33@j^j>irHEk@ah z=hz;F##701n-8y4c@n}bODV@1_WR>$>TUiucRq$*&Ev-V$KiS%u6G6kSRwdC^-NS1TmPKE5^$sAxD5H%WpcLIJEry%$$STo?(7F@ zEO!qk(8N1@t&Vx)Q2@)v=(JcD(nT!714(1_GWI}X6gR++9TFI-nb8ajht*^$dw&%y zrjMt+clai)oKsM(>?iZg=E@1sN4pI=!rbh$cVZk)QoXS&I|IoSb(5*eUEWvi-6TZW zF+XA1q;lFBA`567x3TapYO!RZr|56KJZ^zgRu%BAO@B|64JwQJA&Y9EDLgp?N<2G} zUMRqfZ`DM~DBzoN6DQK{0z3;hnMhIr@2GoZ3_`O-lfBA?N&JRgAik|*Xl)^?E@cdz zEab0q8@hRR-s7!W?F|x&F~S~ug}N}V9^si%%+JsUjj|Qeck?T>W&6%PLvFFx3YlOd zB?NykfxHpzizMp!0F8ff5{-I*@nT{U&3V8#G<<>Vv)2@%;@;u3=>gg!4i32YfNxbh z`z1F1JDG)O?4Sv4?ae;H%4*|F)cqk}r^%13ewXzRO8qlPoDbc&rFHNuHv=a~w41d! zT$3%IA~1G5EqKV+>+l;3xqld@2(gnex-S0!R%2WL9@|=q-uoVpDb7A^_kQxROfl&t zh$)ZhSAL1k;v8tMup4O~@%7ssN@TIbrYs#CYQlGOXJpH9L}PIUPdGYp?C?Sy05)$@ z$ci~=C)qj}6e|y-A&>ZUuKYOiKf>#iAtR|l38udFZPdGjf1PVJmaok(KmKTO`mq$==1>t3G{s>B93>!f?6@<^ZB`qfNVzbH%h?55(h@~C?ul-4KzCw5_f=JQSbw@{5E}PtBYX6;;1Dzvsj1_{Cs&`yY6-Wc2_G$LLppl9}lhQt?A=EmSgK^3|cl5ZnI`Z^VQ zDr5%#s0}*btB@{l3T_s(6&L!=!R_l#?*$VWz5aD`=u5q5Sv_GrwI)q>Z%=A$5|(iPctwh&^u-W}-U7QzK?X>*#>5&?Qgda_#z%e5Rm zPXnG48gcgLY36f6OYVg~=riVS_6Hq*4vDzkmhL@=3OMmR^)U-hu2Uo(Hw%rqX)P(= zEW8-r5Pb(HS+fVDebvXalT7e6Vyvv8E#SU{n?a-QG^MrBko%@7z1v!7Tj|*V^aEr< zx29|X<;J_?GRV0DBje`w)U1uLnR7+bxi&(3F0r|%Qd{AppnCp3;hKc>V)zZ{g>evSRLxpsV>40y*C06xVq-ZXfD~W z;IzkHU4@1^Lm1-k|0^F#i@FLmxCwRW!>)p@eq23R>^L%b*01udrXzF8D?zu1kG$Tz z9@Xh4gd3MM!k9d=ZqP`)Sh^;Pjj4Y(p>xH~Ogb6sm{&wsV_MZsXj}6EqK-?Q7s?75 zhaercgnWBT9NL)t-Gt}39T8NyJ9^Y#jVP`=%Iw=ljuTCeU;8baXzsV{ zYt~EIU9|%(@E6zO`fglEvs4i->@ll&eUrS$qf<1>b05l9 z-eYq&y zy)Y8mc#4b^$JAyyKZK`3^`wsIm#SGV}P8Gqri8_x_gaLDLwaa=h0STsUSdKfKqY4UahcF(Pb5LmT{OpUFp z#ZRZwW2<4O2`ll5Sbn@MzJ~obJp?>NgwY#4(C^-DNE>M~G&~Moc6RY3|_@~BJ)3OvW_o4>$ zRZpQ+`N6Q!+DoUC`9`FVVS`6qY8rzk)z3u3VuU8uzeYfD8;To+cvPcj4a8l8R>cSn z>LgTSSx7Nq5{8wk6><}r6Nk&^Ytoq*j2pjHrAD#B3sK9fGQ~M&959XtEAf;ZZcZXJ zlWQ;^`R)PNIK{Qs1BX% zEwrq^sV)MubwKes)>9FIr%u2|g0Yb9#0jmr>vbt1PI#%xM@Yl?>HgyzU-TKLOLl(8s1)+g8Tu=OTO zSNau*m&18|2Ih_#ap^^IOXZ}NyS_RE;c@Qp^#MBi=>;LY+61WKp+Eg#vK|LAX)ry? z38qQ|h5FSt8UsGL@Ck;``vOG|6vAs+^-so&xTO{>$Ct2qRmaLS4*{#@RA6yfg46FR z9@nph(Ds2sZLYb1JqALPglR$OUUPJ*5}VcUEm?XGI8T*QgZlnblaK)JAs zp~^*y$f^PP6e|Q%_d&u!$8;nqn;l%I9A77&ZC;6Obg1 zE)QXKA56tVFl#6bBGXVI+;Lj9IZ57_l73~W)rb#Ugo-;+$oP?ZJJw_3#P4-zmAM$# zZSqn^wj0syX4w=MRAdFgbT&fg#s&H9Q})Tn{-YlIzsdY}DgFlo$u;+Q?4JaGyy*+Z zmxSJboUc7l6vH0t#OUbmP$4p?k5oYQUKC6nuc1`qu?m^OPRF#%>yStHokJiz7wF3| zKlbr~(M4GGWv58*yQ_HR>1gJQn8_V6kn2TEUMs}VcQ2x6U(ry7M4^7@HU#aOgCb6T zuIou)#xT|cf>EZ4!pJ6@IF@H56)oV8NZbWQ)SSG-)q#qOMrr88&mI-ffkdHwb#^9W zKYWBNuOB|AUWA9oDDfp7ReVX9^_&Z39KCG5R$dxO7+r{kX_f<=vAqO7@&`oF#BmB8 ze$#+fOJBbv^l5Ft(t=n8>B9(sZ_|e?%0~M3u~=9iiAQzDcZ75`r0mv_rJ+{Cgs!1A z*@{F+Op$2UAShe1WoLhm)==s&p+{VOS$OpNtEf`;dL>1y2no|MMmxJ}vRLST2+aoT zzoi1%C)C+llf^!c0kgTRuUtT-R2(j(1iga1rwvE3whN{&hhuJABba={G1=;`A#u1c ziF0ac=m_EEs@{?UbW~Hn(V~1K_!DP~(a{ltwRS==JO*`Hd?sY^Fbrt0u6#qRb_}&1 ziIKPgcAt;LRJHwm$`~p1uF#ehidamSM+%KA4u*rhjKn+2k^-vyve2}~z;N_53o9sj z6)KXos-f5x^Rh5F!Ny94?ceRUjQv{a%SSBg=l8MSE3*L*Kk$M?K9w9N5#v)h={bmF}57td0D7hBkd_!1geVl|9Cd$e_w5aAe%irY6@ZWpM)Bl5v=zK1Y{ho#`?qp@9B z*~E<=9AQ9iS=;#y0a!6kL~UT|pe)sj6=mt4`&P=yM(d2VqL4b=S9H5Sqx%ag7%!-y zlNe`6Ke}(7Qcn8&H2hVeLp)2gc!GuOm>aT)^*6O4UlBb4=@LlUROAXGIe?C*+)PIA zb3(3cVCaWh{`plQvO{_pYB`cwk!#t``uZ(#DQnyERGu9g`(()6$kK94Jg)I{8ZE>I zai86%1>=NiT^m$|SI}Fsv%0Oca`PVMUZP5mS%;x2b5N z5TR^!5~gyocj=u;f{pvTkp7;8xVGM*W|Q&6Q#6%kPZm7f))-IQDZ+X!*W^dfPp=D} zplaV^3#5)CH8Z}G*FN&#k{@lZDHkU3 zGP^+ap1Vr+WT95XZn)!@&NGW&DHl=VCS0)d_AvNGkHkbCKd=8HS!hsiCJV{l8BJC$ zOyU@J!4fh2D&0sH!u9O~f|ggQ)(oK+clZX4nt|1s;y?N*;H1zA}Pp%=iDmM4jE0U1Kvz3ELF&q7zCe0Ee1}J-Hu8BJIOC$@k=q+avMIuF7$Ernbk*ce;77f4z!4CUyPpY5z>ce+#*6_act|t8_uO&r)k19i>3K@FuKio+FCHIwQ22zmS|ux4r1d{yI7`OC?9Ux zU)H{(q|L0v{p+7J_zl65ro)_ zqwxi;zwpWP&f-c|KDfmU!X#d9G>4M$)en4S9+vPLRt|cF9h1BHcY62+R;h~rpvklG zfVA81Svp%7&T*A~BXO>kyW5i+-V3ox(?1v8iU zooCzIY)HsIP6L+MtgAMYRp79mV(#7Ri)mplk zCaw^k3!3m<0iD2k$U#v@3Ov%>3P-g;+aSVndFQIeGqCXZjpS8PbEbf5Ix0leJbzj- z{mfCwhfaGMzAH@Ca-)uW-d`zf*K%Gj^?G0E%N_L5%J+paJ?0%ou+d`nSL`0LEV+5H z*!Mtzlzu>d^}F~?a$MZ9NzET-?~-pZe~GQ&iS+luEFn7^GO^wP>bOc6z&$)kZ>g>JN@(IJ-j7&Qi?|t`vsnP;(=zE-|NcC=Q#RAx$zD9i zF~N*Z=y`pz3#2SOT4}CFp`iz+r0{4B59}*y2c z7T-jU)X7KP@9EfTA+Ao999DQgu)e`ICB~e^cyOQX-r9*XMb_ZvvG5p;StBIZ?01wI z!UPz*pZcW7JSt){#Cu2S_8MV4_x5)*Y%LxH4tr_ATA^xf>v!ms>2)J;tBh05SdD%; z`jvw$wcFOBnQY3Yt{LUB)s#BDKVX{0!Q zpX@Y?Hs!)3zQ``nhX;VM=`AAY9VcHy`HDd8bwaPu7QZ*t>}ttIHJ?0k>_u@&;=Uu4 zvQCJon)lmd-#YS`_vR7Wz77w?xaHnmhh>+9J=F0dA*{y8J#t(5C2r}~2y9V7eO?iH zY>4_uc&(O|rBNQ-u@f$2Q9QiauwJ~IZheHC@u%5T^<&{G+id;dV__oa??p*2;n?KZ z+=lAu%~pRygt)V-150L+GQj;V8^tfD*gzg~`XSy!N+F9z$=lW(k>c5%?5^rCi^p++ z`7_?)i2HGQy*o76ATPgr#bB0(iV|z?rH?;BsovZ}$37A2)j5IOu&!GnI`u?wOj`4O zv(e1h$oI`2;?@gCxf{Fb`}IN?_x*0qjrBs!Ag;#_(tR%MRZwqeDl<_=o1 zO{l}&|Aw}16Yg=^Z|Jk_n7SYNn*7^^8DaIeAowzSIb{yF-~H4LK>T|Q7+%^;x7>oc$&3GLeDrk1_@b2$732H9kD-_^1-st6>2XRZ`%9sAEuTELuoJ?? z;PudE-T%f4@y89GyI%@gE!TP*6?`QO;x2yS>GQSFGl+Zf3(tyg*}JT_nHxD# zZVkm8!0U^epLk9k!15C(encgQ@HBMjBWie9IL;NW^W+^Ca2iC`8k%xcXuRyXs^{QE2bc05O*w`-ei7R&j$yv4eb4j9F<}voihI{H@wjkUt35=mPolQgzD1Kx zVn`YNrsva>!hEgv2WsfUI^5iW->xZHE zl=M9e3np=Y1~vLY7*ux>6wsnW7U7{Dx2po&u9UL?#DN*~-Vefb?$II-|D#YxTi3f> zRUL(+7oSo6d^yfp5C&9`KLh1VrB!Ezh|0~bHZe9_X6tsld#p0fNua^ z?}+Zo2E(9Sp)Kc&p{QJ871!QLzFc7k*L@znc^-}aLJVy`FEp%Mb)h^6b%%BQI7*z0 zx97NI6PuS7(5>@Am!7*9FpU|RtOq5=bzBr7BF*#GV9FK0u^|Sn3;RNQ$>ZFw$kmMn zfxAz1>O*bT?`V7buHX^)g7As$1i-X<;E|ddB37h_gg?~f5m{=cma8T6{>N@1$6FLVS3FEoG9Ya(^-{bsT{j= z_FvVBOPpl;4b61cG+OZ+tPYyy`T95EK~RJ5-f4(qNtZu|i8Qk9TY~}K#KzU@$Q~Z{ zUYkp&t_ihOySndriANwlzMv-&Au);xEpWKgX==4p0{TrKPb&m zJW^<`pT~aBSp2$4uD6(_T^p@vhyz)rkmYHpM?}|@8fx&pH95jWrKI=0K`DO<(N%v~ z6-dcy#bd%7p5uQC4T3mZoago}VJzR`>0h(D`aJt<*XZ>7cn}YcPruV=sqU;To}BlD zi28ZZnibqY(-f%VB{48w)=_!XD#}&NNC!qnX293sJv;3#bp%~ zRc~XNCVx0dMZ#^aa6IJ|W8nLp8r&BS2bClh(4Cz)7Q5uWP*Z!`Q{#c~j+X2C8f|)r z5$e!5Ps2w7zSUtFN$pEeBumDUtwd0K)mEdl)<`p_oB7DNl97A>qFV9|X>dBOZ z&vC5FNRL&kzlue78$|`_TXP>YqKQHJ1a9jv+7+bV$=!L0X6W<{xNSozx17Gdb|@7o z$kpj%xX7UtR!-kYuN{hFWDl}ML#RIll}-;)1v$7FPWyHG8rmU>g&~TCArx93_J+`E zoj#0frLxixiYl+~-E8qd7XBdnLDbOb)JNrZ*-?}`t&dQiAu*?q1}Rn5GdM4pHkH?Z z71nw-THljJ3_n_k*lvWJ2JyrodZU8=7Wa{rl7jVhjo#uun&`dgKXP4}dCz;n`d7HH zH8Wx2$(}1?KbTmTsF-MH^;Fg)ncUgF)ViX+nvhq(YPM&vkEa0@^^3xGPDkJ{m{gu; zqgdd*N*Rbl66j7v{YTu4KJ-o{gtg@>Ve@#;cDS`+-%Ul}C&wx!vcM+>DKU@j>-i-_ z-&o5%>P>uQeRCl%PYG=ns9Rkkx>oCR^!IhNUN52v4y`UJ| z5l8P-(dSp_-jnqMCtWn^n{x@Vw6m%{tcpo)^*w{_XpyPK+MOBY>3UVXp|RXnBD5pI zYWlHZ*C!!@29G01VX3{~U1ChW;gPNdnnwz@1!$-mRhU%`NRsKiANA=1%sb(3*O)b`QnZ)Z4h-y=Y5KeKPll zg&KsS4%+o(wp(&D`;t9WkE3#ov@ulQrS^i@0x2eFZiE3pZpZt=+r5`XG>O&bi}5|^ zQK-H#7ai+qR7*cz%MFdEjN1D4T(?S|oZ9+FaQB z2{boM{~WioyXT8AeG_d(S7&5$XA?XF|ovl22iSIs-0-HH>H!yFS1Ws3f5|>n+rV9F6p?xEI^f_D1@?)&K0ua*LhH zC`x&G;iULeR|;vY|ENj_<|Xf6mVd!3zSfDd8|$}KpVfs0k)NEDAm_v}U1(tweG6d~ zGQp;k%iDUgn&>f7bu!cONPU+I-oic_u|sCj#Kwg!XKj~zy+gEeFK9)NaEf>@BHhD_xM($2G zE930PW!#NrzEvwky!dCl7GO&yNI?QpaQ!Pdn0gBwuJKrZ0MnOR7RWxDT^ApF*qF!F zmSk?G?`{5~Ju~RV+y!&pkVPU!oAks;HsHJ1yJ&^t`q*E1zA;Iv*Yy#GKZi`7QO;wWi{M=!K@oy)Xx@2y1;0&?Z3=>)?r<2_1!PXC+Xax>&B2utST;KrV5W0CPuD#PnjP<#DL6>U+Nma(^QwRUT!)A;uK2<|zvXGMEGr>%?++_S&D&iFY3V=Arh zpzp=`I(z=?pzmIxO41Bdw0)YXOD2alPv`FX6U*c5XOs}mojv4`zI_Vq z2Nc>=xlxTFL)CYylmp>E+Ha{-tETG8Sg0h&t14m7U7c$5-bsD6@IbiLuUcef*A68f zO}0YFSDx0^i?jZqrt6p@&)BcfbXZ}Y>JFsKuIdNut0~b?boDwlsMjfd!#JO+;yb9C z@+#CERcOvq7%-Xl4<YW=$CFbzZ|GtgN`th)^kcK{T?MXR<(LuYQ~MFOxjibe@P`whEm)aWZb8! zxYRPU2C7F*rTx&e8P6-rFXBFIn`oGR_50@zfywUpda${n!x-_fDbm{kKNl}44pWf<0|@}g2D6NoUc zlw4HZ{!(&TAMrmffm~I=r!uEh0I%xKDkXQTZfm|$Re5R^T1vSC@&L{7XYp$Sg8was zmYone{{L$U`2Sx5YRRiNK*^fQy$Kf=oh*3&7M%vm{-_Y~zpZZUn8r^xO&T@rwXxG69i@0p8b5h_@}LQ0 zUX7Q-^q)SVD{UXCui0Q!vT4%TQPY!6EnEJpjtP15Y}XqW=w39Q?ImZ_eL98bgQhUMiPxocGeDg*9oYZQ4|bgBAw zm1XJu2f0I2TEY51G#E%wX?y?d#t>3kAy5LwQVA(5r)9}Y+x@q0HiVV-2$TT-p<0J3 z18)8UMP3#)s(#^r&|~4{A+#(*rR6vO3xliymkt+5P-!{b$`JlFLE_!(@G_z ztelo5e`441&qet}QPB&OfNO)|7F7n^HB@(54CvHl3+L0Jq0aQ+9qvci`o zPsvpKe_0A;$pZ;0%m2TXiw-qMiKTK@R!+;3|F;pA)^nt&5m(!!)J=%WfcqQOzbppy zgVk_l>6IaOXv*-=X#ZyhHGu?`W%pS*+TXK+C+!59RK48p7LOJ{zV=rftN}pq^z8lC4Ul+xpIz$cN9xz>@i?}CY45&8kKo}EB=0!IVz*>D)JZFDK9pRQ3^FG^E#+6 zJXHErdKC&9w<<8wmu+iTUFp{vnj5ie*cGdMyiH# zwo=@7gTf5F(q@0A>I&Ue6sqbPYh~spt2eYdb?aFL`xs&jv-(cJ`&srE=-IEU?wKm* zt6ZjXoyzqpH>upww;$H{s`vT7XU`+_GF0Il?y!8xSX-m z7j%O~pdSpyCK+?Pd?^uhcF31ppc~8zV?C@Ra)g%d>;?tU3z|%jch8sNKnutYWOad2 z*n;AVM#P}02XY8z^hAj@Lb!3zLwG-!25MeIM4%1yGrQnw*fAv`p`aZU9k{TLM+#xc z3A#ZasA-52nTVnVGbSS-=$e86pzn1QWjG?3iUfh?X($=cHXRXzmU;P74(OYYq6ak# z;U9r`zCn&bQx-Ce1l#uJOO8Zb`W*y1GItO zNe&pmMIHn$rZBls@_|lJ1l?dTa%P)?fS~>LLdni@YA=+G&0rV@P}xA^G}r;npbNBt zUeFDSpdSoI$(V7Fl^L{wRxrbX3p*}c$%Rr5=mSMiGXnuyAR%BB=mir&|4c;0<^BaXy5@-k0KriS9jk8fgpu>ubBIYp%0a~Gv%tL~}3@`(< z;Mg%A=tD^rf%b(+08XE>ry{}Z6sk0w0*JaagFeu;3JGWf`3C5Lc5pRl`5Y00HZTXw z1O08#|Lq%L7y>tFYzt-nFwbBz03}n0lDTbMC+-Jq*a zkrdn$B?g+n417r54tha1Xr5IhrGZWdE`ss$(+!$H*E>a03g~>lNXlb!FgO-D15KcJ zGYo-wU>caQ9ePX-2KUk+03ra*UbuTB+~Fe025R_XDHnQn&;)<4P%K$NN1nb|O2dV* zQn8c;MGNR-0jm{DY^BCky;w>F?KPms+@K3|)+&~YKsOi_k1DGJIp})1SjvGs5A=i9 zSBfPg+f$@eAG5R}lA`;rxO+wV&*1oSb&t(gkL%zqjZG874$j)a2d8Au@L23LbV z&<*B+IiP9geaR2nXWn;6niru6feFk5lbCxBat>-fM8ZJZy8BXSA|e3Ipl=HzVD7Dm z0Cep}34-Q5NXSdj2TfoG7zJAPqC`M*_I)V>v>rghLH|j|eaScsMSThp3GwgCDy4W>)&FCIk> z+WNpBwDd*BKvTa54k-^8Mk@?Wfq@qgG26Y>J38YGgPAZC{ZL8+U7#EE#yyn$U|#$~DR>qF^nWNNg0=w5reVDMbX|9&W$K^K?^X5=IM zT=aiiAtHvrTJ%sd&VvUS32KT_GN2Dk0gd+&5opD!4$*-0vannl9E6-m;u_VB4RM3+9S!&{PB~3$c1R-rbm($bb=|MFC2QH zr4j5pm_id6Ooc~ND1iQEh#0gre(&Ma|rZ7%dkh1L-QsS$3g-0f=SFh4vL^}(jzGsv`u~_ z6@l(#Bp?l({Yc6LZF67Nw^3J1VF-)_ouCEuf{CCHw1a*y4Kyx81fU7b0_`a#oj zBy<(@K|5#z{h$*x5)#Jbpciz3e$crFC9wi_K{J@=z(pJ`H0zNv&%_lKd5;J2EkBJvl$V9KG4p%1qlJ|TaggZybXHqqW}B1 z!yqpF_}z&JdcQ#(twa&+K#_yyZ{ZIbcOpX2k`4d&V91Lcf*A);a-jPl^xsE94 z8_WbP-=RuZA^dTa5SaHP5&*g{pd^Uh|F6Lyp^;oiQG=R45fJp>MH^U+g#3-1gHF&6 zTJj%Bt3el-1^U5U&{Tk`0qvk^4Ke~+KusYc2CbkIG~Po=fbJqBU@iK;9~Y5pk<()2 z0JPjk1fb?26hRy42d$4__ygovQz9jTE^UdF!pN0KUM4SJA{jq~oeCwA8FYeH&;=%e zM!rPKVE$kxlY==9T=;PzG6kVT(yW657z(<;C`NsWWCv{q7y!Ls4(JC(&{_!*e}r&G zBnWg?DUn>DyK0G)3tFqe?#GbVfIZL;CW6MAC6Xfr7v|6s$p`vsl}JTkUTx&Sg&fs| zBIq@4~k6QxI{9oM+QJEXlhd8 zkes-1N1{kTOEW~o+@J`0LCvQ~7#Ip_nj;6Gu|0>RcjOK8K-hhzRt9IiR-( zBH9RpU=(QT2|J*r7jh0}#3QGfNJu}F2EEa*@k?`Mw1iyxag4Xe{1Nx>SBU_Qs z`DjC+`|T3R4?6rA$iWvd_zsE+w629g#`P$oZAj?`q!hGoggx=&HM$SMRX#5fh`x+5~8Q-AD!8}j|tvk?|zk=PJC^68y8{t7eSoDyMIzb!g2A!ZEbb*?^s4CC|`alaPf;Ld|4Z?w;pbIoJcQ!Hv+76-7g5JZ(2x!hh zNjPxfKZbxikn-b50BAXde$03lbqMC2LmT)OIX@3WU>;~^?h7ykx_?GVfc}eUBOchn zS7hy=?;466wBA7YEF=IlG2TQKfo`y35-v2iP{g2-3Pu^)wpp#qml{K=iK%29St(dk z4VPW;&sIHO>ciyGm5iyJM$-b9gYj>*j)uKzXjMB2{s!i+{zZTo)-*01t$)?fn2Rb$ z$H0cRa`{qSrX$-Kh8UDTrq9k6&Z|aMMnivfb?P+Q5XLx+x&75?;b=oILnhMKTBp(I z4wXwF^HoEA`g^pYW%G>SeCa&1l(2+L4T`B`;(7>`f@Af8WLSB;oq)GaU!MAoG1TL7 zc$zQ<22gdme|fIJ2A$Wrn>kY_+%u9W;o$kQNyx<**( z-Gtnw$jLFyP`$AMMdF5l$=~ z^w|jdLH{`P^B|AW(mt=DCfyomXj?w7R=zZ?923-~90;zAItiOkXuX1S<0#*rbNhJ#_IU0`jSPj%aVol^f?fWV1k_TG<*uQ42aYOTdbw(E|#a=NrrlDS#0r4aI<`Z z(q4L3GL1rWiPl4^H0==x=!BjhZr#K3q#ti+)Z84GFEwKt$nNkb`f@+miU2l5--xv# zV+9&M-jKjWnP~HPw4t2dbPUwT;XUdUG;&@03N&${p+Wg-X#Vi5J;BglzdAl&TFX4G z6=?bdLsvsyAG|SRf)6VsP{w&fZ8|r>(2R5UrDhWi4a-OH8ckL|cHNlsCMdFG$a4DA zY{>M!0r}E7xOKh?v}K~9U6B2ye7Z5yP;b>FL$E$~SiaO0tw?9*>4Sv^6SbXWh&8Mp ziKfv8(p)})yk0|ta&BEvQe%pqi8k=Yrv|;T1uSN)$d?YVu-{ZnAlJ`^2J~o>A>3eG znJ=|NG3Ydv9s#+H-Cn(*gZzWTLP{|n01`(z2eh8~(q@pTI z0$M{<9s&uIapH!-@{deYt34XuW`;a{00K>dpV-$TN(AYYDaT|^burgf?1 z23ImKlKvifcqAbcUE`?X%)ahCDKcX4{dDs2Ezy7#Bmk?1ol7S402lVrTjf zp`QVH6I?5W)u)nam|RvGmY%stuM7UT(Q9xr3Wg9vrBkeD9jYSVL~2w2Y3Nxgy=nF|WInAotyQ@T)UWPcDD_5AovA7{ zpKhpC{vm98dlNishs;Gfd;tZstWb|D>P>x+D=s*WCNPG^v0OIR+c&5KfTb$!o{pP{ zFOEf7yYWL*sz0t!8D8Yvj8S`pG9J~%aGDoK4U-M68d>5CCG=4>*OMOWu_B!WJsbQh z)3WJ?I+T%&QcdhbYm*J#xU4>OAsM^nEPeldcvh-)(YkH_;NJ!Q&VTS90e{y&_|L71 znS-|s1(pH1AmBd$*SeRg(v}&9dV_=eseLS;<)8 z|0=8ZJyq2a3imYwb)9Jl=j;je>P!r!x&7&_nW(a&{Kd zGgzj^)I^)xi_!d}6hpJBiC^HJ!Sv?VOkjiK3ND`N``}xUVrXtKXXQ)PUxV+(x(Q_8 zggb_>P#e^)voau0c*9W1P!xt^`a-ps*)&Zc%Tf%+pS@vd9$^_;_{^+<-2r22;8qLy zM05e2wMzn7R~f1kKikm3U>{Q`4MxA!IlC$m;aE;Xb4SY5LTLg*2L9MEvNaS99`YO% zWZ;j<4?&)W9SwB?LXgQXLY@Kn@>24A$b+%tVP+}0p%xwxAV)=_O4YwEU<5o?CsVUI zsFlPSGy!}y3R@zco*c0V_dw6K_t|la$$x}A@!!aALT)N$hqWkOZ4B%)Ntlb)kTjE; z%{4S`?uFi~@KZ({E)hdcZ#`}jY@9xh3>mRCL%ze?y3w4usCFy%VtlTHu{XM@L(P%7 zhBk&weE97iyI1-kHch}ZHhi9;rNN2~7PC7-Z0xR7gU($i2w$6;XQ<(bM=O#4SY9@u zlvnRAluoEJ208DLTXFjJkW!WNBhyFT!%E3-Lhjo4uVtu10c1g*``A9FvaC?*;y)+8 z7CZ{~f29zDh6kxb&|ru@M4|Z(6iQn$MCyz^63FjB8yhv>&_N&hL!oq<<+(!-`gFdb zks~*^Q2Oa{1Zr!6eb;#$#a&9C4|(W?e@&>N9=bi`rR_vOUQ|k-4Fg>uH~w5Gy~Szh z<3om8WOEqIeXN%Xr3a;A+yKp}%l{hV9>}eb4|+?V1-wX$F=V`-2}6`;Pbr#ddx+iDQ#pc8k9C@uZzG=zn%*53P< zuyyNW5)65}id3=yJ-_z?L(>RXrDqjct^AI(WkDWeKqNjE$yZ3z*9#0SYrAVdt1hPr zc5`ae{RM{p;YFrr{ae7?o-h<*gL_I#9~;BwvW@iChWDf^xEbo^$FLb?Y;Crs<>}nA z;XU7kYH3aP7aAHHT-fR|m?bDG7Jc9p(w~rOXs*xfhW#3BMAY|UcIwbasfIRsXZ$^h zXVx=&(a))dgovobXRXVP57w=aS4LOR8R7yX*&;*p@KEe~c{(vH8-@mGJCN@|r_gPQ zquq@Nq^&Bq4Nd8S6qydFv+QgM>zI}82&%Dt^}^8?fdU@waIbsdB%r`%8&?| zGY>_nBq=IM5#kv#y@!V~WO^Z_0yFg#xN28V51n{%K_Y=xJrWcuN7Hz;Pc%tY& zB3&HhB`1IUpUB!-jTK>jlWA`hLd$XL$NWpeJ=vZ04RE9B#=3^Ixzu;Mv1Y4l^FHR6 z7xwi_wF}Q@ga2dweIPH3{Bpq`FZ$|Sw=RpOASfOPYgX}8dWNxHL~{Jksf0D38VC;X z|C`GY@U#9O{b}Go{g1xzMjZG#;MWl)g_pWwEEQ{Qafy8P*AT18RX-P?F$9glt^j^D z;RQ!`dN9LS*QeyBkNK^{;MP?f0B9Dfqr#4xe>Na2w*uemKYSnXcfxQO_=#AInay@b z_@rTvJbk9IcJ(wo&Ge)DL@%k13S0yK0(SFe<{tX+{u1g{!k+xEx;@s*k>GEYsLEgj zd(T-$yE@rVe^wO5cn7<=;2-3$+og-XEbyR}JB=0S=qzL1z~Gl3^G&EEGjy6~m|J9y zSu~$sbZRlxZAO&F>-Eo8MWw5QANC*q5b)zrtw``UiSZ}8OBX768HF1<+vrp+E%#?L zqHxtwi)-K)6Mb=g7rHpx*u^5ISnmILr?DMliN&bJUl>Cwl>S)`KeI0|6ptsUJaKO} z*poK?WwbP!Lva{-rP+8-z4N~R3!OI{dOvz!6l5XlGZXw*n7z%Wb`?W~4fT&U)-hOh zp#{;#-5AIK^=NP+sAI;4V0juB=$;|9ACk*;InOY3+lfic^PzHj<7UFop6?UA(h}5_n zIn6cJ#812qo@;C-rQ=7!F>1OZSuN3F};niJpCC_pwGP}06a$GXeSfW;DT|~<9p9|-MLO7!&Vc@SQiqy;fu&TU-aiL6% zv7Vfnn~zgfX7<{T++&P2~lzfqw2pYmOWW4Z^?RM1ibO8VQ_%)Q~yB@or}K?!PsKLYn=(}KD%PsK_M zb=twzP<3xCT5kgM!d*Y*j~Ce_2dSA?CHIA>EmGer2d-luH6myA6|hxtQOw;$|6m^Y->MOkcz?=2iP7zx zu^J7EHQH9s?*6lFQ9d)+&INy|DBp-+eJL_8&B*Cmtg)6wJO7{4h;C7~F;?#WWU z!I#947#X4uz;4HQATOAAPu-X4> zCJtsI!Jj9>;#OaT*aPea@60zAqoIqjCEOkTDZd@&UbAe-A~UeK9(osh*mTG&81nhC z{|VojHN$kBN%9f|z|%FK^2LvInq~GQrzKeIj7|8I{|{1_J?i(v!n2s0l2)!r#b3l& zQLeN)2EvdwDZ^SxI=sYKzPc-Zx)1 z+RtSZOMpO(f59v-zm-UjCBUHnECD7!o{e<>9VXu)8*^l@_U(*;Vy9(YvO0?92xHuc zyoZG89s1lm1Xk`+V=ZG260ENQnfahDl>81(tuoPA%q;7dA~mSnGNWy^#U=87@}B5* zFJLqo{0F!C-c zxwsKR8~Efo-pKlN4Nm*jagx=Rxz?j7E+49HKCNj? zys=t!*Y0`wyF@tJU<)wRsTVaVegrhuFA#<~>~`{w0G3w8Yx1+Uyz z6x@0h>gCw)XV-}q@_^Wjx~;HuUss{e zW{mz{Q?1$|?q^bm)i{q@Jc|aeHhQAb_N+#$m{ajJMq6XfsJwh}5^eSr7IErhK|R(O z8yaTLq1kJU0~*H1yYLdlZ;bzo!AHy#UTV2P#l(=!T4a_RLvCx0RU|(ev{p3C ze3}i?Fmpa7tu;247~NZItZy9|o0q>@*uWGtwa9dXp}iK$!df7Pmy*;V0bZE7hyoIj zI(HF`Pr%&fMXM4}11ox+V5|x#wGK*8mr{#$$gvjruS1U4meKfi@LX6NC9Ok_?daY* ztbHm_#q~()NQ2fRP4Y@wupR~-Y0r9NeM8t)WQb3s?a+hK>xo8N6ieD*90+RA2GzfNHW*z{Iw{FG(2#h51}C9(<}@n_J?7fM zy!_#!;`*gV1ttjxdYy!Du0_Q+qIfZfsNqIqQ$xlf8oW`|{}9avjk+A(XslW@I4v*V zT^MkkTEs)l;lFFgC!(14STV#vp2BES2D&Yd0h}u4fMG2XxF{ukp)1_H7K-LHZWGFH zMXNR$+e!{}Z#`2wWkLTr!FL4Sk;ipZ|&iQ}%$H0FIe!Bu?U}gNj1wKZRttcA?BtS&) ziM)K@AGFkT9yGzEqN4Cu8U^&&bRF zMI_QMVax+3uZ*m>p#fqtsKYj6y_(@C)v;dfV`7;X4(lD@l2B;whk6d=9gEP48^+dj zaU0Hwu4Pi*HuQqXGi0+}?HrxAqh+$s(nyeo#ph`0b~NnnbF_E6aR8#mdWW&CMb3r1 z{HmfPn32Sn@gBHci{j;8pz%A5o)(Um^YS|gxqjIL#WySAm+AfvW4(sqSMu_)S}MGR z&wL+@?Gc^Yg^pZ-p6x;(xb}ovq@qi>(x6mhTf?>Ilq5)u2&rf=SNfD{j4&+z zm&Wf#zjdH(yD>6goY;e;!3Of)1OL{daeIsdi-zM_dJ8Ug^!QW1dyT$m=8(P6M(FNE zqhrJb6b;97=;4(MzauC{&G#YOvG~$$A9|uIo!ke@iLPX^A7fvx8@cT_)+{O>gm%!I zc*lM?V|Nd_vES%vSnN-=4#zquVKv|RkkOWB zU-_J0nGUSRDa4#Z*k|v)N_!8%Yv%Oq5Zo2^j0UHvrP`CG4y45o8zbP-S%)!3FUI$q zhmD?9T>F2?Z-XhK;1Xr@z-eOmfG_#o%xKtI@o2#jlp=C4jTD$Om{uP_BcN%Hz@L6p z{HU>h=dcl9@}00iF1XY#j5v-T^(Ei`Km3K@KOOVse@^K(fp0~VkE(+vpbWnS4jLPr zinV_K^3(UQqL&)2g!tZ3bwrYm0kA|mhCY_@JGmW0NVKC7AmNWC$Kcn+Q1f#?-eRLRt@jMv(a8Ut|f=5>Rs7)ujSTy9xe^TFcxYvv3r(<9UpFrEwjh;n= zBfjK+VKgiibH3GaqXQzX+i`d}Jd&myM>Fn@q$Gjylj*{7ByUI336wE$8r435GCEMV z6KEX=T6MzMwrJ$^FZqf=v~guJWT@H=GSsmu1k;ZQunf$CIni`K117P$kWaz}=J%7R zCuRto^qw) zr$v8ULjkAJ%BU+y2=ASS(2pu+qUMX&Q;SSkh)JTpKoL@zsPNNmv^Nt)cBN;TMk*Sg z`XxUXRY^mXy)fl*`j#$u5K8Il?_YUnnXKY$C2T#t=6)G-Dwq%(8Q&($+h6~1n^qq@|9k4Yu z%QD&-f?rVIEMt(E1G0>^Rc7LWc%z<$0B8KS#{o$s_-C0o#IHtn=Mh=v)cHIdfhil5 zVeEU_dme)};_ZUkI^8Z9Z7cfW;rJhCk_j-j9}^**c)=LaAe(*FzD{;g;w3x{qz=vX zF|>nkD>4`SK#e~H{F2oEBHG+hK$#|S-~>xwe_AaH3p>I010Q2~;U)N);A4RY3vOW$ z|92k!qMJiq3ontZtOK@3(C=T!)fTGu;Acr>xP-C%sexKtQU{hy+|5x}UyZYC(#pu~(b@5c{ z3SxLS4l1u8O>Qv?0K)y_uAmkCXbHd&W=?yBG|`-H2;6N>c~=mS`1=$#SB*8RESA4& zyBzdzu|N~88jV>o9{i%_RAoJ)Va8RXwMAHIy-D=iimv_wijk%1$W_E>S{Zr+gNDUr z$>JJnjOpnb+8a@D&Dgc?;tF5Yr&bDFCH!aK1mipSSPm9mg6|CeHSqu24uRljf&b$s zpcV8-gP&1>+^!qjpw_dls{{D;>!|!pd=GRTT@#)D2A0Wi37}{W-fy@fY4fk`O{1Mn zr1e*A!=z3^Vk7^3?;3|qbdEKRyostM+R)OQsG1`^y9skxFy2BZ&8S0rZ;6?$F3Gpm zKp%12*sP+t!_OrRMM+;^qmABl8;NU?-5oJ+Hlgu%jFZr4pYDk9$cb$3qGw~IyKC%f zorM=479fe%WoH+5SwHu5c9zoI4&D<^>m`(xkLT2J0Y)(?Iokv*$5*9Opy2cowOrrHlt zhTOsA2CP`?x3519gw>JhrgmcDoBYsd8!>js*PqtTqMk1xjs#!r!(GIN5R1v-D7I?} z?P#MtVh(cAaAK(}zUb*v!cT1pHHIP2fgE#Q;ibkf_~t|LszM=`$*RFX2oR2sP{-h* z>gxHlTK7r@jQMV_?sy2~-;I)cEqk{{L`hd3|r^qpX(1It%9_S*^o*)jh z#!=~~Ft&RWP+Eg+;hui$9 z`EyK$Vbf^vbBsTWr_s{qC@T8bb7OhK*co&Kq<7kkum5wJ;OqkH;Qu&~h+qf=KN);{ zk)byBRKxcG7FC-7dD;x}{>SLqDRSml?QtD7&_mUTDcC=~fL=W0HidS+@2`X%qbu@( zeB1XSy*QP4VXT3^*5CyOO{{KTU^=Tn<6fwP*~u4hBlchb!|u6c@h^fuY#t5%S6xCZ z`4>t2=;Xgx=VswOp!?K1$5@>zzQj_+kNjU62U=(0H6CA4nu4xwa8g4+EseW~$a^o1 zU0cL2`})IExOg(Ir}ku=Xp#v~ONJZ^i^5BcX$!&6SVn_i83z=NT=BJVV^<~ztNyT6 z)FQ_?$&j&z_U4G5x`uA#s4JJ^uZ^}vvlG7NUzEh^z9t2}HdZehz8RLs6RK1lkgMn=VtP-YaOQR6h~Fer;$y!L~m)WS>D zy|NF+jW6`(BaWED@H)_s{Y}UNArJma4Ri4glIyphiw zFHpdd%xASCD#zYW%%jp5aQsxADuLhx7yr31!bzjS4=YY?Ul0UVG~x>aC+inlEl6`Z z`32GHMXv#dYvst|D|Vs5cuy%wUDjLEz^_KTqG@Akw)E>D}k8XFnHtJ3|i@K3fC z*?dEggyY2|wb?PMc%g^3Lbf{t5a-os_BTw273kzQY|nOACpjNu-tHRIA|DG9>?-or zf#P~TyxT6;+Jv=mY;zL^jo1(q4xwTvn`|w@8h^|GVSlNf#k~kbT^q+9F|81PNvN-6 zT3IAwMj(4G@w{Fv*T9eVVn>VcgkI9yB7Au-Hq(s9_G0(VcvLU8h4Zfg>?G&!1K7Tz zd|v=tR*WwXkS-PDu>mZ_oX-egcZ>5pe|A*nZ~WOEnLqbu$4c;9{%nnrKlPKc6`t+K zj{m|h`mr@7d5WKuQi^|$=*j*r&2RUVZkOhld$P}^`I(+*pWTzCRODGb*xwd>dk<+^WuDZ7t**>h_h6Zpd}$B%+>$To!Dd$BvwN_0 zRrr)1>{u0^=gaO_;ct9dWL5s$m#wJE@B6a-Rrw9y2zH|?zu?PqtMXI6Y>^c|;>&hg z@x8w6f)(HH%W|xEk}tbr&A0bqJ8byEK2mBmKBEu&yE=aqBvB2%F^Ijb!RG`?TWj*D zAQo%OPxoeTZTaTj($-o$p*Oo^$76f5Z?$<;Z}z$l{~E}S*z@;+EZd&{8^|Kg*5!`^ zS#Di^JCLoY&o2kE{q^~oK=!ykPY+}#9C%6~d)mV9k6o7#%U z1+zu1cyutMh_*boAN$&t-|ow9w&RETN(&w=PUcN$PWB{ zKlaI)@9W1dcI3iyXnS1_(;dyd2AOJ(}g3pUi)C)jrQdf z%Hn;6N`kL&<*^?8S`QZ46Mwy-2aD<{8gxNV(YWzFMMEd|6pfzNQv|@Po_wkwOYjq) z$$tEEPj4;t|2hfYX?t`i0Lg_GQPKH z)kD4c#op|_`WYD{T7G2^-x0(vtDo6HB04??@kf2wygnjo*7f0g`><^Fb4IY>dp`{3 zxxp+xM0_TMh}Jt6!mov}$iCt;s;_9_1${+ppYO{b^<^{qiO-mRqQSQI<460kN9t!z zKhZF0p`21P%}wP>MC|Zpk0hSv&E6RJZEv=(2+#4BUKQbUyR#W)JiR-+YsPPN7ajX$ zcb3Wdm+tIPQU14&=-3H9(zRmzs1Hju=TW|*W5@Zj<1*ju%O1-7pf5XFf?xJ!8;$&l zue9$MKDP&3R+8WFlUA1E$$so}DZV?xPnuhXC;788=*B&yzsvF4J*1hx@<%<{zrTu+ z`E+?c*H2nhfo}?6?;f;UhG6wexw(B zZN)G3V)Lx|<6dmDHP7wEPFwTYf$W(zj|*foZ1|QymSDrv0`bGdHvB>$yJy262C{q` z{vnVpug39fCHt!JrM=npYJ5{~_OTj2*qhy|&M$*sgFopl9jeKbg4i-!zCTD>S&KhF z1J>eC!lZmV9v#MR*5 z8yfH>{n?|2JgGlB+K6xOFYRm0@e?1{8}n=ZS!NTS-JiX0!k_kMam_dlV5!ac$^k69 z8DBqu9dhI;1K5-1JbeJ0*OI>vVyUfoW-zr)sF87VW-<8 zK%}S+JP{Gwfv1PC=m;l%FNCdj;yEEK#fg6nVYyEHOJDYvGmq)VR=c1BvjZ-COFwqa zg&*k0-n#J2er&EQzuAv%aOKbYv16|M6Zmc%zhjc+E_(1S556{(E$qtohO)O^`N>cz z+lxO5Wm~*CqHUKqdd)s>5poy3c?7og-Xid(bm#aro;3CIYIhNGbA3dZrTXw2KJ2oO z2(UcPMDV6S`deLbaJJ;i-?PjUaTr--Jt zetf$>JL|`z0@w>b{?#vn<@$+OjQ0n@68uFdUh)@8kpaT=`T(JNI6ws6wEz)#F9Ss2 zP3t8BFRQnRh)=!w>>w5uBqAaqNZelt;wgjJogfhxCxS(jWTP7gvk$?dNmhsO%YE6F z5YZ$NaeevbzAQ`q{Mc6rQbL8}ZieztaAJS)nb2QE$FcrAr$1XTKzt?-5G|iJK(u_; z0MYVK2JqYg?Ck&%X7K~X{h@*U(Li=_pa`?! z8GitHV8&O>Y_{-?ydq>m#%gK zkWt!BFe4_H;U~_(Oc{O|5MQR|Bf!ZrK7yHCmcIw=E~~1fm3>-NBzaWXYZ+?u$da!C zyt3ry0qIrLLM^Ducc6jJRaL1cR{RQNGpzZ$U2vjx(?g&hSaXq_Y&sv@hx~JG_+_Ms z!UzX)K{ZvFUX2UYo7Ge^bE>P%gVn2u?BCVkkKl~uw)_L&fGuB*bf;{2GT^Q)PeXyD zYw;t1OSQa3f?altitGb<(VoY`{WtBc1vRg3&846scGtbEN|$2s0(w&e{t0PzHmD$! z&Nbjsh^ea$>IrI2!@yWjUmEfRz_dnOP|=N+8ia616aE0{Z#1d)77*FAk6`}WG$36t zoAFbC`^~tZo;R}%(H&G{M>_CWP*+td z0)Hp3qln5gP6I`$4m(?qjuv}Bt?F1+P-i>xouKY@{`EnrWRZ@{URDwnj~Lv3L(E-bJ;N=%RW!;;0MHKPs`)E<3r%V^`PD zrf8HrtGCS_uqOxcY(Pv9zX@0zv_cZXQ+>*chJD#bP4c-<E2TADcn`PDR79mp>L_6+1F0Otnsbikv5JPq)9Am0d> zAI28}c82l!fJo@-U}*zC{F++4&{PM9vUQMi-t9Rbr3lW_se&dY9$zu^ya&l|N|)!8;$b@jo~s#8yo=3?ND9>X6&C;4{_<`L+^zhgqa`@35E z7r!^Y1JRB@_;tX(Ke(Wd{-Mfp{+J<&Hkm)JtO(d$<17Vrb6n$H&{;j6Zv!Na=YrZk zeudhL@+J&k4f4xG9tD^+i3@7}q`y=<8zb7j-;eyiM(|IFn5amJzsH*kbAZC|W}v9` z@knWos(*j7mOOoiWbr-%)6)GJlG@v5&Xg>kflipIB{&3p2>LGYF7N~J25{OeiKhUgfr4HL z6!JKr(BA|U86KP^StNkIIZLxYdA4M+T*zljlSIw7|0RV+B%p*FqEQpzHlU#QL`%*> zA!?4~5e53;9JmHS`2r~DcR(SZKUd;nE;&C}au;1_?L5gd4-pa-Bk}vdIY2?j0)>1( zP^6nYUn(sMxNp7`VJR5d^Ci#6m?91@fI;9%prFq$kW~3M&>}(f-%?--dhqAJQBdI2 zh42LMuZ5C@kZ)Ni1;&D29*cqk6M%x=3>5OcvC;~I$S{{Aei>0aH)1g?q4n1SV}U1t zuQ8K60UihDES9PYdgT($!lors<0o*%ThRA`pMip&x>S=d28s+4mP(CDbPLc6fbW2U z{<2h3duGlusf#F4L{=Oc5mEFIm=1ia)1Tv{Q9>bixx}}_6_G2XI)YAKAqBoil~%4q zGy&HG1-%t0KuX$>T6;aBz*p_XCdu1$}mnCeK+TdAvbE&#jgCKftR%LEi<6 z^k0BtYK%>g+K7VQOh8+T{}ngAuc089bi01AaXph!4(z2>Ty>m~jPO)(`=; z>6@g`bcFZUO(+O3YBQPyIA^ow`Xiv1BI8q=rPe}!{uX2i`I0SCH9=q5A~g^N{(Gxd zf%QN^@7yZ+W?_vJmkd5|El|*#fDuArA8thdNC%3w(K(=44PDatcYtEZdzvg+3H{aE zv#_9)qBv};q%^t0On+{0oz?ybIswh&Y z9+awxY>pk$@*#J}Dw!j>qh zZK|8`ifgKb*}e!S95# zT{v$HXIDz_r^DIv5`60r7HQ%;heWVdCVt{Kw#~%f4`!E5{N-Tw)Wq)$W}6j`pO#Eh z__D$5o5G(DV$r|wH6iTqFXzj?31)k%^9zI6(dzv5K(?@kuy?Ws-xJ1e)Zod37>){% z^ShdSJGNN1ocgopwj5=oTKsK){75rDKY+cig}O#0*;#^r&aTz&5SCDz&+E-j)IKb# z6Jy_M&k*+5p2rPmN9&5jck1%=KJ0y6z5sry7jU@``&O?RIOpo~e3+}>A3ARx{z&V? z@*D6Keb}moBGt7Dz1Fsf*ZV+4Cl1F26+tTt}Z5d1dJWT(ceh+p!2UNK!UrtKjJRbac1x`l>g(-(;`CoN)JyE?>!pd3FYZs z`1OALNf#l0Gx8|m-WKYHM=9u?$Ue9U}W{-@W$&tas-G6!QlTJEDClc^z!Tpefu;o0AWO4bmORsij6hn(q=|+<0a-2GSxMPX_z%HIJ#73FUL^NR5s04k<3R~A!M_7~$9z&uxsX9DgO0i}CG% ze2qE7Tvb_X&J)4J0p1$GNprpmaMzrFX*LZxY1~(uPIPhp4$PIsdBPN|Rf_X?z=`5~ zgD*R$@vcIHMszimk2nFvLnV14AhTrq_fs*Zl;U~NPb|d+b-5JJ1Qk;n?)Y4Kaj})9 z*=7ri&lA{Hi`uxSN)|MM9jp!+WY_xs%rDUL)qin{Bd9QwzfF- zimBuHK7?Ja!(W83JbV5ygsrK|Z-uZubvu0M!=~0dDBZ)se0_cnr@s#TWgqs$fg?ej z+PkJSylOyhxs5GejbX7(EF(aiX=3qw413;WzXT$^nZ=R**nnE%eyO9y_Wmr@al1K) zlny*)44dy%Ghqxn;KUaXW2c-PaUbO@_)nbqqTy_PM^VSq9r20+d)iT$i0@>v0Q#NE z;r@9iK79zKPV!OMP!~Oj(e90*Gz6)PCip}uk3r4Y(p8Wktw%${4c6tiwSx^3SB)jLy zA7G60-IX7~Fwm8!jAS`o`3{J^_@a?)lb7J^@e+on%t+Qi%p}*x1zA_SrIAeJ>{>;tT z+0w-bmOqZ4n8ap`=eXZFp3j`brv53)k>2=Ej$gOEIYAJ4llaXDHg&ReQe^ucn>NNa zPsPRr!$1y@u{G1g=QY~g-E@xH_BC0hF7q*k$Pt%#H}L;rMH7>x%HZuIyM5{@RtrnS~$jz?N|S!JX~qVHsW6*P?u57dE39|K`E27h8qn z%;orw!bvO%82ehh$E6Nzdx=Jj<(KHO+KGKI;;Yp|CcYO6CQcDfEXTz0wD@NeKjXyG z6{NYK@V)Nrp~81{Vy_f_*@^A>1#Em>xupZU_6v`7VGn-c2`((YB-qa+npUK%j4YHq{^(o zr*_6~obZ_uo!Q$8{DwQ5TamwVXBR5+rEctgMV{csK2_v<-B`Q@&vauCE%?4p?41Qa z(24z3iC^f%_E+K$JF&>h9KT8yQ<+b5W9uvPXg8KsnNRM(rdf(?_F3|OJF|34e#(XY zRb>TQ=0w$I=bYF@t1@Vmw^n6VJ4LXy*6_zp8~(+aUBs8F9oZwBMh7~wZPoY_XLhif z`%4eDqB_UlKR8r^B5O@Eyg*#k<}aMZH#2LT z+4?&8?*398e&3m0uty&6?cHM9vebGU@pHAFu>P@L4SchIpneyW^}GW|u75S)h>^4g z9OcVvfJ7_W;$uSxeC!t==fuYo@sTG!@MQ{~fe|0Ko$)bGyi1$g2_KmrlpJD;NkyO^ zmm(&&Vcq(DXvYpqJh3%9kBv_ow$#AENiD*6x0db~$&fcsIZyBOaBmzuYK+L=8w z=eeEnXI%I$H}fvqXWPqY`21EqV2miBC01%AYd&8f)K z+py&oo8Yg4T&cLhaJMa6T$wLy&dyYBu&6nkYsnLvvjj`Nw>jHu$?*muzH7hJoZYkJ zIn7zFC7;rQMOEPoTdgHlsRU;lgfK7v^GWR6py;Zq*R?*J=un zJgyl5&U!m>pKixt^R}IkKDR4_nnl&Fa5ln`W!C18I*O&h^N#FR9Y-WMZ_n>^Vi)R) z>ffy^9GOzj1tzxC=gS@0nfe?$FX~rE?UNihT#@O(KR06!9r&eYY)%6qz1={hn%Xe* zO>36dke_MIrZnQXpWR6C*EJFa%5B8IHH~0r8i#Bf;7S^1*=uN3SHpN6+qKZ> za2>roG&*>UhVA~)F;dsl(QBqg$B>4Rt9AJ?fyh4`!-2Tsbxi)KD`NanuU;Kh2=1q0 z_y7&9wrZGlO2eGT8hX9dr8us3eQZFNR_4U>mxSaPg}IU99) zvxaFHa>bQ>L_@FVIzLyZi{qg~Tv?UKFw%6;kkNvUj5H0G#!$mirhLPwq2jObrMiwb zWt$tqn^WzHrg}wUhPluLLq$s(JJD3Kc>H+H!X9Xrr$n%d1pnzmFWN)l8Yn}2ae9tq zh8R47I0@)rPi_Juo6~rKUKx}GERuY>Gwt7xRJoI2HtSkvwO}_@v$Y~%DET_Ih(Lnu z$23@A%xhXIF!%$V5*Xf&@>IG5)s7VMt`s29%7OODZL%NA5=tEsIq$SxW!%oSTTDpTRDJa?GD5vT4 zu(lMRY+5I;Yo*CQwIZ)=CU?V-Hne=3$;$A!4ISEMsw;=L)#Rny(T8oOsj^i&jo#gk zrfxR{$!R+6)Smv?ZVHvX+H3Ok4&=YXG*b@fpwXcn=${>?>V^p&sMJnVEyI!y)N&{6 zXX)}+PBe0-skuDXNz*^?L@7H>HRK$fHg~3nJ56=ulFpj^bw{e0Vj3f}P8#jki591r zoaJDhc5tD`DW=YbyiU|$7yRPjqUq(hQ2$*f=h~$ziYHF-gZ>F7#-eoLTpguL?%!E- zahIvFoTH20xl*ZAlT(?>dU|gcSIzJcR~ndVs%kw%r^o0h9esjVV%)#8X?-f{$vSJv zjBfNi)#O~pw!ogBE|}Dr+V6(FNjg14M``on^04=vO_O(_kwTbq4AG*A^*LmCUS;Om+eA}_nNG1zSEjshny0O z-N(X)u{JMIfLdMX#$J=FoYh5>*Xc&~`%Er|tO_({pQ(>L&r{=9_o6%dOqPbfJ?ZN{ zQ&oXg_JeNKm0Iry4Ga==QdgR|-&9H9()}h2+0jc&pXEgd_nUgl4&5|*p%2wKU}`6y z(&=vAH2i?6{Eu|Z0h49TI^LRoHytGxsih;TU{ym@fwew``!(Kl@qo$EaL=1e2Tkp5 zTX)yexcX=)@ggm2qRO>w;qdQ58gtN8RgTw{9{bRWg9xx3otAy+!a-9rxumaVq)rbi za|n)a=u5tbu)%QXq46_%P@3R-_aH+W8YD~S+xb!VH1K&(icLdDwCPEyX(qfI?x&@z z;zx$VriQYEPU9Cn+8j0wG`y`q>kpfn7%usx-Z^ZFljLB3Ey3S|XxdRzygW^(WBsY# zF;iv3I)CywW@>LJ89?)nnOqHJ1L*oOQ-EP{05wSmzj-ejn~sWJ=%v|t(u-E5n<~q; zK^omEh)$%Nylb=<53A$y)=}CkwJZzomRD!?)&tPLB70Mt<8ZWD5RE-<>LQO1(UP19 zp>xMgH4Jrv>BDhTGsBZ$s(-??Shfw*_$(?2@79^R%kjGW+hCe|(lo+wpaMy!O!Z{;o0jhR5NdwP zG)z9F)7O8aZKp73<_yu~1BTKAq2F+*M!OEBN~e);xK2+QMlPq}`(hO-`LwB{>^)4= z>o<(@Pn&uhvMW$frfEoNOmC`-R_GI(w@huX|B{v(cg9qzs9Ye;A4aJcO@1;Pu4xw; zP8BbSAzY^y4JY?Yrm=FoPRrqR=90-xE*Y-r_Y5cN%jn9%I(;def-j?sj?(FQ;k5m- zsk)r4(-lWh_GQ?&8lk2CZ3LCRVj3ie>vWBg6m`Y4L3S9a$-9jt$Ezk^IasIXk0iQk z>MF7EwyCZG{4#e;ZF|J% z!O%LWC}S`6M8$Nbgl}(4Gu9*=GP|*i)%&kP(?208GCyll8~Y!Ue;r4OchF}?>Skib z)A>85^0uvXI-tP3(a_`y($yLV)8B>k%Ux5)3i0|>)Gk$cl@4-@ zP9K~=dn}bUa+*$Goym2|DXOaCXqTgk}hIJ!{29PSfeYNQ$sls>=A4ch!TS6Rnjha)RVjzToQm)l$2LQiqu5`QM9|7 zk|YO5X-Vo%rysss{AO==7@DRJ$e`?+4nireY_j>GCtP>93kf4f(cCm;8(N)>N#1q#xE) z+R6@pY4*GRMRjeJIN3|5FU+Bfwo15RogHm1=*0PS++J~zt^U^R&5K=BSD6s8(@tBAhcs-=*cDy&PDg2&JN9j! z&Jf*;$Cfo0N2mYQF|(08Whj`f5@Fa!nCY}o%OW0cYe}Q$7MSpahH9cf-hZKs`gR;E zurWflp%x`Yw{d_r-Fx0nXkSK1o}5pAxo)HM7_bh*A_Wmrq}5wz^ESkp6G zLbeV{lw5L&Mt_K-T@K1DxxG&JSwfu~D3yMshc!^_4Y!w2Tm#sfu!IgaK(hevHc%|< z`z+P$^w&`;BOU4j--p1TA2y*RA*`ZCFNg8zTS8%P6@a@&}%8s8|{zmr;(Ofu$OuJQ>S06W4W=Y^2wodU-sy>g73I zs6@RRp*+EHTA~GU6xm3rnyfeEcLjRZ zNU1Ng<(jQqE6Ap?GFgt%>Ez|Kxv^5dklwVM&Nfym8e&$^v&Kp#fkm4j5VBWj>2Ji7 zOA}>uM8B09{g;kXQ)zrRJ?P)>WUQYE`U0hRypvlHtQArUD^ZYkYk`es(g4wE)Mzgd zZq$VZ>HDhbsYO#ok+b8qLX2ER-c6N7a^xzFzP&2-O;e?*Bxmc4Cu^voqte?@c{R;< z#E^M&wWio|4SjIL=1BAghVC~<7#>|qC0ig2l(p2b z1xB5i1Wm8cdYaZkv6k2A^vML;+Cr&p$V#9yEfhP$hXl$6+O}M$+tpF(&pl6JNPKV< zL*jQKxwgbS5WHSfKCzyLwN#qRSvp;518r-m1Q{F>sZ=Y)p?c#)O)tv|0$VFS@+O^sego}otymZWHqe#U zN?k*lB;sw98isO7WZy=qBj+S(=~FgRNE@ZK!C@oCw?S~FZPfTRcF^@Uil1SO9W`pJ zv@#6XOe5MVfrcq|bgnIG&}o~dm%NQiw^ONQc1E4!QnWOCQ|O>G>ilsh-EdY~8Y1^n`HrY_?rv(+Q8{9W-%o~4 zN>f9y9ku8Le*Zlb(n)bLw6mjif*!P&&Va7lPA{r&$p$Fq1)NjX&&ACh-1Nr{u7EQK zv@A;=q}DFzV|5OapNrB^n2vT)Y8za4(ry_L4s~# z)iTc@6no;G6jtRJ-E>oG8EPIQ?yl6TRz}w^NT=$LF#B$}&oT0Hhv9w4wGtF0P!;{S zYIqpdZuaT4%w4H&RZv2=3{Br_0fb`N)KC0*-=K85>#nph^f^jZJ(L!51>LI8aq8!x zOpv|wR4X6SGY@5;VPXb(cTwuv_}tR0ZPZcCecUgFx$nrJRb8+mdU#jUYnx5yx+uRI z9%RrH@NG&w(D(y%>?TU}v}B=MtWQ#1Pq@YIB=rPVGu+nn{dH9H3oos?MN~KVB(3&D zhAZ!Bih1`a%M%$cI7v^zw>fo3W_YX^IzI(Bw320?GxhHr%E=UP^hxkkj;0*cq`i>1ifq3x4w(TKa`INb!ber)N@4 zZ`ds;e?gO~c2`&nyZuCc-7;wie%M1U@Lc9~TI8*?Gu%H%*SwW3@-H_vy8~`g{qCq& z@;P$tjsS0>doo%_waIJLP|GVkUi%#V-CgNx$URFRh5ntZnw^4ls(!R>Vg1t1QU@Q@ zBU5id+Zz<_BO>H1&GbQf7d`z79o6*At}uQ7vvg6UH=NhYd!8g;q;GPTD*7sQ<;X0J zpPfZsf}eYa!hE4WK-WKYo)-CHDEB-=mwlCB!_!ODtOxv85RnCbSN-?CQKA2aU8adW z6su|jbU$6vQPr!}MCfTl&fW8r)&mtOXyDfc4K0S8J*uKQG&Q?GC3<3aQXqG|M{Rnd z!1FFp5AbbV^)67*l~hOAHB%jtHxMhL3$&^y9KY%!aX;u6^vUEO`)2dzg^qi0k-Yri zhyr=pJ2c4;`4zoHi@>)js|RpFAgdL-*P_q?tuN6nKRBSE;`Iy095H4rZ>c&!jWn+- zRMj7mc1|BuYCojT{@78(Kh#=g?<1P(kIAynBRcFacB+pwzTZl z>&}?Tajop?@U&3l&j6*H9IVq>W^^S$Sy=7mKbkyH`~|7HQ!ua=FS1OZo_emqVMe)U zG^dvcjxU;G_7^(VOId4Z_zw*ZRGJt%zMxfs%3Ar$3r$|)U+UUhvHg*b?5&J5^m$32 zdn=9xhgZ}j2Jn?4wq?HPWx16Q<;-Lg=K7eT5o4`GT*&7~22 zuqlhq)zX9B)CcJ&zorL$U_bg5Sq39E7JSp>Z@!UNFgj(6*EA>?ZI$^+4=gdks=*EBo?%eQm*l1f#{pd*5R?1RRK-h08n_MU3= z1HX#Shn`;hoaK2-cXbNiiaWN zBTelOI`<jjY5ObV8m)%yKU&z%x1*W^6+bygmn|+%GY2YNWiNA0_nJA~8wigL)#+{K zR5lFLgOxcs0j&ayYkG@yEIgi3C%v0RDJBeKK#ra|5I#9iJz^()vR2q zMXXX*lG~Nj7~vJjagp-3Va2a>W|7iU4zHl`<0?@-!m87uZt4J1el?ThD`|o;PN~zE zDP<(NLuHN8r!uXH!$h2>)69}C$0~Y5WS5w08^oWu?+e{>Ms_H?=0; zmDm!cR!jY3rD7>r&bHMAM|2eXoAwQ{C@x-P!fe_WuT--%G}crcbd+%t*goAss6@`D z*YQdxc~~7ykzY2#`8SOM$ZcpK>lyY)|4jS$4MDtc*DDZWl#8t{nxnl#3KcxY+ zSgq8k{hikMZKl{^gLy~o8fcJ4jrD4WIMS@uN@F?FNz?1)Oea<=uGA?3d#iG8G$R4+knX0*AGp!C1jV9exK972 zqrtoNMil975d&-VT}Exz;Sg$EXBx3i85UveqSP1q; z4X`s+w{tv-Mr^>5Q7C?5ZUfSvn4qOEGKp@3FTeawo05?JbG~ZnktonEkIzZL8jps8{FO zXz+i#(Z8FNVf|yh_0sAXjVFZu8y4+!SuY*+tcErdHTaKA&1yF!>eWGH< zZNX`ZT@O07MOkME>PaKFVn&kjh4fbCm_g}B)034D+22YWVVbrk2=ZE(LAJa;)!6irbEJg5PIp{JFCzZ##~7tmbNT^jxa3L%Al$ z=(N3kYO$TlA9V^Dt72*9T_ws8KA(Qc#tC%90xjW^1r(T#5iL1Zqc1L^zp@o?IeU>t z*I!0YvXyCax21*jn0rb!*ouzI`Vp?)G-9Fr-_f035KvF`uqs} zYxtG|JE`3tD^8M}tTT2Wr1&SwSA#=iTKN>m7WUie^i$;zL+9<}{0tq~{eYHGIY={~ zDK>K0cY5bDeAyImP?JXtJ*P9trF>`@2LJ&Vip5Z(D#S!HlPLz7=(#Zlpm#s~f6rQ&S! zo!0oBSK#OCip`)HRBrHA}D28Z}}R^=%2&7&ZRS=RD6R(fj)S&+EmL=lzV&9`}sr zQyizr%RfQOr`WObc}QO01N)w$T@KH78K~^DFf|$N{)c~}Udc?nFEh~tlQIi-EZgZ< z(p$hZFV5d>Zq&vcMnC+GM7M6h%gln6)y0>g?6ZRNv_O1aTU=9a!}rf{IiA71dI#=4 zE7(}gcLFLr$4WP4a~g))C*BUHOj_HXY)|G%*^6LR>)e`94% z{hj0+e+SRs*a%;phCk4*Vl&32yt`ddqT=vg?(Ga5tkKQyl3DS4(BcK&ICW(6?olra z_OfW1Y(L@&-2Ml9U-<_RmW91n|bb zUwpdx5#Qk7fwa| z{=V?d_E&-R>%D}iw^*q;{73qwb7kx2V*R2_Eq`1?MYA;18qbybIck}ex*7k7_Et12=53Cnv+U?LQ_Jnr&9PFiye}A->@72GLCem> zH*E90w7oS5ZOxWFfLdlIZs8x%-ioH9$b7<47cov}v4fS;(M{n527V~0SM-*dw&zS+ zG>?w?Ko!x@*S+pTK?C>j8g>f2Dpy{5P`{yis=*42o*G_VCwMZ`0r(`ZfkUy}^__vr zJ_}vRN{fvFq*J~SbW-&;>TiYITU7mLOMtC18`mM4($f7ltw0TnJ3W`)t%4@S!>YK; zh3ojJ%29>%jz&Pgs``@Pv>LRS)q7k4@6NJN2?u|hURA9S4ly>pqq@8*thDJV+UTle z?5qk^BJ|>FN;ou+&`W5R2*UG6KvIMrr+Jv~9|=E3=&_n3lH@-|Lg7fgrsiS3RyF7l zsn^i#)kr?M4lIe(Z>gQD!>DSyU0qQf_Eys;YVB&1{M*_PU0rwKJHf;^KIQ(Wy8Z^I zZ3d11Rv6X{Kqta-TidjG%^2s18C4+cWar<&$2HYp!d*H z?W8`UAq*IxchZ~quhs4HdqhU(wYAd3*83m4K$@G+0}}NuLtWf zHH>)T+ug(*Ux_2;0aHt!yh;c>UBI_8=dT&U`1Is){m|8Dldh*3=i1y;lYQ3dwEpu%u24 z$TL(AS6?)TT0^l0?JdY19$z^`;C))aD#Sw_(KL84rH=KnP?pxYEm_DUv?P6NYxrZR zep3r+P5k-<@C?%(fgRYc)p{1}Y7Om%W0koQNU=>DST!66PGTG4*R_Q|hwGCyS6kw% zw}X)my`pAsM|`Ueu+gC((Gofk-?}plAEB?%a(5&?x+4T6>FczF&cu)I42P2RaLvj5 z*InVCBz=eG>PqrqpThQ$IBp!D5+BqJETi=L>ikck;V8Ya7SfIIPrJi{QMyg-(hZJ| z(wl0D-3kBD9RfxpKE69N9*z1+55kxBfJFkg_JAKo>y5ND#$yw~e~jK#z0w1^j=^## zB$9qoFFYk(uc4=Mg(Ymq_M4IjPsU&?oJxd}V=jKe`~3?+H5p|EY7UL9XvCH{Z|9*@(jR$jtCN$avB-y#A3=I? z_(e+dfr{n2UvKP1xsosqbEN&ray<#cCSdorC6T@{3OY`}k@adM@$J@Q*3K|aIAaX)-;4p@iF#=*o%s`Eq3T3^oaPxz^5)}U=S0ym zul_a;woKALQ9m0G z9ziFMhb%#1JQSad^xk-g5ftCn93W`B2{2#Kp%Y+_pfe}HbwSrnST+U8zZ0O`6zpA| ziIk@?P8c;sZ=pV$2*;-AW!2`B;SWKlPX;3y>FUW)D;bBg(@FYMro)hAJxOy;CtjZc zkCL%t9h(kCoT&fXbZ8*xpwFS7Q*WsD`U1XjVlOvlkp4gTTiuDvkusb3S94*{RDGh_ zdM-pv!&wTy-o|EBl$i@4VVXW#9X}sVPDA_D1%w|+g(B1SeyT0i?VPS3wrJ_8BzU|U znth?C1+NC;`}kwGf6hW}A$<4(TdMOy682vRVKel~+HU5LFNDMy`ULgCLbx$QuO(>V znffO6-by$;6I;xIpDv1P_iA`HQ!l6XUjjvE>BrTx%i-26y^nfw2{cZ@TFSeW^vW%T z@hN%}EtBmAuZL49`VMu`Iv772OJhqTJ^yuZW;XVymdy801Irwon-{Gkd7t%AagJU` zbF3%6;wBg}NB>-H77fqm=w;OYUqSF(y{@=X&|xkvQ&l&RUfT^YZLS`p*)|bBV;7vC ztADQfY$iT>0%-4g}GT%V#d_7wG%tiRN zoiJyn3t+YX)Y<>4Hr_eUQ&0H{;vH{XraDcOW#j? zs{`=ULVb>waDey~N1@ju{gImgAT(dB-_z2L629yt)Lx zm)efO)g?N<(|D3_+es^_xcdkzGAeb)WyGVHh6K(|vcAq|@}krl#EBgARJkX1_jN7p@L_?amBr5TZ62s{UawKQJtt7l zenwG*Q72*a;J%MizbNK!+s`olJa*5kY}UX7uJhQOy*!l6Vh_AHFP3uVk9eTo&-!UC zo%v%|!SLuU)ej!%>Cwli`7Xc}kG@_DyGr&$ufp^T*xh0-!qyA=8ZDV|v}<<}ySe=` zOuncu(BwyZTd%o;F6rUE*}$8t(CP}V?bq4xkE<}_3XXf_8YNKv8tg~8s$GLWu3+QZ z7$1BMLaw4+6!US{pz~ERUogM*8q5*$3CyQlgX34RJGq#@{=i-9njVxZ8~E-Tbh@R7 zY3Z!sK?k?QW}5jd%*ZXhwx(RCjQL)Ne{bpdSqJm=u0xgE*sylyzrGFwZ{rf=V*dSa zu>ZE$?Egmg$iKdg{*@cV&%6ocGxSs~^(OKE+=QbUVl#4!_ux4jS1zoUI3^K9}>z=#L9ElX$q`UCjk zfj-+Z8(KfaWHK0@`wVaI>VIYP51s%#($8y|Psok+DGdJu$63fz;^$|=sz3C$T52Zo zX#eUD+!CigBfeXfJNdC5nW<&fd<_o!5@tBh6sZ?^)n} zgFCiN=8wFDdvEj)TKY>$6JJ62^IyGnxldjZAH~$3A7{t4`S8Cj_@5HlF)zO4{Stb; z)w^rytkdl^oO-L{HwLfC7WrpyaXch4Z~Ye{-sxoqyWWtz#$gIUDgb z<~#JWBl1 z(?+$b4(3lXwU6r6AAivO>5B)6*nE|kwSE}$gJs8+c&KDC>PEOMjkjRuA%thalAm_4!PVhiDaZx$h&%P}L}*h4_$XJVj!O zY9#x75GFo&EYTrf5?t_w;Xa1dr>Ji{%=IyT)s);MD4!pO_!{+9TW;9qYiv;6d7y1B z;}h*wUXmyJfiss8q&oA!@?1t0?XNt9C**~n1#Zs+4+XwaBRqFLD484ax4EHaZsU{C z-1!La$F%GsY`n$|u)dVWhp^mu5ZR>MMp;eDPvnEGxs9UQK2HDpyl_6ZVOL##VB|5X zgcjp;rZ6pAr4V{*X!;w5t{?b8&pbwmc7oHx@}=Z4N@=$Il#ezAU{@XkTOvPX<}nhq zRgCY-5Ak^otJ)<$^vi2thb}<+P8~MpMg7SI;C^1CeYtat-)CA6zi99tG;{E=vY$~| z?Ozb)`WYPrz2|3yX+b*q4A&u8GeR{d^NS5=q#5A4mUK+(*_-0 zX-1ruW)MCv0Gj7BO508`{}WToNuQC$uw%8ru@%z_t0Y#8l-n#-{b5x;qj>v#{+tV@ zmh(PGgjFE^cT8B>YO!P((|ahXgg+54_~7k-<&Eh%H)3O1zS1A^=QoOIUoroyKZNHu zN>;whe69dW(Q@CXU2#q+tu>}ptsqNc17KW!Y_(M8mj=N4{06>!!hGo<_$9wFPqhR> zp90tlUj&lJubCdg-JEwT7=duB0Jg&0K*(RvSfkm3$R?`@>?vr>(>gHk41(smQ9PR; z5d8*%jb^urX5If+u$tF`~4=k)$`Y8mum2l+%{y@aKvcvD(;b zB>%Ma~fEukjycWc6qVn%ZivS@}z_ju9m6`B}*Dj)uXkbe@SD6W~)P%J?p^Tl13wSLll%RWyGtA z^cd^1BF>q1vnao#f z1Oeg5+Z&O?ca5NJI1bQujUYMPz$g-p2~TSR$HI+fT3Qq0&oqHTRgGGjhxwwh(4i_$ zZXvNGFV_@iRWN67obC zgVgVu!^jAuk>+ek_%wXeCj#wKTM<9IH9U_n+N%3nL2RS}T54;;1KYbFMjBaaHZY|f zJgi}4Y0h?10Up*gCTJn;i7(R0J-C+fR?P;6wucc>MzrQ&g&FN(ZxoKUROUZ)fZWl> zY)$D%4vKb!mC=~95az$=2tP#|HMCUbPj`fTbw!Oa|EwdlsEhuTPBH_qs;)6m3t|3d zf45%GfZW-@7oEV>2v^)xR+!cq?l&^(Y7IJ*gEpNZtTE2%sm#ZBfzFMMueF3OB;VEr z@-#7$G#B&dy1?`%Mib4$JceVq*aU~U{ZrBp>JFdA;xw|Q8}S#r!J$|qIGaD)4Q|Ea zun6f+^1eO6ucIkNBJY;at42Ps`{} ze0Y+3L31OoZ#FP)AgpU`WNOZVq%dSCe3@We);13!K6ogMZ(|hum|xQdH%4WLkUZB= zc-01HcgIlTPY#6&ZH@Mthk4sDn9^M#NSS(>0{%&V{X%fWE z!~U1Xe6Nu(d7kkpMq8i+z8wj7=iyLwF|Un+s`HI5nlXyxOGm?^`NmxJ_9zHhfc+|M zG~pG-x~DBLw&P>nu>`{vq1U}#>4)_MrF-5f%xtd;i-@(P9%OfMg>@66xJNfZ=4LNON^STe=|6>#OS8l zCPBHSMt99Mne;DCfq6>}jQ22w_^nPTwG8Jnmy`HSQz3nsF;XiumH4o!P!DjOzu<(v zVAwSmBPVK+&yl&p;|Qca{>x{4xg{Uf`7#CTwyfU zlrKoW^b7c~0!M5b^V4QQ;z}c3%QuVUBWFR_m$)dTGCy#Rd(xLi6^oW<4k^^11G`sY zA9pbS;~Xfk8s|h0^II3-%g)A3{2H9}FE41sqnzjTwt~0u7 zQOmON1M6^tb~4{?1^l}X_p&FJ!I$f?-=_oVT>LFDE=^~C{z`cH6?WH;_zD}ayJvn$`o~wp{0+ENmRv==Wi{mg8u!GB z%#T?GjlVW*TE*4b`cuBfJ%NY$U)I8buZ^9WeJ#m5uZ7VYQD0d@{Dw8KW21qe)U&*L z8a&>JdklLT$-AUM6McZw*MO5arc^V|l)D{%Uj z$#Gi{{t7kX*5Mx~@Q=3MN~V)POeacP52yHwX_uK|-rOK&P25=3+Je0)aT6s{Z8MD9 zVhmI#ZGwASaPZqV6aLi}h~H|=QAccsD_e1LIQi+HUKY=67zXS1J+o949Vt-eD9I zG{|MtP?KEH(uKP+>sDCjGO7sbaiKlZXD+nA_bnJZQ6FiQokppuHMddWIxw|lslRno zl(?yw?RFTiq}@KeQJkX$6L%U#)ehTW*-j%mCY6mG`7Da%U$t|0Hk{idm(olaN(B!p z;AiP^XAq0+DY}7K8B4c8;4Uo0Z`&YY7iPBFw~)LGGmA8B7iL!Z7LM$~%p$!Z@X_DG zyIuG*>CjGSxf^+;!*-+I_MI?qw^2vU>w;6e(O;Yka_vF7&jm4ijN0m~T`)=Tu3fNS z&|h{zmcY;L0NZ!y@8E85ekXP;d#Ez1?}by}87;Jn%$NTTO71m!mTdPO$-6PNeB#qK z2ZJy7;-=ERmvqt(yZ^V>2(_p`?gM?Fk))=(VfsF!i@JJ0+}dX>P&*!k;rp@Mg?ta^ z_T!>l<}evfJ?yS}z(~VKsSM;h3)c=B4bQP8CC@ki>aBk)l0NE;kNzFRu% zIb?KJGt;5qVdR${gXxEjxU$9%jlEE zFtzmbsXG*JXy)yV8=>m*DiVcf&+;YHY)^(Ei7pvX+Yf$7A?ibP-d~_X#p2FW*Mr4L8vwX}+Hw#tFNmnZDWkuom&dd+J z1>c>)dsH6gYd(ZKXK+%ya|4 zQwJ6aHj753e77O_C%j#9{vLU`b8p!>qi~r!%>KnxTDAR?-Bfr8wa?)e%l?q;>O6%} z=ZsluNHchU&M2!+c?4z88=sb`{TIovF^#W?+lWDT%#PfDZC{*Y{(!H}-FYll zsmGA?Gw%KRJ|V;LPvGj$#_Hh7I91^_yqSnC6nbkS{*UkTHifw!qoS%b1Gfk3&i<5) zB5J!Ic#P{tHt;wT&fGCBXqlO$(B=hveb*SH20Vij_wXlV;tRqb{R6}98E4dSFCgkZ z&Ptj85T2d|$@h(E+B@cVWkJ5*jj%G3Psk!Yi{ewuY2fR?IRfbXJN|M?XN6y~V9xJY zybR`j@%{7Pjmetvk{r}{Uh3(b8U%!dI^$ z_79_n=3;*LYuGOMbmqIgfuP6uTPpDl>GyjBn;)ax!Ti{N!T2BEyL0|a@)`fa-v6OI zmHCbTLdid|1TNZq|{NP)`dzioL2R8(t$-JsTzJHK6H1@AS zl;Ca5$7nE6@CnTK)?m5d9n4SD;N(Bp-l@#@$q#S-!C#(^{NyjjA0}lP%e4f5;eAY{iK$8wy)r<838d zDDfF(VCWl^XOtoSU^#gH#@M2zmm~g{a;qp-7t+7+}#KCWG@m@fBdD2@` z0m{BZJTnfizC%2%0^vt1Lg;&AaikGXKh|p7Dw1F`QyV^6nXcmZ{))9RwsV(kF+6;a z&mug`CxyE!eJ~;{sw-}35C27)Go0M)slN1${|ha>IA{K__xsPwMp-cG%E{&m&6wP9->|C(At z9Wq>62mY7GAEPrckB-Xb^*`7g1An{kw)6MX)YM__zq;Dcca7p zrB&5))!i@Me=wH(n)}jG|1m1Y_I5Y_!T+j?!M)vOPx=R83R&)Yr~QA-kKw)DzQ6i+ zwWx_P?!+tpMSL*8w|l~M|9cjU@a^t-!+#6@(aD|fmj56hjPdOrd&fV<2ZMaO58n50 z?2l2t-Igr>)qbkIwma>Ef2DMFY#%sxB%q4VxIXy#Zu{U;?&9eI+lr{+ec{a2fGTR$ zzVKR5TVJSf4b>w0k{XP?7EoC2&;aHms&;GuhXn1^0R9wOog1)LkLv+>-HomXgnyy> z6^4;L1FKm4AZ&18Y4@?7fi?1}-&^7Jpgnz$)r?D@3de3~`TH z9JoKX8s{gtuZ8sL%8#VwzYN5BLv+ci92CM=2j+GEZ&hHtuMpK*7Z{Q4ZuYvsmEk3` zBWb*yXU>pH?fFDC#phaMusjV4c6advCX7=Dg~8Tlg{)D7!uZ+HsIH_rmnm9g%jSMc zvUH}V3_hT}@KY>~sOh~`T%jYmR7V)-tr10932Br=rt&>|f0~m@wyZn;juqD;rkD!a zC$pa~|Kq1B?p4Lrk*TT6CE1G`9dU(DAWD9ovL7>-p$Ua5`>G?t+zIUqjnAw03WKxV zFq^$(HrFPQX@xe~F0y5p@vefnTHy~NaiM#(FV!83i!>T(j-Oxg7q)rzAY$rrHV+LT zEQ=}mS-^g_{>RTA{Bl@avS=UsxrbXGagCisl>C^*4C+y+M1a~m%w5A#sD-6uDJv&^ z5$_y{E3P9^G%00;wIi?yNDm^7%GND6kaRjSHFep~c&`0bIjw;9B54>lqEKFUcv7M5 zzH0w4xHSe{BYlH3s=usd*_~eGbgOKcOm0R_vS{CGEcr1@H+5{Gy}nUHrMD05DWjiq z;V`4wvJKp3-!nC3Fk%vV8yW`lke1BWy~~Bkm6TmMsAHyhV-luVvX4x07N;mvMz4Ls zz%>=UBK-+zRJQJ3F2{qM@?^`7aEdZz@?%zG@>HzG2Ga_C>8th#!MK=V?WpNr>(eB9YjqTq_Lmxk(SI(^WkLD zDT^N&i;Hy4ipw{v(0+flXPEoMibB>Ms=p2HHY>bR&?#|5t?@+n3R#b`*1GTtwLw*gNFe$X)BbIUSKA^rYQt)#wc8PYiKu&6`@+SB zt4dv%bG+~;g6?E`h3Pw{Wqu%e9Mj=UmlAa!{Go8)A|*CQ@lbify)sYEklVcMX;6`w z9c~tOceoi;NK*$ifWZ%gtd;@L&=ZJnlRON{>)!Yje)LMQJ z+CI3Fpsm{zFBU0S(>{2*SZd02K#*512)T_*--Hgq)^cKvT{aO#MYH3>ikgI@6>%i;ER-4}l`U$9vfXFJ=T7DymHAX_xM{LMQ z*!2-xVI({k>}XQ1fG47a=diZXkR(|Cak+0Y>_XO`+4RYj{Hy%1-5wMKMpbL+yo_~* zh+6prp+!||S<4his%mXunFhNASqIMr@quoCir;z3G<{}T^ZDsWT$*H00}_866_Tt6OVXB4oc{g)pR+|0Ba9T7kvPFvecBRxLV%x`Yg*BW6X5VpZ%jU|LOU(>Sl} zFEqveN;>yVWX)?W{!d=X9mC32{6kd=D5+5pP|MoXG6T92Sx@A#AhX<&wXL}=aq>u} za%}y=bZS*z%=&L0?_p+z({yV?Q!|S7-$@*%*0Bc1DaA<48!ROP10M)8Z+r)vC9=MB zcUt0b2i+A-W3i|}adpHuc7(eO@Q*^Vqd2A3grv#^7NIRA(v`P%{uF47a!Wc)t!ph( z#4E}1xhcs^*jd+F)#8CWsDv)x2$%AZEN_=ZQXr+L0-r6B4a1rH^ z@@Oq@`6pgklC_Y4GfjO=B@Lt9nyE}c&MFV&^7c|0D@ACh!ZXzNF6JwI1I_GvP`ZJ& zYJ@z*%iBqHudGb=BePVPie^@M=9jlw?G!lE0MqtBL%TItt($`Jb&(B$b%M30Kv%mp z7R!OGsM`ZVXorY~C~TGjYC~ilf)&DeE-pQnTHRF1n zn$gAjaxS>Uct`;VZGzcW_~rqF zTki3y#leNR7Ry6e9NKyKJUVZ?%U*UH<$@9ev(e5f&#&{gyNb1o@_2c!owxjkm*1_0 zDL-~T2T%4gIiESlL3})>C(p<8_LqT!TgVMQH_uys9|yOP%k%WS<&SW1H%GZVXU|*y zC-!0?m*?+!%QJCsqdYmC&*j_8OPE~GUwM^xb};QZ6#h;Nr&#ma#duyX{5s=?7p@i| zKSc;nR-~ga7KC^iv}L@47e1PCn-{)@@!DSaX~ymU!SVO<3l=o{k3dmMh{rd$%S!OV zV;Jx3g%4&taW+J@6gBThF+aU)-Z2{{2)U=&|1BRi8-Ge#!`0it@EmEfJlk(H*Z6QN z?MmJkp`RkSYMIw8#Kk-#&-B~Q_;SYO*?h|xU&DSf*bi=~&1)m;^I3h#%4psW?O}mD zl&=)yM;Mof@nLeYZTNcPu^+x*!q~=?tfIW-xx8ae1Z}-wsh8GA_^NqFpGS@WZ$~ zgDZmlyq13G?5$))8mPr7VR;xAzk?Hf_W8VTpreSlJSa&izbza zMpZEJ{EAYY1&Ku=w2ifDGLI$k0fD$Wu{eVdn<6`mY0K%z1EOT#AIi8qC`#gE7?%e| zNjw>GU**{cN)2CJ^R%%V$=L@YF+7K@<#|VWxgRZLT%L2ZiuIQ>F3&e=B0jOkYn${l zotpPN!OCu_PlpoW!MiLt$O3s9P$|YwAug(OBL|o+$oLi3muGY=V*H-;!w3A>xB$-? zmk0Y$wctqmzyf)=hrC%_s01Y}kK(}}Xyz4)xY==6P{|%}i7PWM55YLW2}iS^X5Pkz-9ZA8 zL-}VGEUXC6+u@LvVTi}$enMQYP%cU?gA3cZn3@BO5!C&GLW^WVFaimOtP926-TZ{pB(LnhEN&IHbIll;X7G8&Q`(s@F- zf3+k1g52+lFfM}_l_mE|NyJ4>${;~hA<6iD2ODGu0^)>QF)m}>_?78 z{yH;Ik%RFEHo(s{L%UjIReL-P>T2!LTYfThfE|Q|QU%CQhq^IdgK_!E&_D|b8Z$0G z{i(uuN5<0USzmq^P>KC)WL$n9 zP>N^FJ?w{HO;5(BH*_6igX~w+8Nbd3^7V7M*gs-@`PTMlDjB?BT)wTnpAB-Cp$e35 zr_M0Pdj-5Ig_q>4FJ#e5VG=c+2ljX_z;##0b4jjisuXzr#16nu8At$JsB3b_!>+@0IpDLfS!9^Cx^HyuI!A*(hYGxvvSzpBF6dBEqsL1#`#6>$K zTmoxvEMWHW&D>7)E3#dk#-_izjCW#Oe)HLv)9=B!{M4}uPZtix6V5a-HThw@vIucA z{a?+Bhm*an4OP!CpnYZy?=53$%8^tyj4~s?{XfCZYcZb5uR<}bG-X@{%e=#xY{R(o zD6GVElI7=bp)7Z>Tn3JcW{00Mp72>CQ*%4xml@9v8^o1#6LGV19f>jZo3j7+tj{kX zLeoCDJ$3ROk8P|pyb={wzWbQqOM-=r%dZ=2v;HcHAE#ujxk#{uarxe7Zq`4+IKO`g zPy1NI@DZoAFFxCt0`Yyt;h7Aug&p1Mc(_ zkBUxG>r}``c0Xo|{rg+1s)>&vra#^(mIsZ~A!ztnZB_D~umjfj$9tJFVrKzPWev-- zV@+|cHZYzRMfEOc95>^xwqPA#4KJGUH+2Fz^AtfvF(UDq%>eujFF)awKa&TuIQt`M zPHrUQG9;G4_(a4-CAf}JGX9+HORO*B&&oD@VB&0yzv160<{_fw*QRKBF{GahhG&Ec+9B#s?rS27AaQSUFJK#N&`g+_RP4Z0FeycL!R> zsJ1cCbr3d%{2Wy7BJbn$D5}m;hq9${wq7wV52jkKk{}m;5+L+l3*aL9Q=P9t9gJ&= z6XFJAk1#ZtFc{&qUt!B&YpdiY=tf-Cs*{-vU^$Usr8(nHetNKyM_MZ4W)qyE>PX>Y zKVW_NrtM|M^VGoA9~YNXe786+`7fjRn*wZvrnI%e4S;!tAa2&*uds3m)}KqGNx3y= zY?>*@N85O`G|KTIoBvQ;)a0?^GgvLUCY8(nGb9bQ&X3Q$M8jKdWHMMTKjW0+?1{AF zH&gSozgLKha?HXJ}WB4u=lBP@@_#Ytq_;g!y3jC(G@^E_2 z(u2nH6~>>LctOSc&54(+?|?SL@i|!9Ko~R}J5R_%nnl`jD>-n&G~NC}tu(kG`JKVI z45Apy6D3IeZ@7#8@TsZ41E)v>8ai-4B4dr=jBZ{X>yY<^Dv;zr?Q~e@5c`TBDKYL@ z%KuPJbQR?Ys3UNylR+t{q>5sX;wIt;94pv;AH;=SCiEI%4UU%wc3)?4DvCu*q;pl8 z2STE36PtOyqio|z7t>JMlH|>o|`jA5P zdgL$l7WMYaj3+WKKUUw#{zf1!>c|0qjKu6I{isrp7a@6(`s}V_ya`}Sm{%#r<;Tr5 zCNLTUB<+FDUf!)@+pY$yjz9c>Lxmhlc{6DW2{+t!(ypaM5RKEy>{6UA9S zcmB|5IM;ULycy{n*#=A(oQbU0RC}nxA9mj%ns5l0Dj{FR#7dM%Q#c42N z46YmU(}8bP;RSD?+BqBi)%{(@{V^5MqwLq=z!;pUT>rE+(kVXliusDau~9li$zFThc!;?q~ql$6_&^ zG;uja8Stuzsf*V#cE%dlN_+FP^=-F@JdBI54k0SW7}rnFkkzUdCilCm_Xx zC?k>LGx1&%aKg-30~3%fnjK4yC%~mxS;9OOj!wWgJ7g$BUagcY7H4h&ZK5bm8;C;M z+on<9d(4e97+KTJf;cl*VT_NKI0v&0;#`Z{`a)lRtlyq-aU{A~nksMx)4@sV^+eo1 zIa|=|AbuE$>tr)FUx)g5-Kz zAnuQyGb0KjCu66V!9!+o#!I6ckrDY_2n`85PLpw4KG-tZ+M}raer3HcITisXgq;UU zPr=rA-h!wp*nA;Bz#ydfdwazcT;^PG8cCdt3XkW~nAb}jD8e|s5sjq(l_NZ|1>rKH ztL*Z17p{K?()A;uFYQhDsG{}bazjOnM5g5@x;3>L^w zq+HzOFA+EXk2fZLaU&=)8Zr&;PQ|V#!_&86e^XE{GAx6VbYOgjX@~oAubUC64MP zKjXI$7b7XnYxDG;^)unu^5BYf5fPr#2SXT;$-{betGM_{Vn`NtKN#7L_1_ zxNhUr_A+kEM-xeB*1sU}rj)yM#&1YJ<8XlD6~dkO5##*bCanG3+AuPmU-Yr$A?r15 zDHCbOX#5lUBDV{ce~l;uhls-$4XuQHxEhSHTi z_yOY?aC8PvGRjQ2K0_3X?)Hc=WnQDPCyHcKXF=#pl*{-=vd#9QTr{b25(dr0Hszb0 zJd-JTJMz@Y15`F$6yn0IjC+i%c{OBQerMW^@s5nk<4hck_hnq3(c&*>qR}Xzu2yjt zE{*bx7#ud{wTJBz??V#GBRG3`S^Ou9z2}=;ohaM(r*Lr=&PVc#Tij@x*94Z!cx=PD z2Tx_(wwxN_GV3ou+{~qiR-zQHx7)0rd5Ah;JN8o=>(A^2O?f`r#ezr{cBq>z^G3n(cpyVv3|%lIF^FbeIh(d!QEc^yO@KVVuKTCoAb}kjMg;*n{9Tmhpa!%TJ?&7$3)Y$ZXP= z6V(iV(Q3ve_$u2Gvuvs$j6q$cA-;*4otR>tL-GV$ElwHTM*+1F(KHjF16pdFx zsK%La2Gx4I*3%?0tTg%Q(TmFIbe^pl=@ux(bsxn6EJE^|pBjMSMC$@pE z3&rmYzOP!04bQPWJCqyaw-6WE^c;^dku{7*VfPW8O-3%M=u3i@jJw9dV@yXi8iREa z(o~Fww#eGFsMmKR*HK-#&sYmvP%To1Jy@%fyQ!a1G71+ng_B>%xThm%i_v|^Vu(U& zl_$jf&dr{`57~$O0@F|~?#(R5J3uZTT4mYYc2;v7qh9a@S92EQ@|?7Kxyc}RUviuH z8UmJBdn9L{Y{33fS)Mtb=HN|bNwAA?d$GnQ5X}0g5EnDp0DiGRu62K~zKnPG3G4sE zc zyNNHYO?x}|>5@!)#xTy)MM~RGC%fZ}%To?R+1+)-#V^#%>F5_Pxl??_`f0^r%a=HN zI$x5%zXQmy9&V{b3uN+-Fki02W{8Vk;u-|nDqNcqUr^=C{Jmy7C$w2*4ep(Kl*D1= zRf%wr+YsKko@2Z*&ATGv);}XpT}Szt$RN`>p;{l92(`k}g$#^*9Mk;Js zhd(*wkwFzWowqE{J{pK|U;OQ54)DCtcD=X>&71JwSiT?SBKwK3Vm&su{R}m?oyEn* zk$D>2S#NEcEDv*S#I@27#in&fYQDyt+pBCQ&u^kl0RHY^T%I5EE9?KoxKWvwmHnK& zKAw_Kr`tJ!**7*SvA{JM4t#|ZL)v9}!eC>=(Jc1_P{vBow5Kd(+}Q}M8}Pwg+P5%a zgP0fJQ@LOAn(#UHcTsIJ0xzz?=CuTIG0!G`4%au}BLUYa>JBehUTY#}xF1A)jT4VD z76u_Ln#Q**YqQ=;*2CTA*Eo!v^=X0#V(}vuySmWeEW!BSj4SMp=MyFOBuZ8W)|S1m z5aTky`*ZeFl5q$9(yOH4yk%Z>q`^(fP+!Jl7+1c7*&A_2Q}_cjgXNb|E;@quO~Dt^ zAKy=t<^RCAJn8B)_M=TEKlYQ<9`YlZ{*2qsns_Bez609?iHZZ6`Y8Z*z^O+dae@fGVQ&T3}j6ets;R5C7) zAXrRplEC-Dv!FI#(Do&8W)AG-{3DJ8D{=ZAM(=A$(`yftVcP9se+59 zo=%-ozMXUv^~6sT`%JKIK|T9Lh~I*Xt>YCe+JcK9emRD)RUVQUmxtWnoJ#J~_k*@o zw9pWU+KO*E$di5tlA7Y0MtbrP0Xb(JXB^LwII~qGmmdPQiJS8SXvk0GA>VI0r(>rc zf~0=;gvYAfC@)0QJ~JGA}pdG7RMq#!oYD^SYgO0dY~hv`a8yxAkzmXA}8r&Q08L zKIP9bg7ELyUk}Dz`~-vM4n-Npcu0Pjw#PbORq{f>cUWy1oX@0$ryhr5 zQOTLVKwCGa?un#jxIde(K)LA_R=6?zNg~{FVI1tDVDe4}+!Yib zg9aSLo}zd?6`8q=?9!)0SCmI)@ExdwJU}0^T%JaIhqLn%adY7Q3I`5~w<9Y<Q` zwV=F5T+~u3v^j+LP@Lf~?GWZJu`#?kWbF|z5B2HGxht`fOCL?Oxt+&<6~=8GSYl0X zGU&{B0>JviVn^=mN{5s3!3EmsI79SukvgP1V2OT+m?MuQ#+_W;tTC0J$=zKD~ Us@x&9WZXmZjJx#_>(5{QKZxSLMF0Q* delta 280282 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

    XxU}{S{}x#X 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Ⓢ8wGpli8u*F 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�D*<;7eY8XYNgeHe}mSSjbPc=NmF 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%0Dt=f7ka?y}* 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

    jL71 zTlmxJX4nO4P%8)Evx(b&70AMg>4ruRvhb zb)criY@|zj;?H%v|AYCL*Pr(cy%6|pRXbk5qISJ%&#RYV2~4XIYdJ7R5Z}fwHQX^M zaO=m#ZuRMRcXVrV`=Y=22i)~(0pSzz#V8As&j33@pwtmgfPq+vIPZk(5dtL}DZ23r zuIbm>ABL^*?$a0`qCFr+?(i|o0k`M{ t3Y9+x<3wJZ)N0->_2@AQ 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%0A7Tmh=TYd!2{FS31je) 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�hgK-kc&gv{cR)O)%V^!M`gF48Sq;20 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%0A5B7Z>xPZF20CH74g*W-Wj%#b6h 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℘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


    VMYH~1 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%0AM4*#Z4DaW#!YtwUwV2PY?wJQ4xDJ- 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 z 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 z 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%0Dkl=fEQ`E9x#kEKB`xJY7~c(wED~ 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

    t5FX040~-3VBbx}8bA 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

    ({`6vM%X)#LJeuIL+k}C%X}| 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
    *D8i{VpZ|s_RMr?Od~x`*z$1YF>ie6ewV^p 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ΝvUz`U!PY+)I}V4 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 diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 80b9e13..d28b9ad 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -43,17 +43,31 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui case -999: //last exon if (trStr1==2) {//convert align coordinates if on the -strand uint32 trlength=exLenCum1[exN1-1]+exSE1[2*exN1-1]-exSE1[2*exN1-2]+1; //transcript length - for (uint32 iex=0; iexGstrandBit+1,P->nSA); PackedArray SA2;//SA with sjdb, reserve more space - SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitSjdbInsertNsj*P->sjdbOverhang);//TODO: this allocation is wasteful, get a better estimate of the number of junctions - + if (P->sjdbInsert.yes) + {//reserve space for junction insertion + SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitSjdbInsertNsj*P->sjdbLength);//TODO: this allocation is wasteful, get a better estimate of the number of junctions + } else + {//same as SA1 + SA2.defineBits(P->GstrandBit+1,P->nSA); + }; P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<inOut->logMain << "SA size in bytes: "<< P->nSAbyte << "\n"<sjdbLength*sjdbLoci.chr.size()+1];//arry to store junction sequences, will be filled in sjdbPrepare + char *Gsj=new char [2*P->sjdbLength*sjdbLoci.chr.size()+1];//array to store junction sequences, will be filled in sjdbPrepare sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome.G, Gsj);//P->nGenome - change when replacing junctions time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <sjdbN>P->limitSjdbInsertNsj) + { + ostringstream errOut; + errOut << "Fatal LIMIT error: the number of junctions to be inserted on the fly ="<sjdbN<<" is larger than the limitSjdbInsertNsj="<limitSjdbInsertNsj<<"\n"; errOut << "Fatal LIMIT error: the number of junctions to be inserted on the fly ="<sjdbN<<" is larger than the limitSjdbInsertNsj="<limitSjdbInsertNsj<<"\n"; + errOut << "SOLUTION: re-run with at least --limitSjdbInsertNsj "<sjdbN<<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; //insert junctions into the genome and SA and SAi sjdbBuildIndex (P, P1, Gsj, genome.G, genome.SA, (P->twoPass.pass2 ? genome.SApass2 : genome.SApass1), genome.SAi); delete [] Gsj; //junction sequences have been added to G diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 1506b2f..c566530 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -204,6 +204,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst } else {//deletion Score += Del*P->scoreDelBase + P->scoreDelOpen; jCan=-1; + trA->sjAnnot[trA->nExons-1]=0; // jjR-=jjL; // jR-=jjL; // jjL=0; @@ -230,6 +231,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst } else { Score += Del*P->scoreDelBase + P->scoreDelOpen; jCan=-1; + trA->sjAnnot[trA->nExons-1]=0; }; }; @@ -328,6 +330,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->exons[trA->nExons][EX_R] = rAend+jR+Ins+1; //new exon r-start trA->exons[trA->nExons][EX_G] = gAend+1+jR; //new exon g-start trA->canonSJ[trA->nExons-1]=-2; //mark insertion + trA->sjAnnot[trA->nExons-1]=0; trA->nExons++; }; } else {//stitching was not accepted @@ -380,6 +383,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; //if extendAlign B trA->canonSJ[trA->nExons-1]=-3; //mark different fragments junction + trA->sjAnnot[trA->nExons-1]=0; trA->nExons++; } else {//no stitching possible From 9be24036313f3c3faf8ef177c0552a8a8d9aed50 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 23 Apr 2015 18:29:24 -0400 Subject: [PATCH 091/536] STAR_2.4.1b --- STAR | Bin 1793054 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 STAR diff --git a/STAR b/STAR deleted file mode 100755 index 8a260562744d1a4626d8e7115ec03c0cc8eebac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1793054 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%0D~mTa=Kf2uZG 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

    u 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

    baYoVlaC+f)+jig^cqz4O9 zVxj)n*Dq4O_MF=Ebtj9AuRP(i&Av9X7p!zl&S^ZZ&WMrL8GFP>W&LCdR{3!5naH6>Zv>t1+HRL z&=(J=BC4i`g7w3rxaM1?f_snkbp2v+lkv_f_FY@BB4FL9$`2K~Wv#**c9qTCm75j* z#!;+rZcz&+wf~+~7^l5rSO2AKzY6bSQ0xkiYjcNt1pcLCO&eu@h zZOdSGFeN1*1(XgTwqw+W{QVg<$|9J`-JrvxVVfQPIx$(mg6ytB{jslKqF}8rU1CLWGS!BQ$nOG6{hEZBMuE_EHaWyMD85DI{tMRWZT=w3{ zY0VHJIrFN<39_0unXPDfh5I||IfYJ9u7ECBWqOzjy0-^qPxFaNdJ@F%hx7m@MJv-^~U6ks+?d_6BW8pH0_y0@^8!j z8Qxltl5L>#AjSiyD0noqgDTj`DFW_cR0T!Tjf#LycQAd=IiQgK_X|BHBYL6Y5A>Mx zFlOSnvt~cgW72H-12b+jJxa3+4p;4Z6l&k2GU^aLCN06FUc|`$h1Lt5z}uBdT7nlH zpJ|oOdQm%zPD{kV^qLp|c4iSTR1Jj2s7hTxhG+Z9Iz&7|eyPFK1qnXNfBFBq3%*yJFI5E4M z(SkE6dGryP`N29!Qj*cZ&`3$&VS;XO>B7JznVs?F7dkRU*@fLXW-si{F?(URZ}zVT zXUvR4vSWYw!?W%>XCn_a_O|XiXAe8}_U<}oorjt19o==#`l_3v_s;G*XU9ACuI{?; zsK^SNX>eKG3B7}aU!YdT|tvV|E`=~nHf9SP-h2#6wIr)o{l3`yd?fR?X zoPltC=-X4ingT+%=J*CT*L*vsPo0xrm~X+;A=)iA5q&A>te>uza9_SZ^htMB5klWn z;l{kdU8dJ$+t#Pf$t)#vl0v&TOe7ekhwG&V-<}A3L+D5qZuAZAIK9@dFtJaalW9F0 zrrqC6BzT9qsa|UE?eV}jgtk^;@onoZwBF!$(ranGak7^g4(g3|_?VO0B_4XHL2RBY14SYjru?jcl4en#Tme!k{nBl-T+C?T3 z)Y~(mZ;u4NA@ppHZ*YGw-=y9+d09zW!F{E)+sAwh>g|Hiw_o^b3J6{9eA}LSgZqK` zCi5F7H=A!kz0nRIbL#EL(6@&J-w--J$2YiX=9|OzQJv;*V6folU;f? zOuIQI64cv!toS-ku;_}xp6Yc>;~mVJ6y~uw`W7wcJf_A zWl|$FQ=DUVWhjVSv7+p%?4l&oH);O7D zt_8J5J6z1^^U;t|7BTWgA_CE0}9iYn-g`#dc|* z+|`38TeG14!lwT-h4qO_6t2qx}NA-@uG|*G6 zNsYWJJBk#rY*g?F>@(H9uBI(_*m{K@NzM%vQ zKUWJP3Vd9tf$|DsN@3WEg<(kp*k|?X@^-cUN2OdQ#)p|0PbQYPu=T~O3+Y+yZ^}%5 znrL2ulZIMd*yY+}Xgy8BNJ~ZpbY4|LuPS)8zIj!tDm=_lzBwFSuc5raJ1VzEVbb(| zO~cO{IR29)6LHUj`Qn-|w)YUc>cw9Oe5U4gK_C?vD*FfIqZBTzuoS=y*rRy(@?goTprA?fV1&#n!Lw zFEZ0Z>zyA5);mM%S?kbx#{1S+RF&;|TtohLGyAg5=85ae8q+jPgih(QYWU{T`lnCxofCbyMxUl~oY1Qx2PA}4jv#iqI`c0jIU)7Z7)a_A?6bej9BO?Nfm*+x}?_ZrpCq`0x$uK_nvs!9F?vP=G$fb)Zum+j7Z(`NQh zENes$Zf7QZ`8xVCHub10HBoeRP<@3yo^OLg7_LML-q? z`3wP&g+bH~cNv2Tbk_k?z zFmIiHjvmoX%u{-l+jk(F8F6&T&Szx}_t9hD!ZvkqhjH81pVL{7txX~qjoZHRQD>m*a$(+W0TS{`z#qKaADHH}pO8PyXWB9>5!w+`n7=Exj$MA#QIfft9 zy|puciS`?le==mjOy%P7r(K-H4(G@7T08LxZkONxvsk((lWZ^m{WU z{r*fz7g>ggrNPDdc`nYknWe$S`CU0K&hN@`alXw#6r6Z7KW`2Se`R?k%_uI)=GxDp zP-JiuTM2S*4RY=SayI?3pShgvJOhulXpO?;U&`MvW;dXd<`cgH zsKZ*7fQJ}WLD76i?Wa0BO?Pm!_mWEg-C9M!i~HhHrN1gz(-cL(ZH%f+QRqSm%;DVJ zf9_cg;jr`|oyT07Qo*=ED8_b_mh0 z@~YJrDeUGYFPR43P;N8Lo+v*(P);F|k38k{2#RDO`kLz8)p{lZUav)zvs|I*DfLWV zSyfcQ3{y1T5AO8di`;5jYCznP=&uf073op_o}?Lkj&iaW0G@AD zv8V3EV&ePyDn8O_9}IT!wBm%*9xQZzW||7wb9^k2C3w!Al_FLSb1?utHKO8B8* zzuJ?b#UP>F^M+eF7|T-&|M13gUORt^Ph^;+n5JcC17ya|Q#DH`zdQ9Pt2*#)qvFL1 zw{6P$G^gfKG{;(%{QkdBFFj=<5%3+ODxs}l-5aZJ>}~Fpfu|W&ouP21qkNAdz0{${ zq$0rwS+n>!h24(wHO}tl! z!2OJhyA|%U5-tVr4MIgFTAgo-O2DRO6a}$W_0nM`5^cVGCOt-v@}jRG`^Y-yCFNy0 z`J(s+N~SJp=6^igP;D)J74}5Ex_qJIlIF@K&9zIKp)P2=6s4D-u4ueeN-sfO*LW#w z1$A@drK}ayeR^q7;>N_n*pbP@(o`>3o^NcNISTcbcd7G|W~dMK(m>hZymWFJp>P;cdO7)Uvn8)?ZX@7T-10@P;;As#xCMs0fHNIjiVf>Z$^4g2=4`JOGWX>^{BVW$IqE@$ztCgylob4! zm*wP5`JYa%bGnsHJ7wUvmX_pnf=QNuuPiOe>6=axxSmdBYMs*&HpiBM#G{fuh4U}Z z&OIq|dyvlM)tj}6SB;Tds6#^&4NsAe#@M#75hZyTDgCo(@pAWpOP%&gq)Iou&keRZ0(4EE^EPVk;&mH z%XKtMCxF>{6l?c)|5Q(2vDqQmDxwO}CV9V{{Lmlk93jEu6;Z+af$gFJ(LU!HIZcKs zkh>}1#!97sf5*voP7cV1JeA{whp|HT<*TI%XS>Eg{e+M_2oyO^u5*_A)j4_GHU722 zKR3#8@}?vE*Ew0io@N*c-w^lWvGuOHdb8lJ0pjX(jwwn1e@ExOqeA8--i3E@B zJMo*im^Q`ojiV57}1Rczp^Y-@cRO-Z)o)glI*$H5MG zk>{Sg(5KaQ=2ms5z^x$kn^e&pJ<4NlAm$~jHwB%@9VS+jn=&vBb6%3*x657o7J-xO z&MbvE`SY+dpdQjoE4hAZlD}|){*{GS0=}S>{GnBMofG_%TL-hQfV4bks)}K&;2ll! zL^kZegA{QGc!aeIhRFGP=_(V6fb)%tfzKON`J=+Ojf#QW*mJqS z+{Y^2q$2$alNS{@`LeYOf*Y%s_BN4nyTU0(^`;dHO0HEe6irv@^Q=`FIAc)OS@KNd zT!nW!D!beZhtmNIa))vW`8LzGHQax%h5$>>NudB!#NGm6Pq&14Ca%Dus$lez(wS zHEUG_9$-`)Dk|d9Vkb3DopVmcJ((+5t5%>hSHs*ZCRIBn&>c)%o2#@_)OnRs51FE1 zH@KT#nxMz#!Zdk8H$?V7F#GG3rtC_c$ZrW+_|ana_bMrC3~*QL$O_PzS{Y&1f*#=#UNjXZ%QkRWopU<1NwSjgzFDpxswVPWo2A!&ZElo-&l^?w zo5EphWj2xrmI{Zh4Hb<2PHpr&D1 z{f+61|Df=7M`6`P6!gfmo{1IHFKRqqOf(H2MBZMtyj3ymR0eayM0Maib0m6NAwK5Z zq>j=wv|2jKz+;VyPf_@5NBK!Z(Y_{90!}rm8Y&9nXjkcjtW^X&!Kg~8sN#FHP^CY$ zR%KwzU}~)j+{36!q_EwnDzI);1$etrRp5N1D!_jjRRylP4o;N6*!2>wZ)%Dvz)?n( zUQjsLboU}HMRZ?jiaLPT8dW0T^-Xv10om16+IbWKw=+dCaGX;83X}TOIU&>XwgY%` zqZ}vXTI7I#Xq4lGjEEd?Z3`e6my=Y*33`+f1H_8_otxiXqg3IJrnn3|+Nc;f$*A&i z3cqhue1*bW90k17sGwlx>7@bdT1^4JVpJ7)g;L1}^dkMUfur;&GqN8Z%2zZ^CEz~R zsv}fXLg%lXR8P9!wAhNk{j60dx+_K%flha@qK1CA;`iRBsD^Hwl^=cqI^98+hq~KB zMQuGryNY#y{9LQzRV}*_aCh^v;ww*<;Ly!ru;XU`27}<;Onclr?ZIe4`;Qy6gKtqT z`Jvup3Pb9gzhGe&Usd?29+PK?7cG{*BOX%EbLbrP_iFRIc&kD>DsN+QrE0&?3`Z|2 zT;eD+J#5M&zw_qnrLPXjuE)Y1x0u!Pc?x~cTh~B?pAbPX6CBRYG!RS*9zRssA}jzD;_-Iq3bQvvmsM+x^W0^Qps1#Cbq77lj0n7c zXm&~J^%n~NY*ZQeiBZ))8)gkg>QNeIM8m&oW~`Yj0dFy?Gc;EUb$2#s&7dk6X^M)# z2Zm-6vhhRruZ$`JKQ*crnyY0R8va!?yXY|)I^f;Rg$VerQ8DmSqaxrv=0c34Bs$R# ze#gWj;73Nqq4U8SL$`0&;5_(V(^OfO4@;a_XfRlKeyoOEFGnL(L5nGh&QN%jqtLyE z6;-gRzpA>)Yw~JYDe@|>BFSCB6m=H7{}u+VI%xHodDP)GDvVNv-!R2x;J!x1`zd_e zQNE&k_0n@D5`>E4J)H;;1APk@9XdfTV=Uo(Yl~H8gJIbf8TpeGp6aNcTCHXxCE#I3 zRZ(=AqkKi<^%A1u;QNorYHi&)+z=bXjB#5CmR(3e{56? zbRGl~^z&*N8+{9V)lp8fg!4V89q!6qHxO0Q1!%%IkpkkINCB~zvyS-Y`pO43LwgnM zIZeUD^qK}d)Y8;Jt80`>;sxL2#QYR2)Jy*~k>EBQkrhTz6{S@b?qO7=RbjVL!Sl_J z)dsEQ?K$v2rwFH$;RODs*^fh)g5lI(rN3^is(!1y!kMn(*IKh6Ylz%!A|>FOBeO)x zOc9jwWuE3FG_1U7s^U)+qAF*m__2z-Zmp`cTG<@fst$IV0-uJe_yj%5r2BxvMUEP< zQ5Mx>dK4+Y*iclmR;5r;2}O6Aq7rbfQNbcJPIdmkbXRZ=g*hK&rq#XHY8(*HWS2X( z9;zDW2Zt)Ml=K|=g;858oHp913^e>3m@8p!qM56N<|?7NN@y-vzSa!Pjl>jJ zF;{_G8x;dxCs)b(B9(a~fF>rS)m@04?DgB3LrdczS-1=>xcw@^} z>!Avda#TYdrjXqJ-bAY8mc&Xz37*JvHeA$hLs5l_;!sggE+}H`^_AE4;NO~;l~8#l zR340mX{un3De6Gcvo^4UnRL2#&P~=yW#D~A#m_4|eM>q#h%Ho9LeV@^R0$OYaV%Ep zzG^EefDXk+=usBa`@8-AURN(}($H`}#qD~`dHc1JURqO+1JbWvmcM|4z-Z2cw+pq+ zY*Swb{>-TOA%zPZ1$^14V3!l>E}{E=YgIw_Zyg16x`Rb$G16PnpXELZx84@22Hf7L zz{zd3)%JQ!I?L~uHT2pLJ@zYfEh%t8C3zEZdB}h+oqQe(4#ElgTXY<*#Tat;+N{tob3m5n_dxTfp-~IzFXmaMpc0C zZ9|U)&dyTl8}*nt3#NIFvmdF(&-ExhvZ%nxy4Kr)xv_dFGLbUyk}>8a@Jge~S1J5~ zQ8DnxMg_(7T{Y9C$E3Kxr<)6vnF?n)%J0-8)yQ#rlvnn%`fzfAc@WG+bM(@^CQ=3- zyFCHdCMmqYQN9Bxdc+i!fCpKtU~*od(r;O-2zZpWih)NPRRQ9eJZk`+V^Tr)UZ|I5 znMfJ9*^WdT1Gh4&ytTsZjEaFf8WnW!Yii~_Jtp0|($_LOYw0nkc$-w?%6d%tvL7d3 zF>^s*j@3)!O{5Gw+o&q=`%1~D-Ul^tvh7Y}p}Ld8-5llj`7Bj&yB?GH7ASsMkJ2%I zGvCjo8IFG0tkrN}7f1P;CaIAwXAHQtwW^@VMG~ZrR^*|tBxQ(d_^N3NBKe-$rP*>x zE{8XBiUyewLmz_TjMUBnX0Hr9#Hbi}gi+-q72aV~4E&i<<+%!6vkE4(UjU8Q=L3ZzGAt7YUGk+DnpWVx=xN6x3Lf8D?Q!X`DmhI}9>`y%1dBl;C~ z$llTn^UFG4%CGc%DZgU#rTikzm!fRCwV(2(=*`!bDMbhN*JS1EBBi@5Q_AHxLrhf6 zGs)vKrikBtJ(J0q@?O!CWxIWrx2442fOicD4H!A#aH=~@2458>8Q&a-Z zGDTGs-Dy+_=yV7B{Et-UKy9^>&EqQ+KHIRqmeT8*(#pmPH+9tZ3U_kUw-iQ>>QH!q zqYhDcxE|dqGFeuUpDFvO9+x-Y>Wh?mGq>TFcF7XAy&hMVzuIVA&(2i-96idTnadSk z?Wi9p{E;4=bIEU`Jg4j*U4umm-*VI^3O{pHzg;uun)JA|+7Zf*)}!zG!O9=5M{#|M z!l{lrN8$O7x?15ZNBvmgY&|aR$?M9#;TkMa_^G2-(6U|G%C|N|;ZR3yu5h%YwpF;j z9+x)0zp}^cv9T;a->}}T^l5sOd$o%cUh1gp6yD&dyASqV*s-PL-+c?cs z-=;mcD(s#GyPY0o;su^$RD7et&-TouWuo(QbmJZw^OPRteiXQpwW@wgVXLEnPIt}M z{i^EhZ>=i80ZPf;b$6W;XRw07$6eER6gq>!%|@j0e#cS}9j@@Zj=E3bFCF!Q!Z#fS ze9x#Vu%F8na0R0}fa@6*0f!jX2^?osbeO`E90fets2XsVQPC#~SF~hBq;jyMHc&Xq zQNR|XYQTz7!CgJI*QS|Co=<>}v~1NVK60Cgfk|#Ueus`|9=cJN{MjDt5>+x#Zi}*g zc5)S#l&{%%Rc?DyHN)y$9;8WGN=$AaRgBAY&H9bnOw6f8ZevxOFE6(hsvo(ps{CMi z)015@8F`eQ#D&D>D!H2c5o0Eq2}~0iuC=I4k{M|$my$1P+dQQbCffSHSv?#5^ zo@MIf&Np>Dxe9xUUQNE=E#a@$b81UohX6-fwN!!B*3yd~;(|=WeDu z0=Ai=7;{chFeUG-3Xarc@>fnYJKZz|3(3Jb%}{ZY`Bc7CHC(61L_7F~p0&TB8g?_0 zT3K^3(Q*>30OWZEYZU>Vq7D=tV2UE3(;aj#x}Bmbid?Ipmp;-sHZhMnX?3WX58`-P zrPp^NJ1L~KYymM#vE;mKq@@07<|Clf-GT1C%v=O?<~l-iL5?uzbXU>s6jeh-LE7F{ zf7daOI#CoE6{PJ#y>zRIlz|uTn~fjYGhU@|(tbuwRd~0f9#pu%Q7QgWt}C{4+csu>Hpubs!K?ql>QTPR?+QDxw%7I+8t@3)XTu#RDw zW4BiyDi&n~#I2kc)BIS*PffQrchlD0+AH&|cOu|SbFxbBluS_-zb|(bz4J#$g`osh z^#`^5n)3j7t!1uuox+36spv$7E}2p2XAP%bFsFhFouRt1k$hkC!K(ZivllcQs?9dl z<64ETK{NZyR}aWHY0d0E?4sGpzr*|1xjtFt){uJwS+PB-ZwCfrT>pc*p5M^*Wrp5W z>3>+j5zrM>5X^L~j7zP+%D}fGjL?D1Q<=s7WfmY4|`WoLf;ZjTs^rA@Nw|P~YF2H>J}xeOFo<%fPqvJ)GR~ zeyFgjTPC3nRyaUQFXzViQPugB9_6P1mz>|1v*D(`1Ndd5${Q=(%&1P_`$l!(#L?zg zPz0~4@elMUpBHNeqf!34C)CvG7v_0t_k2C(6>n&5RDGbzuW5c)d~3^6<(#bf&2lD? zkJU)4W~6Un-}>8LS0$VuoZoJRLciJDXKPB(zVTX5dWM;OnbH;GlWa14mvZ(U{k0XX zW%}@2v1Qm%QCQLROJkX+mFiv$gz*2U9D9KST-sS6=|Kh#Dt29DB9Z;RZ;X) zM>!Q4;?m!o$ma?-vN(brLQbo`D*Z3D>IiKGgDtdGqty_#DW7{NfSvtdMMcwt7HjKD zs$n&YwH3IbQ9<})_0qm3Qa)DUv2ApI6?pi886`hOvEZ6+zXQ;Jk=S9+ZH|20AljMwCB$8mf%p^I(=R^|R&?{oy1(Bh>!ycxy>1lb^0Gz8i$$FSG z*D(>W!Dvn?96}9QDMVNxXL3tH+FW;a_!$u?Lci6zD*}>%oZA!3ZJ~*mfM!jzZa`O58#Kg+^(gx^>p8G9X<@0H=VoT{kTZt7tfJJ)!cZj{*y%!0iDg* zx0!SA7#eIbgMTxFEp_k;-_GJroOoI5W3e73Z}YC{=8U}M{jS)as->jI>>HIQ4{jO; z(@%?3eq9*Yq*UL+lmd9Ti4}n^{_({Bf)%pPPFW1ezr}n{J^u!@E|;ssEShQI@_d6n^NaP?0|Laf-g9(r4*0>EKHg zKVX`Q>uKnCnTR<3zEAF3BU)Q5hz+H@L1@3NCbcptV z3o;_eoy>y>r}lPKX3zb*oX%!n(xZ6bE@o(by~F^{5&4Ubqc`-p602|1%>FGy>d=ez zvOH1%eq>Y({LH9U;Bq=TWWoZjU{ot`pi-<3oUf(4TOD9VnUWaDx}8n>Y!DCAfhG2qlEp_mF#*M0f%wTo>BWsiI zN3u5gj^wRZQ@wtbAwjcJ&jYDN2mTIvbgLZ9`!+R<2Y#qjGW&s7-#;6f^4)^ELWAkJJ@Kf_-VgZbKnZAL}lL?_GI^LWoih~ zXPTGM*$Q8GRH!I&Dl)XUN}r&|q^eI-e2Zx+GEd`W-YQ4ukeXzb1CyJaRc^6bp?MGe z+>_&ELRLAPbjGYYhU}lU7b)O|N~NnDC!j0m6t_OyaSKI)+)ZUiXf7D# zm?J^SsQX!vo=(!^a?y!bgqgGiyO29WA9OIfa>j>oYFE-HPbxTTw@zvWQfiqXj&L`h zv7G(Fs;U+Ev{IQMXU{6zoLWzQJqqS|rvmtjQvC|YcGo#s?BrZ<8QM>Sz;hYYxJ_%J zfPXec5%4Xeg4tlAu7>B?s#pfTU{qy|gECKs9-JLz`*Nbfn+`E*wL>%brXEEqBiz53 zyTNpqfPXNm19P9MSt(G=U1a7uLUTcZhUSW)xhm#Ho8Ou*=l2|S?oM+u0y@8A6m4Q@ zit*c}DaP+_n7Lr)DQe&cSpp)UOKva}j#TL>t`%^)QLT7XHz!+1swdwvkAijh0S)|N zmjIxvlNt%w)XYV|)y!NC4_sf?$cc+iCvVpUH>l1Boo;tAL*v!Pfo3ZLVpHA>(-n_e zDMdis$a#Ofh3eedbjQHmjA{k$u9W=!cz2x>=R=GSx0w$?4UkrHnm%cMRD(xVN|Hys z&wVC6P%Uj>79-#|qk`$-8I1!IGVA5MA3^Fxl}@BO>YTl9=_vs}T}qI%<;;&V@XJbN z8aZ%47h($w5=&B0n4VS z8Y&9r92DV(%<(9C$aHrApH(Wk8$$WjX0PLfBQg(f(_^wTP&i+YNy`ruuYV-*bv&r> zRY&cw(ND1~bey8_N=LbrWQceOLLM>z2|`v3Ao0kZTNq9y45#9UBMrl7Dq%F0Fq%pj zO|X(3uK7Mej|1h&_Ld_iJyDP!sc9MpyMgsUty|#^)&n)7nC&Pa(X3pM5BxPb#qjUA zCiE4d$>c>}?Pa}DBT84f!3LA7bU#-)VwH#+VzuKPF<*|h@yh|UIfNQ#i8yXRj+w@k*~xYOk&U|AB`If z-qy5NfEY|_v#OVmHnH~5iC{7r{M{_r(R$2zg1e<&+P7zs?T*c~?4-x!b+Suhh9+tA zh7O+Iozt7syL)Qce`0n;esOr=G0QhoUGd%c*FoRB4X0rg;~MV4a|car-Je#*?5x1*QJK;HiL2KL)@#p$`cl{>UHRPx|@tdl&ro(S%S&`r?E=sYEexrV*BEe$n4=AmQM^) z0+QwF-RL^RmEiPlPL5Dg-W*JqAMfr{hd9Zsv;t2z1@h2hQi38k9khyRj~3UK}# z<=tx{m_??f1f)08TE9jI_#=9hZ}lELIm_4&r!0RO?nioi|Hy*9r`S5j$=xSxiGxzF^q z1Lv99i3KpWq?CZpY`brkXq`wfUyV>ByP5rHPlZ2p)DR8LDT;hsgt(2iN_ym*ijOu; z#b*_wF%j!Y6}bsJ39qG-P)IuDHUPNL%(ekvQ>tHKN}oC>@0wf@_?gMc>kUruSxopY z7mv%B1NA5aWtHPIY9~Dk1>D)FR^YBiMXRc97i2_`cp|!heXZ(Rfy)^c^wRCBn=a zwF387ius@O!=t3{Xi4<`9}tHxLz)$Mw86B5kdZQQp3mnfACG4R?p%8S4wjcW5V zvQNHQc^!}0f0)^Jp!~K%`d>0c!Pt@l1Uj?9szJ0)Bv>_==FT+x(b)=Laa2`Zaf*Vm zO^B1VRnjA;DZa%t6`4!Xn27ZSP5`HE?^ zz7qkuR>9IfN~OPHt;)cgjf!to_@SegC~P_@b0p`ZOXzO5RwdvBqbk5oqe@39yv3*r z9^7YC3HXswmC&hRA|9mvu5W&qfn$t{cUO3dqs~$I?WqVS+oXbyQbn7a z?h<}-_?NHj-SG)1BrO9+Kx7)>#ZrbslGTQtE4 zc@v!)crwoWC`Mz>Z6f_f#7Q%9=Bx#|qXy~zyW%Ms9;L@*@3NKRo%NXW z<{xn(-ymIDME<2lFvPL)cw#h)^Gf-D*o8gRQgQenwFCiy3TNvujpaD^q7f6z~i-K zWm=;iAEy)wl|EVxZmFz&dH=!(_=ElT(9^u zJ<6tQ`R`?78|hJQt)?ry$WfOnob9N7S~IS8g6V00HFIu*3w}Rgf3Rv!+yoCZYZ2~U z;wT`#^(!2=sE@Cni#VRB2RqM$(ip12?O+3=47|dq%5@4Kag=W#MMV=S0k1Wx8Y&9L z`0*-zg0+f(GmVOGRp>klYVI5rxxiXQw7TC>ejJ<+P#|}SP#gy-80kcSzc(tF19Ycd z&=F8bI_PE<|D`nxhWBQAXD;u5M)Yn z@_~8L3Uposl@xl>hN3T<@4=ouY}FpNYR^J<|NcWEVJ5$O3jW+e?g(=iR1VUsTC5$w zO^u3ydl*#)b{kbZUEw80l^<7#CppFA>rP7EMVg_}|Bt-)0K22A+P_Z<;h~2fdLRJ- zDG9v^p(AxpWDCaLTC&D_MCrsCW7%Q4w%^^J z!Cz4>O>+HY0ysp6w0u*wYA&$Rfl!(I@%hw zqu||v0zU3k1vtge-0J5A$*bTgK~Yw(Bw3Y7VSkU8oT)`hY5NA!_6;B&G9O4YPiDQM zct2F;cWGdyT#aUsz@65YyE=p)h5 z99`{^QZkdQszd8(n=5@-c=O;kP4M(UdGQ5i>Cl~SQU^ZlRP|NC%SLwG>|B3N@V!6{ zr5%K72(9E^HQ*Sh%IgVU=~RtyuLmj)ccBj5pit&q?^4g=}d`Zkud@CK?4qM$pVxVgGsUo`QF0w z!z8FAbNuMVIvF3Ntz900D=gDF)LwnZ?MnS>1%7jqYvx;vca+xd>1+!w$ET0#9QvHL z`3uIeTVBRECE~v=Kg)Yga~Z{(rFd=fM(uR9FwHcUv#A=f3ngmQrGhJadm1#2kY*JJ zG%C*iICa1(A^TZPb|{5aiyU@SU~ABrM+s5h2 z^=2P5HQ=L8Wx&UsssNW$BkgJqT*0Y2kk*?OaI9O^D8%O8z$|S|k~(E3-*)-fS=!a> zK+@~VH00o&5ppQ1=ull9dbN+nT;z@EqqkP|uIZzFp=*-MUEIF*V+`7x?m$kCwjJ%^^e{U@hV~@$ClcTA!eqd2J5>c7;Owr8ULOFl5WM?GYv2P2OjbKn)0>ZE6*A4u{AcOGfPi3JfSdc?6(&tJg;f7H1Nt)o<@ zQ$xMZYO+HfMelE&Es=|~?Xg#~wiuuPju^}~lC(hx++I}v%NyW>+^h^d)Tv~wUQis? z-rpkZPVPJvxQmCKRss{tUR(l(uv6m^Lu-RcGAmrA%pTR&`txzY^*yC5jg_qB=F01r z+P0?`;s4aOU{N+}iB8hnYK&RgcM+@x3h})?r73AjN!7QMHGMWj|HW0qoSNq!%Y%t( z^^e^yRJ5x-$D~Hr=+OLN0t|!pq_MH`#hRVJtnK3VOU><{&4T!vPu~^b6;4%w|K?N$ zIM1mn@CQy+fVYTZ3S|Gs;=>dO^O%cNfp3dyPi;(nO!GEnun;<2z23I_l?v6h9GjIa z94QYGY{pCVeW8WES;guFQ)R53kLp-F=g9sk&FMJ@UR*=mPAy`7~bNiut0qRj5m*1GuTf-8GUSsE*u z8JGrdlXpIT?iPN<#glt9-2OLa&v9x1eKth@#hryYHP2^HFoh_XJ)hT^{$7|GW95J9 z&@#IFv|imQFtfZb$^TWcsl|(f)6Fe>7VM_BvIa zB6wt=jut#HJZ4n}zWJ6+`1Hdr&c6`#x(hYjTp*L+5iVQ@{y+~KZLPs0)yD!gl+bxD zR0F=`R2{gR3pG9}cz&Q_Z4O=JCK>QLry6OJNo!wLCbzm*f9jQdM$sed@F{oS)}lf? zl1m+4t9z^r7=-E{NraNI_KZy4a-lkKM}Nl3%;u%Ti-*7V$^vj3_eu)Hv&dciK~o+0 zeW&__B(c!vB=98{N+y;}cbJE1 zYZp;&K3{ig5xi=tS8_I{vC64ea=koKX-v~L?`AOW1#9EcdZ4(LKUl2qB>2%l#TA>T zL-T?Oa4~=K*jQF@oKtn+pi{}biZ%~PZ8lDYlA@(vWdz>yB&(@VIn5}!KA?Sx3sr!N zdpr8jUdgEnFtj$g^pWJ#u08Nq!FK}{*B`G3+#~}Aq57MNP%=UfQL;@>y8fErQhsZg ztOQf98UmNPQ1xoTu`ZNUHWezT;gg}BdR0=df_ZZ`g5T zM;*7}s5Mtvsf*im!(pXWR&3Fjo8`T6>V1+u?=AGj=NIz*aO!K3hj7N}f&Wt4@xVz- zw*SOTxd-Kz#%%)J^wgoc-nS3ieprb=a$mUX3MVi~JL zo4H9HxW7|LTQeOx%1!FPOPw0htLY|5hkZteFv%MVp5<=I#bBNe@o|w2GvJf%mE`k` z4vqHD2I{~Y{29<-sBj12^_~mYfPC;^>$M&UZ0kaeqXlOMYAEehJ)<)4O7}|crU?6z zdu2eq93VzwC!MTDxegiwWmf*=w^`9^JdZ1R+&Ei3R z58DSkRMg1QadwY?j`m&%hD)n2c;(A}@dvoCcT)wJiR#E5rM-vUun$PrwfjKz_6;31 z&-JS=o&E4^i8CsjI-9o$3efA!=ml4C|(&w0D~uRv!@@=cTR! zxBNh#)V24OU%dQ-61`>Fpp!N&vj55WQNr~YFF?+ny$1vmDttL`Uwn^Tov z36A&jSL%X%&Tj9Z051(zKwhWloF%;Ru!Q%>6yR#2M%wEdV_Vy6?+d{Yc#cyQ;Cb$w zpV>dq9$jb&0z+>mmmGTYWbe&h;KNQ;|1Ow$*HsS}{Ar;0!pTRy>#Dti_XO$@!5zKp zssn=e1?p)*UUs(g=>T;duO%DxGf}IAuG>!V9H$1a5ezRd4g!0;>jr?!h#G0Drm?L} zw0FE4P6eLgR0Vj3`{q4zwf0_f!>PbGoT>xgb>IBl+(5l~s(1U;uO%H^Njo@s8xO-Jop=6m@ zlfX$XRLAR77ph+<_%&_w1;6Jaz|)rFT&au_@10m(W2F(Lo=J%m4*`A?G5{Xv_p4Rl z$3@w%UL4grMmyIByEswQ*K(5@kXJSA@($cMSbbPM2g=90B;awf9Y*l z>q+f|<#+P=%i1#esY^AeQ)qEAZSu{?@b*X@$Q_pT+}T>t-LI`taf1=!9U7Z)Zk6@j z?p3=t5lWtJAVeB=1qTw|hUGg+0u}WOig+ z1UM$K-r&?3Fu42*ukkE@d^4YiV^G{*a`4CEIS?1x!~ zwbn6=2ZLH1vIQh^+Z#A)8o%m$^`* zC3v+{b>MqWCG!Z{JVmq_8Te)Qs-hi)l5zG&S^wF+GGOpZW{kCUVcWtla2aqUQ0a}4-&S4xV+PZEssM`U&2@0_Z>D7dRGR~COi!J`A^ zy(*Au*Up)y&TQ*sKU6ukOUuOubPwBU|Og@&wm!H5bO^`}C~h$5qcVIPF5 zsZcUqAVjYZFP$+Od_w2};OX>)J@p6EVRmcJK%vY9i}Ez!gcbo&EL2Kn1LB6Ul(df5 zPap8Jq7Ho6sm4=+OD^6S!Zxo1U-ajujaLOf?a%a*j0nercALb3JYctq0B3pzW#DY5 zGGNQ8GVm&=G9X`hwTmuro~+t`q=B8ExN8|mdu+*YeKS6XX%SV+&pgUCUggR;@IhX} z4ETbVunMHA_D06&w5&t+V!sER*aDyJ+=SM573ofGtwnR1=&z%0Ym@71hqmVn8F+@M;r4f!8{f{JhPB1!1=wf0BJ2l&~}0c`EQs4?C>{ zCYB8eURwUYJ#5%R4SBA-GpCCUiq+FQFv!p zO4juB0%gfBabTiaiQ>kdEJfUh=+M}0cMYsQpCpoYOw%F0-D|TA@FRMmso){$m*n*g zZS&S&Df}I6?Q!`DdYFDjc&Hwyc#aNTsco(_PJwxgs^C`~f2Sa?Y1?CU+;aS}HZEa8 z%;W;PaA#gWwHpgy&`YkPe2Bs)D8oyqj|K;~WFo0V)fryeAvx`TBAZ`nYd=RYbJ(cU zOY1?5@J=c(Ex5e4OO#G}r!?yL(t6{@##PT`@-g?W15b6TdYa%zq^wubHa{=HA9AJgM8WL? z1tebX`Hr6cE#?8I0M`(en{6rl5jV?7^~+sm@hB*gnvh6U7e$KtbtnIKB~Mm%&Az>f z7$wZpkMo+Wq8zI25~b;OLN@J$91S&5+BQmoEm0Qcn&uH|2I1Od9OokGe^cB1q5>v) zbNpJfma2U%S!7)$74orPBIy}5ZbXZH6!nK}N3>#9KM?1M@@C$`=`)70gS>g$OONAb z41=H^Hb|+)bhV>k+%73?yzO^`fuHwUH_jFe+6}a+biq~c7pe?iR@3*U$9`=xZaJQ$ zl8+WJYIePhwF*9QUO@Z4?Cl#w=mam+;7}?3PK~0Q+5f`__>nF4Ul(t4Ht=0h_6xzy z7CR(rc5&zjWgkqE569*z@fW-Sb>Kgi@90?vja;Dv&(+qbiv{mp*{$O6`;G1}2WxBR z-qtI1sJ*l;I-7qGrIi2icyiiVQg#b5<{f3Q>562KEa#q)R8^+-UC=%DX~n5`*f{%F z<@<(LrWd$PXwde8BxY?SuZ=vfRU(jl#bRfrkA9-NO_p^`uJ4MEzuxc|nt((a0yCPUGT^?yzxRcUT75Rhj@hY&-}$Y}_Yt z^!%4%4` zaO_!hZ@h0ZMP+eynB%$@2(by5!yWyylw1}$#45oqrnD$5GZL@;BzU$94}M2*Z56cO z!A9!UkJoT{*(VpH!9gi`D4!|~6e#tiO3Cw$B@{RWOA1Y}U^1AND4E(~uYAUj-HNUP z52@#uU!~KVw#Ed$Cd#g-^O|vAQ?TPr}vM;+-xmWPfK*d6Tlt7md@V_QR`nH6A zro_(4o@kWK*ic69U9>#84w{W`1MWFd=2}e zr}$Kg?DF*@7&TjNphbGQ8TikhN3trR3_)oCuUFhF8R9e$Z+iwy{F&}m2A=25v)2XK z`KsGhfmgVly)M8G+1M-+mzkP|EHbjd+vZ;2w>@A57_^f!w6tm`+J@TNIkS`CJg2I+ z3XWZ^V_lFWLU`Lr1jMWGS29Oq9u1?v()%vNm7dB+afuT%OEAahvmjO{S>Xoj+Qnmz#k@ zs>!rZ8P4=n%jXIP@iIcodOgeE6eRb8MJ;6@hIKtz{!%g8UC++1MCzH&uolGQo?Hd^ z2NyW5*PdjgH;1cOjAP-)4@?o|Qe)gGvEH4m0OQS-qD#G)a0TI`)B)`r$xyU`uiqQkx#S{^s@|H>glb^CnAt=}s+YV}SF3Lc^1 zwX1v8fM0d0JXdf_7b?d!*;*!e+bIqFuL;o(o8Ip$vGWtpsh`Ge<~b!(SVh)&+t~oT z)`hA!2;LYd3bv7JCzsg$WPPA}Wk7`N1exC?O-k1$#! zYO<1{3_)oCuLekDI#ma*zb5BZ6}YKW^|+Idk^tUzHUjas z0st2v)RfRU+UBnrg0Ju_lPUc=9lB9lyQbV%V&}o3{T|by=d{g7-9Lp#=|%a14>?xV zp>?#iaL<(3*X{(0(`Q(5>3$;T{qG{m^cc z)X#^9{stbimXC_h3Emy3W!CN-y;@uA@^jYdP`7AXa2llHYG}`Q?Hbw>T)WmUcxs^H zaf$Yg-jp)hTe(*mq3MC538#DB$yEXEpSyMic&g{!N4QX?3h-9f?u+w&M49|n+s>;S zC)%qUFsHb4a_;{t&XeQFgKEvsv>jtVP&a2-&vxT`w%cI4@h1!euiK(!SF5or*(a*l zohr0$i=)@cYLyS@1v`$@sjzMG|=1msNm=`si#NAsDn9XwP@;WVXFS z+IzUrrp6j_Fp22lEuD-8_Q+>lalIZ3G(p^#E&2A|5-@8;f^-5-%%heLjrQ)&7(d%UW-#^ph?8$=(EWbE| zIVKn?Foes}a2eq~?*k^8ByUr=Ak>=*^&%AV zP6iA@B%6<6a1gJh; zFnA?dvwQeI?DEp=9Gxf&*p+m2skU!^G@IQ6xtbr$ z59lD|L>*kRRPkeQ+v-?PsdH#{56mt)vIJhUd!YJa!QR>jx3 zI<{1)KOBU-!Vg-OZBJ8$yh;a`DV@}`2DT4d^P#`%z7~yxkPrC5E@8+gbZ|*)Kk35# z%^mx~LC9s+Ew%q!DlZS|t|M|sZQHf8JS{7zJ-ZLp+J~SH>OR!*f|}fYsN)57X!oIx z7u1p6hdN$RpVXmt`gXZ%CjvPw^@BP=hq~(pcZs{HBC~s-Zudi0E&HE!Ez~{ThwN2( zI|TJm_aSSV9fEqI`%uRV>iO8_DE zy9ahH9sR&4fn?%Xg0VNd2WsPPzcYq+x(9Mc9qb-mqW0`Qq|qhnpzcE&U7{v;AJXU& zb!hh?jV@6~b|2E{67@-KKRCKXPD}luPSBwbj4pA^_FdKLoPpurFOKct3$@MPTmio> z&Mp@33UUe?#feM(3oa?l;moS}(f~|g`*<5jTzlvP{I25KleOEM?7S(`UX{)1IV0C? z#rd`E$&fRu%N~m4+xF~Gwt`RIx$aPh_Nx#cM`bU3KVms0%~ix28DAUh7KIe()q-a) z6!1(5THWyqi6@UVcat^O919Pm*7gJyAx;~!0tW4YQuH6%|5`>gak{Ezv49~~vW_F! z_tl>KlYi>Z3{vzqz?+(mu(4=SD@wOWlIvXl3I&*O_VEVM7(xY~coZo0q)LOS(qNnu z*NN#$KQEGCh@TW`u1Y#}Tu0CDHh?!c)wo6Q0jKJ~AB@Mb0sO5~z0U}4wLVt8z*C%R zd`|G@K;0?$C#UMbm!0Yb{-;w7V9y2~5jf++P>WE88fC!C&inK|Ny_&NADLxfm)|wb zPT=tGM^#9I*vr2q@QFHR0nchu<_Rifo4isxo2l7tk{#-6Q_?;<{&6qQAVu6<@Cj`fw}jh&#}wijuRsO(qEl7iD^68_Z#q>4zUx#4_?{^Kj;ZgfSmE!O zjuNw(wl?Vjsc^f|jIiH$ajJK3*y*9aZ`|3o?H1Rl*;Ly$8G5pVC=U_rG)ndBvA#{& zv3kKQ9&6{9##p?4C#~#X);8zBt8UcE(M4?Nla|f#Pt<0|L!UH zK<6g3?p28&52c>bWQWvp=Qy{bFSGtlBKTP=aa+UB`D7AbQ-?MTCP4bS=x{CYCKBfFbPEI4rFVCduvhP0H+1ZLRu`3vTZzWj6>0p`=6R%IjWj^8x&@@PBG+ zA3si&5{kK5oHkPAW?g|BjW#9VCq2z6z+**?D4ja2#m?v5t_-};?d-0G9Wt{Jabi1t zsKe~9trhDpg6rtKH3~T1sS5BzPGwiBCZUlTjU*G(0?zT|E5NTfmGs3V9b&K!F>vGN zVa{O7zd8n{+BWcFw?WO-T>5N%$u;g4Urc1czd2QXT`*kqs$Ah%8`%8Dnqa(N->T^) zFPZZGXRgsC-M(zRpmf*tYtG;Xf}sU|jSejsOw&!S(4>2fU-$ar#e=;&Kv_@q4Ek7o z%?}hc3=4wftS1~@mY;=jyqqH-b;!9tCuQhQ%g|2}p$z?L8T#X)L|$Bpt?o0M>@d!3 zOpxo7Dp%W%oxgewtH9Sp*$YB5+b;+~4ENDk1}-D2{o@quu!1X?6e`jV=?y$83U50j zfTKNN23*ytM4?Nlf%4=6ezoTi|D%o6tH~B_<0i^^9hmN6}hrZC%Ya z(l#uQU>^2M-xT1ZqVlT@_zgEJ11o;*OO{6)$eJMfJri3V!94DIQ-M!;*l8s&vFs`Z z3}KVy5v>g-$wbMO{s@ns9WD6tK<%ui1)=1Uyq&BEwav%Rp~4rqQkmrhin&=lNg_pV zwmia(M%y$6e9y(FIP^2nmPf<1vx0X|8OTDWJrlA+W(70hP6`zg`@eH}^pNsounsYB zAhFT>Ln_gCiq-C$Jyi{T*1nf@(_NM{+ z(}2mEXuLAt-y4%5^fPZvGT$sC>v7uVKN1A~tSb$m^sp->Ymj|pP5h;8*l#i3zL_y< zoK4WMXSrqtt>3$5^6Bx#vcAH-lCW#Zduvz8fZIEjj0i?BL(Hyxw>OcZ@7v@LB|-(- zBq=i_+GN~EZ89F_n`kT_p)Es^eFnHKK}h49-i&0By{i+EGsFhjLnU^CRDUX!44=;_ z%EcZn1770PqSX;85+Aybadjr?q&Y@gs>43#x>bi$i1WuN;?ZSB(LwZ$QE|*=6^kjw z9`kPp4)F%kcmrv?fizw+VE?GG{3mVgo%azfcK$AMROzJl@2AAcuBnM>92?6x=+O4e~NO5jf}l;O3R3uVA7oErSXww+diWT!9qp&J%@?NNcRhuHA8p++d)ea+)D`b2ZS7__O<{n#J?`}z zNV7`Lx#`O0o7!57Gld~+{(}L8Ca#&yRvhAvC@t}RveLd-qlLjc^t-xPFuqo@kF0q| z_zZtXm?6jbDz>7Wx2TrIR&*buvDk{E4A0d|7yWHIuQqQt{-RfWXWbSyl%!aZF~U$T zw&EybdqHurVf+^>cE(ls_q*!Ad$b*6Kl>UQc2d{-+rg)U=vC%6`?v@AuT68ise`6! zYr`szbz?H``20yX+x&?D6)2ceW1)OlGn`P$xmc>`_cCHFyLiS@M#V}6m)I-Ra7JoD z0XEiDy5J%I|M$ThS1Ettn3}xr^JXvSUY}o4dQZ}o1 z)$Z@Wq{)f-pW#9DE>e+$&INx;4`MyI+nbr|EibAM$i-aZ=QfOso{ZkbxKMhdv>c(+r9VMs-34<%MT3 zKnC=tttPIS9#^4Fk_Fw?CaDBn(k2%cHoxvKo78?P0YagtBF|tLR+<`%@2f68KwJCU zGGj)yUrd0h`XDF+r#Mvse$1&d@F=G$z)v|<27X4=sM2wEf4pvs{m+W;F?Q1W`4N~4 zU8DkJYHQbzQ}pX$g?G*Lq1ugSe!AmWaBibj@NkI=2Birtl#bGH&btge*N1opyhW6y zKYuzqT$Ak=6M@V$Z98^It>`&rn%hLrjrBqP5E@J%3ovgwJ0U>&GuUHy>J)Y}ZSyaW zZ8827`!FBoS2|(~THs@%@|SkNZ@F0+xQx%I{c-PYBx{0nzO#0UJq&?)-t`86f9eVg zCYDVmzz{ZB>(bg_lAKRFE6Arkes-+jvw=!uCCirWWPPZ%dG{V8e2FV1bJUZ%NjiJ` zPR*?B-w^ykpb-DP3-zZdB~`y)*7VsB{TFu@?WX3r8Qp<{yy zkh5bk`=f^Tlq}Ba5?#?R_bYn_{FYM{;I&Sbf!}kg0=(I&GH|{qCO7tfB0fxRFu!$? z3h++#TYGZj4uPAeHpv+pRv;DN+bT`lZm24Bt#4APWHCeSmeNqmM<#f8an_%}DWWWc z`P12 zN$j^_7{--;T!&r{CP0D>F;eeV`TkwoFvG%}9L{TCQ&fJcftdzuy$I}@5#ogJF9^Hk z_y_=%P2JLdbC&_TlAAZZpqtXlZX=N{&-q23X=Ohgd0H9chy|4`?c5nCEp6=~ z6maG)okQkzvEVC#ipLj1-*KTD@O<~`N9b~=YQUh~A8X$%%|~221D+xw>;9L{ctSf! zwaHlQQHlIX+x)8fcZ5ByzS!+nnGo1M3VXT44q4db5$8}apS-FlpPkeRVl|JWr6#r5 zWR|>d(AHFdw>Z^%hu~9zx_IwW`@i36TW~vv_I2)61Fp4e$2%Vt5_rRfs-0uuUxY$N zW#D#uAkGf->nrBM60)joptKwT>MlR*7KaQH{vaY?}mf!a=R z_dqG0Z&p${j?y+CP2dx}R0F`fo$9|=aP!?sVF36=rz&pHtoY{8b$A$3mZxbQtmdWO|z?pG;qj5rmd6 z*+(&B$M=lgp#2u;=uzvnVwI)cWLjyxR-El!QMPslli31J>bQ;nnpYTF|8G8BslmTC zi#?u9bjdn;84VK7eY^C`Y|^WY;)0oW>&S0R>3ILhXuI*p59gz#bzAWXy^?*<#7BGl z5YW2GP+2$9&rhT?#C1(ZvA8`kDVPW1_T*ym*!CYgYkN7`iE{);qW z&-Xbz12Rinamj?z7`3{Zzo)iVI3RPTttCk89k)uRoA*_kampa?B`}whTuFx)nAIR1 z#N=*{K(fm9N$a1U)*!Qb#V5u==4J|5G=8{bJm*)D3Xp(SER>kq3w}z4i}rq+_48n0 z5-2z!x$Hd>1}mp8{a3xG=9JOCyfj zW&gHSl56*|p>&>5h4R9J|LRrieNFJKK*dQG_5bi_^xDV03|>a6op*DS6Wr|Lld5gU z8OAwpcAW8yZKHsU?Y1jB%nWA7I6qs1x^2h$lF7pC7%E|X*#NR;X}hu$7M%?sL%eOr zP8hh2xLYXPCMux*+R7Nt8m8BRG2btj^R&%ZKi~_+*`Nn9#oH%o@id!zQr?aITsWl! z9`v(%DpmWoN}0QYsid`iUXxnB)n({dCwJSBVlMCNyyUsrVNpx%rimu}%@@kq8-ih> zoW+f@a?qv;-llroCbNpOH;O#z>4N*eq8=g9-zdAhU@r=~6)>%Dt9KiZb0M~T{GJmN`^p_)%8X^|$h{*n}F z3h9L+O(D6j`SofFS#0D3YRXVKP!T)#Ng<4$q8W#9)S`IOAOq@PR&fT;t9!WYFI76t zzDoSrG40o)W8;@({Cen9ApSOQTxu_`_r$K;oc8*{rUK-S)UpFISKEa-o|esuQNavr zR?Ms{8_bFkK@kcXUsq=_ALrLtYQ>ycblr{p>>?Yx6beV8 z-q^kSSlk8ZO!Jv=LJNF`58K|)MMbe0KaNs#{d|A*sER3 z)Gw)J>}U1bk6Om=-N)iuqO(REI|b&G8Zij{e{W>Zc+m-GpxfEoNRan;WBWfdnMI*Nip8`SQ)U#y{fekSr;^qqw4?8)B>+<9vqEwnCbd8(T zfj@Mr0sOhB!ldrd!3TpM@L{Kt1fJ2MSKOoy{BY<@;6zdFZrMURhXy+! zuv0MKtfxbpyGa8`6zkD`9sQVFWxykyY5)maFcjWUV47tE2>8F%!nYK1DJ5z{rUV}2 z$!EYdoGJsUQT|m;in6<#WnUD$(5c3yf?sng1JW0{So|N=A-((r2a|-osFUVUj&sO8 zNrH&x83$xWxyAFW1MeT+F}5B8KIT;Yw}O*KxYbbF54v^@uh(5DnPLf#SKg36N#Q?S zsj;NuuC8rvwvBMeDY-Ur=%b!?9XRMz6?mvq^}_^@cB%^egj30cO}Hs;QbQ*?-Q2j1vZ6?l`V5v7x|7CZArjx3#iO*5Ir@6yr7U9Ap0cck~{MS}MPD(+&0e&<3p z;P&p-KR z7wS)ik`E*vlJ(2(RR{iZG4Fss34VT*Q=WtckY&;*sZcLM&%4kd6$nCuaVeLT^@{G50iSTH zKNU(k_X@T88gG3De9oyV@Oh__1;VQwTAco`4-@=~Q%SesHOftDz=xbllAfhQmus8P zr&kJp$K8@{++2qyyGaK8rBlg*^cfvmqsJQtTx}_+{~@o{m*@!YtgT)BM}vR8B*6xj zQQQze8EJJXoTzQV>IRbw|0Utck?`=+^s$}9!oR1><|`pM@Vib`f_(>#RjW4js@8!k zE!{D(%R6w4Q}xvZ*LA82T+gZGayLPTb_*uJH=U{i-x6gPu0vYvyeD#GY5M$T>z~@& zco|PNZsJUt+@)LcDbUzk=m6g(+VrwLvWsH+7> zd!p5q1zC>TINDLvsllo#7+RQ2c(kyqn!t~H1Ixfqh-&|hKz1&3y9V$oQ8vqzz`u60 zGVpb$8o+l&wIleB7qKxy@C>KQz%Mw}m?wCTQ)S@ePE}qO9Q0C`KPh;n7qR@L;4^_z zj=qV@W2eqAs?+o~W;B~SaGM|EX6K%1tCOqt42fPI#HqqJynWe!s4)x{`@DyCUE_^O zw7C&`R^G$y+mYa)^fAWPY*+f2lJO0rfp*(76S{A0&$7X3K?BT+?)!^UFbYTpHcL)# zv2(oV&>$@uYOX)f(QpzQ4toaL+X3oDQQZh49t;uN3&x6%tg3kxa`#>P=iV6+f#2Z*i8(5($e&SXQAZL^fD{h+C@dj4XGE@%J z(QgDR%J9QL(WzT_YbsQRa#%!$-B*HD+-6$Sr_|eTwy|?89cLf6ff<2CznZX*5~Np$ z+fPTw|GlbQP7QZlu?hPt3E0I8sNV>(XPZ@h6{mE7TP5@MSRLBRO&UPF3zi?8?8p^d zJ27DyZol)!W$_4)RTJ_}>Qzp?k|#sc%hs1c>{LJ6KXR%H40%%$PyZQNzu;bV;NP6eUKQjlE9lsghUZFt z9@T-{I@Q=!@bEx+DgrD{Hg}T@xRX;=AcB@rLq|XERv9paW88VvX|g`Yz3MXsFAEef zOdK^=5J2cu_o@Mdc82yGw_@PB-aH+;(@pAk336q$vj+I@Zk1$|3e^z$dGG=Tq2w$< z=w|mS14EJ-+CO!xq-oFS&~t8*++9%y-R{|B#O-G3Fdeh`2`jdoey6xe9eATt)tdyL z3KZ~pr|Q5Jef(Ef66BGzWw50vJ|I{?QdhfnjSPMqsCxwoYcmJo*76K$>j-WTC^Fb1 zP?GWuW%<5`E0aM8S0-H0E~CARYbS%^Lpp?M!JIHnCf{_GI`9prdVx$X_QQ4Q!(629 zaKB`@V{)HN@>?Y^+E!dIj=-Y1CCz_VQP%RIoQ(DfI<&u=)Pd(Z#Z}JJO1)}$eaXF& zc|7$>GA=Md_$U{y0*?`u|0ege(wZ&y&km-ZvcMra^eH!4Xi4%uB4Th$E{e0H_;pvV z1Fv_g3jB^J`+?k%agHcm;%>=+n5RQ8xk(*3*4KK~FAH7~s5llv@4HYE3&CAoB?F%C zlz#~FlR!Nz_*S6a5nMuzwi6P#np4TlIaY_Za+5mnF{k=|FL=B^Bkns@@U1|_1=v@I zdfg<$>%u^NU+_nPiiJq>9Ho&D8}Mw;G6Vj~sVa#-7pOM`LspG6s|Hzx<|U)@(-Jzx zwKL%9PSt^rJJnB8Cwhzf$smMFPVwtxeS@}~ne3Bs!Ih{qs#DR;w6%*Wa0jQVhX|e+ zsJJ5#TGLIEA$_Y3{n$-1;II8*c^?nQ_wv&6f+dB&Hl-TKY^+Dilr|PIL5?)19i$5In;lzbA!5=wzAZCns*Zxm#mz!Jw3!P%~um z4fm=8f9O>80m0$^@k153vQx>r676rfP!0Gary6MgGf;805xUk*%D}sw>O*L8&nOw+ zzm@e%?v-3F$I5%6tJHy)_=g?U%LEVbXXHsAohp+H+$&p4)| zsso!&HO>}%Jy3Dk(r`7x^|{wT8m>mTF9fSJTryRq;mWCY`EqGq>)PdC2tFLBX9fQp zsG(Z7hD`Dajd;g(ao{susvk(BYz_8h9VI>c+y_X7^8j%Yqvb{t_Hh;P0FPHC&c%TO zUMh-Z0{a9n7{uGiWs<991PETqEKypvllw$%ZE*qI-l^)K;Lii~#pODV-_W)oBeXYi zuNrWQQ-f#+q2wA#*azGz1CmBT_@iWfhPES0(?+$}34RUW`QDN~V8|)C++8o#c_Akt zg7)o*+ne#wpe+~;FKw9&p9iJ+M$nFB<|^6mdD3;@U!1D0GrHrqr?yt50l_l@b)MiI zff_2@&8}SozVB3na1&jq2Hei6#@>Pl2a2SQ4HQXzJy1g>MF#nq2wu+JGT_Qid7{M2 zJ;A5CSqA)qQw`v`PSxW~b1|~M*3B|tsB$u<=(&G*Ni!ggupXp-Q-d~;Iu@J_6mMGr zJJEr=iLz%m!&+a_4xd1q-6?una+W{7NiJciZ|v$dgdPjj@)8Kz$qmTCvi^*=?VQ*_ z(muesN5_YIPPGYwyJ_2YW#<65%YZb?)XvpWUPmo>97bYa=uV8CkXW|BEJDa^5km6j z>)oDv{V~B4{i#H?Dfpv6-6wdSZZ->s1KJ4Mvo#=IHho>5OkengoXSM|gC~$Yy~2wS zR`S%VqRRRv_3A~SE62G>jy#j(>E4Laan06V%8pMFt&5Ko^+``Wr`g@X62274+iQlg0DDL1JW-Azt}KK<+;VnR0sarsVeYAr;@8JLbtg|4fudl z4PX#TMsg}tM(8mY>H`L$0h%0($#IdMakoo zq|nECp(&1urHjM30d`$rz*M|9`spB~?72@|=YPt23GbbZ-kBVz*lS}Q3VoV!rt|y6 z1y`!M^7^q0*MZ;h2hhpsjn{qdRRdn`UdfYfy#C}~WgxHf+gp)wyWWuXsxF)XcNI0F zbV9Rro_4+;>|&|AbZF0^pZumK$rTAziIr^K0MwIMqcW`6P80aEwl+ttTZCo>A>i+w%7E`V)eBtFZ~8Le7^kKJ$2pZ;ZqAn`VMmo__Z-(VyNCU&bv*z3 z+?^vZAC~B-QgwDu-|QatHxs{j+rth(P=_ETZQo3i>lDwo4m{PVWKgAEHM~xDuVeu8 zdflhoqzdF!P3th=ak8=xCx*4y`D}3YCJ4;Xp;>N{^gSkDb(0z}+^!^z#cPhd+HcaZ z^DCF?13v6_r#D;dJRa=g#IM$&8??>G!$~$C*nd!bkNret=SZyZj4XIp%&NGGR_BNN zZADUzoplE>plyEXK2JEjkvDm$VDBra1p}@kZ~H~8jReWVs7;j0o}SXweFe*b0@j?$ z;tYqZ|5*FsSoU$v;~GC{&1A)Mn=)L{ z8QgwW?7%$Udce? zJIP;klccGboZ==)BQW`9xV8J1V0bg7_K2u=f>k^yHqoK$-K2s5-u4)5D6ehYYcenh zWvNgyy6#dFH+P}zCPBOl%KUqIy`gQ7y{A6A=Y)bWKU`v~YCH7Vv9>J8WbsnDa~eTx zA%ju*f%@zo_Gx(MdSeITVjV6=-qIQR`osH1^lCeYyjc(wmmH`OT?HSfaGO%V-WwMi zF0C8e$$mRr8xTA)P_fr)I<%&nOa_*n%4&i^J4>~b5rTH`nw)wi^K#mbDXG_#xE(!F zJMxPF4GHmkQ>A2C!;^-udh_eR@OAPk@Wx{R{3f)kyp0=IA~2{%cHrUVmUc;l@4l#agUR>>6_p<~>n27K75Mkj> zy~@Dw6r(Q{N-lw^Pz52{VYk-lv*JS)_>0=+qwr?opL$Zs1B)32Znq|G$^AD`zAaOG zRbs3fFgV4_IRR-SfR5cY!Mp!CTLFgeD8c2nb`63nSMd%S18ccj z50~vK__06%LsH48KS{}u!Kjiw%@|#3kp?m0SCTrC@bOu~^O*ZWV}XRSPm$v&MiF4E z&ZwTnEz93{aYFRhqUd-Tq0hS8|%gm7oD}IpE_~#Qs*c*tMXNsaG}iO6C^4 zLj4C1Qhj^9&VxX@hRo@bP{+YEW-@!sQ0cDr64rrlIF+2vsaFlJ@&0aR|7L<$1S&4? zRyuUDn}d$_Z5Qf8h|J6i7_=9m02Q>~bM5|A zyOL@rSD0N?u6?|0**^t$^0FnPi}1v>1>)_^-6N?sd8$a7*CylfTp%~UNN#?!Kra2j zvOw;pBDtH2EWx(3a%KaG|6OaqaD2ZQ?F!XU89Vy^LAuFglsU(Z&ElK*CyjWpeVE{ zzu5qzW*;!3MS8gz82y5Gph%U5+G&Z>c3!D6a3@jiU!7s+qi$CPR^0CRW{VxNDOe>@ zosdOF7I@n;JYd}eR)9e}IbmnW`das@14oVS6x%-ZTw3r8%R3c!L@HE6sKP z0?rg=N+e9i6b?)rF@Jd{2;4P(E2aHH{_%U70>(puh$$z$iZWHziQ7;jYD zSwd|>O39UJ0Yah31wu*NuqI}E5}?7IE+DUj1mV;Z!d$v^KepkmS3rJsBa2ZhxIUO)`0w z{Y8bn%EM>Z3(gPJ4+ZZIRNUHsC==4K;dOiSa@ixtTTCj$F%-R0q zh(*R2(ZdVTj_XWH^i=-0Js2SjwW7cG5&PK{B6cgdaO3qm)vaBx@2nozi^B}$547oq z#5``(L#o@~d<4{itF72Ew%j%p+&54|2@P|T8gM12`haNXKU0eMmcb0TgQ(mLd~h%W z9`00m;c1mgYi;*xkitQM0tW5mVL7!!&_0RnxLkXSlLN(x%E>uNmpH&d5#zJ3_!1uMye~;`o;m5VL=Dq=R@xEb#i)m|Les8we zxgpq*M9Evz2V6{){dD7K@P3|aas_-=Njy(7r3~o#*P1KRq>#FvR6qaK?BXZIXy5_jqd zqo~Jz%Vl=Y@pfc6MVsJJdpj-=r|3WsgE=Q0nbye^W|kj0VRYvR%vV2fE^8 z7T@S8)bAGjrBnUDUprNgPsODa`Up>cG3kbd2rH zdQ9-CKy9#E=jis@7OY58?Hby6+4?knT{`tE7x<;01>d4JJfdw|oSi>-1N+WdwUhc- zZ%yBJg0}@KuGFtm^-G(mBWdFac(J0`JuEO(G^3)gdBCJ=z8M9~?yn=Yhyb_m+s{F-ko&lGac6%~lXEP621NL^?u|wRHx-XE~L49jZg0aFYx;%c%zN%T6T~ zn5#o~x=9^4W6e&kc8&X@;Av|)6}JPShh3-!Jky2xQlVsuLFiEzDg!^~LXA|YF;qr> zaG?tD3og{33MET3GQ!(tmm^h(P>|j@{1Xa$uE!coV z{gAeH9RMEa)WBrHW1Xs{Jc-q*KWdC8OKiqznw&8QMW8nMDw~!-XoqAXH9;lJY+zfsd@+ zse|2v0C#t)vA^J{PSt^Djm5EXzTo?T>KqII67D(Ay9WHLQyK6br^>()oJ@9`Jw@Tj0MtXNf7&RBeabk^}i$yEyRs&P{BUqW?a;PKVfB+x+_! zTZ}(x%&7HXp4Aasn*d)Gm4A5{JYGR;=mGa}Dp}RgRGKx)YCF4U_UN6ZyqmW69k9{) z;~w_+7QeKA?IS-5`@W7YQR<)FGqwHIK&WMu%hIJ&?IG2v_K@mSbA%=1CGszLWV3th zaTOGe=+cbqO7fjbhJUFo684!-IM_j%GXA5sR%9TB&5Il-Q?O2KNa1W(%FY#}26n%R z&=zAm@r@cPrPJh{5BoEPZ*cJ;r=Yk;{}CmT_h?>vlA;S1xnmZ!`oCA;?mB`gL&39} z->Ncy9lAoLbvrfd*Va^khdR~xq~K*v)q%el*AcLn93K|kbG%a>(DknbMz~N7xQtU7 zaEw!B;5er;;O0)1f!jEh0k?Om44fpYJ=?NV33fo*W3%n`&91g|pzNtyKEx>3O*)oy z;HOS zaa}{oAJaCUZ?|mEw=m0k%O(St7nM&1;LY5u4m{tfWS$u)4m)<#dW2ocou>j<^{~@Q zU}D*`Bwz?THSTCy8%&Zb!CA`eDs62>`ZvLU2I?fG5`>a@YnrUTqHW%H-x7Y%mC74P z3B}wjP8%t5vxyrw8g1u1a9gk3WZ+JsMwC7~ti{g0ZdV2#>~{9v4Lf9JC5{t2LG1{M zWh92T)eqR`0V}{kr;_?Dr9%v`AqHEV66UMQ-F_CoXt2a?>*!qB(&xP-p-hL4b(1>q zb*HND3GTl^Cxk7(8iE%D>QcdRA9AZWBf_2J+BM)CPBjR3fNM7hcVVE?aLH{p;m&dG zGLR%~rb*wbm@E6cw9WqjB1w&0pVno-eMIGE#|h8u;=u2SvzYUm>@2Gm8F^E41?_Cx zP14Yt139nxYwi5An`Eb}ap`-j{}wgQ-YzHU)0Lo&Zy>pw74UYq>bp~rM%aTh5_?sN z85O5xR6H>Lhbw-g@_Jd@c5w?U9_QA!Tv&ECYcL%4@nV#z;#GnAj^IcyMw$A&5U7QP z%csvcUd|Daj>)-O6p@zapRbAvozx$<+N_33g5hH8D01lW1~!08i?YYT!&>aD?sgU6 z`fg{x#>mdr!EWJM43GuhHZp-5x=;q(+^KnV z*ndvP!^;qHkXL1~#9UMZsAc;h3y0my*ev?v*rPt_}s^4ETh5 zHHh_}PG!J5J$!O?smhvmbJH7;3vxOOLF!NJl^I^d}?%k^th2~n08AHGm=c zY(dF?)~nh8p5{~r3{6Z<)R#0C*7X!JAYRtBvyw4ENv?9gKH#-ZB~v|KjGBULYig1V zj@YE=?}=hVQns!FE+D`EQ0kmS?ccm&hmqWV>5rXVyxRTy3NpM48n@{B@d+_k;tzPd z`fZzZjDD(Z!Na7~tA^KI?v;E}l6sX1dy{+hAr!)wf#2S=lUdPXHfl$HVk5ql#BIRM zX|nSXk5~cj;Zzy8pHmsI;#3(p*{KZJ=TsSZsHpZMCU%YqcEIc1&eEkCqt*1hUEo8+ zwcEwcr@Tg0;0aDufTuZ?0YC3l1$eGg8Sp%(D!|#I+Q0VA&ewt+klt&jyRdQC-G5`e zMpfWuPE~-E&8~C{D%y^oSQWUdQ)Q}1&IQjZ;!)h4>1RBx2Ji%@GT=2%HGm=cY(dF? z%QI~NscOL!Z{p2XJS+UA&0lEeeorC;BGtBwJ17>ji!0+0zk=&6UZ;ArK_FR;%)heX zV>)OJE-V9coSQm!*oFD#Q+u3#(R5G#B)e#>X5v}KTRi|=(Wx?!7zO1+XchPB=L`s5 z$!+93jgp`FXsH9Ab*lOo!I7JFidC>eMCg9^ssUecs*wsMtAWvqG2UY(m+%QXv}-Uq zSn#kw#r=v`!%b><9UZ8JdzDkK%DyHzH&Ai7KP%iT+U5^C!6AiYplv0^N!l)EuQ`kwr%LRY7l{*3-5|v*z!J!J(xC##|!52fKz?VGH28jlt zWC~hU*5qLqx%tgFfi@YZP*%o$-k2;l`MSFEb!`hS#;HkiI$?6RRPqvmpLgZ*OG&VD zoX>Si^|ql?rc{Ue2uw~&OpbPwS{x`fsbGD#d-dHTSlXuJU$B1PUnZo}`TX$24M(j9 zgYM$(PZp<@)`Pgt1N9PUga=Aqa*6{jUOI8J$Is>kt< zNV1-sdLXx)oFQHxcat)ZST+^io;)4d zPWD6#qYY+d&wgr}eeyXrdfT~If9jRYQ=Z?goCz z3z7XrkTTj_3S7YhPHc@6-b`CF+fk7GjQXU~p{jYzI4_Doez^^p$o7seFeEXdwTI-7 z)HZho6FOf@fk~s_Z`AA)HQUc`VxVE~NCA;^+qh|nGCI=nLaXfey9tD zp>4@!khTS{M(Wjwv%X5>^>5nRo5MYvez+I>osrnBr}SBSwed82wJ~*0DuwfRJ*NFs zsPGfoTAO2~qVpz}3V9%YqYGxhABwV{h8fmk=O@7~4qVXLGc*obJ|618?RV?cxbO)E zes{QE?S8?BoT>o3q-G@ZFjDurUm4itcV6Q6l z+gFDJw9}`p)e3meu3m`So6D*y9}3k;FD*ADrN|0OF*9jW>Q{eT!Qa=`E}Os}rBLuq zHH7FBGXau_eR&?(RpzvNkiyss1MKok+w!aue$5jvQ?o5S@no?bdyUE;vyB?J9j=?Z zYaNK1T^m&PPIu-1B1aXit7kOP>PkOtc7f;2BG0tp-_i)WP1}52{>P4;oQChz+1gAr zuyY4~Qd^@Q5qvIC9h>m)783ocwo7;Fv*9TF_-E95uoFGZz^`>CjQ4IB2x=WPDbide zKWXNS>=`@0XY2-Bjc<3r1pB%g>YQ9FMt0X&1})+pu6Tt;aR!``rzvmiruoe?wDYVt zrVd;+oZj=Bt7+$0ZS4#J)|5nBub~|>Gdp0{89u-03{T&%nxJ6YXuF)G;MyO@iAi75lmI5_nfnuMFJFsbq0g*CASvKUpMya>%(j1N^9fo#sHK z{!bNyREYb5VNV;{%ZBe;nzfNsq z&*H%n`?gCFyB5}`z;k93&j*yQEqZ{oz{JvNVRF>;f29fd9w`kw*@2&ODmjhc)1gs2 zbP8-^) zH$$5Qy$*_1ZEcpTj*g|^hw^8|)9zWES@X2XMev;2EbvVGb`4efUq2y^Qb&BCL*m3R zn!)XdR=cLQg5cnu(laBiAZ$&B5rNNfqZ3ml4$_nr zODCpEagHc|Nyk!GVT#)Rzo@Cm` z?Jl|7!nji-OLtrk>^&Yg1OD8pUV82cr!wI0oJtZNu1?%h+s^dC-T`856aX*(fFXO= z216hv=qPg9d|qd4huwRZP64NA+hN%|Qmjpdz%3?q96E;V?I_j^fy^)+!;VwL$o=+*2FE&IoeBhMb{*>=z~rR*rOZ%zt$tP znhLgO(zt|eGOl6aoLe9_vsoZFvxyudEWZY7+|f%GA)T8KQI~TDbh?Q>P6F#DAT8?{ z#<_IZdlmWB51bDpHM|+_9b5Jo@ryk8$$Xkxpex=;_D}I~UIw1wR7Q%wR*HDD|AcsZ zUkdoNQyEQJPEEp_{Z+-AH*ig-lGE-yrA29nI_>_V1So56x1nU|tld zI-;aQul_gtn9Qln(5F+JPTP`fC{E!yMvRNq3+>Y+mMeN(e4QL_3y$whXXhs(Z3FiZZIT@tQSb&InXshEvmLLCB`X(u)QCJvMU7fIa$C7z!BcSM z$8EISKX~PbUBxfp8E`eHddYZWr!wHCP9;}<+RRGr|Hfq;IX*xtSyOoO?EC7X>|sE z-KpeCaJ>!@aCm9ERva$2DNZW3vZT^77Z{~0gy;2ak};59VW{`s%D3pMgC94`wua#T z^3^bmfd6zV8Ab?^K)We%28Hb_@SNE!@Jt)MuF@f9-oS5(qZK)~n+mX?LZG#iH?fY? zb%6rTcd8bPTLt66fHrxy%YZtGw#itmuwclouO!T9W;6CIx@=HXLgxc_t)w>TV8(Bj zx4I7es#7(Twv%E(ArK;gcJuI~cM98#=a)TR8Q3K@vsoaPjvFqm(5CUxX(;Q*usCYCmxCi4U^Z#oV< zGtRj<{n*dG4HUZ-d_gGoYPT=;D{ORu=gcOaqjsgyQ-I`N*ywMnNOx$vj6G_fGjdBF z@GUO6wY7~7$EAqX?7@9cERl0V`BD0IyK(Hwe@1g*p82^QI~IM_^eSBx?$$Ox-+3f{ zwi;V>@xt#X{(+Z&{`V=l*~tw&$*JU`fDj3^n;d6Q*#8BdGn;sZh`m6XQ`rB6_lLy! zwf}OZeUG;0xrhsn*fTF-{IWw)S@F9@5j$%F_HOnv)`6tfF(kwoeX!qQ*<05??ymv) z^uA*l4=S=DNV^+|fooyk6nM_`r5eHQ%}!vKSUMq1Qr=TM|2lAq-8(tkD_dg(NABTN z+#ZCEa-kaV0jK&9>T~VBy9D0|)cZ-ezJ-S?6K+Kp>L*;tyFV71q2$i;Bs1Vh7pkU0 z$veTc^7laq__k9?J1E2<9xDT0;8fpLg4C+uRcbQCE1#rdx1vP}x#2&&bkRPWMB#ES zt{dI;wr80E>Ar$2M{5A>b% zO|#zv8wozun^^_YTzf)D;|^9MbI&`~j}L2`b3?UzOV70o4DIfx-4_KbTJ-PUqJAJ5 zTf81{NVQy$Y7c48+TS~FesXE1k3wP<5(|T;0({(a9VFKnXch`P0{eZCMiuUmY@72y_=HHxkrUp+_%$?oI6kW z>)P4}_}>$J*v%%kR@krO@*!>WMbNqGF1oE~VN{gHT%|!ewwwiaXLhE-|JXCDlEqre z!hUmoSnJo?c}!cA8?MYY)7HNF2;9P{I&hLG`_g{1#ZLMEVedP@q$-xS4@*`ARLrO= zNmRrI446?A6Y9+F%(B1+7Iq0rSl9(Yfknl5^_nn;<(jj2O{kdj6*K09Sy8W;v;5Vk z-?w_Ed*%WczyG`6|9|tq*4x$9)z#J2U471+nNhitI>4FA3XWf)%Zi%5gxxe&)@cb$ zoUW#(CO|1W5vkCx;WO=AZG&`QND(p`dH5ZsDXHY+eZ9$~`pyp(}u5q6ryjl&f zpu3%;DmWGfM2_o}CG6Je_PgiC$<(lxJYV0hoB5C!LR9orN0 zhxyqatBM@%1h&Q~BFDM0{9HKs3sAXVIbR+C?b+&>s0(>qwQ{Fd>-u;0vyWsc&dJld z(UcQ%ZX|JC+sFb}kfd0;ntqPueD{rkUMiJ4ZG==Q?G`jP!wfk6$sGE_n}FPh_lBFz zCc-^$EzM@~{Vl-jXo^S>azB*4hHy$oOJe3j2~k2fDW!z;r?G>Wo1UC!2|2cS>@3ic zB1g#Bjpcmba-82~j6Ihf`Pwlwn@4R|G_k-`B}afZR7|(X#zp;14{_U15s8ei9G~sJ z1vWme%OP0kjBCcO%m)?HlR2K}Vk<`e8m$K3Q-8z2IKWji=_a(g1ytsf@I7TEJ`8jx zINWZ!7y~DT7L~D;b5ihD!=;`@COT=78(S*W6r`5Vurm7SK++tpQ&bu%Dy4O9^G{b` z%`*c_KIo4u#cV6C<0j7?UZew!eOcR|HkA)vlEX-rJ80aATox+! zBY_z%q2msYxf$u~3Feh3a3B@A?#t;KZj7?G64J7GZ)L&lk*l@`za7k3F5CSPbEZGn z9Wzb1tvVsGJ)nz+9BDp?;?SZpI>E(95XEdoGfWf{yZ%c;O~EBI$L3o7XGZY^Yy_Nn z34{5XDl>A!{NNCtqoqr-87;$%>bI07$mGoIB`iYbt~E+z?D7)b_o@iF5ORDvkgc4^ zFdFJs$S^;w=X(bd6GXkSTobx%lS6S39;>J9;1Shanzn_8eL&ZV`ZPv;x-~{!y3LZ` zlOp>NS3S9La$}!vwwj$X`+KeZq4*A1&m5%YwU7{**P@G@+2n5%4cZ?)Hjie{YGT2S zx6=1qE?qQl6nqlv@{L;Vg>1$_k?rMpKv=2n4Q^0T(N7u_N!mLfgURvsxZld0q-RE* zW#9K3yBdE8?6JLeQ%*=FG6Y6GCo9LH=WryrD?#OKvcP;)tJU-{%%4vrBNu;UEI>uu=$N>w%Z{DtKo=}S z{m7tNdP;&PY^5RQ?mm?JHwbb>-FDuwPE8Jb2<+mKa5w0XXCVzIu7GhvQK zVOJO}&5s1E7@``l1pM5wdc(>W)!JYiE`qNP12qm^g7JO^Do3jDH$Ps%@HjTHlaOQk z4;m(|<&-v$rY?8$>*ybbVI$J!EpAE^GXr2nr_|5y5( zT@J$@&1Kl5YS>z8SZQcjDGmEZ4J!?;K%KLNR=f^Rn2S_sM!PHhA#immbvsuFBWeK!tw7`3L+e9qV^DKv{tHjNSpb7EUrEqh z-;hX`F^D9h{(qjh@z}1u0yV!+LHxDb$_P0Fa&RW(>M||EcuF#OhUi*KP6BLDR*LWv zWep>Ai!ewJlVRY+&QQX;l$E##@I%M)ZI@(E(-$GG%>JF<&NJ1{z$ki@mKeVfI}_A> zn`(c_(1avS$nYLrw18#G;-T35tr<*mgumnswc+prl>QX|Nfrk<@6H7xv z4nv+mAs&T|8nLiQ=dv=iv@-O5WoT(-XlZ3=X=P|>khpzITStxd z`}AlnBQXAn3>GrNF&x6sa0o+vdt+^(#Y01jgXXN)~u-uIZ%`FMd4UPh}FlM0|ReCe_I2Vkiw7>-;WZdEAO0SjKd`e+312#S$ zJObvEpt;gMoyb}K-)R>|%N+k{)6U(zH>TaBJ>nt_g%qJ%P{}Z4bL_}T2II3DvdNDD z-S(Sed_JxDc^D!0T*>t=#w@x4E9+%Y$^C>sC@b+ZU{@VYA~Ze0)z+YSJ;k`pVdn#C zXJ8Z^N=uAGiJb}Ry)CrAWN1Q?CS-Vzu5u;>=LnkMCaWSGaRs|`tGj}e84JAEAUDp! z(^Dz8V$QipaT<6S5*DZ3op^%%K8FoIMWGFqp$(Ox4V9q{m7xv6>A<%^(**6{xijA( zG&F8lXxy+)SoU;KtSvMzI26*nr!h_LC_v5z*hge*4^1fvO(~(DI_OSR;#()WLfeA8 z|1nPDE?UY*V~)9E<#@^N*oUzEm0Iq#GTXpRZ1u-xr1-4^C(2VOzA}1@^Y_0KDjr(3 z3FS_B3ntbiAmUr~vMWXCuEdgI{= zR94~;z>6G>gI)1z>NJQ7qk zn#b{G#B-o>{4T;Bq(Pvjr62T-p0x#0V;kDZ9_1^NC!wQrw8OF<=;#1YbF+8^@DXZ6 z@@~Kf9E{ z#S!N4X4tAEYy}@UZ!X2Yn8v+I`4|A<=rLAIy!q2?*TSN( zT`EVr*H)ojGDo{`_WHv<3Y*y*h@H3$R16KjzWf+8Yy|bcuGxI;o%y(@W;*iD|eXd<5~q+Y*q z(bPLl7E#|0(AQF)+mJ6VWN|08BryPRkYf=Zq%64H^-_T<+S4)Ho*dt*#1==QWov6u z*EVEK*4`3y*l~_Uc!IJ5o6dmiIR$dlEBsnV3f%x<^GQeITfviE_Hn>h9Lo*fqH0vJ zJM&p~KR|MQzMbu6s_HbGb=J5_6Lwct5HnOn17vZ(Hk+y#qA_!2rnfQKU|x$py@LU` z8ehk|STR3<%DLqLjHpCMh8*nLhOH7|t01AVRmL)ZZ8qBtMQ`y)=?lhX&f)v&+#r3O zuEtmFYTV!~IvWnT0MvYTmw3K&7U5OO3Wi;SDh}Ix;|O;pj@s~i+j4y~33WAUcWJ8X zuhW$#+(%hK)KL+QiaktKv})Do!dK_~>g#kh{&-!DKNm}ojhbWB@*NNI_2&7c-lVjV zV&MZYWm6zrrmSEO+8uPK#2zOIfS=$k|Qyv4%&k(_hb{)j@S(^Mdhcci-R4K$~l&J6>>B=mwQIGT0GkyWZXPQT6Y`6A!^GoLb@YvOq*T! z2KVQx!Knc?Px{J%pmP%$N1#G3j0qxQiODT9Kc-WrC9dzHaB6nkv0-yIXdMnI5B2+2{+OwXS?vRh(2St zvaPXG_8=@@zp#AmIrc+ew+T=xKLsN)JmTBIlQl``Y$y$FC=G20?vaHy^idlgQXBd- z5r3e(qNZoz%?z(TI@|9v*LO~AQ60svE}-T|@%nbFm#+aQ=RMTOT_VC2V99T^MZ|9S zNe=%hT_-`_X1A_YMc69XMh-*2v(==;v4G1Ri;C{l?h|&5?(cz+ZU8k?dkpY3swp^4 zv)M-~GL(>RFfQpo%J%d!sCbU>E3k|h?aXk~o;Y1pf=Wwgv_Ymz z;JY1*oG(>LijaGKyy?(egRnixjz!4rKbGU9WE}m%&52%M53!(iJ9JM5z!-l`q;X(E0}dGeMF;&hrj6+b$g1^O%3wsRU9 zT%~~?gyYqyy2FVOI?Z7?w#N!v57cdFL^Y-oGI zl!a}@;q8ZP!IPZf@gV2oZO116;>yVRv*FujFN1ySEZ4Ws za(xRe*SFDfeJd^3x6^W0W~pp=uj%zO-54`{J7cDAX3X@hjG4ZXG1Ip(X0FUcclW_} zsH^dfbv3@luEsap)%do%8h-$;#vjFLNaVS~mG|yVDA974al`QPb;;Dq7yi;4)MmN9 zKFeL1b@4>_3S*|PFXxo`20FL+I$e#g*wy&PJ`7j#4T{`DqSRB67DE>`vhV_!aub#C z6=emPsByG4;e1dzC=lKbmVCKdV-pL{I=Pnt+q*NBKb)_ytFNuCg1a>o`3|Dyp&;Vl zG$|w%s-|El$D`_EP`U1G(`u@`p+N?1Z;OilorB%&R8L1Mh*HHBsBfbx$hi(R=Bf$s z9>*fQPg%jHKMxs{!6Kj3Ht&`d1~yXg4m7}ztQ4|*FZg1~^MFeo%b%h;%-%IRi|ISY zTA_zP<*rr7BP?qZP+`qG(y}fD6;?joSE%k3b>FADQ`EhI>Q05agF7Qrp|ig#Do+Cr zcdVlUPjaj?0Ph=T&6Ni!zXV+FSTyPxHLAQE1Fh8ommdLmwqu2+dGFc#yJ!5t^19?Kme!I6+xyI)bA%Er}n|VJ8UbksQu3E$OH~v}HMAfjUfshCVbc ziC#Md(#y9q)! zAtmf-ntHm#SDxcK$QP0QdvGuq3Y`zt#z^AJw7Uf1mC6d1;ghI(M@15ZOLYQEIOU9d zv70_WL#H9wzUd1(!dQ7Zlv1PNF=D9Q@VI)Y-thcs;1rF5PBZPqN2&1%!Y7qgO2{Fa zmb8dg$eZpQBaJa)#563&d-L7V(ROOrw1~K$8j&RIudE<#`JLqq1`18aOc+-YPuJN= z5YARs5DbM_c)Pg;NJv-6%yZ=2&2j|s$xv`QXn{NwKzyz$FDAT5S%C-U!`jE3)r7w& ztF+5_8ygpZ=9m;JdPrNP2wzrK`B*5pR22m~^kPVVsI3x&YiX+zTC|U2QTGgGB?!+{ zRtcfAAn*wX{)e-GaD}ph`yCvm6B$AyX<4%fPmjBm##Zc8JR7zO`tn8OsQUcuU>EbH zas<+RIOb_}P`d8~YhCq3OQqF0fNxGx)>1$@sX8;kU{v zJ=YtzxT|%Y9a&FMVG-`2tYFWa3|p@Qm7^}<xD$3% zsWcsNr?L{^XadveX4)IOnT6lftWrXnCpHi|8%jePa(UDbBig{2ltU#Ix!EcYXRDm! zb5j%S)YQ!(nRtH$!}>;tm*Vi;SW;BZ`Ijr-l^Gsy6~5^)(>Fe5vIm+UGyOieytme6 zo*?Y4tQ6r+$|@$@Ls==peUw#9I1ntp#lZ5R;JddN$eFB4QiL3(3}kL2H=%Ew+zC_c z=(xGWa@=7S=}se!^Lc?i$W|WeFY)z@l&?KU4xopr+k}X(-0-OVW{kq{h+hX!mIWaP zDO*TrM35~*Bl_epqK_K!u^Q2*iFloQ>o#N9ICyggXhC#TL`=)fn-jiix!$li13K7F z2FYeOph{T&l--D`yPOCir#jbLY6CHd13=w-800ilg+mFq1k2n%C*DuRl7zL&!VNEH zGrM&n!B#R27F`W0W4;csqbg3YuVTk?y;xL-R+oU9`MLu5InW#*%_y8~o8JK{Z;%o` z2bLNCcfcEHNDgI(E!C!>g!GnaNz(evw05F-^4-T9Z-GbgNzT|d5G|H zWu*weQC2bG&&o;>{-La5!U#J(cQ=;T0^jX!(M7c$U(~P z78()kZlMuT$3>c2X-hy^N-Fz_LAG5F9>3rw?U2=k&^O$U`~guhi+492d=%&j-?C+K}TTgKxpJ zuDkM@>2`QiobQeWq+7)+^eo+K9EEA8TZKi>(yhXxXPuqpp`GQvhq*fF9$8cy6F;UQ zTM@bn?>{+xhhfCiKt)pv`mPcqFg(}7BEOydR?};d-!R9cWe1}ldfNOr6uP0qa{Nls zKAx5Gur^!K$Q;jaH=@-UpgF$6?}$Kgf{NFMS#ta&bbSr?{V^d>G>nQ|t75-ZC=w(L zI%*V_v#gv2jTa#(9|euQ&jKSgmaM{(U|_~fdiq%%Vj1C9Sk|$eAFnafkJy;$$85~> zN1J0P3v&%+X_R9q3mbC`Wnm+Sl41A4#vFDpY|LTz!p0nShre`}!`qKW?3j+rkud%7 zN?=pfwU{__Anw<#UcL&C9L}By`vVphd*yJ2)?G^K{qzC zP_I*xAiPjn!~N-wn}!n}>{+zzbKM`ymcgDQER)G~i{l&tqPA=>*mCsY`MS5&OypO7%+PsMc_AT$P z5LRc(t*it2)t>q`@-y>WbnDZ3m(7~k*TK-Sj=V$Nr$K%cs6l=dsB;s$;NUvM)$)@- zQr)Ms2(W@ScAGOZ zVxgi}9E*ysP({J|VXN2B%IpOn0Dlo`;@FHBYL)Z^+SN5X1Q5?i$hWK|PX%k9liCpG z?dr@N3V6I@K|UZGfMZM|rho010Zx_A1(9>GcAKDacRN-tZ_qQ&8;P&bVuf}+H6q?X zElzM;oCZ1f6aFhdE`WwRR8z3;Qsf;KDZabF8uJ{e&NGC2DyxjJT3KnrI%Sm-o~5ib;ibwdC45L(X~JifRYv%YveF9O^fUw9 zKw0Un0Q))?;Q`7jD*>!1$hAeL3FgW-E&3*cT|`6bG9CMgE1BB5wq_ z)^_(mCQKt2LS`KuQ~9QVT^-B!-{oj^4`@Nu(2IBpcyjZIa5-4bqZy4&Ed1i+{2p7$ zHN#AK;G7oh;w&L7R@QLBiC{I4j%jRS;W#IE5ulsC;6xaXtEh?NdPMC_KLN<`$&D$( z-<=dkMUzdq5)V|f(t`jw47pQIc!HCn@mGUolo7iD1*xk7=8OZ4zvp)X3a6{B<%A4} zSk9kyDr5V0vclW+@7AWjdp1LAo{a6sH+}&$E(XnUUJOOTq#kGq7Vp2ICEou$gYWQq%C*2d zwziG-1C=omR)HnIF4Wk>!ZA+H>n)dV!3?E*uI@)85>}A5**8+l|#)Fg}&1HFya<9COC0~B0+TcBDv=E zdGzps_7p5yihQpk!6jiRQcUUZaiyK(=6%>Ih~7`oC$;4oLMSsmqWqKEd(~5b&Y&va z?Q{ZLOCIS-?3x7*3Jqu|Vzc|zfCLTr*0Fp8nxkrtic}Du4AwgGL8>}QNL{+NnAf6n z6WM2Ji(*38bp^ZrTBU;9wd{J3ij)wRC~Fv@(_KQ{OH`^P->`O6kxIgOV6~DAJ6m$> zO(@^(MDuAYRFUE}(AElC_Ec@8aUZ~xWBHosD7H5H z5wU9)I59M!p@_|TXm1G`Q0!Q~0i)r9Pjx!V373Oq_aiwT+x>{_pS49Xq3gPwUDJ*7 z&UL=7Z&pPmg!d|ID529`66y~2BM$2lRa8Ov8(6L6r+&>3jBfzvY^6>Lc1~(LS+y0f zfwpnba+PWuPRPN^enj{Rq~iUEg^ktLGD2tm@X$ZO;+O*k s`;W}&EiOO*&nysGE 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 Date: Fri, 24 Apr 2015 16:48:09 -0400 Subject: [PATCH 092/536] Fixed some compilation problems introduced in 2.4.1b. Added Mac executable. --- SharedMemory.cpp | 7 ++++++- Transcriptome_quantAlign.cpp | 3 ++- VERSION | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 6c47c3e..d5354ca 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -11,6 +11,11 @@ #include #include +#ifdef COMPILE_FOR_MAC + //some Mac's idiosyncrasies: standard SHM libraries are very old and missing some definitions + #define SHM_NORESERVE 0 +#endif + using namespace std; SharedMemory::SharedMemory(key_t key, bool unloadLast): _key(key), _counterKey(key+1), _unloadLast(unloadLast), _err(&cerr) @@ -282,4 +287,4 @@ int SharedMemory::SharedObjectsUseCount() } else return -1; -} \ No newline at end of file +} diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index d28b9ad..4667ca9 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -64,7 +64,8 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui for (uint32 iex=0; iex Date: Wed, 29 Apr 2015 19:23:45 -0400 Subject: [PATCH 093/536] Fixed yet another inconistent error message for --sjdbOverhang. Added STAR long pre-compiled executables. Fixed some bugs in STARlong mapping algorithm. Added --runDirPerm option for permissions of run-time directories. --- BAMoutput.cpp | 2 +- Genome.cpp | 17 +++++++++++++---- Makefile | 14 +++++++------- Parameters.cpp | 27 ++++++++++++++++++++++----- Parameters.h | 4 +++- ReadAlign.cpp | 16 ++++++++-------- ReadAlign_stitchWindowSeeds.cpp | 18 +++++++++++++++++- VERSION | 2 +- parametersDefault | 4 ++++ sjdbBuildIndex.cpp | 5 +++++ 10 files changed, 81 insertions(+), 28 deletions(-) diff --git a/BAMoutput.cpp b/BAMoutput.cpp index 88156be..c5244a9 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -16,7 +16,7 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate ba bamDir=tmpDir+to_string((uint) iChunk);//local directory for this thread (iChunk) - mkdir(bamDir.c_str(),S_IRWXU); + mkdir(bamDir.c_str(),P->runDirPerm); binStart=new char* [nBins]; binBytes=new uint64 [nBins]; binStream=new ofstream* [nBins]; diff --git a/Genome.cpp b/Genome.cpp index e52e55c..400376f 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -9,6 +9,7 @@ #include #include #include +#include //addresses with respect to shmStart of several genome values #define SHM_sizeG 0 @@ -112,8 +113,16 @@ void Genome::genomeLoad(){//allocate and load Genome exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; - if ( (P->sjdbInsert.pass1 || P->sjdbInsert.pass2) && P1->sjdbOverhang>0 && P1->sjdbInsert.save=="") - {//if sjdbInsert, and old genome had junctions, it should be re-generated with new STAR + //check if sjdbInfo.txt exists => genome was generated with junctions + bool sjdbInfoExists=false; + struct stat sjdb1; + if ( stat( (P->genomeDir+"/sjdbInfo.txt").c_str(), &sjdb1) == 0 ) + {//file exists + sjdbInfoExists=true; + }; + + if ( P->sjdbInsert.yes && sjdbInfoExists && P1->sjdbInsert.save=="") + {//if sjdbInsert, and genome had junctions, and genome is old - it should be re-generated with new STAR ostringstream errOut; errOut << "EXITING because of FATAL ERROR: old Genome is INCOMPATIBLE with on the fly junction insertion\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; @@ -127,8 +136,8 @@ void Genome::genomeLoad(){//allocate and load Genome if (P->sjdbOverhang==0) {//sjdbOverhang may be defined at the genome generation step P->sjdbOverhang=P1->sjdbOverhang; - } else if (P1->sjdbOverhang>0 && P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang!=P1->sjdbOverhang) - {//if sjdbOverhang was defined at the genome geneation step,the mapping step value has to agree with it + } else if (sjdbInfoExists && P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang!=P1->sjdbOverhang) + {//if sjdbOverhang was defined at the genome generation step,the mapping step value has to agree with it ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: present --sjdbOverhang="<sjdbOverhang << " is not equal to the value at the genome generation step ="<< P1->sjdbOverhang << "\n"; errOut << "SOLUTION: \n" < (-1, -1, "runMode", &runMode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "runThreadN", &runThreadN)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "runDirPerm", &runDirPermIn)); + //genome parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeDir", &genomeDir)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeLoad", &genomeLoad)); @@ -383,6 +384,22 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ////////////////////////////////////////////////////// Calculate and check parameters iReadAll=0; + + if (runDirPermIn=="User_RWX") + { + runDirPerm=S_IRWXU; + } else if (runDirPermIn=="All_RWX") + { +// umask(0); //this should be defined by the user! + runDirPerm= S_IRWXU | S_IRWXG | S_IRWXO; + } else + { + ostringstream errOut; + errOut << "EXITING because of FATAL INPUT ERROR: unrecognized option in --runDirPerm=" << runDirPerm << "\n"; + errOut << "SOLUTION: use one of the allowed values of --runDirPerm : 'User_RWX' or 'All_RWX' \n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (outTmpDir=="-") { outFileTmp=outFileNamePrefix +"_STARtmp/"; sysRemoveDir (outFileTmp); @@ -390,7 +407,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outFileTmp=outTmpDir; }; - if (mkdir (outFileTmp.c_str(),S_IRWXU)!=0) { + if (mkdir (outFileTmp.c_str(),runDirPerm)!=0) { ostringstream errOut; errOut <<"EXITING because of fatal ERROR: could not make temporary directory: "<< outFileTmp<<"\n"; errOut <<"SOLUTION: (i) please check the path and writing permissions \n (ii) if you specified --outTmpDir, and this directory exists - please remove it before running STAR\n"< parametersFiles; diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 25c14da..76018b6 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -39,14 +39,14 @@ ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *Tr #ifdef COMPILE_FOR_LONG_READS swWinCov = new uint[P->alignWindowsPerReadNmax]; - if (P->swMode==1) { - swWinGleft = new uint[P->alignWindowsPerReadNmax]; - swWinGright = new uint[P->alignWindowsPerReadNmax]; - swWinRleft = new uint[P->alignWindowsPerReadNmax]; - swWinRright = new uint[P->alignWindowsPerReadNmax]; - P->swHsize=5000000000LLU; - swT = new char [P->swHsize]; - }; +// if (P->swMode==1) { +// swWinGleft = new uint[P->alignWindowsPerReadNmax]; +// swWinGright = new uint[P->alignWindowsPerReadNmax]; +// swWinRleft = new uint[P->alignWindowsPerReadNmax]; +// swWinRright = new uint[P->alignWindowsPerReadNmax]; +// P->swHsize=5000000000LLU; +// swT = new char [P->swHsize]; +// }; scoreSeedToSeed = new intScore [P->seedPerWindowNmax*(P->seedPerWindowNmax+1)/2]; scoreSeedBest = new intScore [P->seedPerWindowNmax]; diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 8e8ed3f..e6b8b74 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -22,6 +22,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* trA1.exons[0][EX_G] = WA[iW][iS2][WA_gStart]; trA1.exons[0][EX_L] = WA[iW][iS2][WA_Length]; trA1.exons[0][EX_iFrag]=WA[iW][iS2][WA_iFrag]; + trA1.exons[0][EX_sjA]=WA[iW][iS2][WA_sjA]; score2=\ stitchAlignToTranscript(WA[iW][iS2][WA_rStart]+WA[iW][iS2][WA_Length]-1, WA[iW][iS2][WA_gStart]+WA[iW][iS2][WA_Length]-1,\ WA[iW][iS1][WA_rStart], WA[iW][iS1][WA_gStart], WA[iW][iS1][WA_Length], WA[iW][iS1][WA_iFrag], WA[iW][iS1][WA_sjA], \ @@ -90,7 +91,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* trA.exons[0][EX_G] = trA.gStart = WA[iW][iS1][WA_gStart]; trA.exons[0][EX_L] = WA[iW][iS1][WA_Length]; trA.exons[0][EX_iFrag]=WA[iW][iS1][WA_iFrag]; - + trA.exons[0][EX_sjA]=WA[iW][iS1][WA_sjA]; + trA.nExons=1; }; @@ -190,6 +192,20 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* trA.maxScore = max(0,trA.maxScore); }; + //filter strand consistency + trA.sjMotifStrand=0; + uint sjN=0; + for (uint iex=0;iex=0) sjN++; + if (trA.sjStr[iex]>0) {//only these sjs have defined strand + if (trA.sjMotifStrand==0) { + trA.sjMotifStrand=trA.sjStr[iex]; + } else if (trA.sjMotifStrand != trA.sjStr[iex]) {//inconsistent strand + return; //kill this transcript + }; + }; + }; + // if (P->outFilterIntronMotifs=="KeepCanonical" && (trA.intronMotifs[0]>0 || (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0) ) ) {//keep only conistent canonical introns // return; // }; diff --git a/VERSION b/VERSION index d8a24b2..4f93f52 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.1c" +#define STAR_VERSION "STAR_2.4.1c_modified" diff --git a/parametersDefault b/parametersDefault index e547e0f..a923381 100644 --- a/parametersDefault +++ b/parametersDefault @@ -24,6 +24,10 @@ runMode alignReads runThreadN 1 int: number of threads to run STAR +runDirPerm User_RWX + string: permissions for the directories created at the run-time. + User_RWX ... user-read/write/execute + All_RWX ... all-read/write/execute (same as chmod 777) ### Genome Parameters diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index c1344af..def6d2c 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -59,6 +59,11 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr #define SPACER_CHAR GENOME_spacingChar + if (P->sjdbN==0) + {//no junctions to insert + return; + }; + time_t rawtime; time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting junctions into the genome indices" < Date: Thu, 7 May 2015 16:28:41 -0700 Subject: [PATCH 094/536] More detailed forking error msg --- Parameters_openReadsFiles.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index 7045143..6f24514 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -74,10 +74,13 @@ void Parameters::openReadsFiles() { readFilesCommandPID[imate]=0; + ostringstream errOut; pid_t PID=fork(); switch (PID) { case -1: - exitWithError("EXITING: because of fatal EXECUTION error: someting went wrong with forking readFilesCommand", std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + errOut << "EXITING: because of fatal EXECUTION error: Failed forking readFilesCommand\n"; + errOut << errno << ": " << strerror(errno) << "\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); break; case 0: From 7571b3d1d9481fe8bc00a44f65664e7dd5ba3021 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 19 May 2015 11:42:47 -0400 Subject: [PATCH 095/536] Fixed a bug causing seg-faults when shared memory options in --genomeLoad are used with --outStd SAM. Fixed a bug causing seg-faults for small values of --limitIObufferSize. Fixed --outFilter BySJout filtering for STARlong. --- Parameters.cpp | 8 ++++++++ ReadAlign_stitchWindowSeeds.cpp | 13 +++++++++++++ STAR.cpp | 3 ++- outputSJ.cpp | 2 +- stitchWindowAligns.cpp | 1 - 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 3e07c22..96815fe 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -686,6 +686,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters // in/out buffers #define BUFFER_InSizeFraction 0.5 + if (limitIObufferSizelogMain, EXIT_CODE_PARAMETER, *this); + }; chunkInSizeBytesArray=(uint) int((limitIObufferSize-limitOutSJcollapsed*Junction::dataSize)*BUFFER_InSizeFraction)/2; chunkOutBAMsizeBytes= (uint) int((1.0/BUFFER_InSizeFraction-1.0)*chunkInSizeBytesArray*2.0); chunkInSizeBytes=chunkInSizeBytesArray-2*(DEF_readSeqLengthMax+1)-2*DEF_readNameLengthMax;//to prevent overflow diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index e6b8b74..dd35275 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -5,6 +5,7 @@ #include "stitchAlignToTranscript.h" #include "extendAlign.h" #include +#include "binarySearch2.h" void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G) {//stitches all seeds in one window: iW @@ -27,6 +28,18 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* stitchAlignToTranscript(WA[iW][iS2][WA_rStart]+WA[iW][iS2][WA_Length]-1, WA[iW][iS2][WA_gStart]+WA[iW][iS2][WA_Length]-1,\ WA[iW][iS1][WA_rStart], WA[iW][iS1][WA_gStart], WA[iW][iS1][WA_Length], WA[iW][iS1][WA_iFrag], WA[iW][iS1][WA_sjA], \ P, R, Q, G, &trA1, outFilterMismatchNmaxTotal); + + if (P->outFilterBySJoutStage==2 && trA1.nExons>1) + {//junctions have to be present in the filtered set P->sjnovel + uint iex=0; + if (trA1.canonSJ[iex]>=0 && trA1.sjAnnot[iex]==0) + { + uint jS=trA1.exons[iex][EX_G]+trA1.exons[iex][EX_L]; + uint jE=trA1.exons[iex+1][EX_G]-1; + if ( binarySearch2(jS,jE,P->sjNovelStart,P->sjNovelEnd,P->sjNovelN) < 0 ) return; + }; + }; + if (score2>0 && score2+scoreSeedBest[iS2] > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2+scoreSeedBest[iS2]; scoreSeedBestMM[iS1]=trA1.nMM; diff --git a/STAR.cpp b/STAR.cpp index 026c0eb..c489e7a 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -284,7 +284,6 @@ int main(int argInN, char* argIn[]) { }; //no need for genome anymore, free the memory -// mainGenome.~Genome(); //need explicit call because of the delete P->inOut below mainGenome.freeMemory(); if (P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files @@ -387,6 +386,8 @@ int main(int argInN, char* argIn[]) { sysRemoveDir (P->outFileTmp); P->closeReadsFiles();//this will kill the readFilesCommand processes if necessary + mainGenome.~Genome(); //need explicit call because of the 'delete P->inOut' below, which will destroy P->inOut->logStdOut + delete P->inOut; //to close files delete P; diff --git a/outputSJ.cpp b/outputSJ.cpp index f81923c..9c38018 100644 --- a/outputSJ.cpp +++ b/outputSJ.cpp @@ -67,7 +67,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr && *oneSJ.overhangRight >= (uint) P->outSJfilterOverhangMin[(*oneSJ.motif+1)/2] \ && ( (*oneSJ.countMultiple+*oneSJ.countUnique)>P->outSJfilterIntronMaxVsReadN.size() || *oneSJ.gap<=(uint) P->outSJfilterIntronMaxVsReadN[*oneSJ.countMultiple+*oneSJ.countUnique-1]) ); - if (sjFilter || P->outFilterBySJoutStage==2) {//record the junction in all SJ + if (sjFilter) {//record the junction in all SJ memcpy(allSJ.data+allSJ.N*oneSJ.dataSize,sjChunks[icOut],oneSJ.dataSize); allSJ.N++; if (allSJ.N == P->limitOutSJcollapsed*OUTSJ_limitScale ) { diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 1d64683..75f0e78 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -181,7 +181,6 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( binarySearch2(jS,jE,P->sjNovelStart,P->sjNovelEnd,P->sjNovelN) < 0 ) return; }; }; - }; if ( trA.exons[0][EX_iFrag]!=trA.exons[trA.nExons-1][EX_iFrag] ) {//check for correct overlap between mates From fecd2bd06b4bc2a2c47ee9eed2c14f7fb80800ae Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 19 May 2015 17:12:16 -0400 Subject: [PATCH 096/536] Fixed problems with occasional non-adjacent output of multiple alignments into the unsorted BAM file and transcriptome BAM file. --- Genome.cpp | 5 +++-- Parameters.cpp | 13 ++----------- ReadAlign_outputAlignments.cpp | 29 ++++++++++------------------- ReadAlign_quantTranscriptome.cpp | 2 +- VERSION | 2 +- genomeGenerate.cpp | 18 +++++++++++++++--- 6 files changed, 32 insertions(+), 37 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 400376f..37afac2 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -133,9 +133,10 @@ void Genome::genomeLoad(){//allocate and load Genome P->genomeSAindexNbases=P1->genomeSAindexNbases; P->genomeChrBinNbits=P1->genomeChrBinNbits; P->genomeSAsparseD=P1->genomeSAsparseD; - if (P->sjdbOverhang==0) - {//sjdbOverhang may be defined at the genome generation step + if (P->sjdbOverhang==0 || P->parArray.at(P->sjdbOverhang_par)->inputLevel==0) + {//if --sjdbOverhang was not defined by user, or = 0, use sjdbOverhang from the genome generation step P->sjdbOverhang=P1->sjdbOverhang; + P->inOut->logMain << "--sjdbOverhang = " << P->sjdbOverhang << " taken from the generated genome\n"; } else if (sjdbInfoExists && P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang!=P1->sjdbOverhang) {//if sjdbOverhang was defined at the genome generation step,the mapping step value has to agree with it ostringstream errOut; diff --git a/Parameters.cpp b/Parameters.cpp index 96815fe..b517e55 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -913,13 +913,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "SOLUTION: for the 2-pass mode, specify --twopass1readsN > 0. Use a very large number or -1 to map all reads in the 1st pass.\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - if (sjdbOverhang<=0) { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: sjdbOverhang <=0 in the 2-pass mode\n"; - errOut << "SOLUTION: for the 2-pass mode, specify sjdbOverhang>0, ideally readMateLength-1\n"; - exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; + if (genomeLoad!="NoSharedMemory") { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with genomeLoad<<"<inOut->logMain, EXIT_CODE_BUG, *P); }; - for (uint iTr=0;iTroutBAMunsorted || P->outBAMcoord) {//BAM output + if (P->outSAMbool){//SAM output + for (uint iTr=0;iTroutBAMunsorted || P->outBAMcoord) {//BAM output + for (uint iTr=0;iTrchrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate - if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTr); if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; - }; - - if (P->outSAMbool){//SAM output - outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); - }; - -// {//debug: check maxScore -// intScore as=trMult[iTr]->maxScore; -// uint nmm=trMult[iTr]->nMM; -// trMult[iTr]->alignScore(Read1, G, P); -// if (as!=trMult[iTr]->maxScore || nmm!=trMult[iTr]->nMM) { -// cout << readName<<" "<maxScore <<" "<< nmm<<" "<nMM<outSJfilterReads=="All" || nTr==1) { diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 850e2c8..4bbe6a7 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -68,7 +68,7 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript // outBAMbytes1+=bamBytes; alignBAM(alignT[iatr], nAlignT, iatr, 0, (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrderQuant, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate - outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iatr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nAlignT); }; }; diff --git a/VERSION b/VERSION index 4f93f52..2b7c3b4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.1c_modified" +#define STAR_VERSION "STAR_2.4.1d" diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index dccebba..da204f3 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -129,14 +129,26 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta void genomeGenerate(Parameters *P) { //check parameters - if (P->sjdbOverhang==0 && (P->sjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-")) { + if (P->sjdbOverhang<=0 && (P->sjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-")) + { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; - errOut << "you need to specify non-zero --sjdbOverhang\n"; + errOut << "you need to specify >0 --sjdbOverhang\n"; errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } + if (P->sjdbFileChrStartEnd.at(0)=="-" && P->sjdbGTFfile=="-") + { + if (P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang>0) + { + ostringstream errOut; + errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; + errOut << "do not specify >0 --sjdbOverhang\n"; + errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + P->sjdbOverhang=0; }; - //time time_t rawTime; From 8e58a2bdaff12e0b7371fa08be0e83ec8ca5c579 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 29 May 2015 15:56:48 -0400 Subject: [PATCH 097/536] More information about the different SJ motif error. --- OutSJ.cpp | 6 ++++-- VERSION | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/OutSJ.cpp b/OutSJ.cpp index 5280136..121f439 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -92,14 +92,16 @@ void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters* P) {//collapse if (*(isj1P+motifP) != *(isjP+motifP) ) { stringstream errOut; - errOut <<"EXITING becaues of BUG: different motifs for the same junction while collapsing junctions"<inOut->logMain, EXIT_CODE_BUG, *P);\ // *(isj1P+motifP) = *(isjP+motifP) ; }; if (*(isj1P+annotP) < *(isjP+annotP) ) { stringstream errOut; errOut <<"EXITING becaues of BUG: different annotation status for the same junction while collapsing junctions:"\ - <<*(uint*)(isj1P+startP) <<" "<<*(uint32*)(isj1P+gapP) <<" "<inOut->logMain, EXIT_CODE_BUG, *P);\ // *(isj1P+annotP) = *(isjP+annotP) ; diff --git a/VERSION b/VERSION index 2b7c3b4..8b13d5d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.1d" +#define STAR_VERSION "STAR_2.4.1d_modified" From 79667dd6c58da3939d90cd0259c75c1eca21ba10 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 2 Jun 2015 18:42:13 -0400 Subject: [PATCH 098/536] Fixed a bug that caused problems with junction motifs in rare cases. Very few alignments affected, <1 per millions. --- stitchAlignToTranscript.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index c566530..aec7a3f 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -105,7 +105,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst int jR1=1; //junction location in R-space do { // 1. move left, until the score for MM is less than canonical advantage jR1--; - if ( R[rAend+jR1]!=G[gBstart1+jR1] && G[gBstart1+jR1]<4) Score1 -= int(Q[rAend+jR1]); + if ( R[rAend+jR1]!=G[gBstart1+jR1] && G[gBstart1+jR1]<4 && R[rAend+jR1]==G[gAend+jR1]) Score1 -= int(Q[rAend+jR1]); } while ( Score1+P->scoreStitchSJshift >= 0 && int(trA->exons[trA->nExons-1][EX_L]) + jR1 > 1);//>=P->alignSJoverhangMin); //also check that we are still within the exon int maxScore2=-999999; @@ -211,7 +211,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst // trA->shiftSJ[trA->nExons-1][0]=0; // trA->shiftSJ[trA->nExons-1][1]=jjR; }; - } else {//anotated + } else {//annotated jCan=P->sjdbMotif[sjdbInd]; if (P->sjdbMotif[sjdbInd]==0) {//shift to match annotations if (L<=P->sjdbShiftLeft[sjdbInd] || trA->exons[trA->nExons-1][EX_L]<=P->sjdbShiftLeft[sjdbInd]) { From 2bdbc21e6434e3f902922e98a8576bae89cd3c40 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 4 Jun 2015 16:58:18 -0400 Subject: [PATCH 099/536] Error message when shared memory and on the fly junction insertion are used together. Fixed a bug causing unnecessary 1 base soft-clipping in rare cases with sparse suffix array. --- Parameters.cpp | 8 ++++++++ ReadAlign_stitchWindowSeeds.cpp | 2 +- loadGTF.cpp | 6 ++++++ stitchWindowAligns.cpp | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index b517e55..058d355 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -946,6 +946,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters sjdbInsert.yes=true; }; + if (genomeLoad!="NoSharedMemory" && sjdbInsert.yes ) + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: on the fly junction insertion and 2-pass mappng cannot be used with shared memory genome \n" ; + errOut << "SOLUTION: run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_PARAMETER, *this); + }; + if (runMode=="alignReads" && sjdbInsert.yes ) {//run-time genome directory, this is needed for genome files generated on the fly if (sjdbOverhang<=0) { diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index dd35275..f40f406 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -149,7 +149,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* trA1=*trInit;//initialize trA1 uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; - if ( tR2 < Lread-1 \ + if ( tR2 < Lread \ && extendAlign(R, Q, G, tR2, tG2, +1, +1, min(Lread-tR2,P->chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend trA.add(&trA1); trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon diff --git a/loadGTF.cpp b/loadGTF.cpp index ccc551a..a40cfe4 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -64,6 +64,12 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file }; sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line }; + + if (exonN==0) + { + P->inOut->logMain << "WARNING: found no exons in sjdbGTFfile=" << P->sjdbGTFfile < transcriptID, geneID; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 75f0e78..c6a3cd1 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -63,7 +63,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui case 1: //extend at end - if ( tR2+1 Date: Tue, 16 Jun 2015 12:43:09 -0400 Subject: [PATCH 100/536] Finalized counting number of reads per gene. --- Genome.cpp | 4 +- Parameters.cpp | 3 +- Parameters.h | 1 + Parameters_openReadsFiles.cpp | 4 +- Quantifications.cpp | 29 ++++- Quantifications.h | 10 +- ReadAlign_outputAlignments.cpp | 18 ++- STAR.cpp | 12 +- Stats.cpp | 4 +- Stats.h | 2 +- Transcriptome.cpp | 180 ++++++++++++++++++--------- Transcriptome.h | 6 +- Transcriptome_geneCounts.cpp | 14 --- Transcriptome_geneCountsAddAlign.cpp | 76 +++++++---- 14 files changed, 238 insertions(+), 125 deletions(-) delete mode 100644 Transcriptome_geneCounts.cpp diff --git a/Genome.cpp b/Genome.cpp index 37afac2..8f3fcc8 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -133,8 +133,8 @@ void Genome::genomeLoad(){//allocate and load Genome P->genomeSAindexNbases=P1->genomeSAindexNbases; P->genomeChrBinNbits=P1->genomeChrBinNbits; P->genomeSAsparseD=P1->genomeSAsparseD; - if (P->sjdbOverhang==0 || P->parArray.at(P->sjdbOverhang_par)->inputLevel==0) - {//if --sjdbOverhang was not defined by user, or = 0, use sjdbOverhang from the genome generation step + if (P->parArray.at(P->sjdbOverhang_par)->inputLevel==0 && P1->sjdbOverhang>0) + {//if --sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use sjdbOverhang from the genome generation step P->sjdbOverhang=P1->sjdbOverhang; P->inOut->logMain << "--sjdbOverhang = " << P->sjdbOverhang << " taken from the generated genome\n"; } else if (sjdbInfoExists && P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang!=P1->sjdbOverhang) diff --git a/Parameters.cpp b/Parameters.cpp index 058d355..4840a3f 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -266,7 +266,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; // need to be careful since runMode and genomeDir are not Command-Line-Initial -// if (runMode=="genomeGenerate" && outFileNamePrefix=="./") {// for genome generatio, output into genomeDir +// if (runMode=="genomeGenerate" && outFileNamePrefix=="./") {// for genome generation, output into genomeDir // outFileNamePrefix=genomeDir; // }; @@ -877,6 +877,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; } else if (quant.mode.at(ii)=="GeneCounts") { quant.geCount.yes=true; + quant.geCount.outFile=outFileNamePrefix + "ReadsPerGene.out.tab"; } else { ostringstream errOut; errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; diff --git a/Parameters.h b/Parameters.h index 60dd69c..9005e83 100644 --- a/Parameters.h +++ b/Parameters.h @@ -234,6 +234,7 @@ class Parameters { struct { bool yes; + string outFile; } geCount; } quant; diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index 6f24514..e1ae1d8 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -75,10 +75,10 @@ void Parameters::openReadsFiles() { readFilesCommandPID[imate]=0; ostringstream errOut; - pid_t PID=fork(); + pid_t PID=vfork(); switch (PID) { case -1: - errOut << "EXITING: because of fatal EXECUTION error: Failed forking readFilesCommand\n"; + errOut << "EXITING: because of fatal EXECUTION error: Failed vforking readFilesCommand\n"; errOut << errno << ": " << strerror(errno) << "\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); break; diff --git a/Quantifications.cpp b/Quantifications.cpp index 2aa06f0..326a729 100644 --- a/Quantifications.cpp +++ b/Quantifications.cpp @@ -3,12 +3,31 @@ Quantifications::Quantifications (uint32 nGeIn) { geneCounts.nGe=nGeIn; - geneCounts.uStr = new uintQ* [2]; + geneCounts.gCount = new uintQ* [geneCounts.nType]; - for (int istr=0; istr<2; istr++) { - geneCounts.uStr[istr] = new uintQ [geneCounts.nGe]; - for (uint32 ii=0; iiexons[trBest->nExons-1][EX_iFrag]]=true; if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) unmapType=4; - if ( P->quant.trSAM.yes ) { - quantTranscriptome(chunkTr, nTr, trMult, alignTrAll); - }; - if ( P->quant.geCount.yes ) { + if ( P->quant.geCount.yes ) + { chunkTr->geneCountsAddAlign(nTr, trMult); - }; + }; + + if ( P->quant.trSAM.yes ) + {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused + quantTranscriptome(chunkTr, nTr, trMult, alignTrAll); + }; }; }; + + if (unmapType>=0) + { + statsRA.unmappedAll++; + }; if (unmapType>=0 && P->outSAMunmapped=="Within") {//unmapped read, at least one mate if (P->outBAMunsorted || P->outBAMcoord || P->quant.trSAM.yes) {//BAM output diff --git a/STAR.cpp b/STAR.cpp index c489e7a..585cf16 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -286,11 +286,19 @@ int main(int argInN, char* argIn[]) { //no need for genome anymore, free the memory mainGenome.freeMemory(); + if ( P->quant.geCount.yes ) + {//output gene quantifications + for (int ichunk=1; ichunkrunThreadN; ichunk++) + {//sum counts from all chunks into 0th chunk + RAchunk[0]->chunkTr->quants->addQuants(*(RAchunk[ichunk]->chunkTr->quants)); + }; + RAchunk[0]->chunkTr->quantsOutput(); + }; + if (P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files RAchunk[0]->chunkFilesCat(P->inOut->outSAM, P->outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); }; - - + if (P->outBAMcoord) {//sort BAM if needed *P->inOut->logStdOut << timeMonthDayTime() << " ..... Started sorting BAM\n" <sjdbGTFfile=="-" ? P->genomeDir : P->sjdbInsert.outDir; //if GTF file is given at the mapping stage, it's always used for transcript info -if ( P->quant.trSAM.yes ) {//load exon-transcript structures - //load tr and ex info - - ifstream trinfo; - ifstrOpen(trInfoDir+"/transcriptInfo.tab", "ERROR_011001", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P, trinfo); - - trinfo >> nTr; - trS=new uint [nTr]; - trE=new uint [nTr]; - trEmax=new uint [nTr]; - trExI=new uint32 [nTr]; - trExN=new uint16 [nTr]; - trStr=new uint8 [nTr]; - trID.resize(nTr); - - for (uint32 itr=0; itr> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr]; - trStr[itr]=str1; - }; - P->inOut->logMain << "Loaded transcript database, nTr="<quant.trSAM.yes ) {//load exon-transcript structures + //load tr and ex info - trinfo.close(); - - ifstream exinfo; - ifstrOpen(trInfoDir+"/exonInfo.tab", "ERROR_011002", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); - - exinfo >> nEx; - exSE = new uint32 [2*nEx]; - exLenCum = new uint32 [nEx]; - for (uint32 iex=0; iex> exSE[2*iex] >> exSE[2*iex+1] >> exLenCum[iex]; //reading all elements one after another - }; - P->inOut->logMain << "Loaded exon database, nEx="<> nTr; + trS=new uint [nTr]; + trE=new uint [nTr]; + trEmax=new uint [nTr]; + trExI=new uint32 [nTr]; + trExN=new uint16 [nTr]; + trStr=new uint8 [nTr]; + trID.resize(nTr); + + for (uint32 itr=0; itr> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr]; + trStr[itr]=str1; + }; + P->inOut->logMain << "Loaded transcript database, nTr="<> nEx; + exSE = new uint32 [2*nEx]; + exLenCum = new uint32 [nEx]; + for (uint32 iex=0; iex> exSE[2*iex] >> exSE[2*iex+1] >> exLenCum[iex]; //reading all elements one after another + }; + P->inOut->logMain << "Loaded exon database, nEx="<quant.geCount.yes ) {//load exon-gene structures - ifstream exinfo; - ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", "ERROR_011003", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); - exinfo >> exG.nEx; - - exG.s=new uint64[exG.nEx]; - exG.e=new uint64[exG.nEx]; - exG.str=new uint8[exG.nEx]; - exG.g=new uint32[exG.nEx]; - exG.t=new uint32[exG.nEx]; - - for (uint ii=0;ii> exG.s[ii] >> exG.e[ii] >> exG.str[ii] >> exG.g[ii] >> exG.t[ii]; - }; - exinfo.close(); - - ifstream geStream; - ifstrOpen(trInfoDir+"/geneInfo.tab", "ERROR_011004", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, geStream); - geStream >> nGe; - geID.resize(nGe); - for (uint ii=0;ii> geID[ii]; }; - geStream.close(); + + if ( P->quant.geCount.yes ) {//load exon-gene structures + ifstream exinfo; + ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", "ERROR_011003", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); + exinfo >> exG.nEx; -}; + exG.s=new uint64[exG.nEx]; + exG.e=new uint64[exG.nEx]; + exG.eMax=new uint64[exG.nEx]; + exG.str=new uint8[exG.nEx]; + exG.g=new uint32[exG.nEx]; + exG.t=new uint32[exG.nEx]; + + + for (uint ii=0;ii> exG.s[ii] >> exG.e[ii] >> str1 >> exG.g[ii] >> exG.t[ii]; + exG.str[ii] = (uint8) str1; + }; + exinfo.close(); + //calculate eMax + exG.eMax[0]=exG.e[0]; + for (uint iex=1;iex> nGe; + geID.resize(nGe); + for (uint ii=0;ii> geID[ii]; + }; + geStream.close(); + + + }; }; void Transcriptome::quantsAllocate() { @@ -82,3 +95,46 @@ void Transcriptome::quantsAllocate() { quants = new Quantifications (nGe); }; }; + +void Transcriptome::quantsOutput() { + ofstream qOut(P->quant.geCount.outFile); + + qOut << "N_unmapped"; + for (int itype=0; itypegeneCounts.nType; itype++) + { + qOut << "\t" <geneCounts.nType; itype++) + { + qOut << "\t" <geneCounts.cMulti ; + }; + qOut << "\n"; + + qOut << "N_noFeature"; + for (int itype=0; itypegeneCounts.nType; itype++) + { + qOut << "\t" <geneCounts.cNone[itype]; + }; + qOut << "\n"; + + qOut << "N_ambiguous"; + for (int itype=0; itypegeneCounts.nType; itype++) + { + qOut << "\t" <geneCounts.cAmbig[itype]; + }; + qOut << "\n"; + + for (uint32 ig=0; iggeneCounts.nType; itype++) + { + qOut << "\t" <geneCounts.gCount[itype][ig]; + }; + qOut << "\n"; + }; + qOut.close(); +}; diff --git a/Transcriptome.h b/Transcriptome.h index 4129e42..0c5cc3f 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -14,12 +14,12 @@ class Transcriptome { uint32 quantAlign (Transcript &aG, Transcript *aTall);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure - + void quantsOutput(); //output quantification files string trInfoDir; Parameters* Ptr; //transcriptomic parameters (i.e. chrName,...), to be used with RAtr for output - vector trID, geID; //transcript IDs + vector trID, geID; //transcript/gene IDs uint32 nTr, nGe; //number of transcript/genes uint *trS, *trE, *trEmax; //transcripts start,end,end-max @@ -33,7 +33,7 @@ class Transcriptome { struct {//exon-gene structure for GeneCounts uint64 nEx;//number of exons/genes - uint64 *s,*e; //exon start/end + uint64 *s,*e, *eMax; //exon start/end uint8 *str; //strand uint32 *g, *t; //gene/transcript IDs } exG; diff --git a/Transcriptome_geneCounts.cpp b/Transcriptome_geneCounts.cpp deleted file mode 100644 index a105976..0000000 --- a/Transcriptome_geneCounts.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "Transcriptome.h" -#include "ReadAlign.h" -#include "serviceFuns.cpp" -#include "Quantifications.h" - -void Transcriptome::geneCounts(Transcript &a, Quantifications &q) { - - //search end of alignment among the starts of exons - uint64 g1=a.exons[a.nExons][EX_G];//end of the alignment - uint64 ex1=binarySearch1(g1, exG.s, exG.nEx); - - - -}; diff --git a/Transcriptome_geneCountsAddAlign.cpp b/Transcriptome_geneCountsAddAlign.cpp index eb52ed8..20820d7 100644 --- a/Transcriptome_geneCountsAddAlign.cpp +++ b/Transcriptome_geneCountsAddAlign.cpp @@ -5,38 +5,68 @@ void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignm if (nA>1) { quants->geneCounts.cMulti++; } else { - Transcript& a=*aAll[0];//the unique alignment + Transcript& a=*aAll[0];//one unique alignment only - int32 gene1=-1; - for (int ib=a.nExons-1; ib>=0; ib--) {//scan through all blocks of the alignments + vector gene1(quants->geneCounts.nType,-1); + + int64 e1=-1; + + for (int ib=a.nExons-1; ib>=0; ib--) + {//scan through all blocks of the alignments uint64 g1=a.exons[ib][EX_G]+a.exons[ib][EX_L]-1;//end of the block - //search end of the block among the starts of exons - int64 e1=-1; - if (ib==a.nExons-1) {//binary search for the first time + +// if ((uint)ib==a.nExons-1) +// {//binary search for the first time: end of the block among the starts of exons e1=binarySearch1a(g1, exG.s, (int32) exG.nEx); - } else {//simple backwards scan - while (e1>=0 && exG.s[e1]>a.exons[ib][EX_G]) {//stop when exon start is less than block end - --e1; - }; - }; +// } else +// {//simple backwards scan +// while (e1>=0 && exG.s[e1]>g1) +// {//stop when exon start is less than block end +// --e1; +// }; +// }; - while (e1>=0 && exG.e[e1]>=a.exons[ib][EX_G]) {//these exons overlap this block - if (gene1==-1) {//first gene overlapping this read - gene1=exG.g[e1]; - } else if (gene1!=exG.g[e1]) {//another gene overlaps this read - quants->geneCounts.cAmbig++; - return; - };//otherwise it's the same gene - --e1; + while (e1>=0 && exG.eMax[e1]>=a.exons[ib][EX_G]) + {//these exons may overlap this block + if (exG.e[e1]>=a.exons[ib][EX_G]) + {//this exon overlaps the block + uint str1=(uint)exG.str[e1]-1; + for (int itype=0; itypegeneCounts.nType; itype++) + { + //str1<2 (i.e. strand=0) requirement means that genes w/o strand will accept reads from both strands + if ( itype==1 && a.Str!=str1 && str1<2) continue; //same strand + if ( itype==2 && a.Str==str1 && str1<2) continue; //reverse strand + + if (gene1.at(itype)==-1) + {//first gene overlapping this read + gene1[itype]=exG.g[e1]; + } else if (gene1.at(itype)==-2) + { + continue;//this align was already founf to be ambig for this strand + } else if (gene1.at(itype)!=exG.g[e1]) {//another gene overlaps this read + gene1[itype]=-2;//mark ambiguous + };//otherwise it's the same gene + }; + }; + + --e1;// go to the previous exon }; }; - if (gene1!=-1) { - quants->geneCounts.uStr[a.Str][gene1]++; + for (int itype=0; itypegeneCounts.nType; itype++) + { + if (gene1.at(itype)==-1) + { + quants->geneCounts.cNone[itype]++; + } else if (gene1.at(itype)==-2) + { + quants->geneCounts.cAmbig[itype]++; + } else + { + quants->geneCounts.gCount[itype][gene1.at(itype)]++; + }; }; - - }; }; From 6ba3088dec67d3f2a7f1daa0cd69be60066c1b5a Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 19 Jun 2015 11:54:16 -0400 Subject: [PATCH 101/536] STARlong: fixed --outFilterIntronMotifs and --outSAMstrandField options. --- ReadAlign_stitchWindowSeeds.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index f40f406..3c954b4 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -6,6 +6,7 @@ #include "extendAlign.h" #include #include "binarySearch2.h" +#include "ErrorWarning.h" void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G) {//stitches all seeds in one window: iW @@ -218,6 +219,27 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* }; }; }; + + if (sjN>0 && trA.sjMotifStrand==0 && P->outSAMstrandField=="intronMotif") {//strand not defined for a junction + return; + }; + + if (P->outFilterIntronMotifs=="None") {//no filtering + + } else if (P->outFilterIntronMotifs=="RemoveNoncanonical") { + for (uint iex=0;iexoutFilterIntronMotifs=="RemoveNoncanonicalUnannotated") { + for (uint iex=0;iexinOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; // if (P->outFilterIntronMotifs=="KeepCanonical" && (trA.intronMotifs[0]>0 || (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0) ) ) {//keep only conistent canonical introns // return; From 88d6955b623bdb7db2bf2a2cb45c5924fa250d03 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 19 Jun 2015 17:11:57 -0400 Subject: [PATCH 102/536] 2.4.2a --- Makefile | 4 ++++ Quantifications.cpp | 4 ++++ Quantifications.h | 4 ++-- VERSION | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 1d4484d..a52ecc0 100644 --- a/Makefile +++ b/Makefile @@ -112,6 +112,10 @@ STARforMacStatic : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) STARforMacStatic : parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac_static) $(OBJECTS) +STARlongForMacStatic : CCFLAGS=-D'COMPILE_FOR_LONG_READS' -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) +STARlongForMacStatic : parametersDefault.xxd $(OBJECTS) + $(CXX) -o STARlong $(CCFLAGS) $(LDFLAGS_Mac_static) $(OBJECTS) + # STARforMacGDB : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_gdb) STARforMacGDB : parametersDefault.xxd $(OBJECTS) diff --git a/Quantifications.cpp b/Quantifications.cpp index 326a729..c30585a 100644 --- a/Quantifications.cpp +++ b/Quantifications.cpp @@ -2,6 +2,10 @@ Quantifications::Quantifications (uint32 nGeIn) { + geneCounts.nType=3; + geneCounts.cAmbig = new uintQ[geneCounts.nType]; + geneCounts.cNone = new uintQ[geneCounts.nType]; + geneCounts.nGe=nGeIn; geneCounts.gCount = new uintQ* [geneCounts.nType]; diff --git a/Quantifications.h b/Quantifications.h index e76a226..85d080e 100644 --- a/Quantifications.h +++ b/Quantifications.h @@ -8,9 +8,9 @@ class Quantifications { public: struct {//counting reads per gene, similar to HTseq uint32 nGe; //number of genes - static const int nType=3; //number of count types (columns) + int nType; //number of count types (columns) uintQ cMulti; //count multimappers - uintQ cAmbig[nType], cNone[nType];//ambigouous, no-feature + uintQ *cAmbig, *cNone;//ambigouous, no-feature uintQ **gCount; // array of read counts per gene for two strands } geneCounts; diff --git a/VERSION b/VERSION index 8b13d5d..c6cf43b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.1d_modified" +#define STAR_VERSION "STAR_2.4.2a" From 33f546edccf36a5c6391788916c9f42ba22737b9 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 24 Jun 2015 17:06:30 -0400 Subject: [PATCH 103/536] Implemented --chimSegmentReadGapMax parameter which defines the maximum gap in the read sequence between chimeric segments. By default it is set to 0 to replicate the behavior of the previous STAR versions. Implemented --chimFilter banGenomicN | None options to prohibit or allow the N characters in the vicinity of the chimeric junctions. By default, they are prohibited - the same behavior as in the previous versions. --- Parameters.cpp | 25 +++++++++++++++++++++++-- Parameters.h | 11 ++++++++++- ReadAlign_chimericDetection.cpp | 7 +++---- VERSION | 2 +- parametersDefault | 8 ++++++++ 5 files changed, 45 insertions(+), 8 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 4840a3f..59f5135 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -183,6 +183,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimOutType", &chimOutType)); + parArray.push_back(new ParameterInfoVector (-1, -1, "chimFilter", &chimFilter)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentReadGapMax", &chimSegmentReadGapMax)); //sjdb parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); @@ -368,8 +370,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ///////////////////////////////////////// Old variables outputBED[0]=0; outputBED[1]=0; //controls the format of starBED output. Will be replaced with HDF5 output - //chimeric - maxChimReadGap=0; + //annot scoring annotScoreScale=0; annotSignalFile="-"; @@ -993,6 +994,26 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + //chimeric + chimPar.filter.genomicN=false; + for (int ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); + }; + }; + inOut->logMain << "Finished loading and checking parameters\n" < chimFilter; + + struct + { + struct + { + bool genomicN; + } filter; + } chimPar; //splitting char Qsplit; diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 598f09f..ca0aa9f 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -94,9 +94,8 @@ bool ReadAlign::chimericDetection() { //segment lengths && (different mates || small gap between segments) if (roEnd1 > P->chimSegmentMin + roStart1 + chimOverlap && roEnd2> P->chimSegmentMin + roStart2 + chimOverlap \ - && ( diffMates || ( (roEnd1 + P->maxChimReadGap + 1) >= roStart2 && (roEnd2 + P->maxChimReadGap + 1) >= roStart1 ) ) ) { - //maxChimReadGap=0 in Parameters.cpp - + && ( diffMates || ( (roEnd1 + P->chimSegmentReadGapMax + 1) >= roStart2 && (roEnd2 + P->chimSegmentReadGapMax + 1) >= roStart1 ) ) ) { + int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting if (chimScore > chimScoreBest && chimScore >= P->chimScoreMin && chimScore+P->chimScoreDropMax >= (int) (readLength[0]+readLength[1]) ) { @@ -173,7 +172,7 @@ bool ReadAlign::chimericDetection() { if (b1<4) b1=3-b1; }; - if (b0>3 || b1>3 || bR>3) {//chimera is not called if there are Ns in the genome or in the read + if ( ( P->chimPar.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read chimN=0; break; }; diff --git a/VERSION b/VERSION index c6cf43b..6461b93 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.2a" +#define STAR_VERSION "STAR_2.4.2a_modified" diff --git a/parametersDefault b/parametersDefault index a923381..1a15f7b 100644 --- a/parametersDefault +++ b/parametersDefault @@ -494,6 +494,14 @@ chimScoreJunctionNonGTAG -1 chimJunctionOverhangMin 20 int>=0: minimum overhang for a chimeric junction +chimSegmentReadGapMax 0 + int>=0: maximum gap in the read sequence between chimeric segments + +chimFilter banGenomicN + string(s): different filters for chimeric alignments + None ... no filtering + banGenomicN ... Ns are not allowed in the genome sequence around the chimeric junction + ### Quantification of Annotations quantMode - string(s): types of quantification requested From ac56c5fe542e9e960774d6161171d535bf277703 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 24 Jun 2015 18:48:22 -0700 Subject: [PATCH 104/536] include GlobalVariables.h instead of .cpp It seems to compile either way? Most of the files here include GlobalVariables.h, so I think this may have been a typo. --- STAR.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/STAR.cpp b/STAR.cpp index 585cf16..7dcf6f9 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -8,7 +8,7 @@ #include "genomeGenerate.h" #include "outputSJ.h" #include "ThreadControl.h" -#include "GlobalVariables.cpp" +#include "GlobalVariables.h" #include "TimeFunctions.h" #include #include From 6a451fa43caedbda409c08e5883d52dc250ca921 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 24 Jun 2015 18:52:16 -0700 Subject: [PATCH 105/536] include "IncludeDefine.h" in serviceFuns.cpp uint is used in this module and defined in IncludeDefine.h. --- serviceFuns.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/serviceFuns.cpp b/serviceFuns.cpp index c68825d..6e83e89 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -1,6 +1,8 @@ #ifndef DEF_serviceFuns #define DEF_serviceFuns +#include "IncludeDefine.h" + template T sum1D(T* a, uint N) { T s=0; From eddbe3e049de70e110fe0533c8323956452114e7 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 24 Jun 2015 18:56:22 -0700 Subject: [PATCH 106/536] include "IncludeDefine.h" and "Parameters.h" in serviceFuns.cpp Parameters* and uint are defined in these headers. --- sjSplitAlign.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sjSplitAlign.cpp b/sjSplitAlign.cpp index 53d7f5b..48a4fe5 100644 --- a/sjSplitAlign.cpp +++ b/sjSplitAlign.cpp @@ -1,3 +1,6 @@ +#include "IncludeDefine.h" +#include "Parameters.h" + bool sjAlignSplit(uint a1,uint aLength,Parameters* P, uint &a1D, uint &aLengthD, uint &a1A, uint &aLengthA, uint &isj) { uint sj1=(a1-P->sjGstart)%P->sjdbLength; if (sj1sjdbOverhang && sj1+aLength>P->sjdbOverhang) {//align crosses the junctions From 276b2409fe8f698cb474d089084a51f4503629b8 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 24 Jun 2015 19:00:51 -0700 Subject: [PATCH 107/536] include "IncludeDefine.h" and "Parameters.h" in serviceFuns.cpp uint and Parameters are defined in these headers. --- sjSplitAlign.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sjSplitAlign.cpp b/sjSplitAlign.cpp index 53d7f5b..48a4fe5 100644 --- a/sjSplitAlign.cpp +++ b/sjSplitAlign.cpp @@ -1,3 +1,6 @@ +#include "IncludeDefine.h" +#include "Parameters.h" + bool sjAlignSplit(uint a1,uint aLength,Parameters* P, uint &a1D, uint &aLengthD, uint &a1A, uint &aLengthA, uint &isj) { uint sj1=(a1-P->sjGstart)%P->sjdbLength; if (sj1sjdbOverhang && sj1+aLength>P->sjdbOverhang) {//align crosses the junctions From 688dc1cbf1884325357ff9eeb0a34e80ea3f13cd Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 24 Jun 2015 19:04:21 -0700 Subject: [PATCH 108/536] include "IncludeDefine.h" and "Parameters.h" in stitchGapIndel.cpp Needed to define uint and Parameters --- stitchGapIndel.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stitchGapIndel.cpp b/stitchGapIndel.cpp index 3f0986f..55aab06 100644 --- a/stitchGapIndel.cpp +++ b/stitchGapIndel.cpp @@ -1,3 +1,6 @@ +#include "IncludeDefine.h" +#include "Parameters.h" + int stitchGapIndel (uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint gapStart, uint gapEnd, char* R, char* G, Parameters* P,\ uint &iRbest, uint &nMM){//returns stitch score From 5d0161e0bea9c5cd7c688a64b52a50ea36a6b1b8 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 24 Jun 2015 19:12:20 -0700 Subject: [PATCH 109/536] Include "bam_cat.c" in STAR.cpp --- STAR.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index 585cf16..3d9f306 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -19,13 +19,11 @@ #include "BAMbinSortByCoordinate.h" #include "BAMbinSortUnmapped.h" #include "signalFromBAM.h" -// #include "sjdbBuildIndex.h" #include "mapThreadsSpawn.h" #include "ErrorWarning.h" -// #include "sjdbLoadFromStream.h" -// #include "sjdbPrepare.h" #include "SjdbClass.h" #include "sjdbInsertJunctions.h" +#include "bam_cat.c" #include "htslib/htslib/sam.h" From 034414eabf20c9cec50d32a8c3c37224da6bfd05 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 26 Jun 2015 17:13:23 -0400 Subject: [PATCH 110/536] Fixed typo in --twopass1readsN error message. --- Parameters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 59f5135..3e9f994 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -894,7 +894,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: --twopass1readsN is defined, but --twoPassMode is not defined\n"; - errOut << "SOLUTION: to activate the 2-pass mode, use --twoPassMode Basic"; + errOut << "SOLUTION: to activate the 2-pass mode, use --twopassMode Basic"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; From 0eb6dc1a70b834a8da634c4c5d8e9386c2d5f6ad Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 26 Jun 2015 17:18:11 -0400 Subject: [PATCH 111/536] Added parametersDefault.xxd to the distribution --- parametersDefault.xxd | 2170 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2170 insertions(+) create mode 100644 parametersDefault.xxd diff --git a/parametersDefault.xxd b/parametersDefault.xxd new file mode 100644 index 0000000..ee8df17 --- /dev/null +++ b/parametersDefault.xxd @@ -0,0 +1,2170 @@ +unsigned char parametersDefault[] = { + 0x23, 0x23, 0x23, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x54, 0x41, 0x52, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x32, 0x30, 0x32, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, + 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x49, 0x44, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x21, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x32, 0x30, 0x31, 0x30, 0x31, 0x20, + 0x30, 0x32, 0x30, 0x32, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x64, + 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x21, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, + 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x2d, 0x22, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x0a, 0x73, 0x79, 0x73, + 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, + 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x2c, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x72, 0x61, 0x62, 0x6c, 0x79, 0x20, 0x62, 0x61, 0x73, + 0x68, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2f, 0x62, 0x69, 0x6e, + 0x2f, 0x62, 0x61, 0x73, 0x68, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x73, 0x68, + 0x65, 0x6c, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x61, 0x69, + 0x6c, 0x20, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x55, 0x62, + 0x75, 0x6e, 0x74, 0x75, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, + 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20, + 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x79, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, + 0x75, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, + 0x6e, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x42, 0x41, + 0x4d, 0x2e, 0x20, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x2d, 0x2d, + 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x75, + 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x53, 0x54, 0x41, 0x52, 0x0a, 0x0a, + 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, + 0x5f, 0x52, 0x57, 0x58, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, + 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, + 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x5f, + 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x28, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, 0x68, 0x6d, 0x6f, 0x64, 0x20, 0x37, + 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, + 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x21, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, + 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, + 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, + 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, + 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, + 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, + 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, + 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, + 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, + 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, + 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, + 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, + 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, + 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, + 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, + 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, + 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, + 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, + 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, + 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, + 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, + 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, + 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, + 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, + 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, + 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, + 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, + 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, + 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, + 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, + 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, + 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, + 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, + 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x3d, + 0x30, 0x2c, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, + 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, + 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, + 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, + 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, + 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, + 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, + 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, + 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, + 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, + 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, + 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, + 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, + 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, + 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, + 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, + 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, + 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, + 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, + 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, + 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, + 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, + 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x28, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, + 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, + 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, + 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, + 0x29, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, + 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, + 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, + 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, + 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, + 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, + 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, + 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, + 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, + 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, + 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, + 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, + 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, + 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, + 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, + 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, + 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, + 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, + 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, + 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, + 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, + 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, + 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, + 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, + 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, + 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, + 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, + 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, + 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, + 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, + 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, + 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, + 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, + 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, + 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, + 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, + 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, + 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, + 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, + 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, + 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, + 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, + 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, + 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, + 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, + 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, + 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, + 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, + 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, + 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, + 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, + 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x61, 0x70, 0x20, 0x6f, 0x70, + 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, + 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x67, 0x61, 0x70, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x67, 0x61, 0x70, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x67, 0x61, 0x70, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, + 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, + 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, + 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, + 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, + 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, + 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, + 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, + 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, + 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, + 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, + 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, + 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, + 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, + 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, + 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, + 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, + 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, + 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, + 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, + 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, + 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, + 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, + 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x0a, 0x0a +}; +unsigned int parametersDefault_len = 25995; From 0d9a80e4940713401333a807ea74d6eab24e5a85 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 24 Jun 2015 19:12:20 -0700 Subject: [PATCH 112/536] Include "bam_cat.c" in STAR.cpp --- STAR.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index 585cf16..3d9f306 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -19,13 +19,11 @@ #include "BAMbinSortByCoordinate.h" #include "BAMbinSortUnmapped.h" #include "signalFromBAM.h" -// #include "sjdbBuildIndex.h" #include "mapThreadsSpawn.h" #include "ErrorWarning.h" -// #include "sjdbLoadFromStream.h" -// #include "sjdbPrepare.h" #include "SjdbClass.h" #include "sjdbInsertJunctions.h" +#include "bam_cat.c" #include "htslib/htslib/sam.h" From 126a6bede165bb6ab30d0f99556a20da4d52971b Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Sun, 5 Jul 2015 18:12:07 -0700 Subject: [PATCH 113/536] Use a header file for bam_cat instead of declaring it external. This ensures consistency between the function's declaration and usage, and simplifies the code. --- STAR.cpp | 9 ++++----- bam_cat.c | 2 ++ bam_cat.h | 6 ++++++ 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 bam_cat.h diff --git a/STAR.cpp b/STAR.cpp index 3d9f306..88e504b 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -1,3 +1,6 @@ +#include +#include + #include "IncludeDefine.h" #include "Parameters.h" #include "SequenceFuns.h" @@ -10,8 +13,6 @@ #include "ThreadControl.h" #include "GlobalVariables.cpp" #include "TimeFunctions.h" -#include -#include #include "ErrorWarning.h" #include "sysRemoveDir.h" #include "BAMfunctions.h" @@ -23,11 +24,9 @@ #include "ErrorWarning.h" #include "SjdbClass.h" #include "sjdbInsertJunctions.h" -#include "bam_cat.c" - +#include "bam_cat.h" #include "htslib/htslib/sam.h" -extern int bam_cat(int nfn, char * const *fn, const bam_hdr_t *h, const char* outbam); int main(int argInN, char* argIn[]) { diff --git a/bam_cat.c b/bam_cat.c index 8eef202..3dfc944 100644 --- a/bam_cat.c +++ b/bam_cat.c @@ -45,6 +45,8 @@ THE SOFTWARE. */ +#include "bam_cat.h" + #include #include #include diff --git a/bam_cat.h b/bam_cat.h new file mode 100644 index 0000000..c179d0e --- /dev/null +++ b/bam_cat.h @@ -0,0 +1,6 @@ +#ifndef CODE_bam_cat +#define CODE_bam_cat + +int bam_cat(int nfn, char * const *fn, const bam_hdr_t *h, const char* outbam); + +#endif From 9e350149606214941b50095a18285737a8c683f9 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Sun, 5 Jul 2015 18:36:12 -0700 Subject: [PATCH 114/536] Include sam.h in bam_cat.h so it compiles. --- bam_cat.c | 1 + bam_cat.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/bam_cat.c b/bam_cat.c index 3dfc944..944cafb 100644 --- a/bam_cat.c +++ b/bam_cat.c @@ -16,6 +16,7 @@ Illumina. 2014-06-27: Alex Dobin modified the code slighlty: * to compile with only htslib, no need for samtools package * removed the samtools interface function (main) +* added header file "bam_cat.h" ########## License: diff --git a/bam_cat.h b/bam_cat.h index c179d0e..337d150 100644 --- a/bam_cat.h +++ b/bam_cat.h @@ -1,6 +1,8 @@ #ifndef CODE_bam_cat #define CODE_bam_cat +#include "htslib/htslib/sam.h" + int bam_cat(int nfn, char * const *fn, const bam_hdr_t *h, const char* outbam); #endif From 8a6054766fcb2934b285bf2460083c640b5ca975 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 10 Jul 2015 16:15:05 -0400 Subject: [PATCH 115/536] Cosmetic changes. --- parametersDefault | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/parametersDefault b/parametersDefault index 1a15f7b..6089790 100644 --- a/parametersDefault +++ b/parametersDefault @@ -360,16 +360,16 @@ outSJfilterIntronMaxVsReadN 50000 100000 200000 ### Scoring scoreGap 0 - gap open penalty + int: splice junction penalty (independent on intron motif) scoreGapNoncan -8 - non-canonical gap open penalty (in addition to scoreGap) + int: non-canonical junction penalty (in addition to scoreGap) scoreGapGCAG -4 - GC/AG and CT/GC gap open penalty (in addition to scoreGap) + GC/AG and CT/GC junction penalty (in addition to scoreGap) scoreGapATAC -8 - AT/AC and GT/AT gap open penalty (in addition to scoreGap) + AT/AC and GT/AT junction penalty (in addition to scoreGap) scoreGenomicLengthLog2scale -0.25 extra score logarithmically scaled with genomic length of the alignment: scoreGenomicLengthLog2scale*log2(genomicLength) From 07d668020688ca5fd0637bdc793d50ee6a2fcd6d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 10 Jul 2015 16:29:04 -0400 Subject: [PATCH 116/536] Cosmetic changes --- parametersDefault.xxd | 1082 +++++++++++++++++++++-------------------- 1 file changed, 543 insertions(+), 539 deletions(-) diff --git a/parametersDefault.xxd b/parametersDefault.xxd index ee8df17..7479f14 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1612,559 +1612,563 @@ unsigned char parametersDefault[] = { 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67, 0x61, 0x70, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x67, 0x61, 0x70, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x67, 0x61, 0x70, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x67, 0x61, 0x70, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, - 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, + 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, + 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, + 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, - 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, - 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, - 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, - 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, - 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, + 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, + 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, + 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, + 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, + 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, - 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, - 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, + 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, + 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, + 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, + 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, + 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, + 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, - 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, + 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, - 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, - 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, - 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, - 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, - 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, - 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, - 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, + 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, + 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, + 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, + 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, + 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, + 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, - 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, - 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, - 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, + 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, + 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, + 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, + 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, + 0x0a, 0x0a }; -unsigned int parametersDefault_len = 25995; +unsigned int parametersDefault_len = 26042; From 68e632a2e5795a242d28a731ce5baa513e244bc7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 10 Jul 2015 17:07:49 -0400 Subject: [PATCH 117/536] Added GlobalVariables.o to the Makefile, since GlobalVariables.cpp is not included in STAR.cpp anymore. --- GlobalVariables.cpp | 5 ++--- Makefile | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/GlobalVariables.cpp b/GlobalVariables.cpp index c912b3b..f0a14d0 100644 --- a/GlobalVariables.cpp +++ b/GlobalVariables.cpp @@ -1,5 +1,4 @@ -#ifndef CODE_GlobalVariables -#define CODE_GlobalVariables +#include "GlobalVariables.h" Stats g_statsAll;//global mapping statistics ThreadControl g_threadChunks; -#endif + diff --git a/Makefile b/Makefile index a52ecc0..5ac9a2b 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,9 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ - bam_cat.o + bam_cat.o \ + GlobalVariables.cpp + SOURCES := $(wildcard *.cpp) $(wildcard *.c) LDFLAGS := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -lrt From eb29da5397aa104ff4906c924444a5a79fd63e50 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Fri, 24 Jul 2015 17:54:51 -0700 Subject: [PATCH 118/536] Support specifying command line parameters as key=value. --- Parameters.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 3e9f994..06dbe37 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -253,7 +253,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exit(0); }; - if (oneArg.substr(0,2)=="--") {//parameter name, cut -- + size_t found = oneArg.find("="); + if (found!=string::npos && oneArg.substr(0,2)=="--") {// --parameter=value + string val = oneArg.substr(found + 1); + string key = oneArg.substr(2, found - 2); + commandLineFile += '\n' + key + ' ' + val; + } + else if (oneArg.substr(0,2)=="--") {//parameter name, cut -- commandLineFile +='\n' + oneArg.substr(2); } else {//parameter value if (oneArg.find_first_of(" \t")!=std::string::npos) {//there is white space in the argument, put "" around From e42bc273e757b2b6de77d8aa1b37a2369763c0d7 Mon Sep 17 00:00:00 2001 From: "Nathan S. Watson-Haigh" Date: Fri, 7 Aug 2015 22:34:45 +0930 Subject: [PATCH 119/536] Fixed typos --- Parameters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 3e9f994..15e6974 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -984,7 +984,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: please use default --genomeLoad NoSharedMemory, \n OR specify --limitBAMsortRAM the amount of RAM (bytes) that can be allocated for BAM sorting in addition to shared memory allocated for the genome.\n --limitBAMsortRAM typically has to be > 10000000000 (i.e 10GB).\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - inOut->logMain<<"WARNING: --limitBAMsortRAM=0, will use genome sizeas RAM linit foro BAM sorting\n"; + inOut->logMain<<"WARNING: --limitBAMsortRAM=0, will use genome size as RAM limit for BAM sorting\n"; }; if (chimOutType=="WithinBAM" && !outBAMunsorted && !outBAMcoord) { From 7e966574ecf3de22c9186bb55a40c048adc1e92f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 11 Aug 2015 12:54:20 -0400 Subject: [PATCH 120/536] Deleted Mac_Include directory that is not used anymore. --- Mac_Include/omp.h | 87 ----------------------------------------------- 1 file changed, 87 deletions(-) delete mode 100644 Mac_Include/omp.h diff --git a/Mac_Include/omp.h b/Mac_Include/omp.h deleted file mode 100644 index 1400282..0000000 --- a/Mac_Include/omp.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (C) 2005 Free Software Foundation, Inc. - Contributed by Richard Henderson . - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* As a special exception, if you link this library with other files, some - of which are compiled with GCC, to produce an executable, this library - does not by itself cause the resulting executable to be covered by the - GNU General Public License. This exception does not however invalidate - any other reasons why the executable file might be covered by the GNU - General Public License. */ - -#ifndef OMP_H -#define OMP_H 1 - -#ifndef _LIBGOMP_OMP_LOCK_DEFINED -#define _LIBGOMP_OMP_LOCK_DEFINED 1 -/* These two structures get edited by the libgomp build process to - reflect the shape of the two types. Their internals are private - to the library. */ - -typedef struct -{ - unsigned char _x[64] - __attribute__((__aligned__(8))); -} omp_lock_t; - -typedef struct -{ - unsigned char _x[72] - __attribute__((__aligned__(8))); -} omp_nest_lock_t; -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -extern void omp_set_num_threads (int); -extern int omp_get_num_threads (void); -extern int omp_get_max_threads (void); -extern int omp_get_thread_num (void); -extern int omp_get_num_procs (void); - -extern int omp_in_parallel (void); - -extern void omp_set_dynamic (int); -extern int omp_get_dynamic (void); - -extern void omp_set_nested (int); -extern int omp_get_nested (void); - -extern void omp_init_lock (omp_lock_t *); -extern void omp_destroy_lock (omp_lock_t *); -extern void omp_set_lock (omp_lock_t *); -extern void omp_unset_lock (omp_lock_t *); -extern int omp_test_lock (omp_lock_t *); - -extern void omp_init_nest_lock (omp_nest_lock_t *); -extern void omp_destroy_nest_lock (omp_nest_lock_t *); -extern void omp_set_nest_lock (omp_nest_lock_t *); -extern void omp_unset_nest_lock (omp_nest_lock_t *); -extern int omp_test_nest_lock (omp_nest_lock_t *); - -extern double omp_get_wtime (void); -extern double omp_get_wtick (void); - -#ifdef __cplusplus -} -#endif - -#endif /* OMP_H */ From 853f3604a10896278729e9aa6ca4bacad35a8b33 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 11 Aug 2015 16:09:39 -0400 Subject: [PATCH 121/536] Added double quotes to the parameter value if it contains white spaces. --- Parameters.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 06dbe37..bc7e0da 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -255,8 +255,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters size_t found = oneArg.find("="); if (found!=string::npos && oneArg.substr(0,2)=="--") {// --parameter=value - string val = oneArg.substr(found + 1); string key = oneArg.substr(2, found - 2); + string val = oneArg.substr(found + 1); + if (val.find_first_of(" \t")!=std::string::npos) {//there is white space in the argument, put "" around + val ='\"' + val + '\"'; + }; commandLineFile += '\n' + key + ' ' + val; } else if (oneArg.substr(0,2)=="--") {//parameter name, cut -- From a85f324f31e13d1b1f3652ebc7584cb9f8b2bbfd Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 12 Aug 2015 15:57:13 -0400 Subject: [PATCH 122/536] Implemented --alignSJstitchMismatchNmax option to allow for mismatches around non-canonical junctions. --- Parameters.cpp | 7 +- Parameters.h | 1 + parametersDefault | 4 + parametersDefault.xxd | 740 +++++++++++++++++++----------------- stitchAlignToTranscript.cpp | 2 +- 5 files changed, 393 insertions(+), 361 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index f13ef57..a542bba 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -166,7 +166,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerReadNmax", &alignTranscriptsPerReadNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSJoverhangMin", &alignSJoverhangMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSJDBoverhangMin", &alignSJDBoverhangMin)); - + parArray.push_back(new ParameterInfoVector (-1, -1, "alignSJstitchMismatchNmax", &alignSJstitchMismatchNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLmin", &alignSplicedMateMapLmin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLminOverLmate", &alignSplicedMateMapLminOverLmate)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignWindowsPerReadNmax", &alignWindowsPerReadNmax)); @@ -610,6 +611,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters for (int ii=0;ii<4;ii++) { if (outSJfilterOverhangMin.at(ii)<0) outSJfilterOverhangMin.at(ii)=numeric_limits::max(); if (outSJfilterCountUniqueMin.at(ii)<0) outSJfilterCountUniqueMin.at(ii)=numeric_limits::max(); + if (outSJfilterCountTotalMin.at(ii)<0) outSJfilterCountTotalMin.at(ii)=numeric_limits::max(); + if (outSJfilterDistToOtherSJmin.at(ii)<0) outSJfilterDistToOtherSJmin.at(ii)=numeric_limits::max(); + + if (alignSJstitchMismatchNmax.at(ii)<0) alignSJstitchMismatchNmax.at(ii)=numeric_limits::max(); }; if (limitGenomeGenerateRAM==0) {//must be >0 diff --git a/Parameters.h b/Parameters.h index b63ad69..7297469 100644 --- a/Parameters.h +++ b/Parameters.h @@ -80,6 +80,7 @@ class Parameters { uint alignIntronMax;//max length to call uint alignMatesGapMax;//max gap between the mates (if paired-end) string alignEndsType, alignSoftClipAtReferenceEnds; + vector alignSJstitchMismatchNmax; //seed parameters uint seedMultimapNmax; //max number of multiple alignments per piece diff --git a/parametersDefault b/parametersDefault index 6089790..c37c33e 100644 --- a/parametersDefault +++ b/parametersDefault @@ -425,6 +425,10 @@ alignMatesGapMax 0 alignSJoverhangMin 5 int>0: minimum overhang (i.e. block size) for spliced alignments +alignSJstitchMismatchNmax 0 -1 0 0 + 4*int>=0: maximum number of mismatches for stitching of the splice junctions (-1: no limit). + (1) non-canonical motifs, (2) GT/AG and CT/AC motif, (3) GC/AG and CT/GC motif, (4) AT/AC and GT/AT motif. + alignSJDBoverhangMin 3 int>0: minimum overhang (i.e. block size) for annotated (sjdb) spliced alignments diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 7479f14..abe787c 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1801,374 +1801,396 @@ unsigned char parametersDefault[] = { 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, - 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, - 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, + 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, + 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, + 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, - 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, - 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, - 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, - 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, + 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, + 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, + 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, + 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, + 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, + 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, - 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, - 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, - 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, - 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, - 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, - 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, - 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, - 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, - 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, - 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, - 0x0a, 0x0a + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, + 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, + 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 26042; +unsigned int parametersDefault_len = 26313; diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index aec7a3f..0dcbef2 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -299,7 +299,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst #else if ( (trA->nMM + nMM)<=outFilterMismatchNmaxTotal \ - && (nMM==0 || jCan<0 || jCan==1 || jCan==2) ) + && ( jCan<0 || nMM<=P->alignSJstitchMismatchNmax[++jCan/2] ) ) #endif {//stitching worked only if there no mis-matches for non-GT/AG junctions trA->nMM += nMM; From cd29c278684919e244a4a193b506aac66b68009c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 14 Aug 2015 18:04:50 -0400 Subject: [PATCH 123/536] Fixed a bug which caused problems in some cases of genome generation without annotations. --- Parameters.cpp | 13 ++++++++++++- genomeGenerate.cpp | 6 ++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index a542bba..af3ea58 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -912,13 +912,23 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + + twoPass.yes=false; if (twoPass.mode!="None") {//2-pass parameters + if (runMode!="alignReads") + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: 2-pass mapping option can only be used with --runMode alignReads\n"; + errOut << "SOLUTION: remove --twopassMode option"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (twoPass.mode!="Basic") { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized value of --twopassMode="<logMain, EXIT_CODE_PARAMETER, *this); }; @@ -951,6 +961,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters sjdbInsert.pass1=false; sjdbInsert.pass2=false; + sjdbInsert.yes=false; if (sjdbFileChrStartEnd.at(0)!="-" || sjdbGTFfile!="-") {//will insert annotated sjdb on the fly sjdbInsert.pass1=true; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index da204f3..03b002a 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -236,7 +236,6 @@ void genomeGenerate(Parameters *P) { if (P->GstrandBit<32) P->GstrandBit=32; //TODO: use simple access function for SA P->GstrandMask = ~(1LLU<GstrandBit); - P->nSAbyte=P->nSA*(P->GstrandBit+1)/8+1; PackedArray SA1;//SA without sjdb SA1.defineBits(P->GstrandBit+1,P->nSA); PackedArray SA2;//SA with sjdb, reserve more space @@ -248,8 +247,9 @@ void genomeGenerate(Parameters *P) { SA2.defineBits(P->GstrandBit+1,P->nSA); }; + P->nSAbyte=SA2.lengthByte; + P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<inOut->logMain << "SA size in bytes: "<< P->nSAbyte << "\n"<inOut->logMain << "SA size in bytes: "<< P->nSAbyte << "\n"<inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" < Date: Tue, 18 Aug 2015 11:40:22 -0400 Subject: [PATCH 124/536] Experimenting with travis for Mac OSX. --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 5ac9a2b..80b77b0 100644 --- a/Makefile +++ b/Makefile @@ -106,9 +106,9 @@ STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STARlong $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) #not recommended! -STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) +STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' -I $(CCFLAGS_main) STARforMac : parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac) $(OBJECTS) + $/usr/local/bin/clang-omp -o STAR $(CCFLAGS) $(LDFLAGS_Mac) $(OBJECTS) STARforMacStatic : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) STARforMacStatic : parametersDefault.xxd $(OBJECTS) From af5d22863cdb4ef9bca988e2ed317d7a54b0afcc Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 18 Aug 2015 11:48:14 -0400 Subject: [PATCH 125/536] Experimenting with travis for Mac OSX. --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 80b77b0..26ca6f1 100644 --- a/Makefile +++ b/Makefile @@ -106,9 +106,9 @@ STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STARlong $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) #not recommended! -STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' -I $(CCFLAGS_main) +STARforMac : CXX=/usr/local/bin/clang-omp CCFLAGS=-D'COMPILE_FOR_MAC' -I $(CCFLAGS_main) STARforMac : parametersDefault.xxd $(OBJECTS) - $/usr/local/bin/clang-omp -o STAR $(CCFLAGS) $(LDFLAGS_Mac) $(OBJECTS) + $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac) $(OBJECTS) STARforMacStatic : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) STARforMacStatic : parametersDefault.xxd $(OBJECTS) From 6490fea3c32125e261c8d0bb6455630842a5ab0b Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 18 Aug 2015 12:24:47 -0400 Subject: [PATCH 126/536] Experimenting with travis for Mac OSX. --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 26ca6f1..7e6c70c 100644 --- a/Makefile +++ b/Makefile @@ -106,7 +106,8 @@ STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STARlong $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) #not recommended! -STARforMac : CXX=/usr/local/bin/clang-omp CCFLAGS=-D'COMPILE_FOR_MAC' -I $(CCFLAGS_main) +STARforMac : CXX=/usr/local/bin/clang-omp +STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' $(CCFLAGS_main) STARforMac : parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac) $(OBJECTS) From 6aa4e561d387e69b1de55252cc0659578f0d9758 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 18 Aug 2015 16:08:27 -0400 Subject: [PATCH 127/536] Reverted to good versions of Makefile and .tavis.yml . --- Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7e6c70c..5ac9a2b 100644 --- a/Makefile +++ b/Makefile @@ -106,8 +106,7 @@ STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STARlong $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) #not recommended! -STARforMac : CXX=/usr/local/bin/clang-omp -STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' $(CCFLAGS_main) +STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) STARforMac : parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac) $(OBJECTS) From b8610eae99a47fb5657b2879a6a15e4be3307757 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 19 Aug 2015 18:11:51 -0400 Subject: [PATCH 128/536] Re-wrote Makefile for more transparent compilation. --- Makefile | 121 ++++++++++++++++++++++++++------------------- genomeGenerate.cpp | 2 +- 2 files changed, 72 insertions(+), 51 deletions(-) diff --git a/Makefile b/Makefile index 5ac9a2b..bdce46f 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,31 @@ +# user may define these whole flags +# LDFLAGS +# CXXFLAGS + +# or these user-set flags that will be added to standard flags +LDFLAGSextra ?= +CXXFLAGSextra ?= + +# user may define the compiler +CXX ?=g++ + +# pre-defined flags +LDFLAGS_shared := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -lrt +LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz +LDFLAGS_Mac :=-pthread -lz htslib/libhts.a +LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a +LDFLAGS_gdb := $(LDFLAGS_shared) + +COMPTIMEPLACE := -D'COMPILATION_TIME_PLACE="$(shell echo `date` $(HOSTNAME):`pwd`)"' + +CXXFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) +CXXFLAGS_main := -O3 $(CXXFLAGS_common) +CXXFLAGS_gdb := -O0 -g $(CXXFLAGS_common) + + + +########################################################################################################## + OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ Transcript.o Transcript_alignScore.o \ ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ @@ -20,29 +48,12 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO SOURCES := $(wildcard *.cpp) $(wildcard *.c) -LDFLAGS := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -lrt -LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz -LDFLAGS_Mac :=-pthread -lz htslib/libhts.a -LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a - -LDFLAGS_gdb := $(LDFLAGS_static) -LDFLAGS_gdb := $(LDFLAGS) - -COMPTIMEPLACE := -D'COMPILATION_TIME_PLACE="$(shell echo `date` $(HOSTNAME):`pwd`)"' -EXTRAFLAGS := - -CCFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) $(OPTIMFLAGS) $(OPTIMFLAGS1) $(EXTRAFLAGS) -CCFLAGS_main := -O3 $(CCFLAGS_common) -CCFLAGS_gdb := -O0 -g $(CCFLAGS_common) - -CXX ?=g++ - %.o : %.cpp - $(CXX) -c $(CCFLAGS) $< + $(CXX) -c $(CXXFLAGS) $< %.o : %.c - $(CXX) -c $(CCFLAGS) $< + $(CXX) -c $(CXXFLAGS) $< all: STAR @@ -69,7 +80,7 @@ ifneq ($(MAKECMDGOALS),STARforMacGDB) Depend.list: $(SOURCES) parametersDefault.xxd htslib echo $(SOURCES) /bin/rm -f ./Depend.list - $(CXX) $(CCFLAGS_common) -MM $^ >> Depend.list + $(CXX) $(CXXFLAGS_main) -MM $^ >> Depend.list include Depend.list endif endif @@ -85,54 +96,64 @@ htslib/libhts.a : parametersDefault.xxd: parametersDefault xxd -i parametersDefault > parametersDefault.xxd -STAR : CCFLAGS=$(CCFLAGS_main) +STAR : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) +STAR : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_shared) STAR : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) + $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -POSIXSHARED : CCFLAGS=$(CCFLAGS_main) -DPOSIX_SHARED_MEM +POSIXSHARED : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -DPOSIX_SHARED_MEM +POSIXSHARED : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_shared) POSIXSHARED : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) + $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -STARstatic : CCFLAGS=$(CCFLAGS_main) +STARstatic : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) +STARstatic : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_static) STARstatic : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) + $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -STARlong : CCFLAGS=-D'COMPILE_FOR_LONG_READS' $(CCFLAGS_main) +STARlong : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_LONG_READS' +STARlong : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_shared) STARlong : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STARlong $(CCFLAGS) $(OBJECTS) $(LDFLAGS) + $(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -STARlongStatic : CCFLAGS=-D'COMPILE_FOR_LONG_READS' $(CCFLAGS_main) +STARlongStatic : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_LONG_READS' +STARlongStatic : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_static) STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STARlong $(OBJECTS) $(CCFLAGS) $(LDFLAGS_static) + $(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) + +gdb : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_gdb) +gdb : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_gdb) +gdb : Depend.list parametersDefault.xxd $(OBJECTS) + $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -#not recommended! -STARforMac : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) +gdb-long : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_gdb) -D'COMPILE_FOR_LONG_READS' +gdb-long : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_gdb) +gdb-long : Depend.list parametersDefault.xxd $(OBJECTS) + $(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) + +STARforMacStatic : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_MAC' +STARforMacStatic : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_Mac_static) +STARforMacStatic : Depend.list parametersDefault.xxd $(OBJECTS) + $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) + +######################################################### all trargets below are not supported and not recommended! + +STARforMac : CXXFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_main) STARforMac : parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac) $(OBJECTS) + $(CXX) -o STAR $(CXXFLAGS) $(LDFLAGS_Mac) $(OBJECTS) -STARforMacStatic : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) -STARforMacStatic : parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_Mac_static) $(OBJECTS) -STARlongForMacStatic : CCFLAGS=-D'COMPILE_FOR_LONG_READS' -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_main) +STARlongForMacStatic : CXXFLAGS=-D'COMPILE_FOR_LONG_READS' -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_main) STARlongForMacStatic : parametersDefault.xxd $(OBJECTS) - $(CXX) -o STARlong $(CCFLAGS) $(LDFLAGS_Mac_static) $(OBJECTS) + $(CXX) -o STARlong $(CXXFLAGS) $(LDFLAGS_Mac_static) $(OBJECTS) # -STARforMacGDB : CCFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CCFLAGS_gdb) +STARforMacGDB : CXXFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_gdb) STARforMacGDB : parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) - -gdb : CCFLAGS= $(CCFLAGS_gdb) -gdb : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) - -gdb-long : CCFLAGS= -D'COMPILE_FOR_LONG_READS' $(CCFLAGS_gdb) -gdb-long : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STARlong $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) + $(CXX) -o STAR $(CXXFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) -localChains : CCFLAGS=-D'OUTPUT_localChains' $(CCFLAGS_main) +localChains : CXXFLAGS=-D'OUTPUT_localChains' $(CXXFLAGS_main) localChains : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS) $(OBJECTS) + $(CXX) -o STAR $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 03b002a..552f7e3 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -308,7 +308,7 @@ void genomeGenerate(Parameters *P) { *P->inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <runThreadN) ordered schedule(dynamic,1) - for (int iChunk=0; (uint)iChunk < saChunkN; iChunk++) {//start the chunk cycle: sort each chunk with qsort and write to a file + for (int iChunk=0; iChunk < (int) saChunkN; iChunk++) {//start the chunk cycle: sort each chunk with qsort and write to a file uint* saChunk=new uint [indPrefChunkCount[iChunk]];//allocate local array for each chunk for (uint ii=0,jj=0;iigenomeSAsparseD) {//fill the chunk with SA indices if (G[ii]<4) { From 6bb1b0bebfe775a137896de946dea319f0b92fc7 Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 19 Aug 2015 17:16:12 -0700 Subject: [PATCH 129/536] Refactor ifstrOpen to return a new ifstream. --- Transcriptome.cpp | 12 ++++-------- genomeGenerate.cpp | 3 +-- sjdbInsertJunctions.cpp | 3 +-- streamFuns.cpp | 9 +++++---- streamFuns.h | 2 +- 5 files changed, 12 insertions(+), 17 deletions(-) diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 5b9f51a..4a78875 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -12,8 +12,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { if ( P->quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info - ifstream trinfo; - ifstrOpen(trInfoDir+"/transcriptInfo.tab", "ERROR_011001", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P, trinfo); + ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", "ERROR_011001", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); trinfo >> nTr; trS=new uint [nTr]; @@ -33,8 +32,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { trinfo.close(); - ifstream exinfo; - ifstrOpen(trInfoDir+"/exonInfo.tab", "ERROR_011002", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonInfo.tab", "ERROR_011002", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> nEx; exSE = new uint32 [2*nEx]; @@ -52,8 +50,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { }; if ( P->quant.geCount.yes ) {//load exon-gene structures - ifstream exinfo; - ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", "ERROR_011003", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", "ERROR_011003", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> exG.nEx; exG.s=new uint64[exG.nEx]; @@ -77,8 +74,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { exG.eMax[iex]=max(exG.eMax[iex-1],exG.e[iex]); }; - ifstream geStream; - ifstrOpen(trInfoDir+"/geneInfo.tab", "ERROR_011004", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, geStream); + ifstream & geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", "ERROR_011004", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); geStream >> nGe; geID.resize(nGe); for (uint ii=0;iigenomeFastaFiles.size();ii++) {//all the input files - fileIn.open(P->genomeFastaFiles.at(ii).c_str()); + ifstream & fileIn = ifstrOpen(P->genomeFastaFiles.at(ii), "", "SOLUTION: Provide a FASTA file for the reference genome", P); if ( !fileIn.good() ) {// ostringstream errOut; errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index d9f2b76..92859b2 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -14,8 +14,7 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC if (P->sjdbN>0 && sjdbLoci.chr.size()==0) {//load from the saved genome, only if the loading did not happen already (if sjdb insertion happens at the 1st pass, sjdbLoci will be populated - ifstream sjdbStreamIn; - ifstrOpen(P->genomeDir+"/sjdbList.out.tab", "ERROR_012003", "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P, sjdbStreamIn); + ifstream & sjdbStreamIn = ifstrOpen(P->genomeDir+"/sjdbList.out.tab", "ERROR_012003", "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P); sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); sjdbLoci.priority.resize(sjdbLoci.chr.size(),30); time ( &rawtime ); diff --git a/streamFuns.cpp b/streamFuns.cpp index 04f884e..dca067a 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -71,9 +71,9 @@ void ofstrOpen (std::string fileName, std::string errorID, Parameters *P, ofstre }; -void ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P, ifstream & ifStream) { +std::ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P) { //open file 'fileName', generate error if cannot open - ifStream.open(fileName.c_str()); + std::ifstream & ifStream = *new std::ifstream(fileName.c_str()); if (ifStream.fail()) {// ostringstream errOut; errOut << errorID<<": exiting because of *INPUT FILE* error: could not open input file "<< fileName <<"\n"; @@ -83,11 +83,12 @@ void ifstrOpen (std::string fileName, std::string errorID, std::string solutionS }; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_FILE_OPEN, *P); }; + return ifStream; }; -void ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P, ifstream & ifStream) { +ifstream & ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P) { //open one of the genome files - ifstrOpen(P->genomeDir+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P, ifStream); + return ifstrOpen(P->genomeDir+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P); }; void copyFile(string fileIn, string fileOut) diff --git a/streamFuns.h b/streamFuns.h index 5437eb1..35196ad 100644 --- a/streamFuns.h +++ b/streamFuns.h @@ -8,7 +8,7 @@ unsigned long long fstreamReadBig(std::ifstream &S, char* A, unsigned long long void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::string fileName, std::string errorID, Parameters *P) ; void ofstrOpen (std::string fileName, std::string errorID, Parameters *P, ofstream & ofStream); -void ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P, ifstream & ofStream); +ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P); void ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P, ifstream & ifStream); void copyFile(string fileIn, string fileOut); From 6171373babe9218dbcb917d9764e403b5d667fdc Mon Sep 17 00:00:00 2001 From: Alex Finkel Date: Wed, 19 Aug 2015 17:39:55 -0700 Subject: [PATCH 130/536] Refactor ofstrOpen to return a new ofstream. --- genomeGenerate.cpp | 24 +++++++++--------------- genomeParametersWrite.cpp | 3 +-- loadGTF.cpp | 6 ++---- sjdbInsertJunctions.cpp | 19 +++++++++---------- streamFuns.cpp | 5 +++-- streamFuns.h | 4 ++-- 6 files changed, 26 insertions(+), 35 deletions(-) diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 1a51204..09a3652 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -196,14 +196,12 @@ void genomeGenerate(Parameters *P) { P->nGenome=N; uint N2 = N*2; - ofstream chrN,chrS,chrL,chrNL; + ofstream & chrN = ofstrOpen(P->genomeDir+"/chrName.txt","ERROR_00103", P); + ofstream & chrS = ofstrOpen(P->genomeDir+"/chrStart.txt","ERROR_00103", P); + ofstream & chrL = ofstrOpen(P->genomeDir+"/chrLength.txt","ERROR_00103", P); + ofstream & chrNL = ofstrOpen(P->genomeDir+"/chrNameLength.txt","ERROR_00103", P); - ofstrOpen(P->genomeDir+"/chrName.txt","ERROR_00103", P, chrN); - ofstrOpen(P->genomeDir+"/chrStart.txt","ERROR_00103", P, chrS); - ofstrOpen(P->genomeDir+"/chrLength.txt","ERROR_00103", P, chrL); - ofstrOpen(P->genomeDir+"/chrNameLength.txt","ERROR_00103", P, chrNL); - - for (uint ii=0;iinChrReal;ii++) {//output names, starts, lengths + for (uint ii=0;iinChrReal;ii++) {//output names, starts, lengths chrN<chrName[ii]<<"\n"; chrS<chrStart[ii]<<"\n"; chrL<chrLength.at(ii)<<"\n"; @@ -327,9 +325,8 @@ void genomeGenerate(Parameters *P) { saChunk[ii]=N2-1-saChunk[ii]; }; //write files - ofstream saChunkFile; string chunkFileName=P->genomeDir+"/SA_"+to_string( (uint) iChunk); - ofstrOpen(chunkFileName,"ERROR_00105", P, saChunkFile); + ofstream & saChunkFile = ofstrOpen(chunkFileName,"ERROR_00105", P); fstreamWriteBig(saChunkFile, (char*) saChunk, sizeof(saChunk[0])*indPrefChunkCount[iChunk],chunkFileName,"ERROR_00121",P); saChunkFile.close(); delete [] saChunk; @@ -522,8 +519,7 @@ void genomeGenerate(Parameters *P) { P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <genomeDir+"/Genome","ERROR_00104", P, genomeOut); + ofstream & genomeOut = ofstrOpen(P->genomeDir+"/Genome","ERROR_00104", P); fstreamWriteBig(genomeOut,G,P->nGenome,P->genomeDir+"/Genome","ERROR_00120",P); genomeOut.close(); @@ -534,8 +530,7 @@ void genomeGenerate(Parameters *P) { P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <genomeDir+"/SA","ERROR_00106", P, SAout); + ofstream & SAout = ofstrOpen(P->genomeDir+"/SA","ERROR_00106", P); fstreamWriteBig(SAout,(char*) SA2.charArray, (streamsize) P->nSAbyte,P->genomeDir+"/SA","ERROR_00122",P); SAout.close(); @@ -545,8 +540,7 @@ void genomeGenerate(Parameters *P) { *P->inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <genomeDir+"/SAindex","ERROR_00107", P, SAiOut); + ofstream & SAiOut = ofstrOpen(P->genomeDir+"/SAindex","ERROR_00107", P); fstreamWriteBig(SAiOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->genomeDir+"/SAindex","ERROR_00123",P); fstreamWriteBig(SAiOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->genomeDir+"/SAindex","ERROR_00124",P); diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp index 0af13d0..629d0f2 100644 --- a/genomeParametersWrite.cpp +++ b/genomeParametersWrite.cpp @@ -3,8 +3,7 @@ void genomeParametersWrite(string fileName, Parameters* P, string errorOut) {//write the genome information into the genomePar stream - ofstream genomePar; - ofstrOpen(fileName, errorOut, P, genomePar); + ofstream & genomePar = ofstrOpen(fileName, errorOut, P); genomePar << "### "<commandLineFull <<"\n"; diff --git a/loadGTF.cpp b/loadGTF.cpp index a40cfe4..349f244 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -167,8 +167,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file qsort((void*) exgeLoci, exonN, sizeof(uint)*GTF_exgeLoci_size, funCompareArrays); - ofstream exgeOut; - ofstrOpen(dirOut+"/exonGeTrInfo.tab","ERROR_00201",P,exgeOut); + ofstream & exgeOut = ofstrOpen(dirOut+"/exonGeTrInfo.tab","ERROR_00201",P); exgeOut<sjdbInsert.outDir+("/genomeParameters.txt"), P, "ERROR_012012"); - ofstream genomeOut; - ofstrOpen(P->sjdbInsert.outDir+"/Genome","ERROR_012004", P, genomeOut); + ofstream & genomeOut = ofstrOpen(P->sjdbInsert.outDir+"/Genome","ERROR_012004", P); fstreamWriteBig(genomeOut,genome.G,P->nGenome,P->sjdbInsert.outDir+"/Genome","ERROR_012005",P); genomeOut.close(); - ofstrOpen(P->sjdbInsert.outDir+"/SA","ERROR_012006", P, genomeOut); - fstreamWriteBig(genomeOut,(char*) genome.SA.charArray, (streamsize) genome.SA.lengthByte, P->sjdbInsert.outDir+"/SA","ERROR_012007",P); - genomeOut.close(); + ofstream & saOut = ofstrOpen(P->sjdbInsert.outDir+"/SA","ERROR_012006", P); + fstreamWriteBig(saOut,(char*) genome.SA.charArray, (streamsize) genome.SA.lengthByte, P->sjdbInsert.outDir+"/SA","ERROR_012007",P); + saOut.close(); - ofstrOpen(P->sjdbInsert.outDir+"/SAindex","ERROR_012008", P, genomeOut); - fstreamWriteBig(genomeOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->sjdbInsert.outDir+"/SAindex","ERROR_012009",P); - fstreamWriteBig(genomeOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->sjdbInsert.outDir+"/SAindex","ERROR_012010",P); - fstreamWriteBig(genomeOut, genome.SAi.charArray, genome.SAi.lengthByte,P->sjdbInsert.outDir+"/SAindex","ERROR_012011",P); - genomeOut.close(); + ofstream & saIndexOut = ofstrOpen(P->sjdbInsert.outDir+"/SAindex","ERROR_012008", P); + fstreamWriteBig(saIndexOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->sjdbInsert.outDir+"/SAindex","ERROR_012009",P); + fstreamWriteBig(saIndexOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->sjdbInsert.outDir+"/SAindex","ERROR_012010",P); + fstreamWriteBig(saIndexOut, genome.SAi.charArray, genome.SAi.lengthByte,P->sjdbInsert.outDir+"/SAindex","ERROR_012011",P); + saIndexOut.close(); }; //re-calculate genome-related parameters diff --git a/streamFuns.cpp b/streamFuns.cpp index dca067a..0408971 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -58,8 +58,8 @@ void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::strin P->inOut->logMain << " done\n" <inOut->logMain, EXIT_CODE_FILE_OPEN, *P); }; + return ofStream; }; diff --git a/streamFuns.h b/streamFuns.h index 35196ad..958fe1a 100644 --- a/streamFuns.h +++ b/streamFuns.h @@ -7,9 +7,9 @@ unsigned long long fstreamReadBig(std::ifstream &S, char* A, unsigned long long N); void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::string fileName, std::string errorID, Parameters *P) ; -void ofstrOpen (std::string fileName, std::string errorID, Parameters *P, ofstream & ofStream); +ofstream & ofstrOpen (std::string fileName, std::string errorID, Parameters *P); ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P); -void ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P, ifstream & ifStream); +ifstream & ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P); void copyFile(string fileIn, string fileOut); #endif From a6464cf8b643ed1969a1c87cff3cd00a6dc5a1b6 Mon Sep 17 00:00:00 2001 From: "y.hoogstrate@erasmusmc.nl" Date: Tue, 25 Aug 2015 10:05:42 +0200 Subject: [PATCH 131/536] Basic usage functionality --- STAR.cpp | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index 06f7dd2..c84c70d 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -27,13 +27,33 @@ #include "bam_cat.h" #include "htslib/htslib/sam.h" +#include "parametersDefault.xxd" + + + +void usage() { + printf("Usage: STAR [options]... --genomeDir REFERENCE --readFilesIn R1.fq R2.fq\n"); + printf("Spliced Transcripts Alignment to a Reference (c) Alexander Dobin, 2009-2015\n\n"); + + std::cout << parametersDefault; + + printf("For more details see:\n"); + printf("\n"); + printf("\n"); + + exit(0); +} + int main(int argInN, char* argIn[]) { - + // If no argument is given, or the first argument is either '-h' or '--help', run usage() + if((argInN == 1) || (argInN == 2 && (strcmp("-h",argIn[1]) == 0 || strcmp ("--help",argIn[1]) == 0 ))) { + usage(); + } + time(&g_statsAll.timeStart); - + Parameters *P = new Parameters; //all parameters - P->inputParameters(argInN, argIn); *(P->inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... Started STAR run\n" < Date: Tue, 25 Aug 2015 15:41:58 -0400 Subject: [PATCH 132/536] Minor changes. --- Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index bdce46f..08f4097 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ # user may define these whole flags # LDFLAGS # CXXFLAGS +# CFLAGS # or these user-set flags that will be added to standard flags LDFLAGSextra ?= @@ -22,6 +23,7 @@ CXXFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) CXXFLAGS_main := -O3 $(CXXFLAGS_common) CXXFLAGS_gdb := -O0 -g $(CXXFLAGS_common) +CFLAGS ?= -O3 -pipe -Wall -Wextra ########################################################################################################## @@ -53,7 +55,7 @@ SOURCES := $(wildcard *.cpp) $(wildcard *.c) $(CXX) -c $(CXXFLAGS) $< %.o : %.c - $(CXX) -c $(CXXFLAGS) $< + $(CXX) -c $(CFLAGS) $< all: STAR @@ -80,7 +82,7 @@ ifneq ($(MAKECMDGOALS),STARforMacGDB) Depend.list: $(SOURCES) parametersDefault.xxd htslib echo $(SOURCES) /bin/rm -f ./Depend.list - $(CXX) $(CXXFLAGS_main) -MM $^ >> Depend.list + $(CXX) $(CXXFLAGS_common) -MM $^ >> Depend.list include Depend.list endif endif From 32b405975920598bbf3ef73b050b60554c660fba Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 28 Aug 2015 11:39:07 -0400 Subject: [PATCH 133/536] Fixed a bug in the --alignEndsType Extend5pOfRead1 option. Fixed a bug in the new --alignSJstitchMismatchNmax option. --- Parameters.cpp | 29 +- Parameters.h | 3 + ReadAlign_outputAlignments.cpp | 4 +- extendAlign.cpp | 12 +- parametersDefault | 3 + parametersDefault.xxd | 3272 ++++++++++++++++---------------- readLoad.cpp | 10 +- stitchAlignToTranscript.cpp | 2 +- stitchWindowAligns.cpp | 2 +- 9 files changed, 1691 insertions(+), 1646 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index af3ea58..48d5d97 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -46,7 +46,9 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesIn", &readFilesIn)); parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesCommand", &readFilesCommand)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); + parArray.push_back(new ParameterInfoVector (-1, -1, "readNameSeparator", &readNameSeparator)); + //input from BAM parArray.push_back(new ParameterInfoScalar (-1, -1, "inputBAMfile", &inputBAMfile)); @@ -836,7 +838,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --alignEndsType: "<logMain, EXIT_CODE_PARAMETER, *this); }; @@ -1039,6 +1041,29 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; + for (int ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); + }; + }; + inOut->logMain << "Finished loading and checking parameters\n" < readFilesCommand; pid_t readFilesCommandPID[MAX_N_MATES]; + vector readNameSeparator; + vector readNameSeparatorChar; + string outSAMreadID; vector clip5pNbases, clip3pNbases, clip3pAfterAdapterNbases; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index c7d4f2c..fa24448 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -47,7 +47,7 @@ void ReadAlign::outputAlignments() { // if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutFilterBySJout); for (uint im=0;imreadNmates;im++) { - chunkOutFilterBySJoutFiles[im] << readNameMates[im] << "/" <=0 && P->outReadsUnmapped=="Fastx" ){//output to fasta/q files for (uint im=0;imreadNmates;im++) { - chunkOutUnmappedReadsStream[im] << readNameMates[im] << "/" <readNmates>1) chunkOutUnmappedReadsStream[im] <<"\t"<< int(mateMapped[0]) << int(mateMapped[1]); chunkOutUnmappedReadsStream[im] <<"\n"; chunkOutUnmappedReadsStream[im] << Read0[im] <<"\n"; diff --git a/extendAlign.cpp b/extendAlign.cpp index 98f35ee..2ff1943 100644 --- a/extendAlign.cpp +++ b/extendAlign.cpp @@ -24,12 +24,12 @@ if (pMMmax<0) {//end to end extension iG=dG*iExt; if (G[iG]==5) {//prohibit extension through chr boundary -// trA->extendL=0; -// trA->maxScore=-999999999; -// trA->nMatch=0; -// trA->nMM=nMMmax+1; -// return true; - return false; + trA->extendL=0; + trA->maxScore=-999999999; + trA->nMatch=0; + trA->nMM=nMMmax+1; + return true; +// return false; }; if (R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through the spacer between fragments diff --git a/parametersDefault b/parametersDefault index c37c33e..b80a2fb 100644 --- a/parametersDefault +++ b/parametersDefault @@ -109,6 +109,9 @@ readMapNumber -1 readMatesLengthsIn NotEqual string: Equal/NotEqual - lengths of names,sequences,qualities for both mates are the same / not the same. NotEqual is safe in all situations. +readNameSeparator / + string(s): character(s) separating the part of the read names that will be trimmed in output (read name after space is always trimmed) + clip3pNbases 0 int(s): number(s) of bases to clip from 3p of each mate. If one value is given, it will be assumed the same for both mates. diff --git a/parametersDefault.xxd b/parametersDefault.xxd index abe787c..2939dd0 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -463,1734 +463,1748 @@ unsigned char parametersDefault[] = { 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, + 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, + 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, + 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, + 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, - 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, - 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, - 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, - 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, - 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, + 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, - 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, - 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, - 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, - 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, - 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, - 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, + 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, + 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, + 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, + 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, + 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, + 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x28, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, + 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, + 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, + 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, - 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, - 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, - 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, - 0x29, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, + 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, + 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x28, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, + 0x41, 0x4d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, + 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, + 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, + 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, - 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, - 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, - 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, - 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, + 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, - 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, - 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, - 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, + 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, + 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, + 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, + 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, + 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, + 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, + 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, + 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, + 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, + 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, - 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, - 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, - 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, - 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, - 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, - 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, - 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, - 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, - 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, + 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, + 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, + 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, + 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, + 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, + 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, + 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, - 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, - 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, - 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, - 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, - 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, - 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, - 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, - 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, - 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, - 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, - 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, - 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, - 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, - 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, - 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, - 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, - 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, - 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, - 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, - 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, + 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, + 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, + 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, + 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, + 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, + 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, + 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, + 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, + 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, + 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, + 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, + 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, - 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, - 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, - 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, + 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, + 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, + 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, + 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, + 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, + 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, - 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, - 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, + 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, + 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, + 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, - 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, - 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, + 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, + 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, - 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, - 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, + 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x66, 0x65, + 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, - 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, + 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, - 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, - 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, - 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, - 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, - 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, + 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, + 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, + 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, + 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, + 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, + 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, + 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, + 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, + 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, + 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, + 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, - 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, - 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, - 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, - 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, - 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, - 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, - 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, - 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, - 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, - 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, - 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, - 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, - 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, - 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, - 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, - 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, - 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, - 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, - 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, - 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, - 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, - 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, + 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, + 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, + 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, + 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, - 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, + 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, + 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, + 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, + 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, + 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, + 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, + 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, + 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, + 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, + 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, + 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, + 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, + 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, + 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, + 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, + 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, - 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, - 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, - 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, - 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, + 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, + 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, + 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, + 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, - 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, + 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, + 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, + 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 26313; +unsigned int parametersDefault_len = 26483; diff --git a/readLoad.cpp b/readLoad.cpp index a8ca2a9..a86d4c1 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -142,10 +142,10 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint //trim read name - char* pSlash=strchr(readName,' '); //trim everything after ' ' - if (pSlash!=NULL) *pSlash=0; - pSlash=strchr(readName,'/'); //trim everything after / - if (pSlash!=NULL) *pSlash=0; - + for (uint ii=0; iireadNameSeparatorChar.size(); ii++) + { + char* pSlash=strchr(readName,P->readNameSeparatorChar.at(ii)); //trim everything after ' ' + if (pSlash!=NULL) *pSlash=0; + }; return readFileType; }; diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 0dcbef2..83e0199 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -299,7 +299,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst #else if ( (trA->nMM + nMM)<=outFilterMismatchNmaxTotal \ - && ( jCan<0 || nMM<=P->alignSJstitchMismatchNmax[++jCan/2] ) ) + && ( jCan<0 || (jCan<7 && nMM<=P->alignSJstitchMismatchNmax[(jCan+1)/2]) ) ) #endif {//stitching worked only if there no mis-matches for non-GT/AG junctions trA->nMM += nMM; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index c6a3cd1..902178c 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -67,7 +67,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //calculate # of allowed mismatches that has been left - double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[trA.nExons-1][EX_iFrag]==0 && trA.Str==0) ? -1 : P->outFilterMismatchNoverLmax1; + double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[trA.nExons-1][EX_iFrag]==0 && trA.Str==1) ? -1 : P->outFilterMismatchNoverLmax1; trAstep1.reset(); // //to prevent extension past the Chr end From fb27c00af3a8e9ea76bdeaec69b90ccafcd07857 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 28 Aug 2015 15:23:58 -0400 Subject: [PATCH 134/536] Re-implemented the end-to-end mapping. Still debugging. --- Parameters.cpp | 28 +++++++++++++++++++--------- Parameters.h | 11 +++++++++-- ReadAlign_stitchWindowSeeds.cpp | 12 ++++++++---- extendAlign.cpp | 4 ++-- extendAlign.h | 3 ++- stitchAlignToTranscript.cpp | 6 ++++-- stitchWindowAligns.cpp | 14 +++++++++----- 7 files changed, 53 insertions(+), 25 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 48d5d97..57e854c 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -174,7 +174,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLminOverLmate", &alignSplicedMateMapLminOverLmate)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignWindowsPerReadNmax", &alignWindowsPerReadNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerWindowNmax", &alignTranscriptsPerWindowNmax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignEndsType", &alignEndsType)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignEndsType", &alignEndsType.in)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSoftClipAtReferenceEnds", &alignSoftClipAtReferenceEnds)); @@ -829,16 +829,26 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <logMain, EXIT_CODE_PARAMETER, *this); }; diff --git a/Parameters.h b/Parameters.h index a71e694..ba0cda6 100644 --- a/Parameters.h +++ b/Parameters.h @@ -82,9 +82,16 @@ class Parameters { uint alignIntronMin;//min length to call a gap an intron uint alignIntronMax;//max length to call uint alignMatesGapMax;//max gap between the mates (if paired-end) - string alignEndsType, alignSoftClipAtReferenceEnds; + string alignSoftClipAtReferenceEnds; vector alignSJstitchMismatchNmax; + struct + { + string in; + bool ext[2][2]; + } alignEndsType; + + //seed parameters uint seedMultimapNmax; //max number of multiple alignments per piece uint seedSearchLmax; //max length of the seed @@ -127,7 +134,7 @@ class Parameters { //output filtering uint outFilterMismatchNmax; - double outFilterMismatchNoverLmax, outFilterMismatchNoverReadLmax, outFilterMismatchNoverLmax1; //max proportion of all MM within all bases + double outFilterMismatchNoverLmax, outFilterMismatchNoverReadLmax; //max proportion of all MM within all bases uint outFilterMatchNmin,outFilterMultimapNmax;//min number of matches double outFilterScoreMinOverLread, outFilterMatchNminOverLread;//normalzied to read length diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 3c954b4..697c7c3 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -49,7 +49,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* } else {//extend to the left score2=WA[iW][iS1][WA_Length]; if ( WA[iW][iS1][WA_rStart]>0 \ - && extendAlign(R, Q, G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, min(WA[iW][iS1][WA_rStart], WA[iW][iS1][WA_gStart] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend + && extendAlign(R, Q, G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, min(WA[iW][iS1][WA_rStart], WA[iW][iS1][WA_gStart] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + P->alignEndsType.ext[trA1.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; if (score2 > scoreSeedBest[iS1] ) { @@ -72,7 +73,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread-1 \ - && extendAlign(R, Q, G, tR2, tG2, +1, +1, min(Lread-tR2,P->chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend + && extendAlign(R, Q, G, tR2, tG2, +1, +1, min(Lread-tR2,P->chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) {//if could extend scoreSeedBest[iS1]+=trA1.maxScore; }; if (scoreSeedBest[iS1]>scoreBest) {//record new best transcript @@ -130,7 +132,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* uint iS1=seedChain[seedN-1]; trA1=*trInit; if ( trA.exons[0][EX_R]>0 \ - && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, min(trA.exons[0][EX_R], trA.exons[0][EX_G] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend + && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, min(trA.exons[0][EX_R], trA.exons[0][EX_G] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, + P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend trA.add(&trA1); // trA.maxScore += trA1.maxScore + WA[iW][iS1][WA_Length]; @@ -151,7 +154,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread \ - && extendAlign(R, Q, G, tR2, tG2, +1, +1, min(Lread-tR2,P->chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend + && extendAlign(R, Q, G, tR2, tG2, +1, +1, min(Lread-tR2,P->chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + P->alignEndsType.ext[trA1.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend trA.add(&trA1); trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon }; diff --git a/extendAlign.cpp b/extendAlign.cpp index 2ff1943..ffe5fad 100644 --- a/extendAlign.cpp +++ b/extendAlign.cpp @@ -3,7 +3,7 @@ #include "Transcript.h" #include "extendAlign.h" -bool extendAlign( char* R, char* Q, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, Transcript* trA ) { +bool extendAlign( char* R, char* Q, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, bool extendToEnd, Transcript* trA ) { // find the maximum score @@ -16,7 +16,7 @@ R=R+rStart; Q=Q+rStart; G=G+gStart; -if (pMMmax<0) {//end to end extension +if (extendToEnd) {//end to end extension int iExt; for (iExt=0;iExt<(int) L;iExt++) { diff --git a/extendAlign.h b/extendAlign.h index 7a7d567..853c559 100644 --- a/extendAlign.h +++ b/extendAlign.h @@ -2,4 +2,5 @@ #include "Parameters.h" #include "Transcript.h" -bool extendAlign( char*, char*, char*, uint, uint, int, int, uint, uint, uint, uint, double, Transcript* ); +bool extendAlign( char* R, char* Q, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, bool extendToEnd, Transcript* trA ); + diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 83e0199..97cf391 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -358,7 +358,8 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trExtend.reset(); - if ( extendAlign(R, Q, G, rAend+1, gAend+1, 1, 1, DEF_readSeqLengthMax, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trExtend) ) { + if ( extendAlign(R, Q, G, rAend+1, gAend+1, 1, 1, DEF_readSeqLengthMax, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + P->alignEndsType.ext[trA->exons[trA->nExons-1][EX_iFrag]][1], &trExtend) ) { trA->add(&trExtend); Score += trExtend.maxScore; @@ -372,7 +373,8 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->nMatch += L; trExtend.reset(); - if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trExtend) ) { + if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + P->alignEndsType.ext[iFragB][1], &trExtend) ) { trA->add(&trExtend); Score += trExtend.maxScore; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 902178c..53c58f1 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -43,11 +43,13 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //calculate # of allowed mismatches that has been left - double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[0][EX_iFrag]==0 && trA.Str==0) ? -1 : P->outFilterMismatchNoverLmax1; +// double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[0][EX_iFrag]==0 && trA.Str==0) ? -1 : P->outFilterMismatchNoverLmax1; trAstep1.reset(); // //avoid extending before Chr start - if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, min(trA.rStart, trA.gStart - P->chrStart[trA.Chr]), tR2-trA.rStart+1, trA.nMM, RA->outFilterMismatchNmaxTotal, pMMmax, &trAstep1) ) {//if could extend + if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, min(trA.rStart, trA.gStart - P->chrStart[trA.Chr]), tR2-trA.rStart+1, \ + trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trAstep1) ) {//if could extend trA.add(&trAstep1); Score += trAstep1.maxScore; @@ -67,11 +69,13 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //calculate # of allowed mismatches that has been left - double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[trA.nExons-1][EX_iFrag]==0 && trA.Str==1) ? -1 : P->outFilterMismatchNoverLmax1; +// double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[trA.nExons-1][EX_iFrag]==0 && trA.Str==1) ? -1 : P->outFilterMismatchNoverLmax1; trAstep1.reset(); // //to prevent extension past the Chr end - if ( extendAlign(R, Q, G, tR2+1, tG2+1, +1, +1, min(Lread-tR2-1,P->chrStart[trA.Chr+1]-tG2-2), tR2-trA.rStart+1, trA.nMM, RA->outFilterMismatchNmaxTotal, pMMmax, &trAstep1) ) {//if could extend + if ( extendAlign(R, Q, G, tR2+1, tG2+1, +1, +1, min(Lread-tR2-1,P->chrStart[trA.Chr+1]-tG2-2), tR2-trA.rStart+1, \ + trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + P->alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trAstep1) ) {//if could extend trA.add(&trAstep1); Score += trAstep1.maxScore; @@ -247,7 +251,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //OR within the score range of each mate //OR all transcript if chimeric detection is activated - if (P->outFilterMismatchNoverLmax1<0) {//check that the alignment is end-to-end + if (P->alignEndsType.in=="EndToEnd") {//check that the alignment is end-to-end uint rTotal=trA.rLength+trA.lIns; // for (uint iex=1;iex Date: Mon, 31 Aug 2015 11:41:22 -0400 Subject: [PATCH 135/536] Implemented --alignEndsType Extend3pOfRead1 option for full extension of the 3' end of read 1. --- ReadAlign_stitchWindowSeeds.cpp | 8 ++++---- extendAlign.cpp | 4 ++-- stitchAlignToTranscript.cpp | 5 ++++- stitchWindowAligns.cpp | 33 ++++++++++----------------------- 4 files changed, 20 insertions(+), 30 deletions(-) diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 697c7c3..58a5845 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -49,7 +49,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* } else {//extend to the left score2=WA[iW][iS1][WA_Length]; if ( WA[iW][iS1][WA_rStart]>0 \ - && extendAlign(R, Q, G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, min(WA[iW][iS1][WA_rStart], WA[iW][iS1][WA_gStart] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + && extendAlign(R, Q, G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA1.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; @@ -73,7 +73,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread-1 \ - && extendAlign(R, Q, G, tR2, tG2, +1, +1, min(Lread-tR2,P->chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + && extendAlign(R, Q, G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) {//if could extend scoreSeedBest[iS1]+=trA1.maxScore; }; @@ -132,7 +132,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* uint iS1=seedChain[seedN-1]; trA1=*trInit; if ( trA.exons[0][EX_R]>0 \ - && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, min(trA.exons[0][EX_R], trA.exons[0][EX_G] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, + && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend trA.add(&trA1); @@ -154,7 +154,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread \ - && extendAlign(R, Q, G, tR2, tG2, +1, +1, min(Lread-tR2,P->chrStart[WC[iW][WC_Str]+1]-tG2-1), 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + && extendAlign(R, Q, G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA1.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend trA.add(&trA1); trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon diff --git a/extendAlign.cpp b/extendAlign.cpp index ffe5fad..fdcdad3 100644 --- a/extendAlign.cpp +++ b/extendAlign.cpp @@ -23,7 +23,7 @@ if (extendToEnd) {//end to end extension iS=dR*iExt; iG=dG*iExt; - if (G[iG]==5) {//prohibit extension through chr boundary + if ((gStart+iG)==-1 || G[iG]==5) {//prohibit extension through chr boundary trA->extendL=0; trA->maxScore=-999999999; trA->nMatch=0; @@ -61,7 +61,7 @@ for (int i=0;i<(int) L;i++) { iS=dR*i; iG=dG*i; - if (G[iG]==5 || R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through chr boundary, or through the spacer between fragments + if ((gStart+iG)==-1 || G[iG]==5 || R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through chr boundary, or through the spacer between fragments if (R[iS]>3 || G[iG]>3) continue;//no penalties for Ns in reads or genome if (G[iG]==R[iS]) {//Match diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 97cf391..45d1085 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -373,7 +373,10 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->nMatch += L; trExtend.reset(); - if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ +// if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + //if end extension needs to be forced, use large length. Otherwise, only extend until the beginning of the transcript + uint extlen=P->alignEndsType.ext[iFragB][1] ? DEF_readSeqLengthMax : gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R]; + if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, extlen, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[iFragB][1], &trExtend) ) { trA->add(&trExtend); diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 53c58f1..8aa282e 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -38,16 +38,9 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui case 0: //extend at start - if (trA.rStart>0) {// if transcript does not start at base, extend to the read start - - //calculate # of allowed mismatches that has been left - - -// double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[0][EX_iFrag]==0 && trA.Str==0) ? -1 : P->outFilterMismatchNoverLmax1; - + if (trA.rStart>0) {// if transcript does not start at base, extend to the read start trAstep1.reset(); - // //avoid extending before Chr start - if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, min(trA.rStart, trA.gStart - P->chrStart[trA.Chr]), tR2-trA.rStart+1, \ + if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, trA.rStart, tR2-trA.rStart+1, \ trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trAstep1) ) {//if could extend @@ -66,14 +59,8 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui case 1: //extend at end if ( tR2alignEndsType=="Extend5pOfRead1" && trA.exons[trA.nExons-1][EX_iFrag]==0 && trA.Str==1) ? -1 : P->outFilterMismatchNoverLmax1; - trAstep1.reset(); - // //to prevent extension past the Chr end - if ( extendAlign(R, Q, G, tR2+1, tG2+1, +1, +1, min(Lread-tR2-1,P->chrStart[trA.Chr+1]-tG2-2), tR2-trA.rStart+1, \ + if ( extendAlign(R, Q, G, tR2+1, tG2+1, +1, +1, Lread-tR2-1, tR2-trA.rStart+1, \ trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trAstep1) ) {//if could extend @@ -251,13 +238,13 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //OR within the score range of each mate //OR all transcript if chimeric detection is activated - if (P->alignEndsType.in=="EndToEnd") {//check that the alignment is end-to-end - uint rTotal=trA.rLength+trA.lIns; -// for (uint iex=1;iexreadLength[0]+RA->readLength[1])) || (trA.iFrag>=0 && rTotalreadLength[trA.iFrag])) return; - }; +// if (P->alignEndsType.in=="EndToEnd") {//check that the alignment is end-to-end +// uint rTotal=trA.rLength+trA.lIns; +// // for (uint iex=1;iexreadLength[0]+RA->readLength[1])) || (trA.iFrag>=0 && rTotalreadLength[trA.iFrag])) return; +// }; uint iTr=0; //transcript insertion/replacement place From bb8518151f7f632a1e132f79fdfe5e1d0f37fc8f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 2 Sep 2015 17:26:53 -0400 Subject: [PATCH 136/536] Fixed minor compilation problem. --- Parameters.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 57e854c..2565d1a 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -829,8 +829,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" < Date: Wed, 2 Sep 2015 19:08:58 -0400 Subject: [PATCH 137/536] Fixed minor compilation problem. --- Parameters.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 2565d1a..c4fc5e3 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -836,8 +836,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (alignEndsType.in=="EndToEnd") { - alignEndsType.ext[0]={true, true}; - alignEndsType.ext[1]={true, true}; + alignEndsType.ext[0][0]=true; + alignEndsType.ext[0][1]=true; + alignEndsType.ext[1][0]=true; + alignEndsType.ext[1][1]=true; } else if (alignEndsType.in=="Extend5pOfRead1" ) { alignEndsType.ext[0][0]=true; From 8356afd9cd9485b27402e05c48a388b97490c438 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 11 Sep 2015 16:23:29 -0400 Subject: [PATCH 138/536] Fixed a problem with bins when sorting small number of reads. --- ReadAlignChunk_processChunks.cpp | 2 +- parametersDefault | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index df10dc1..503628e 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -149,7 +149,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks };//cycle over input chunks - if (P->outFilterBySJoutStage!=1) {//not the first stage of the 2-stage mapping + if (P->outFilterBySJoutStage!=1 && RA->iRead>0) {//not the first stage of the 2-stage mapping if (P->outBAMunsorted) chunkOutBAMunsorted->unsortedFlush(); if (P->outBAMcoord) chunkOutBAMcoord->coordFlush(); if (chunkOutBAMquant!=NULL) chunkOutBAMquant->unsortedFlush(); diff --git a/parametersDefault b/parametersDefault index b80a2fb..13196ac 100644 --- a/parametersDefault +++ b/parametersDefault @@ -79,8 +79,8 @@ sjdbGTFtagExonParentGene gene_id string: tag name to be used as exons' gene-parents (default "gene_id" works for GTF files) sjdbOverhang 100 - int>=0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1) - if =0, splice junction database is not used + int>0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1) + sjdbScore 2 int: extra alignment score for alignmets that cross database junctions From 9c6da147569b4494ababeeef33efbd204bf4a268 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 18 Sep 2015 18:50:50 -0400 Subject: [PATCH 139/536] Implementing sequence insertion. For now only works w/o splice junctions. Signed-off-by: Alexander Dobin --- Genome_insertSequences.cpp | 33 +++++ funCompareUintAndSuffixes.cpp | 40 ++++++ funCompareUintAndSuffixes.h | 7 + genomeScanFastaFiles.cpp | 85 ++++++++++++ genomeScanFastaFiles.h | 9 ++ insertSeqSA.cpp | 250 ++++++++++++++++++++++++++++++++++ insertSeqSA.h | 10 ++ 7 files changed, 434 insertions(+) create mode 100644 Genome_insertSequences.cpp create mode 100644 funCompareUintAndSuffixes.cpp create mode 100644 funCompareUintAndSuffixes.h create mode 100644 genomeScanFastaFiles.cpp create mode 100644 genomeScanFastaFiles.h create mode 100644 insertSeqSA.cpp create mode 100644 insertSeqSA.h diff --git a/Genome_insertSequences.cpp b/Genome_insertSequences.cpp new file mode 100644 index 0000000..baa0061 --- /dev/null +++ b/Genome_insertSequences.cpp @@ -0,0 +1,33 @@ +/* + * inserts sequences into the SA and SAi indices + */ +#include "Genome.h" +#include "genomeScanFastaFiles.h" +#include "insertSeqSA.h" + +void Genome::insertSequences() +{ +if (P->genomeFastaFiles.at(0)!="-") +{ + //move the junctions to free up space for seqs + // chrStart/Name/Length nChrReal include the extra sequences + // nGenome is the old, small genome size + uint sjdblen=P->nGenome-(P->chrStart.back()-P->genomeInsertL);//length of sjdb sequences + memmove(G+P->chrStart.back(),G+P->chrStart.back()-P->genomeInsertL,sjdblen); + memset(G+P->chrStart.back()-P->genomeInsertL, GENOME_spacingChar, P->genomeInsertL);//fill empty space with spacing characters + genomeScanFastaFiles(P, G+P->chrStart.back()-P->genomeInsertL, true); //read the seqs from file(s) into the free space + uint64 nGenomeOld=P->nGenome; + P->nGenome=P->chrStart.back()+sjdblen; + + //insert new sequences into the SA + insertSeqSA(SA, SApass1, SAi, G, G+P->chrStart.back()-P->genomeInsertL, nGenomeOld-sjdblen, P->genomeInsertL, sjdblen, P); + P->nSA=SA.length; + P->nSAbyte=SA.lengthByte; + + + + //insert new sequences into the SAi + //update P + //save the genome if necessary +}; +}; diff --git a/funCompareUintAndSuffixes.cpp b/funCompareUintAndSuffixes.cpp new file mode 100644 index 0000000..afc6a2c --- /dev/null +++ b/funCompareUintAndSuffixes.cpp @@ -0,0 +1,40 @@ +#include "funCompareUintAndSuffixes.h" +#define uint64 unsigned long long + +char* globalGenomeArray; + +int funCompareUintAndSuffixes ( const void *a, const void *b){ + uint64 va= *((uint64*) a); + uint64 vb= *((uint64*) b); + + if (va>vb) { + return 1; + } else if (vagb[ig]) + {// second condition: reached the end of ga, it's >= than any character, but = does not matter + return 1; + } else if (ga[ig]vb) + { + return 1; + } else + {//va cannot be equal to vb + return -1; + }; + } else + {//continue + ig++; + }; + }; + }; +}; \ No newline at end of file diff --git a/funCompareUintAndSuffixes.h b/funCompareUintAndSuffixes.h new file mode 100644 index 0000000..db2a4b6 --- /dev/null +++ b/funCompareUintAndSuffixes.h @@ -0,0 +1,7 @@ +#ifndef CODE_funCompareUintAndSuffixes +#define CODE_funCompareUintAndSuffixes + +extern char* globalGenomeArray; +int funCompareUintAndSuffixes ( const void *a, const void *b); + +#endif diff --git a/genomeScanFastaFiles.cpp b/genomeScanFastaFiles.cpp new file mode 100644 index 0000000..ebde869 --- /dev/null +++ b/genomeScanFastaFiles.cpp @@ -0,0 +1,85 @@ +#include "genomeScanFastaFiles.h" +#include "ErrorWarning.h" + + +uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta files. flagRun=false: check and find full size, flaRun=true: collect all the data + + uint N=0;//total number of bases in the genome, including chr "spacers" + if (!flagRun && P->chrLength.size()>0) + {//previous chr records exist + P->chrStart.pop_back();//remove last record + N = P->chrStart.back()+P->chrLength.back(); + }; + + ifstream fileIn; + for (uint ii=0;iigenomeFastaFiles.size();ii++) {//all the input files + fileIn.open(P->genomeFastaFiles.at(ii).c_str()); + if ( !fileIn.good() ) {// + ostringstream errOut; + errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + while(!fileIn.eof()) {//read each file until eof + string lineIn (4096,'.'); + getline(fileIn,lineIn); + if (lineIn[0]=='>') {//new chromosome + if (!flagRun) { + istringstream lineInStream (lineIn); + lineInStream.ignore(1,' '); + string chrName1; + lineInStream >> chrName1; + P->chrName.push_back(chrName1); + }; + + if (!flagRun && P->chrStart.size()>0) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr + + if (N>0) {//pad the chromosomes to bins boudnaries + N = ( (N+1)/P->genomeChrBinNbases+1 )*P->genomeChrBinNbases; + }; + + if (!flagRun) { + P->chrStart.push_back(N); + P->inOut->logMain << P->genomeFastaFiles.at(ii)<<" : chr # " << P->chrStart.size()-1 << " \""<chrName.at(P->chrStart.size()-1)<<"\" chrStart: "<chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr + + N = ( (N+1)/P->genomeChrBinNbases+1)*P->genomeChrBinNbases; + + if (!flagRun) + { + P->nChrReal=P->chrStart.size(); + P->chrStart.push_back(N); //last chromosome end+1 + for (uint ii=0;iinChrReal;ii++) { + P->chrNameIndex[P->chrName[ii]]=ii; + }; + } else + {//convert the genome to 0,1,2,3,4 + for (uint jj=0;jjinOut->logMain << "Unexpected character: char="<< G[jj] << " int="< + +uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * G, char * G1, uint64 nG, uint64 nG1, uint64 nG2, Parameters * P) +{//insert new sequences into the SA + + uint GstrandBit1 = (uint) floor(log(nG+nG1)/log(2))+1; + if (GstrandBit1<32) GstrandBit1=32; //TODO: use simple access function for SA + if ( GstrandBit1+1 != SA.wordLength) + {//sequence is too long - GstrandBit changed + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: cannot insert sequence on the fly because of strand GstrandBit problem\n"; + errOut << "SOLUTION: please contact STAR author at https://groups.google.com/forum/#!forum/rna-star\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + + uint N2bit= 1LLU << (SA.wordLength-1); + uint strandMask=~N2bit; + for (uint64 isa=0;isa0 ) + {//- strand + if ( (ind1 & strandMask)>nG2 ) + {//the first nG bases + ind1+=nG1; //reverse complementary indices are all shifted by the length of the sequence + SA.writePacked(isa,ind1); + }; + } else + { + if ( ind1>nG ) + {//the last nG2 bases + ind1+=nG1; //reverse complementary indices are all shifted by the length of the sequence + SA.writePacked(isa,ind1); + }; + }; + }; + + char** seq1=new char*[2]; + + #define GENOME_endFillL 16 + char* seqq=new char [4*nG1+3*GENOME_endFillL];//ends shouldbe filled with 5 to mark boundaries + + seq1[0]=seqq+GENOME_endFillL;//TODO: avoid defining an extra array, use reverse search + seq1[1]=seqq+2*GENOME_endFillL+2*nG1; + + memset(seqq,GENOME_spacingChar,GENOME_endFillL); + memset(seqq+2*nG1+GENOME_endFillL,GENOME_spacingChar,GENOME_endFillL); + memset(seqq+4*nG1+2*GENOME_endFillL,GENOME_spacingChar,GENOME_endFillL); + + memcpy(seq1[0], G1, nG1); + for (uint ii=0; iirunThreadN) + #pragma omp for schedule (dynamic,1000) + for (uint ii=0; ii<2*nG1; ii++) {//find insertion points for each of the sequences + + if (seq1[0][ii]>3) + {//no index for suffices starting with N + indArray[ii*2]=-1; + } else + { + indArray[ii*2] = suffixArraySearch1(seq1, ii, 10000, G, nG, SA, true, 0, SA.length-1, 0, P) ; + indArray[ii*2+1] = ii; + }; + }; + + uint64 nInd=0;//true number of new indices + for (uint ii=0; ii<2*nG1; ii++) {//remove entries that cannot be inserted, this cannot be done in the parallel cycle above + if (indArray[ii*2]!= (uint) -1) { + indArray[nInd*2]=indArray[ii*2]; + indArray[nInd*2+1]=indArray[ii*2+1]; + ++nInd; + }; + }; + + time_t rawtime; + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search, number of new SA indices = "<inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indices"<GstrandBit+1,P->nSA+nInd); + SAo.allocateArray(); + ifstream oldSAin("./DirTrue/SA"); + oldSAin.read(SAo.charArray,SAo.lengthByte); + oldSAin.close(); + //*/ + + uint isa1=0, isa2=0; + for (uint isa=0;isa0 && SA1[isa2-1]!=SAo[isa2-1]) { + cout <0 && SA1[isa2-1]!=SAo[isa2-1]) { + cout <inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" <genomeSAindexNbases; iL++) { + uint iSeq=0; + uint ind0=P->genomeSAindexStart[iL]-1;//last index that was present in the old genome + for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index + uint iSA1=SAi[ii]; + uint iSA2=iSA1 & P->SAiMarkNmask & P->SAiMarkAbsentMask; + + if ( iSeqSAiMarkAbsentMaskC)>0 ) + {//index missing from the old genome + uint iSeq1=iSeq; + int64 ind1=funCalcSAi(seq1[0]+indArray[2*iSeq+1],iL); + while (ind1 < (int64)(ii-P->genomeSAindexStart[iL]) && indArray[2*iSeq]genomeSAindexStart[iL]) ) { + SAi.writePacked(ii,indArray[2*iSeq]+iSeq+1); + for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); + }; + ++iSeq; + ind0=ii; + } else { + iSeq=iSeq1; + }; + } else + {//index was present in the old genome + while (iSeq= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index + break; + }; + ++iSeq; + }; + + SAi.writePacked(ii,iSA1+iSeq); + + for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); + }; + ind0=ii; + }; + }; + + }; +// time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SAi first" <genomeSAindexNbases; iL++) { + uint g=(uint) seq1[0][indArray[2*isj+1]+iL]; + ind1 <<= 2; + if (g>3) {//this iSA contains N, need to mark the previous + for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { + ind1+=3; + int64 ind2=P->genomeSAindexStart[iL1]+ind1; + for (; ind2>=0; ind2--) {//find previous index that is not absent + if ( (SAi[ind2] & P->SAiMarkAbsentMaskC)==0 ) { + break; + }; + }; + SAi.writePacked(ind2,SAi[ind2] | P->SAiMarkNmaskC); + ind1 <<= 2; + }; + break; + } else { + ind1 += g; + }; + }; + }; + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <genomeSAindexNbases+2));//skip first bytes + oldSAiin.read(SAio.charArray,SAio.lengthByte); + oldSAiin.close(); + + for (uint iL=0; iL < P->genomeSAindexNbases; iL++) { + for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index + if ( SAio[ii]!=SAi[ii] ) { + cout <GstrandBit+1,SA.length+nInd);//same as SA2 + SA.pointArray(SA1.charArray); +// P->sjGstart=P->chrStart[P->nChrReal]; +// memcpy(G+P->chrStart[P->nChrReal],seq1[0], nseq1[0]); + + + return nInd; +}; diff --git a/insertSeqSA.h b/insertSeqSA.h new file mode 100644 index 0000000..366c553 --- /dev/null +++ b/insertSeqSA.h @@ -0,0 +1,10 @@ +#ifndef CODE_insertSeqSA +#define CODE_insertSeqSA + +#include "IncludeDefine.h" +#include "PackedArray.h" +#include "Parameters.h" + +uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * G, char * G1, uint64 nG, uint64 nG1, uint64 nG2, Parameters * P); + +#endif From 319341beaf026ee0a21cf67e8935d71455a611df Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 18 Sep 2015 18:51:00 -0400 Subject: [PATCH 140/536] Implementing sequence insertion. For now only works w/o splice junctions. --- Genome.cpp | 34 +- Genome.h | 4 + Makefile | 3 +- Parameters.cpp | 5 +- Parameters.h | 1 + STAR.cpp | 8 + SuffixArrayFuns.cpp | 207 +++ SuffixArrayFuns.h | 2 + genomeGenerate.cpp | 139 +- parametersDefault.xxd | 3502 ++++++++++++++++++++--------------------- sjdbBuildIndex.cpp | 46 +- 11 files changed, 2043 insertions(+), 1908 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 8f3fcc8..66fe779 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -5,6 +5,7 @@ #include "ErrorWarning.h" #include "streamFuns.h" #include "SharedMemory.h" +#include "genomeScanFastaFiles.h" #include #include @@ -113,6 +114,9 @@ void Genome::genomeLoad(){//allocate and load Genome exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; + //find chr starts from files + P->chrInfoLoad(); + //check if sjdbInfo.txt exists => genome was generated with junctions bool sjdbInfoExists=false; struct stat sjdb1; @@ -283,6 +287,13 @@ void Genome::genomeLoad(){//allocate and load Genome } else if (P->genomeLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory { + P->genomeInsertL=0; + if (P->genomeFastaFiles.at(0)!="-") + {//will insert sequences in the genome, now estimate the extra size + uint oldlen=P->chrStart.back();//record the old length + P->genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; + }; + try { if (P->sjdbInsert.pass1 || P->sjdbInsert.pass2) @@ -291,8 +302,8 @@ void Genome::genomeLoad(){//allocate and load Genome nSApass1=P->nSA; if (P->sjdbInsert.pass1) { - nGenomePass1+=P->limitSjdbInsertNsj*P->sjdbLength; - nSApass1+=2*P->limitSjdbInsertNsj*P->sjdbLength; + nGenomePass1+=P->limitSjdbInsertNsj*P->sjdbLength+P->genomeInsertL; + nSApass1+=2*P->limitSjdbInsertNsj*P->sjdbLength+2*P->genomeInsertL; }; nGenomePass2=nGenomePass1; nSApass2=nSApass1; @@ -313,9 +324,18 @@ void Genome::genomeLoad(){//allocate and load Genome SA.pointArray(SApass1.charArray+SApass1.lengthByte-SA.lengthByte); } else {//no insertions - G1=new char[P->nGenome+L+L]; - SA.allocateArray(); - + if (P->genomeInsertL==0) + {// no sequence insertion, simple allocation + G1=new char[P->nGenome+L+L]; + SA.allocateArray(); + } else + { + G1=new char[P->nGenome+L+L+P->genomeInsertL]; + SApass1.defineBits(P->GstrandBit+1,P->nSA+2*P->genomeInsertL);//TODO: re-define GstrandBit if necessary + SApass1.allocateArray(); + SA.pointArray(SApass1.charArray+SApass1.lengthByte-SA.lengthByte); + }; + }; SAi.allocateArray(); P->inOut->logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<inOut->logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<> Log.timing.out"); return; }; - //find chr starts from files - P->chrInfoLoad(); + insertSequences(); P->chrBinFill(); diff --git a/Genome.h b/Genome.h index bbfe9f7..1136fd5 100644 --- a/Genome.h +++ b/Genome.h @@ -21,6 +21,9 @@ class Genome { void freeMemory(); void genomeLoad(); + void insertSequences(); + + private: Parameters* P; key_t shmKey; @@ -29,5 +32,6 @@ class Genome { SharedMemory * sharedMemory; uint OpenStream(string name, ifstream & stream); void HandleSharedMemoryException(const SharedMemoryException & exc, uint64 shmSize); + }; #endif diff --git a/Makefile b/Makefile index 08f4097..5d9eb9a 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,8 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ - genomeGenerate.o genomeParametersWrite.o \ + genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o \ + Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ diff --git a/Parameters.cpp b/Parameters.cpp index c4fc5e3..d5f8679 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1078,6 +1078,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; + + + //genome parameters + genomeChrBinNbases=1LLU<logMain << "Finished loading and checking parameters\n" < genomeFastaFiles; uint genomeSAsparseD;//sparsity=distance between indices + uint genomeInsertL; //total length of the sequence to be inserted on the fly //binning,windows,anchors uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; diff --git a/STAR.cpp b/STAR.cpp index 06f7dd2..2bc73a3 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -57,6 +57,11 @@ int main(int argInN, char* argIn[]) { }; P->twoPass.pass2=false; //this is the 1st pass + + if (P->genomeFastaFiles.at(0)!="-") + {//insert sequences in the genome + + }; SjdbClass sjdbLoci; @@ -67,6 +72,9 @@ int main(int argInN, char* argIn[]) { sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); }; + + + //calculate genome-related parameters Transcriptome *mainTranscriptome=NULL; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 3db8ea4..5ff488c 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -272,4 +272,211 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool return i1; }; +uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, int & compRes, Parameters* P) { + // compare s to g, find the maximum identity length + // s2[0] read sequence; s2[1] complementary sequence + // S position to start search from in s2[0],s2[1] + //dirR forward or reverse direction search on read sequence!!!!!NOT CHECKED + + //different treatment of 5 (spacer) in the sequence and genome + // 5 is allowed in the sequence + // 5 in the genome is < than 5 in the sequence + + //TODO no need for complementary sequence + + register int64 ii; + + uint SAstr=SA[iSA]; + bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P->GstrandMask; + + + if (dirR && dirG) {//forward on read, forward on genome + char* s = s2[0] + S + L; + g += SAstr + L; + for (ii=0;(uint) ii < N-L; ii++) + { + if (s[ii]!=g[ii]) + { + if (s[ii]>g[ii]) + { + compRes=1; + return ii+L; + } else + { + compRes=-1; + return ii+L; + }; + } else if (s[ii]==GENOME_spacingChar) + {//this already implies the s[ii]==g[ii] + compRes=5;//5 in the genome is < 5 in the sequence + return ii+L; + }; + }; +// if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; + return N; //exact match + } else if (dirR && !dirG) { + char* s = s2[1] + S + L; + g += P->nGenome-1-SAstr - L; + for (ii=0; (uint) ii < N-L; ii++) + { + if (s[ii]!=g[-ii]) + { +// if (s[ii]>g[-ii] || g[-ii]>3) //not sure ehy this does not work +// { +// compRes=false; +// return ii+L; +// } else +// { +// compRes=true; +// return ii+L; +// }; + char s1=s[ii],g1=g[-ii]; + if (s1<4) s1=3-s1; + if (g1<4) g1=3-g1; + if (s1>g1) { + compRes=1; + return ii+L; + } else + { + compRes=-1; + return ii+L; + }; + break; + } else if (s[ii]==GENOME_spacingChar) + {//this already implies the s[ii]==g[ii] + compRes=5;//5 in the genome is < 5 in the sequence + return ii+L; + }; + }; + return N; +// } else if (!dirR && dirG) { +// char* s = s2[1] + S - L; +// g += SAstr + L; +// for (ii=0; (uint) ii < N-L; ii++) +// { +// if (s[-ii]!=g[ii]) +// { +// if (s[-ii]>g[ii]) { +// compRes=true; +// return ii+L; +// +// } else +// { +// compRes=false; +// return ii+L; +// }; +// } else if (g[ii]==GENOME_spacingChar) +// {//this already implies the s[ii]==g[ii] +// compRes=true;//5 in the genome is < 5 in the sequence +// return ii+L; +// }; +// }; +// return N; +// } else {//if (!dirR && !dirG) +// char* s = s2[0] + S - L; +// g += P->nGenome-1-SAstr - L; +// for (ii=0; (uint) ii < N-L; ii++) +// { +// if (s[-ii]!=g[-ii]) +// { +// if (s[-ii]>g[-ii] || g[-ii]>3) +// { +// compRes=false; +// return ii+L; +// } else +// { +// compRes=true; +// return ii+L; +// }; +// } else if (g[ii]==GENOME_spacingChar) +// {//this already implies the s[ii]==g[ii] +// compRes=false;//5 in the genome is < 5 in the sequence +// return ii+L; +// }; +// }; +// return N; + }; +}; + +uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P) +{ + // binary search in SA space + // s[0],s[1] - sequence, complementary sequence + // S - start offset + // N - sequence length + // g - genome sequence + // gInsert - index where the sequence insertion happened + // SA - suffix array + // dirR - direction, true=froward, false=reverse!!!!!!!NOT checked + // i1,i2 = starting indices in SA + // L - starting length + // output: SA index < searched string, i.e. g[SA[index]]0) + {//the sequence is bigger than the last SA index, return it + L=L2; + return i2; + }; + + L=min(L1,L2); + + uint i3=i1,L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made + while (i1+1GstrandBit)>0) + { + i3g=P->nGenome-1-i3g; + }; + + compRes=i3g < gInsert ? 1:-1; + + }; + + if (compRes>0) + { //move 1 to 3 + i1=i3;L1=L3; + } else if (compRes<0) + {//move 2 to 3 + i2=i3;L2=L3; + } + L= min(L1,L2); + }; + return i1; +}; + +int64 funCalcSAi(char* G, uint iL) { + int64 ind1=0; + for (uint iL1=0;iL1<=iL;iL1++) { + uint g=(uint) G[iL1]; + if (g>3) { + return -ind1; + } else { + ind1 <<= 2; + ind1 += g; + }; + }; + return ind1; +}; diff --git a/SuffixArrayFuns.h b/SuffixArrayFuns.h index cfd8b1a..3bba7e2 100644 --- a/SuffixArrayFuns.h +++ b/SuffixArrayFuns.h @@ -12,5 +12,7 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint void writePacked( char* a, uint jj, uint x); uint readPacked(char* a, uint jj); uint suffixArraySearch(char** s, uint S, uint N, char* g, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P); +uint suffixArraySearch1(char** s2, uint S, uint N, char* G, uint64 gInsert, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P); +int64 funCalcSAi(char* G, uint iL); #endif diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 552f7e3..67011a4 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -11,6 +11,7 @@ #include "sjdbPrepare.h" #include "genomeParametersWrite.h" #include "sjdbInsertJunctions.h" +#include "genomeScanFastaFiles.h" #include "serviceFuns.cpp" #include "streamFuns.h" @@ -20,47 +21,56 @@ uint globalL; inline int funCompareSuffixes ( const void *a, const void *b){ - uint jj=0LLU; uint *ga=(uint*)((globalG-7LLU)+(*((uint*)a))); uint *gb=(uint*)((globalG-7LLU)+(*((uint*)b))); - uint va=0,vb=0; - while (va==vb && jjvb) { + if (va>vb) + { return 1; - } else if (va==vb) { - return 0; - } else { + } else if (va *((uint*)b) ) + {//anti-stable order,since indexes are sorted in the reverse order + return -1; + } else + {//a cannot be equal to b + return 1; + }; }; }; -inline bool funCompareSuffixesBool ( const void *a, const void *b) -{ - uint jj=0LLU; - - uint *ga=(uint*)((globalG-7LLU)+(*((uint*)a))); - uint *gb=(uint*)((globalG-7LLU)+(*((uint*)b))); - uint va=0,vb=0; - - while (va==vb && jjgenomeFastaFiles.size();ii++) {//all the input files - fileIn.open(P->genomeFastaFiles.at(ii).c_str()); - if ( !fileIn.good() ) {// - ostringstream errOut; - errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - while(!fileIn.eof()) {//read each file until eof - string lineIn (4096,'.'); - getline(fileIn,lineIn); - if (lineIn[0]=='>') {//new chromosome - if (!flagRun) { - istringstream lineInStream (lineIn); - lineInStream.ignore(1,' '); - string chrName1; - lineInStream >> chrName1; - P->chrName.push_back(chrName1); - }; - - if (!flagRun && P->chrStart.size()>0) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr - - if (N>0) {//pad the chromosomes to bins boudnaries - N = ( (N+1)/P->genomeChrBinNbases+1 )*P->genomeChrBinNbases; - }; - - if (!flagRun) { - P->chrStart.push_back(N); - P->inOut->logMain << P->genomeFastaFiles.at(ii)<<" : chr # " << P->chrStart.size()-1 << " \""<chrName.at(P->chrStart.size()-1)<<"\" chrStart: "<chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr - - N = ( (N+1)/P->genomeChrBinNbases+1)*P->genomeChrBinNbases; - - if (!flagRun) { - P->nChrReal=P->chrStart.size(); - P->chrStart.push_back(N); //last chromosome end - for (uint ii=0;iinChrReal;ii++) { - P->chrNameIndex[P->chrName[ii]]=ii; - }; - }; - - return N; -}; - void genomeGenerate(Parameters *P) { //check parameters @@ -174,24 +128,7 @@ void genomeGenerate(Parameters *P) { memset(G1,GENOME_spacingChar,nG1alloc);//initialize to K-1 all bytes - genomeScanFastaFiles(P,G,true); //load the genome sequence - - //convert the genome to 0,1,2,3,4 - for (uint jj=0;jjinOut->logMain << "Unexpected character: char="<< G[jj] << " int="<nGenome=N; diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 2939dd0..2868f67 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -342,161 +342,143 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, - 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, - 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x3d, - 0x30, 0x2c, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, - 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, - 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, - 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, + 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, + 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, + 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, + 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, + 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, + 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, - 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, - 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, - 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, - 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, + 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, + 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, + 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, + 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, + 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, - 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, - 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, - 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, - 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, - 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, + 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, + 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, + 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, + 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, @@ -504,28 +486,26 @@ unsigned char parametersDefault[] = { 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, - 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, - 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, @@ -533,1678 +513,1694 @@ unsigned char parametersDefault[] = { 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, - 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, - 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, - 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, - 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, - 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, - 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, + 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, + 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, + 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, + 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, + 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, + 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, + 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, + 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, + 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, - 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, - 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, + 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, + 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, + 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, - 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x28, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, - 0x41, 0x4d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, - 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, - 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, - 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, - 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, + 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, + 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, + 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, + 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, + 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, + 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, + 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, + 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x28, 0x62, 0x65, 0x73, 0x69, 0x64, + 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, + 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, + 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, + 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, - 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, + 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, + 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, - 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, + 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, + 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, + 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, - 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, - 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, - 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, + 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, + 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, - 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, - 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, + 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, + 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, + 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, + 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, + 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, + 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, + 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, + 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, + 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, - 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, - 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, - 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, - 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, - 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, - 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, - 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, - 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, - 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, + 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, + 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, + 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, + 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, + 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, + 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, - 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, - 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, - 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, + 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, + 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, + 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, + 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, + 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, + 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, + 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, - 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, - 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, - 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, - 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, - 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, - 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, - 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, - 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, + 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, + 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, + 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, - 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, - 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, - 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, - 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, - 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, - 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, - 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, - 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, + 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, + 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, + 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, + 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, - 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, - 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, - 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, - 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, - 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, - 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, + 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, + 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, - 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, + 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, + 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, + 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, + 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x66, 0x65, - 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, - 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, - 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, - 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, + 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, + 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, + 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, + 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, + 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, - 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, - 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, - 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, - 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, - 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, + 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, - 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, - 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, - 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, - 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, - 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, - 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, + 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, + 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, + 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, + 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, + 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, + 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, + 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, - 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, + 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, + 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, + 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, + 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, + 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, + 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, + 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, - 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, - 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, + 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, - 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, - 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, - 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, - 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, - 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, + 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, + 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, + 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, + 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, - 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, - 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, - 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, - 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, - 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, - 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, - 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, - 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, - 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, - 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, - 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, - 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, + 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, + 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, + 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, - 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, - 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, + 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, + 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, + 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, + 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, + 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, + 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, + 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, + 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, - 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, - 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, - 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, + 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, + 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, + 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 26483; +unsigned int parametersDefault_len = 26427; diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index def6d2c..8232fde 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -11,49 +11,7 @@ #include "ErrorWarning.h" #include -char* globalGsj; - - -inline int funCompareUintAndSuffixes ( const void *a, const void *b){ - uint va= *((uint*) a); - uint vb= *((uint*) b); - - if (va>vb) { - return 1; - } else if (vagb[ig]) { // second condition: reached the end of ga, it's >= than any character, but = does not matter - return 1; - } else if (ga[ig]3) { - return -ind1; - } else { - ind1 <<= 2; - ind1 += g; - }; - }; - return ind1; -}; - +#include "funCompareUintAndSuffixes.h" void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { @@ -139,7 +97,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; }; - globalGsj=Gsj; + globalGenomeArray=Gsj; qsort((void*) indArray, nInd, 2*sizeof(uint64), funCompareUintAndSuffixes); time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indicesL nInd="< Date: Mon, 21 Sep 2015 18:36:47 -0400 Subject: [PATCH 141/536] Implementing sequence insertion. Work with splice junctions for SA but not for SAi --- SuffixArrayFuns.cpp | 107 +++++++++++--------------------------------- genomeGenerate.cpp | 42 +++++++++++------ insertSeqSA.cpp | 20 ++++++--- sjdbBuildIndex.cpp | 4 +- 4 files changed, 71 insertions(+), 102 deletions(-) diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 5ff488c..e18e442 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -272,11 +272,24 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool return i1; }; -uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, int & compRes, Parameters* P) { +int compareRefEnds (uint64 SAstr, uint64 gInsert, bool strG, bool strR, Parameters* P) +{ + if ( strG) + {// + strand g + return strR ? (SAstr < gInsert ? 1:-1) : 1; + } else + {// - strand g + return strR ? -1 : ( gInsert==-1LLU ? -1 : ( SAstr < P->nGenome-gInsert ? 1:-1) ); + }; +}; + + + +uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, uint64 gInsert, int & compRes, Parameters* P) { // compare s to g, find the maximum identity length // s2[0] read sequence; s2[1] complementary sequence // S position to start search from in s2[0],s2[1] - //dirR forward or reverse direction search on read sequence!!!!!NOT CHECKED + // dirR: strand of the s //different treatment of 5 (spacer) in the sequence and genome // 5 is allowed in the sequence @@ -291,7 +304,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray SAstr &= P->GstrandMask; - if (dirR && dirG) {//forward on read, forward on genome + if (dirG) {//forward on read, forward on genome char* s = s2[0] + S + L; g += SAstr + L; for (ii=0;(uint) ii < N-L; ii++) @@ -309,28 +322,19 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray }; } else if (s[ii]==GENOME_spacingChar) {//this already implies the s[ii]==g[ii] - compRes=5;//5 in the genome is < 5 in the sequence + compRes=compareRefEnds (SAstr, gInsert, dirG, dirR, P); return ii+L; }; }; // if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; return N; //exact match - } else if (dirR && !dirG) { + } else if (!dirG) { char* s = s2[1] + S + L; g += P->nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { if (s[ii]!=g[-ii]) { -// if (s[ii]>g[-ii] || g[-ii]>3) //not sure ehy this does not work -// { -// compRes=false; -// return ii+L; -// } else -// { -// compRes=true; -// return ii+L; -// }; char s1=s[ii],g1=g[-ii]; if (s1<4) s1=3-s1; if (g1<4) g1=3-g1; @@ -345,83 +349,39 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray break; } else if (s[ii]==GENOME_spacingChar) {//this already implies the s[ii]==g[ii] - compRes=5;//5 in the genome is < 5 in the sequence + compRes=compareRefEnds (SAstr, gInsert, dirG, dirR, P); return ii+L; }; }; return N; -// } else if (!dirR && dirG) { -// char* s = s2[1] + S - L; -// g += SAstr + L; -// for (ii=0; (uint) ii < N-L; ii++) -// { -// if (s[-ii]!=g[ii]) -// { -// if (s[-ii]>g[ii]) { -// compRes=true; -// return ii+L; -// -// } else -// { -// compRes=false; -// return ii+L; -// }; -// } else if (g[ii]==GENOME_spacingChar) -// {//this already implies the s[ii]==g[ii] -// compRes=true;//5 in the genome is < 5 in the sequence -// return ii+L; -// }; -// }; -// return N; -// } else {//if (!dirR && !dirG) -// char* s = s2[0] + S - L; -// g += P->nGenome-1-SAstr - L; -// for (ii=0; (uint) ii < N-L; ii++) -// { -// if (s[-ii]!=g[-ii]) -// { -// if (s[-ii]>g[-ii] || g[-ii]>3) -// { -// compRes=false; -// return ii+L; -// } else -// { -// compRes=true; -// return ii+L; -// }; -// } else if (g[ii]==GENOME_spacingChar) -// {//this already implies the s[ii]==g[ii] -// compRes=false;//5 in the genome is < 5 in the sequence -// return ii+L; -// }; -// }; -// return N; }; }; -uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P) + +uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, PackedArray& SA, bool strR, uint i1, uint i2, uint L, Parameters* P) { // binary search in SA space - // s[0],s[1] - sequence, complementary sequence + // s[0],s[1] - query sequence, complementary sequence // S - start offset // N - sequence length // g - genome sequence // gInsert - index where the sequence insertion happened // SA - suffix array - // dirR - direction, true=froward, false=reverse!!!!!!!NOT checked + // strR - strand of the query sequence // i1,i2 = starting indices in SA // L - starting length // output: SA index < searched string, i.e. g[SA[index]]0) {//the sequence is bigger than the last SA index, return it L=L2; @@ -433,7 +393,7 @@ uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, Packe uint i3=i1,L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+1GstrandBit)>0) - { - i3g=P->nGenome-1-i3g; - }; - - compRes=i3g < gInsert ? 1:-1; - - }; - if (compRes>0) { //move 1 to 3 i1=i3;L1=L3; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 67011a4..7a2cd3e 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -22,24 +22,38 @@ uint globalL; inline int funCompareSuffixes ( const void *a, const void *b){ - uint *ga=(uint*)((globalG-7LLU)+(*((uint*)a))); - uint *gb=(uint*)((globalG-7LLU)+(*((uint*)b))); + uint *ga=(uint*)((globalG-7LLU)+(*((uint*)a))); + uint *gb=(uint*)((globalG-7LLU)+(*((uint*)b))); - uint jj=0LLU; + uint jj=0; + int ii=0; uint va=0,vb=0; - while (va==vb && va!=361700864190383365LLU) { - va=*(ga-jj); - vb=*(gb-jj); - jj++; - }; + uint8 *va1, *vb1; + + bool aeqb=true; + while (aeqb) { + va=*(ga-jj); + vb=*(gb-jj); + va1=(uint8*) &va; + vb1=(uint8*) &vb; + for (ii=7;ii>=0;ii--) + { + if (va1[ii]!=vb1[ii] || va1[ii]==5) + { + aeqb=false; + break; + }; + }; + jj++; + }; - if (va>vb) + if (va1[ii]>vb1[ii]) { - return 1; - } else if (va *((uint*)b) ) {//anti-stable order,since indexes are sorted in the reverse order @@ -48,7 +62,7 @@ inline int funCompareSuffixes ( const void *a, const void *b){ {//a cannot be equal to b return 1; }; - }; + }; }; // inline bool funCompareSuffixesBool ( const void *a, const void *b) diff --git a/insertSeqSA.cpp b/insertSeqSA.cpp index eadc7fa..47b2be4 100644 --- a/insertSeqSA.cpp +++ b/insertSeqSA.cpp @@ -32,14 +32,14 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * uint64 ind1=SA[isa]; if ( (ind1 & N2bit)>0 ) {//- strand - if ( (ind1 & strandMask)>nG2 ) + if ( (ind1 & strandMask)>=nG2 ) {//the first nG bases ind1+=nG1; //reverse complementary indices are all shifted by the length of the sequence SA.writePacked(isa,ind1); }; } else - { - if ( ind1>nG ) + {//+ strand + if ( ind1>=nG ) {//the last nG2 bases ind1+=nG1; //reverse complementary indices are all shifted by the length of the sequence SA.writePacked(isa,ind1); @@ -78,7 +78,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * indArray[ii*2]=-1; } else { - indArray[ii*2] = suffixArraySearch1(seq1, ii, 10000, G, nG, SA, true, 0, SA.length-1, 0, P) ; + indArray[ii*2] = suffixArraySearch1(seq1, ii, 10000, G, nG, SA, (iiinOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" <inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <genomeSAindexNbases; iL++) { uint iSeq=0; uint ind0=P->genomeSAindexStart[iL]-1;//last index that was present in the old genome for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index + if (ii==798466) + cout <SAiMarkNmask & P->SAiMarkAbsentMask; @@ -233,7 +241,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * for (uint iL=0; iL < P->genomeSAindexNbases; iL++) { for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index if ( SAio[ii]!=SAi[ii] ) { - cout <sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char }; - Gsj[nGsj*2]=SPACER_CHAR+1;//mark the end of the text + Gsj[nGsj*2]=SPACER_CHAR;//mark the end of the text for (uint ii=0; iisjdbLength-istart1, G, SA, true, 0, P->nSA-1, 0, P) ; - indArray[ind1] = suffixArraySearch(seq1, istart, 10000, G, SA, true, 0, P->nSA-1, 0, P) ; + indArray[ind1] = suffixArraySearch1(seq1, istart, 10000, G, -1LLU, SA, true, 0, P->nSA-1, 0, P) ; indArray[ind1+1] = isj*P->sjdbLength+istart; }; }; From ccfa570a409425d82762b84fac83ca4a3286f2a4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 25 Sep 2015 17:31:27 -0400 Subject: [PATCH 142/536] Re-coded the SAi algorithm for speed-up --- IncludeDefine.h | 3 + SuffixArrayFuns.cpp | 46 ++++++++++ SuffixArrayFuns.h | 2 +- genomeGenerate.cpp | 198 ++++++++++++++++++++++++++++++++++++-------- 4 files changed, 212 insertions(+), 37 deletions(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index 5d4828e..248af5b 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -48,6 +48,9 @@ typedef uint8_t uint8; #define int64 long long #define int32 int +// this is gcc extension, may need to redefine for other compilers +#define uint128 __uint128_t + #define GENOME_spacingChar 5 #define uintWinBin unsigned short diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index e18e442..24ae56b 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -413,6 +413,52 @@ uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, Packe return i1; }; +uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters* P, int & iL4) +{ + uint SAstr=SA[iSA]; + bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P->GstrandMask; + iL4=-1; + register uint saind=0; + if (dirG) + { + register uint128 g1=*( (uint128*) (G+SAstr) ); + for (int ii=0; ii3) + { + iL4=ii; + saind <<= 2*(L-ii); + return saind; + }; + saind=saind<<2; + saind+=g2; + g1=g1>>8; + }; + return saind; + } else + { + register uint128 g1=*( (uint128*) (G+P->nGenome-SAstr-16) ); + for (int ii=0; ii>(8*(15-ii))); + if (g2>3) + { + iL4=ii; + saind <<= 2*(L-ii); + return saind; + }; + saind=saind<<2; + saind+=3-g2; + }; + return saind; + }; + +}; + + + int64 funCalcSAi(char* G, uint iL) { int64 ind1=0; diff --git a/SuffixArrayFuns.h b/SuffixArrayFuns.h index 3bba7e2..efbeb50 100644 --- a/SuffixArrayFuns.h +++ b/SuffixArrayFuns.h @@ -14,5 +14,5 @@ uint readPacked(char* a, uint jj); uint suffixArraySearch(char** s, uint S, uint N, char* g, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P); uint suffixArraySearch1(char** s2, uint S, uint N, char* G, uint64 gInsert, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P); int64 funCalcSAi(char* G, uint iL); - +uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters* P, int & iL4); #endif diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 7a2cd3e..dcfe8ca 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -206,14 +206,16 @@ void genomeGenerate(Parameters *P) { time ( &rawTime ); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to generate Suffix Array index...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to generate Suffix Array index...\n" <nSAbyte=(uint) oldSAin.tellg(); + oldSAin.clear(); + oldSAin.seekg (0, ios::beg); + + P->nSA=(P->nSAbyte*8)/(P->GstrandBit+1); + SAold.defineBits(P->GstrandBit+1,P->nSA); + SAold.allocateArray(); + oldSAin.read(SAold.charArray,SAold.lengthByte); + oldSAin.close(); + + SA1=SAold; + SA2=SAold; + }; + P->genomeSAindexStart = new uint [P->genomeSAindexNbases+1]; P->genomeSAindexStart[0]=0; for (uint ii=1;ii<=P->genomeSAindexNbases;ii++) {//L-mer indices starts @@ -369,17 +388,26 @@ void genomeGenerate(Parameters *P) { }; P->nSAi = P->genomeSAindexStart[P->genomeSAindexNbases]; + /* testing + uint* SAi1=new uint[P->nSAi]; + + PackedArray SAio; + SAio.defineBits(P->GstrandBit+3,P->nSAi); + SAio.allocateArray(); + ifstream oldSAiin("./DirTrue/SAindex"); + oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes + oldSAiin.read(SAio.charArray,SAio.lengthByte); + oldSAiin.close(); + */ + uint* SAi=new uint[P->nSAi]; -// for (uint isa=0; isanSAi; isa++) {//initialize -// SAi[isa]=P->nSA; //if the suffix is not found in the genome, it's location will be marked with this value -// }; uint* ind0=new uint[P->genomeSAindexNbases]; - uint* indSAlast=new uint[P->genomeSAindexNbases]; +// uint* ind0a=new uint[P->genomeSAindexNbases]; for (uint ii=0; iigenomeSAindexNbases; ii++) { ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths - indSAlast[ii]=P->nSA;//that's probably not needed +// ind0a[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths }; P->SAiMarkNbit=P->GstrandBit+1; @@ -389,52 +417,151 @@ void genomeGenerate(Parameters *P) { P->SAiMarkNmask=~P->SAiMarkNmaskC; P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; - + + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <nSA/(1llu<<(2*P->genomeSAindexNbases)); + uint isareport=0; + uint nind=P->genomeSAindexNbases; for (uint isa=0; isanSA; isa++) {//for all suffixes - if (isa%100000000==0) P->inOut->logMain << isa*100/P->nSA << "% " << flush; + +// if (isareport+100000000inOut->logMain << isa*100/P->nSA << "% " << flush; +// cout << isa*100/P->nSA << "% " << flush; +// }; + uint indFull, indFullPrev; + int iL4, iL4prev; + + if (isastep>4 && isa>0) + {//skip indices with the same prefix + + isa+=isastep-1;//-1 since +1 was added in the cycle + while (isanSA && funCalcSAiFromSA(G,SA1,isa,nind,P,iL4)==indFullPrev && iL4==iL4prev) + { + isa+=isastep; + }; + if (isa>=P->nSA) + { + isa=P->nSA-1; + indFull=funCalcSAiFromSA(G,SA1,isa,nind,P,iL4); + } else + {//binary search + uint i1=isa-isastep; + uint i2=isa; + while (i1+1>P->GstrandBit) == 0; //forward or reverse strand of the genome SAstr &= P->GstrandMask; if (!dirG) SAstr=P->nGenome-1-SAstr; - uint indPref=0; - for (uint iL=0; iL < P->genomeSAindexNbases; iL++) {//calculate index - - indPref <<= 2; + uint indPref1=0; + + for (uint iL=0; iL < nind; iL++) {//calculate index +// {//testing: old way +// indPref1 <<= 2; +// +// uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand +// +// if (g1>3) {//if N, this suffix does not belong in SAi +// for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { +// SAi1[P->genomeSAindexStart[iL1]+ind0a[iL1]] |= P->SAiMarkNmaskC; +// }; +// } else //relying on the true code to break iL cycle +// { +// if (!dirG) g1=3-g1; //complement if (-) strand +// +// indPref1 += (uint) g1; +// +// if ( indPref1 > ind0a[iL] || isa==0 ) {//new && good index, record it +// SAi1[P->genomeSAindexStart[iL]+indPref1]=isa; +// for (uint ii=ind0a[iL]+1; iigenomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; +// }; +// ind0a[iL]=indPref1; +// } else if ( indPref1 < ind0a[iL] ) { +// ostringstream errOut; +// errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); +// }; +// }; +// }; + + uint indPref = indFull >> (2*(nind-1-iL)); +// if (indPref!=indPref1) +// cout<< iL <<" "<< isa <<" "<< indPref <<" "<3) {//if N, this suffix does not belong in SAi + if ( iL==iL4 ) {//this suffix contains N and does not belong in SAi for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] |= P->SAiMarkNmaskC; +// if (SAi[P->genomeSAindexStart[iL]+ind0[iL1]] != SAio[P->genomeSAindexStart[iL]+ind0[iL1]]) +// cout<< iL <<" "<< isa <<" "<< indPref <<" "< ind0[iL] || isa==0 ) {//new && good index, record it + //testing +// if (funCalcSAiFromSA(G,SA1,isa,iL+1,P)!=indPref) +// cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+indPref]=isa; +// if (SAi[P->genomeSAindexStart[iL]+indPref] != SAio[P->genomeSAindexStart[iL]+indPref]) +// cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; }; ind0[iL]=indPref; -// indSAlast[iL]=isa; -// } else if (indPref==ind0[iL]) { -// indSAlast[iL]=isa;//last SA index with the same prefix + } else if ( indPref < ind0[iL] ) { ostringstream errOut; errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; + + }; };//for (uint isa=0; isanSA; isa++) - P->inOut->logMain << " done\n"<inOut->logMain << timeMonthDayTime(rawTime) <<" ... Packing Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Packing Suffix Array index\n" <genomeSAindexNbases-1;ii++) {//L-mer indices starts +// for (uint jj=P->genomeSAindexStart[ii-1]; jjgenomeSAindexStart[ii]; jj++) +// { +// if (SAi[jj]!=SAio[jj]) +// cout <GstrandBit+3,P->nSAi);//SAi uses an extra bit compared to SA because it needs to store values > nSA @@ -443,7 +570,6 @@ void genomeGenerate(Parameters *P) { SAip.writePacked(ii,SAi[ii]); }; - delete [] indSAlast; delete [] ind0; if (P->sjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-") From b1aa90aa614679739b1cf25738d50d6c513c6e81 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 28 Sep 2015 14:33:45 -0400 Subject: [PATCH 143/536] Re-coding SAi algorithm: starting parallelization. --- Makefile | 2 +- genomeGenerate.cpp | 192 +---------------------------------------- genomeSAindex.cpp | 211 +++++++++++++++++++++++++++++++++++++++++++++ genomeSAindex.h | 9 ++ 4 files changed, 223 insertions(+), 191 deletions(-) create mode 100644 genomeSAindex.cpp create mode 100644 genomeSAindex.h diff --git a/Makefile b/Makefile index 5d9eb9a..2586da8 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ - genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o \ + genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index dcfe8ca..786d889 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -12,6 +12,7 @@ #include "genomeParametersWrite.h" #include "sjdbInsertJunctions.h" #include "genomeScanFastaFiles.h" +#include "genomeSAindex.h" #include "serviceFuns.cpp" #include "streamFuns.h" @@ -381,196 +382,8 @@ void genomeGenerate(Parameters *P) { SA2=SAold; }; - P->genomeSAindexStart = new uint [P->genomeSAindexNbases+1]; - P->genomeSAindexStart[0]=0; - for (uint ii=1;ii<=P->genomeSAindexNbases;ii++) {//L-mer indices starts - P->genomeSAindexStart[ii] = P->genomeSAindexStart[ii-1] + ( 1LLU<<(2*ii) ); - }; - P->nSAi = P->genomeSAindexStart[P->genomeSAindexNbases]; - - /* testing - uint* SAi1=new uint[P->nSAi]; - - PackedArray SAio; - SAio.defineBits(P->GstrandBit+3,P->nSAi); - SAio.allocateArray(); - ifstream oldSAiin("./DirTrue/SAindex"); - oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes - oldSAiin.read(SAio.charArray,SAio.lengthByte); - oldSAiin.close(); - */ - - uint* SAi=new uint[P->nSAi]; - - uint* ind0=new uint[P->genomeSAindexNbases]; -// uint* ind0a=new uint[P->genomeSAindexNbases]; - - for (uint ii=0; iigenomeSAindexNbases; ii++) { - ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths -// ind0a[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths - }; - - P->SAiMarkNbit=P->GstrandBit+1; - P->SAiMarkAbsentBit=P->GstrandBit+2; - - P->SAiMarkNmaskC=1LLU << P->SAiMarkNbit; - P->SAiMarkNmask=~P->SAiMarkNmaskC; - P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; - P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; - - time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <nSA/(1llu<<(2*P->genomeSAindexNbases)); - uint isareport=0; - uint nind=P->genomeSAindexNbases; - for (uint isa=0; isanSA; isa++) {//for all suffixes - -// if (isareport+100000000inOut->logMain << isa*100/P->nSA << "% " << flush; -// cout << isa*100/P->nSA << "% " << flush; -// }; - uint indFull, indFullPrev; - int iL4, iL4prev; - - if (isastep>4 && isa>0) - {//skip indices with the same prefix - - isa+=isastep-1;//-1 since +1 was added in the cycle - while (isanSA && funCalcSAiFromSA(G,SA1,isa,nind,P,iL4)==indFullPrev && iL4==iL4prev) - { - isa+=isastep; - }; - if (isa>=P->nSA) - { - isa=P->nSA-1; - indFull=funCalcSAiFromSA(G,SA1,isa,nind,P,iL4); - } else - {//binary search - uint i1=isa-isastep; - uint i2=isa; - while (i1+1>P->GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P->GstrandMask; - if (!dirG) SAstr=P->nGenome-1-SAstr; - - uint indPref1=0; - - for (uint iL=0; iL < nind; iL++) {//calculate index -// {//testing: old way -// indPref1 <<= 2; -// -// uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand -// -// if (g1>3) {//if N, this suffix does not belong in SAi -// for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { -// SAi1[P->genomeSAindexStart[iL1]+ind0a[iL1]] |= P->SAiMarkNmaskC; -// }; -// } else //relying on the true code to break iL cycle -// { -// if (!dirG) g1=3-g1; //complement if (-) strand -// -// indPref1 += (uint) g1; -// -// if ( indPref1 > ind0a[iL] || isa==0 ) {//new && good index, record it -// SAi1[P->genomeSAindexStart[iL]+indPref1]=isa; -// for (uint ii=ind0a[iL]+1; iigenomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; -// }; -// ind0a[iL]=indPref1; -// } else if ( indPref1 < ind0a[iL] ) { -// ostringstream errOut; -// errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); -// }; -// }; -// }; - - uint indPref = indFull >> (2*(nind-1-iL)); -// if (indPref!=indPref1) -// cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexNbases; iL1++) { - SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] |= P->SAiMarkNmaskC; -// if (SAi[P->genomeSAindexStart[iL]+ind0[iL1]] != SAio[P->genomeSAindexStart[iL]+ind0[iL1]]) -// cout<< iL <<" "<< isa <<" "<< indPref <<" "< ind0[iL] || isa==0 ) {//new && good index, record it - //testing -// if (funCalcSAiFromSA(G,SA1,isa,iL+1,P)!=indPref) -// cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+indPref]=isa; -// if (SAi[P->genomeSAindexStart[iL]+indPref] != SAio[P->genomeSAindexStart[iL]+indPref]) -// cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; - }; - ind0[iL]=indPref; - - } else if ( indPref < ind0[iL] ) { - ostringstream errOut; - errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - - - }; - };//for (uint isa=0; isanSA; isa++) - time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Packing Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Packing Suffix Array index\n" <genomeSAindexNbases-1;ii++) {//L-mer indices starts -// for (uint jj=P->genomeSAindexStart[ii-1]; jjgenomeSAindexStart[ii]; jj++) -// { -// if (SAi[jj]!=SAio[jj]) -// cout <GstrandBit+3,P->nSAi);//SAi uses an extra bit compared to SA because it needs to store values > nSA - SAip.pointArray((char*) SAi); - for (uint ii=0;iisjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-") {//insert junctions @@ -632,7 +445,6 @@ void genomeGenerate(Parameters *P) { SAiOut.close(); SA2.deallocateArray(); - delete [] SAi; time(&rawTime); timeString=asctime(localtime ( &rawTime )); diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp new file mode 100644 index 0000000..c7b2227 --- /dev/null +++ b/genomeSAindex.cpp @@ -0,0 +1,211 @@ +#include "genomeSAindex.h" +#include "TimeFunctions.h" +#include "SuffixArrayFuns.h" +#include "ErrorWarning.h" + +void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi) + { + P->genomeSAindexStart = new uint [P->genomeSAindexNbases+1]; + P->genomeSAindexStart[0]=0; + for (uint ii=1;ii<=P->genomeSAindexNbases;ii++) {//L-mer indices starts + P->genomeSAindexStart[ii] = P->genomeSAindexStart[ii-1] + ( 1LLU<<(2*ii) ); + }; + P->nSAi = P->genomeSAindexStart[P->genomeSAindexNbases]; + + ///* testing +// uint* SAi1=new uint[P->nSAi]; + + PackedArray SAio; + SAio.defineBits(P->GstrandBit+3,P->nSAi); + SAio.allocateArray(); + ifstream oldSAiin("./DirTrue/SAindex"); + oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes + oldSAiin.read(SAio.charArray,SAio.lengthByte); + oldSAiin.close(); + //*/ + + + P->SAiMarkNbit=P->GstrandBit+1; + P->SAiMarkAbsentBit=P->GstrandBit+2; + + P->SAiMarkNmaskC=1LLU << P->SAiMarkNbit; + P->SAiMarkNmask=~P->SAiMarkNmaskC; + P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; + P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; + +// uint* SAi=new uint[P->nSAi]; + + SAi.defineBits(P->GstrandBit+3,P->nSAi); + SAi.allocateArray(); + + time_t rawTime; + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <nSA-1); + + + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Packing Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Packing Suffix Array index\n" <genomeSAindexNbases-1;ii++) {//L-mer indices starts + cout <genomeSAindexStart[ii-1]; jjgenomeSAindexStart[ii]; jj++) + { + if (SAi[jj]!=SAio[jj]) + cout <GstrandBit+3,P->nSAi);//SAi uses an extra bit compared to SA because it needs to store values > nSA +// SAip.pointArray((char*) SAi); +// for (uint ii=0;iigenomeSAindexNbases]; +// uint* ind0a=new uint[P->genomeSAindexNbases]; + + for (uint ii=0; iigenomeSAindexNbases; ii++) { + ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths +// ind0a[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths + }; + uint isaStep=P->nSA/(1llu<<(2*P->genomeSAindexNbases)); +// uint isareport=0; + for (uint isa=iSA1; isa<=iSA2; isa++) {//for all suffixes + +// if (isareport+100000000inOut->logMain << isa*100/P->nSA << "% " << flush; +// cout << isa*100/P->nSA << "% " << flush; +// }; + uint indFull, indFullPrev; + int iL4, iL4prev; + + if (isaStep>4 && isa>0) + {//skip indices with the same prefix + + isa+=isaStep-1;//-1 since +1 was added in the cycle + while (isanSA && funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4)==indFullPrev && iL4==iL4prev) + { + isa+=isaStep; + }; + if (isa>=P->nSA) + { + isa=P->nSA-1; + indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); + } else + {//binary search + uint i1=isa-isaStep; + uint i2=isa; + while (i1+1genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) + { + i1=isa; + } else + { + i2=isa; + }; + }; + if (isa==i1) + { + isa=i2; + indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); + }; + }; + } else + { + indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); + }; + + indFullPrev=indFull; + iL4prev=iL4; + + /* testing + uint SAstr=SA[isa]; + bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P->GstrandMask; + if (!dirG) SAstr=P->nGenome-1-SAstr; + uint indPref1=0; + */ + + for (uint iL=0; iL < P->genomeSAindexNbases; iL++) {//calculate index +// {//testing: old way +// indPref1 <<= 2; +// +// uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand +// +// if (g1>3) {//if N, this suffix does not belong in SAi +// for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { +// SAi1[P->genomeSAindexStart[iL1]+ind0a[iL1]] |= P->SAiMarkNmaskC; +// }; +// } else //relying on the true code to break iL cycle +// { +// if (!dirG) g1=3-g1; //complement if (-) strand +// +// indPref1 += (uint) g1; +// +// if ( indPref1 > ind0a[iL] || isa==0 ) {//new && good index, record it +// SAi1[P->genomeSAindexStart[iL]+indPref1]=isa; +// for (uint ii=ind0a[iL]+1; iigenomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; +// }; +// ind0a[iL]=indPref1; +// } else if ( indPref1 < ind0a[iL] ) { +// ostringstream errOut; +// errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); +// }; +// }; +// }; + + uint indPref = indFull >> (2*(P->genomeSAindexNbases-1-iL)); +// if (indPref!=indPref1) +// cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexNbases; iL1++) { + SAi.writePacked(P->genomeSAindexStart[iL1]+ind0[iL1],SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] | P->SAiMarkNmaskC); +// if (SAi[P->genomeSAindexStart[iL]+ind0[iL1]] != SAio[P->genomeSAindexStart[iL]+ind0[iL1]]) +// cout<< iL <<" "<< isa <<" "<< indPref <<" "< ind0[iL] || isa==0 ) {//new && good index, record it + //testing +// if (funCalcSAiFromSA(G,SA,isa,iL+1,P)!=indPref) +// cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+indPref, isa); +// if (SAi[P->genomeSAindexStart[iL]+indPref] != SAio[P->genomeSAindexStart[iL]+indPref]) +// cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+ii, isa | P->SAiMarkAbsentMaskC); + }; + ind0[iL]=indPref; + + } else if ( indPref < ind0[iL] ) { + ostringstream errOut; + errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + + + }; + };//for (uint isa=0; isanSA; isa++) + delete [] ind0; + + }; \ No newline at end of file diff --git a/genomeSAindex.h b/genomeSAindex.h new file mode 100644 index 0000000..f137ea2 --- /dev/null +++ b/genomeSAindex.h @@ -0,0 +1,9 @@ +#ifndef CODE_genomeSAindex +#define CODE_genomeSAindex +#include "PackedArray.h" +#include "Parameters.h" + +void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAip); +void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi, uint iSA1, uint iSA2); + +#endif \ No newline at end of file From eac53965a0bb597cbfa3b6490d45e55a1c3ee0d4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 28 Sep 2015 17:32:48 -0400 Subject: [PATCH 144/536] Unsuccessful attempt to parallelize SAi calculation. Will revert to the working version. --- genomeSAindex.cpp | 157 +++++++++++++++++++++++++++++----------------- genomeSAindex.h | 1 + 2 files changed, 100 insertions(+), 58 deletions(-) diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index c7b2227..353f12d 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -43,7 +43,46 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <nSA-1); + uint iSAfirst=0;//the first index of the unprocessed part. Critical-shared between all threads + + uint minChunkLength=1000000; + uint isaStep=P->nSA/(1llu<<(2*P->genomeSAindexNbases))+1; +// isaStep=8; + + while (iSAfirst0) + { + while (iL4>0) + {//shift iSA2 by 1 until non-N index found + iSA2++; + indFull=funCalcSAiFromSA(G,SA,iSA2,P->genomeSAindexNbases,P,iL4);//define indFull and iL4 for the first time + }; + + indFullNext=indFull; + iSA2next=iSA2; + + funSAiFindNextIndex(P, G, SA, isaStep, iSA2next, indFullNext, iL4); + }; + + iSAfirst=iSA2next; + //fill SAi for iSA2 and infFull + for (uint iL=0; iL < P->genomeSAindexNbases; iL++) + { + SAi.writePacked(P->genomeSAindexStart[iL]+(indFull >> (2*(P->genomeSAindexNbases-1-iL))), iSA2); + }; + + }; + + genomeSAindexChunk(G, SA, P, SAi, iSA1, iSA2-1); + + }; + time(&rawTime); @@ -76,60 +115,16 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi for (uint ii=0; iigenomeSAindexNbases; ii++) { ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths // ind0a[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths - }; - uint isaStep=P->nSA/(1llu<<(2*P->genomeSAindexNbases)); -// uint isareport=0; - for (uint isa=iSA1; isa<=iSA2; isa++) {//for all suffixes - -// if (isareport+100000000inOut->logMain << isa*100/P->nSA << "% " << flush; -// cout << isa*100/P->nSA << "% " << flush; -// }; - uint indFull, indFullPrev; - int iL4, iL4prev; - - if (isaStep>4 && isa>0) - {//skip indices with the same prefix - - isa+=isaStep-1;//-1 since +1 was added in the cycle - while (isanSA && funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4)==indFullPrev && iL4==iL4prev) - { - isa+=isaStep; - }; - if (isa>=P->nSA) - { - isa=P->nSA-1; - indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); - } else - {//binary search - uint i1=isa-isaStep; - uint i2=isa; - while (i1+1genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) - { - i1=isa; - } else - { - i2=isa; - }; - }; - if (isa==i1) - { - isa=i2; - indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); - }; - }; - } else - { - indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); - }; - - indFullPrev=indFull; - iL4prev=iL4; - + }; + + uint isaStep=P->nSA/(1llu<<(2*P->genomeSAindexNbases))+1; +// isaStep=8; + + uint isa=iSA1; + int iL4; + uint indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); + while (isa<=iSA2) {//for all suffixes + /* testing uint SAstr=SA[isa]; bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome @@ -197,7 +192,7 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi }; ind0[iL]=indPref; - } else if ( indPref < ind0[iL] ) { + } else if ( indPref < ind0[iL] && ind0[iL] != -1llu ) { ostringstream errOut; errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); @@ -205,7 +200,53 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi }; - };//for (uint isa=0; isanSA; isa++) + + //find next index not equal to the current one + funSAiFindNextIndex(P, G, SA, isaStep, isa, indFull, iL4);//indFull and iL4 have been already defined at the previous step + + };//isa cycle delete [] ind0; - }; \ No newline at end of file + }; + +void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4) + { + uint indFullPrev=indFull; + int iL4prev=iL4; + isa+=isaStep; + while (isagenomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) + { + isa+=isaStep; + }; + if (isa>=SA.length) + { + isa=SA.length-1; + indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); + if (indFull==indFullPrev) + { + isa=SA.length;//no more indices, the last one is equal to the previous + return; + }; + }; + + {//binary search + uint i1=isa-isaStep; + uint i2=isa; + while (i1+1genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) + { + i1=isa; + } else + { + i2=isa; + }; + }; + if (isa==i1) + { + isa=i2; + indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); + }; + }; +}; \ No newline at end of file diff --git a/genomeSAindex.h b/genomeSAindex.h index f137ea2..40c40f2 100644 --- a/genomeSAindex.h +++ b/genomeSAindex.h @@ -5,5 +5,6 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAip); void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi, uint iSA1, uint iSA2); +void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4); #endif \ No newline at end of file From 596b6e08e9f87c4cd73ab2be90ac35aa9b0b7a37 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 28 Sep 2015 18:02:25 -0400 Subject: [PATCH 145/536] New SAi calculation: working version. Not parallel. --- genomeSAindex.cpp | 58 ++++++++--------------------------------------- genomeSAindex.h | 2 +- 2 files changed, 10 insertions(+), 50 deletions(-) diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 353f12d..5afabab 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -43,51 +43,11 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <nSA/(1llu<<(2*P->genomeSAindexNbases))+1; -// isaStep=8; - - while (iSAfirst0) - { - while (iL4>0) - {//shift iSA2 by 1 until non-N index found - iSA2++; - indFull=funCalcSAiFromSA(G,SA,iSA2,P->genomeSAindexNbases,P,iL4);//define indFull and iL4 for the first time - }; - - indFullNext=indFull; - iSA2next=iSA2; - - funSAiFindNextIndex(P, G, SA, isaStep, iSA2next, indFullNext, iL4); - }; - - iSAfirst=iSA2next; - //fill SAi for iSA2 and infFull - for (uint iL=0; iL < P->genomeSAindexNbases; iL++) - { - SAi.writePacked(P->genomeSAindexStart[iL]+(indFull >> (2*(P->genomeSAindexNbases-1-iL))), iSA2); - }; - - }; - - genomeSAindexChunk(G, SA, P, SAi, iSA1, iSA2-1); - - }; - - + genomeSAindexChunk(G, SA, P, SAi, 0, SA.length-1); time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Packing Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Packing Suffix Array index\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <genomeSAindexNbases-1;ii++) {//L-mer indices starts cout <nSA/(1llu<<(2*P->genomeSAindexNbases))+1; -// isaStep=8; + isaStep=8; uint isa=iSA1; int iL4; @@ -192,7 +152,7 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi }; ind0[iL]=indPref; - } else if ( indPref < ind0[iL] && ind0[iL] != -1llu ) { + } else if ( indPref < ind0[iL] ) { ostringstream errOut; errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); @@ -214,17 +174,17 @@ void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaSte uint indFullPrev=indFull; int iL4prev=iL4; isa+=isaStep; - while (isagenomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) + while (isanSA && (indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) { isa+=isaStep; }; - if (isa>=SA.length) + if (isa>=P->nSA) { - isa=SA.length-1; + isa=P->nSA-1; indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); if (indFull==indFullPrev) { - isa=SA.length;//no more indices, the last one is equal to the previous + isa=P->nSA;//no more indices, the last one is equal to the previous return; }; }; diff --git a/genomeSAindex.h b/genomeSAindex.h index 40c40f2..a04a28c 100644 --- a/genomeSAindex.h +++ b/genomeSAindex.h @@ -7,4 +7,4 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi, uint iSA1, uint iSA2); void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4); -#endif \ No newline at end of file +#endif From 2b11d982ca8832473b84828f4e7dc74ddf7b7c72 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 1 Oct 2015 17:14:02 -0400 Subject: [PATCH 146/536] Completed sequence insertion. Slightly different results for junction insertion. --- Genome_insertSequences.cpp | 8 +- SuffixArrayFuns.cpp | 14 +- funCompareUintAndSuffixes.cpp | 12 +- genomeGenerate.cpp | 46 +++--- genomeSAindex.cpp | 167 ++++++++++++++-------- insertSeqSA.cpp | 256 ++++++++++++++++++---------------- sjdbBuildIndex.cpp | 36 +++-- 7 files changed, 313 insertions(+), 226 deletions(-) diff --git a/Genome_insertSequences.cpp b/Genome_insertSequences.cpp index baa0061..10da398 100644 --- a/Genome_insertSequences.cpp +++ b/Genome_insertSequences.cpp @@ -4,11 +4,15 @@ #include "Genome.h" #include "genomeScanFastaFiles.h" #include "insertSeqSA.h" +#include "TimeFunctions.h" void Genome::insertSequences() { if (P->genomeFastaFiles.at(0)!="-") { + time_t rawtime; + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting extra sequences into genome indexes" <genomeFastaFiles.at(0)!="-") //insert new sequences into the SA insertSeqSA(SA, SApass1, SAi, G, G+P->chrStart.back()-P->genomeInsertL, nGenomeOld-sjdblen, P->genomeInsertL, sjdblen, P); - P->nSA=SA.length; - P->nSAbyte=SA.lengthByte; - - //insert new sequences into the SAi //update P diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 24ae56b..f4837ac 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -370,22 +370,22 @@ uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, Packe // strR - strand of the query sequence // i1,i2 = starting indices in SA // L - starting length - // output: SA index < searched string, i.e. g[SA[index]] searched string, i.e. g[SA[index-1]]0) - {//the sequence is bigger than the last SA index, return it + {//the sequence is bigger than the last SA index, return a huge number L=L2; - return i2; + return -2llu; }; L=min(L1,L2); @@ -394,7 +394,7 @@ uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, Packe while (i1+1vb) { + if (va[0]>vb[0]) { return 1; - } else if (vavb) + if (va[1]>vb[1]) { return 1; } else @@ -37,4 +37,4 @@ int funCompareUintAndSuffixes ( const void *a, const void *b){ }; }; }; -}; \ No newline at end of file +}; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 786d889..61732d0 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -209,7 +209,7 @@ void genomeGenerate(Parameters *P) { *P->inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <nSAbyte=(uint) oldSAin.tellg(); - oldSAin.clear(); - oldSAin.seekg (0, ios::beg); - - P->nSA=(P->nSAbyte*8)/(P->GstrandBit+1); - SAold.defineBits(P->GstrandBit+1,P->nSA); - SAold.allocateArray(); - - oldSAin.read(SAold.charArray,SAold.lengthByte); - oldSAin.close(); - - SA1=SAold; - SA2=SAold; - }; +// PackedArray SAold; +// +// if (true) +// {//testing: load SA from disk +// //read chunks and pack into full SA1 +// +// ifstream oldSAin("./DirTrue/SA"); +// oldSAin.seekg (0, ios::end); +// P->nSAbyte=(uint) oldSAin.tellg(); +// oldSAin.clear(); +// oldSAin.seekg (0, ios::beg); +// +// P->nSA=(P->nSAbyte*8)/(P->GstrandBit+1); +// SAold.defineBits(P->GstrandBit+1,P->nSA); +// SAold.allocateArray(); +// +// oldSAin.read(SAold.charArray,SAold.lengthByte); +// oldSAin.close(); +// +// SA1=SAold; +// SA2=SAold; +// }; PackedArray SAip; genomeSAindex(G,SA1,P,SAip); diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 5afabab..86f36cd 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -12,8 +12,8 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi }; P->nSAi = P->genomeSAindexStart[P->genomeSAindexNbases]; - ///* testing -// uint* SAi1=new uint[P->nSAi]; + /* testing + // uint* SAi1=new uint[P->nSAi]; PackedArray SAio; SAio.defineBits(P->GstrandBit+3,P->nSAi); @@ -22,7 +22,7 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes oldSAiin.read(SAio.charArray,SAio.lengthByte); oldSAiin.close(); - //*/ + */ P->SAiMarkNbit=P->GstrandBit+1; @@ -33,8 +33,7 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; -// uint* SAi=new uint[P->nSAi]; - + SAi.defineBits(P->GstrandBit+3,P->nSAi); SAi.allocateArray(); @@ -43,42 +42,94 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <genomeSAindexNbases]; + + for (uint ii=0; iigenomeSAindexNbases; ii++) { + ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths + }; + uint* SAi1=new uint[P->nSAi]; + + for (uint isa=0; isanSA; isa++) {//for all suffixes + if (isa%100000000==0) P->inOut->logMain << isa*100/P->nSA << "% " << flush; + + uint SAstr=SA1[isa]; + bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P->GstrandMask; + if (!dirG) SAstr=P->nGenome-1-SAstr; + + uint indPref=0; + for (uint iL=0; iL < P->genomeSAindexNbases; iL++) {//calculate index + + indPref <<= 2; + + uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand + + if (g1>3) {//if N, this suffix does not belong in SAi + for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { + SAi1[P->genomeSAindexStart[iL1]+ind0[iL1]] |= P->SAiMarkNmaskC; + }; + break; + }; + + if (!dirG) g1=3-g1; //complement if (-) strand + + indPref += (uint) g1; + + if ( indPref > ind0[iL] || isa==0 ) {//new && good index, record it + SAi1[P->genomeSAindexStart[iL]+indPref]=isa; + for (uint ii=ind0[iL]+1; iigenomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; + }; + ind0[iL]=indPref; + } else if ( indPref < ind0[iL] ) { + ostringstream errOut; + errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + }; + };//for (uint isa=0; isanSA; isa++) + */ + genomeSAindexChunk(G, SA, P, SAi, 0, SA.length-1); time(&rawTime); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <genomeSAindexNbases-1;ii++) {//L-mer indices starts - cout <genomeSAindexStart[ii-1]; jjgenomeSAindexStart[ii]; jj++) - { - if (SAi[jj]!=SAio[jj]) - cout <GstrandBit+3,P->nSAi);//SAi uses an extra bit compared to SA because it needs to store values > nSA -// SAip.pointArray((char*) SAi); -// for (uint ii=0;iigenomeSAindexNbases-1;ii++) {//L-mer indices starts +// cout <genomeSAindexStart[ii-1]; jjgenomeSAindexStart[ii]; jj++) +// { +// if (SAi[jj]!=SAio[jj]) +// { +// cout <genomeSAindexStart[ii-1]<<" "<genomeSAindexNbases]; -// uint* ind0a=new uint[P->genomeSAindexNbases]; +void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi, uint iSA1, uint iSA2) +{ + uint* ind0=new uint[P->genomeSAindexNbases]; + uint* ind0a=new uint[P->genomeSAindexNbases]; for (uint ii=0; iigenomeSAindexNbases; ii++) { ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths -// ind0a[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths + ind0a[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths }; + PackedArray SAi1; + SAi1=SAi; + SAi1.allocateArray(); + uint isaStep=P->nSA/(1llu<<(2*P->genomeSAindexNbases))+1; - isaStep=8; +// isaStep=8; uint isa=iSA1; int iL4; @@ -91,38 +142,39 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi SAstr &= P->GstrandMask; if (!dirG) SAstr=P->nGenome-1-SAstr; uint indPref1=0; - */ - + */ + for (uint iL=0; iL < P->genomeSAindexNbases; iL++) {//calculate index -// {//testing: old way -// indPref1 <<= 2; -// -// uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand -// -// if (g1>3) {//if N, this suffix does not belong in SAi -// for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { -// SAi1[P->genomeSAindexStart[iL1]+ind0a[iL1]] |= P->SAiMarkNmaskC; -// }; -// } else //relying on the true code to break iL cycle -// { -// if (!dirG) g1=3-g1; //complement if (-) strand -// -// indPref1 += (uint) g1; -// -// if ( indPref1 > ind0a[iL] || isa==0 ) {//new && good index, record it -// SAi1[P->genomeSAindexStart[iL]+indPref1]=isa; -// for (uint ii=ind0a[iL]+1; iigenomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; -// }; -// ind0a[iL]=indPref1; -// } else if ( indPref1 < ind0a[iL] ) { -// ostringstream errOut; -// errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); -// }; -// }; -// }; + /*{//testing: old way + indPref1 <<= 2; + + uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand + if (g1>3) {//if N, this suffix does not belong in SAi + for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { + SAi1.writePacked(P->genomeSAindexStart[iL1]+ind0[iL1],SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] | P->SAiMarkNmaskC); + }; + } else //relying on the true code to break iL cycle + { + if (!dirG) g1=3-g1; //complement if (-) strand + + indPref1 += (uint) g1; + + if ( indPref1 > ind0a[iL] || isa==0 ) {//new && good index, record it + SAi1.writePacked(P->genomeSAindexStart[iL]+indPref1, isa); + for (uint ii=ind0a[iL]+1; iigenomeSAindexStart[iL]+ii, isa | P->SAiMarkAbsentMaskC); + }; + ind0a[iL]=indPref1; + } else if ( indPref1 < ind0a[iL] ) { + ostringstream errOut; + errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + }; + }; + */ + uint indPref = indFull >> (2*(P->genomeSAindexNbases-1-iL)); // if (indPref!=indPref1) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexNbases; iL1++) { SAi.writePacked(P->genomeSAindexStart[iL1]+ind0[iL1],SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] | P->SAiMarkNmaskC); -// if (SAi[P->genomeSAindexStart[iL]+ind0[iL1]] != SAio[P->genomeSAindexStart[iL]+ind0[iL1]]) +// if (SAi[P->genomeSAindexStart[iL]+ind0[iL1]] != SAi1[P->genomeSAindexStart[iL]+ind0[iL1]]) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+indPref, isa); -// if (SAi[P->genomeSAindexStart[iL]+indPref] != SAio[P->genomeSAindexStart[iL]+indPref]) +// if (SAi[P->genomeSAindexStart[iL]+indPref] != SAi1[P->genomeSAindexStart[iL]+indPref]) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexNbases,P,iL4); };//isa cycle delete [] ind0; diff --git a/insertSeqSA.cpp b/insertSeqSA.cpp index 47b2be4..e8732d4 100644 --- a/insertSeqSA.cpp +++ b/insertSeqSA.cpp @@ -11,6 +11,7 @@ #include "binarySearch2.h" #include "funCompareUintAndSuffixes.h" #include +#include "genomeSAindex.h" uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * G, char * G1, uint64 nG, uint64 nG1, uint64 nG2, Parameters * P) {//insert new sequences into the SA @@ -106,27 +107,18 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * SA1.defineBits(SA.wordLength,SA.length+nInd); - ///*testing + /*testing PackedArray SAo; SAo.defineBits(P->GstrandBit+1,P->nSA+nInd); SAo.allocateArray(); ifstream oldSAin("./DirTrue/SA"); oldSAin.read(SAo.charArray,SAo.lengthByte); oldSAin.close(); - //*/ + */ uint isa1=0, isa2=0; for (uint isa=0;isa0 && SA1[isa2-1]!=SAo[isa2-1]) { - cout <0 && SA1[isa2-1]!=SAo[isa2-1]) { - cout <inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <genomeSAindexNbases; iL++) { - uint iSeq=0; - uint ind0=P->genomeSAindexStart[iL]-1;//last index that was present in the old genome - for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index - if (ii==798466) - cout <SAiMarkNmask & P->SAiMarkAbsentMask; - - if ( iSeqSAiMarkAbsentMaskC)>0 ) - {//index missing from the old genome - uint iSeq1=iSeq; - int64 ind1=funCalcSAi(seq1[0]+indArray[2*iSeq+1],iL); - while (ind1 < (int64)(ii-P->genomeSAindexStart[iL]) && indArray[2*iSeq]genomeSAindexStart[iL]) ) { - SAi.writePacked(ii,indArray[2*iSeq]+iSeq+1); - for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); - }; - ++iSeq; - ind0=ii; - } else { - iSeq=iSeq1; - }; - } else - {//index was present in the old genome - while (iSeq= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index - break; - }; - ++iSeq; - }; - - SAi.writePacked(ii,iSA1+iSeq); - - for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); - }; - ind0=ii; + SA1.writePacked(isa2,SA[isa]); //TODO make sure that the first sj index is not before the first array index + /*testing + if (SA1[isa2]!=SAo[isa2]) { + cout <genomeSAindexNbases; iL++) { - uint g=(uint) seq1[0][indArray[2*isj+1]+iL]; - ind1 <<= 2; - if (g>3) {//this iSA contains N, need to mark the previous - for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { - ind1+=3; - int64 ind2=P->genomeSAindexStart[iL1]+ind1; - for (; ind2>=0; ind2--) {//find previous index that is not absent - if ( (SAi[ind2] & P->SAiMarkAbsentMaskC)==0 ) { - break; - }; - }; - SAi.writePacked(ind2,SAi[ind2] | P->SAiMarkNmaskC); - ind1 <<= 2; - }; - break; - } else { - ind1 += g; - }; + for (;isa1inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <genomeSAindexNbases+2));//skip first bytes - oldSAiin.read(SAio.charArray,SAio.lengthByte); - oldSAiin.close(); - - for (uint iL=0; iL < P->genomeSAindexNbases; iL++) { - for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index - if ( SAio[ii]!=SAi[ii] ) { - cout <inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <genomeSAindexNbases; iL++) { +// uint iSeq=0; +// uint ind0=P->genomeSAindexStart[iL]-1;//last index that was present in the old genome +// for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index +// if (ii==798466) +// cout <SAiMarkNmask & P->SAiMarkAbsentMask; +// +// if ( iSeqSAiMarkAbsentMaskC)>0 ) +// {//index missing from the old genome +// uint iSeq1=iSeq; +// int64 ind1=funCalcSAi(seq1[0]+indArray[2*iSeq+1],iL); +// while (ind1 < (int64)(ii-P->genomeSAindexStart[iL]) && indArray[2*iSeq]genomeSAindexStart[iL]) ) { +// SAi.writePacked(ii,indArray[2*iSeq]+iSeq+1); +// for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); +// }; +// ++iSeq; +// ind0=ii; +// } else { +// iSeq=iSeq1; +// }; +// } else +// {//index was present in the old genome +// while (iSeq= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index +// break; +// }; +// ++iSeq; +// }; +// +// SAi.writePacked(ii,iSA1+iSeq); +// +// for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); +// }; +// ind0=ii; +// }; +// }; +// +// }; +// // time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SAi first" <genomeSAindexNbases; iL++) { +// uint g=(uint) seq1[0][indArray[2*isj+1]+iL]; +// ind1 <<= 2; +// if (g>3) {//this iSA contains N, need to mark the previous +// for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { +// ind1+=3; +// int64 ind2=P->genomeSAindexStart[iL1]+ind1; +// for (; ind2>=0; ind2--) {//find previous index that is not absent +// if ( (SAi[ind2] & P->SAiMarkAbsentMaskC)==0 ) { +// break; +// }; +// }; +// SAi.writePacked(ind2,SAi[ind2] | P->SAiMarkNmaskC); +// ind1 <<= 2; +// }; +// break; +// } else { +// ind1 += g; +// }; +// }; +// }; +// time ( &rawtime ); +// P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <genomeSAindexNbases+2));//skip first bytes +// oldSAiin.read(SAio.charArray,SAio.lengthByte); +// oldSAiin.close(); +// +// for (uint iL=0; iL < P->genomeSAindexNbases; iL++) { +// for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index +// if ( SAio[ii]!=SAi[ii] ) { +// cout <GstrandBit+1,SA.length+nInd);//same as SA2 SA.pointArray(SA1.charArray); + P->nSA=SA.length; + P->nSAbyte=SA.lengthByte; + + //generate SAi + genomeSAindex(G,SA,P,SAi); + + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <sjGstart=P->chrStart[P->nChrReal]; // memcpy(G+P->chrStart[P->nChrReal],seq1[0], nseq1[0]); diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 5589002..fa0d7b1 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -145,6 +145,17 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr // cout <chrStart[P->nChrReal]; + } else {//reverse strand + ind1=(ind1-nGsj) | N2bit; + }; + SA2.writePacked(isa2,ind1); + ++isa2; ++isj; + }; + uint ind1=SA[isa]; if ( (ind1 & N2bit)>0 ) @@ -168,20 +179,21 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; }; - SA2.writePacked(isa2,ind1); //TODO make sure that the first sj index is not before the first array index + SA2.writePacked(isa2,ind1); ++isa2; - - while (isa==indArray[isj*2]) {//insert sj index after the existing index - uint ind1=indArray[isj*2+1]; - if (ind1chrStart[P->nChrReal]; - } else {//reverse strand - ind1=(ind1-nGsj) | N2bit; - }; - SA2.writePacked(isa2,ind1); - ++isa2; ++isj; - }; }; + + for (;isjchrStart[P->nChrReal]; + } else {//reverse strand + ind1=(ind1-nGsj) | N2bit; + }; + SA2.writePacked(isa2,ind1); + ++isa2; + }; + time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" < Date: Fri, 2 Oct 2015 14:38:35 -0400 Subject: [PATCH 147/536] Implemented on the fly insertion of the extra sequences into the genome indexes. --- Genome.cpp | 10 +++---- VERSION | 2 +- sjdbBuildIndex.cpp | 73 +++++++++++++++++++++++++--------------------- 3 files changed, 45 insertions(+), 40 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 66fe779..33fa44a 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -298,12 +298,12 @@ void Genome::genomeLoad(){//allocate and load Genome if (P->sjdbInsert.pass1 || P->sjdbInsert.pass2) {//reserve extra memory for insertion at the 1st and/or 2nd step - nGenomePass1=P->nGenome; - nSApass1=P->nSA; + nGenomePass1=P->nGenome+P->genomeInsertL; + nSApass1=P->nSA+2*P->genomeInsertL; if (P->sjdbInsert.pass1) { - nGenomePass1+=P->limitSjdbInsertNsj*P->sjdbLength+P->genomeInsertL; - nSApass1+=2*P->limitSjdbInsertNsj*P->sjdbLength+2*P->genomeInsertL; + nGenomePass1+=P->limitSjdbInsertNsj*P->sjdbLength; + nSApass1+=2*P->limitSjdbInsertNsj*P->sjdbLength; }; nGenomePass2=nGenomePass1; nSApass2=nSApass1; @@ -323,7 +323,7 @@ void Genome::genomeLoad(){//allocate and load Genome SA.pointArray(SApass1.charArray+SApass1.lengthByte-SA.lengthByte); } else - {//no insertions + {//no sjdb insertions if (P->genomeInsertL==0) {// no sequence insertion, simple allocation G1=new char[P->nGenome+L+L]; diff --git a/VERSION b/VERSION index 6461b93..045fb16 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.2a_modified" +#define STAR_VERSION "STAR_2.5.0a_alpha" diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index fa0d7b1..c63b280 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -82,7 +82,6 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; }; }; -// for (int ii=0;iisjdbN;ii++) {if ( oldSJind[ii]==0){cout <GstrandBit; uint strandMask=~N2bit; - //testing -// PackedArray SAo; -// SAo.defineBits(P->GstrandBit+1,P->nSA); -// SAo.allocateArray(); -// ifstream oldSAin("./DirTrue/SA"); -// oldSAin.read(SAo.charArray,SAo.lengthByte); -// oldSAin.close(); - + /*testing + PackedArray SAo; + SAo.defineBits(P->GstrandBit+1,P->nSA); + SAo.allocateArray(); + ifstream oldSAin("./DirTrue/SA"); + oldSAin.read(SAo.charArray,SAo.lengthByte); + oldSAin.close(); + */ uint isj=0, isa2=0; - for (uint isa=0;isanSA;isa++) { - //testing -// if (isa2>0 && SA2[isa2-1]!=SAo[isa2-1]) { -// cout <nSA;isa++) { while (isa==indArray[isj*2]) {//insert sj index before the existing index uint ind1=indArray[isj*2+1]; if (ind10 ) {//- strand uint ind1s = P1->nGenome - (ind1 & strandMask); @@ -180,6 +174,12 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; SA2.writePacked(isa2,ind1); + /*testing + if (SA2[isa2]!=SAo[isa2]) { + cout <genomeSAindexStart[iL]) && indArray[2*iSJ]genomeSAindexStart[iL]) && indArray[2*iSJ]-1genomeSAindexStart[iL]) ) { - SAi.writePacked(ii,indArray[2*iSJ]+iSJ+1); + SAi.writePacked(ii,indArray[2*iSJ]-1+iSJ+1); for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); + SAi.writePacked(ii0,(indArray[2*iSJ]-1+iSJ+1) | P->SAiMarkAbsentMaskC); }; ++iSJ; ind0=ii; @@ -225,11 +231,11 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; } else {//index was present in the old genome - while (iSJ= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index break; }; @@ -246,7 +252,6 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; }; -// time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SAi first" <genomeSAindexNbases+2));//skip first bytes + oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes oldSAiin.read(SAio.charArray,SAio.lengthByte); oldSAiin.close(); -// for (uint ii=0;iinSA;ii++) { -// if (SA2[ii]!=SAo[ii]) { -// cout <nSA;ii++) { + if (SA2[ii]!=SAo[ii]) { + cout <genomeSAindexNbases; iL++) { From 6f204a195ff96fcd63b5c97389ba63311727b761 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 2 Nov 2015 15:23:54 -0500 Subject: [PATCH 148/536] Increased MAX_N_EXONS to avoid problem with very long reads. --- IncludeDefine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index 248af5b..b99617f 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -95,7 +95,7 @@ typedef uint8_t uint8; #define BAM_ATTR_MaxSize 1000 #if defined COMPILE_FOR_LONG_READS - #define MAX_N_EXONS 200 + #define MAX_N_EXONS 1000 #else #define MAX_N_EXONS 20 #endif From 79a36a81486674747a9737c718b9f80c8d2a04d0 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 3 Nov 2015 14:37:23 -0500 Subject: [PATCH 149/536] Fixed a bug with genome generation for annotations without spliece junctions. --- IncludeDefine.h | 2 +- genomeGenerate.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index b99617f..90b056a 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -104,7 +104,7 @@ typedef uint8_t uint8; #define MAX_N_MATES 2 #define DEF_readNameLengthMax 50000 #if defined COMPILE_FOR_LONG_READS - #define DEF_readSeqLengthMax 50000 + #define DEF_readSeqLengthMax 500000 #else #define DEF_readSeqLengthMax 500 #endif diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 61732d0..cb1983a 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -405,6 +405,7 @@ void genomeGenerate(Parameters *P) { //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk //this is - to avoid valgrind complaints. Note that SA2 is allocated with plenty of space to spare. + P->nSAbyte=mainGenome.SA.lengthByte; SA2.writePacked(P->nSA,0); }; From 69f90ba64b7a24ba38a370d5483679196fbd178a Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 3 Nov 2015 18:24:49 -0500 Subject: [PATCH 150/536] Added file/line/function information to error output. Fixed another bug for genome generation without annotations. Added a check for --genomeFastaFile being a directory or empty file. --- IncludeDefine.h | 2 ++ ReadAlignChunk_processChunks.cpp | 2 +- Transcriptome.cpp | 10 ++++----- genomeGenerate.cpp | 38 +++++++++++++++----------------- genomeScanFastaFiles.cpp | 6 +++++ loadGTF.cpp | 4 ++-- sjdbInsertJunctions.cpp | 20 ++++++++--------- 7 files changed, 43 insertions(+), 39 deletions(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index 90b056a..6ce3e21 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -25,6 +25,8 @@ #include "VERSION" +#define ERROR_OUT string ( __FILE__ ) +":"+ to_string ( (uint) __LINE__ ) +":"+ string ( __FUNCTION__ ) + //external libs #define SAMTOOLS_BGZF_H "htslib/htslib/bgzf.h" #define SAMTOOLS_SAM_H "htslib/htslib/sam.h" diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 503628e..3bdef50 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -112,7 +112,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks // }; } else {//error ostringstream errOut; - errOut << "ERROR_00201: EXITING because of FATAL ERROR in input reads: unknown file format: the read ID should start with @ or > \n"; + errOut << ERROR_OUT <<" EXITING because of FATAL ERROR in input reads: unknown file format: the read ID should start with @ or > \n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 4a78875..fddcd16 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -2,8 +2,6 @@ #include "streamFuns.h" #include "GlobalVariables.h" -//"ERROR_011000" - Transcriptome::Transcriptome (Parameters* Pin) { P=Pin; @@ -12,7 +10,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { if ( P->quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info - ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", "ERROR_011001", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); + ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); trinfo >> nTr; trS=new uint [nTr]; @@ -32,7 +30,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { trinfo.close(); - ifstream & exinfo = ifstrOpen(trInfoDir+"/exonInfo.tab", "ERROR_011002", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> nEx; exSE = new uint32 [2*nEx]; @@ -50,7 +48,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { }; if ( P->quant.geCount.yes ) {//load exon-gene structures - ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", "ERROR_011003", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> exG.nEx; exG.s=new uint64[exG.nEx]; @@ -74,7 +72,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { exG.eMax[iex]=max(exG.eMax[iex-1],exG.e[iex]); }; - ifstream & geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", "ERROR_011004", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); geStream >> nGe; geID.resize(nGe); for (uint ii=0;iigenomeChrBinNbases=1LLU << P->genomeChrBinNbits; //write genome parameters file - genomeParametersWrite(P->genomeDir+("/genomeParameters.txt"), P, "ERROR_00102"); + genomeParametersWrite(P->genomeDir+("/genomeParameters.txt"), P, ERROR_OUT); char *G=NULL, *G1=NULL; uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to find all the sizes @@ -149,10 +149,10 @@ void genomeGenerate(Parameters *P) { P->nGenome=N; uint N2 = N*2; - ofstream & chrN = ofstrOpen(P->genomeDir+"/chrName.txt","ERROR_00103", P); - ofstream & chrS = ofstrOpen(P->genomeDir+"/chrStart.txt","ERROR_00103", P); - ofstream & chrL = ofstrOpen(P->genomeDir+"/chrLength.txt","ERROR_00103", P); - ofstream & chrNL = ofstrOpen(P->genomeDir+"/chrNameLength.txt","ERROR_00103", P); + ofstream & chrN = ofstrOpen(P->genomeDir+"/chrName.txt",ERROR_OUT, P); + ofstream & chrS = ofstrOpen(P->genomeDir+"/chrStart.txt",ERROR_OUT, P); + ofstream & chrL = ofstrOpen(P->genomeDir+"/chrLength.txt",ERROR_OUT, P); + ofstream & chrNL = ofstrOpen(P->genomeDir+"/chrNameLength.txt",ERROR_OUT, P); for (uint ii=0;iinChrReal;ii++) {//output names, starts, lengths chrN<chrName[ii]<<"\n"; @@ -197,8 +197,6 @@ void genomeGenerate(Parameters *P) { SA2.defineBits(P->GstrandBit+1,P->nSA); }; - P->nSAbyte=SA2.lengthByte; - P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<genomeDir+"/SA_"+to_string( (uint) iChunk); - ofstream & saChunkFile = ofstrOpen(chunkFileName,"ERROR_00105", P); - fstreamWriteBig(saChunkFile, (char*) saChunk, sizeof(saChunk[0])*indPrefChunkCount[iChunk],chunkFileName,"ERROR_00121",P); + ofstream & saChunkFile = ofstrOpen(chunkFileName,ERROR_OUT, P); + fstreamWriteBig(saChunkFile, (char*) saChunk, sizeof(saChunk[0])*indPrefChunkCount[iChunk],chunkFileName,ERROR_OUT,P); saChunkFile.close(); delete [] saChunk; saChunk=NULL; @@ -402,8 +400,8 @@ void genomeGenerate(Parameters *P) { //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk //this is - to avoid valgrind complaints. Note that SA2 is allocated with plenty of space to spare. - P->nSAbyte=mainGenome.SA.lengthByte; - SA2.writePacked(P->nSA,0); + SA1=mainGenome.SA; + SA1.writePacked(P->nSA,0); }; //write genome to disk @@ -411,19 +409,19 @@ void genomeGenerate(Parameters *P) { P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <genomeDir+"/Genome","ERROR_00104", P); - fstreamWriteBig(genomeOut,G,P->nGenome,P->genomeDir+"/Genome","ERROR_00120",P); + ofstream & genomeOut = ofstrOpen(P->genomeDir+"/Genome",ERROR_OUT, P); + fstreamWriteBig(genomeOut,G,P->nGenome,P->genomeDir+"/Genome",ERROR_OUT,P); genomeOut.close(); //write SA time ( &rawTime ); - P->inOut->logMain << "SA size in bytes: "<< P->nSAbyte << "\n"<inOut->logMain << "SA size in bytes: "<inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <genomeDir+"/SA","ERROR_00106", P); - fstreamWriteBig(SAout,(char*) SA2.charArray, (streamsize) P->nSAbyte,P->genomeDir+"/SA","ERROR_00122",P); + ofstream & SAout = ofstrOpen(P->genomeDir+"/SA",ERROR_OUT, P); + fstreamWriteBig(SAout,(char*) SA1.charArray, (streamsize) SA1.lengthByte,P->genomeDir+"/SA",ERROR_OUT,P); SAout.close(); //write SAi @@ -432,11 +430,11 @@ void genomeGenerate(Parameters *P) { *P->inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <genomeDir+"/SAindex","ERROR_00107", P); + ofstream & SAiOut = ofstrOpen(P->genomeDir+"/SAindex",ERROR_OUT, P); - fstreamWriteBig(SAiOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->genomeDir+"/SAindex","ERROR_00123",P); - fstreamWriteBig(SAiOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->genomeDir+"/SAindex","ERROR_00124",P); - fstreamWriteBig(SAiOut, SAip.charArray, SAip.lengthByte,P->genomeDir+"/SAindex","ERROR_00125",P); + fstreamWriteBig(SAiOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->genomeDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(SAiOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->genomeDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(SAiOut, SAip.charArray, SAip.lengthByte,P->genomeDir+"/SAindex",ERROR_OUT,P); SAiOut.close(); SA2.deallocateArray(); diff --git a/genomeScanFastaFiles.cpp b/genomeScanFastaFiles.cpp index ebde869..56b6c4b 100644 --- a/genomeScanFastaFiles.cpp +++ b/genomeScanFastaFiles.cpp @@ -19,6 +19,12 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; + fileIn.peek(); + if ( !fileIn.good() ) {// + ostringstream errOut; + errOut << "EXITING because of INPUT ERROR: could not read from genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; while(!fileIn.eof()) {//read each file until eof string lineIn (4096,'.'); getline(fileIn,lineIn); diff --git a/loadGTF.cpp b/loadGTF.cpp index 349f244..819654c 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -167,7 +167,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file qsort((void*) exgeLoci, exonN, sizeof(uint)*GTF_exgeLoci_size, funCompareArrays); - ofstream & exgeOut = ofstrOpen(dirOut+"/exonGeTrInfo.tab","ERROR_00201",P); + ofstream & exgeOut = ofstrOpen(dirOut+"/exonGeTrInfo.tab",ERROR_OUT,P); exgeOut<sjdbN>0 && sjdbLoci.chr.size()==0) {//load from the saved genome, only if the loading did not happen already (if sjdb insertion happens at the 1st pass, sjdbLoci will be populated - ifstream & sjdbStreamIn = ifstrOpen(P->genomeDir+"/sjdbList.out.tab", "ERROR_012003", "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P); + ifstream & sjdbStreamIn = ifstrOpen(P->genomeDir+"/sjdbList.out.tab", ERROR_OUT, "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P); sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); sjdbLoci.priority.resize(sjdbLoci.chr.size(),30); time ( &rawtime ); @@ -83,20 +83,20 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC copyFile(P->genomeDir+"/chrLength.txt", P->sjdbInsert.outDir+"/chrLength.txt"); }; - genomeParametersWrite(P->sjdbInsert.outDir+("/genomeParameters.txt"), P, "ERROR_012012"); + genomeParametersWrite(P->sjdbInsert.outDir+("/genomeParameters.txt"), P, ERROR_OUT); - ofstream & genomeOut = ofstrOpen(P->sjdbInsert.outDir+"/Genome","ERROR_012004", P); - fstreamWriteBig(genomeOut,genome.G,P->nGenome,P->sjdbInsert.outDir+"/Genome","ERROR_012005",P); + ofstream & genomeOut = ofstrOpen(P->sjdbInsert.outDir+"/Genome",ERROR_OUT, P); + fstreamWriteBig(genomeOut,genome.G,P->nGenome,P->sjdbInsert.outDir+"/Genome",ERROR_OUT,P); genomeOut.close(); - ofstream & saOut = ofstrOpen(P->sjdbInsert.outDir+"/SA","ERROR_012006", P); - fstreamWriteBig(saOut,(char*) genome.SA.charArray, (streamsize) genome.SA.lengthByte, P->sjdbInsert.outDir+"/SA","ERROR_012007",P); + ofstream & saOut = ofstrOpen(P->sjdbInsert.outDir+"/SA",ERROR_OUT, P); + fstreamWriteBig(saOut,(char*) genome.SA.charArray, (streamsize) genome.SA.lengthByte, P->sjdbInsert.outDir+"/SA",ERROR_OUT,P); saOut.close(); - ofstream & saIndexOut = ofstrOpen(P->sjdbInsert.outDir+"/SAindex","ERROR_012008", P); - fstreamWriteBig(saIndexOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->sjdbInsert.outDir+"/SAindex","ERROR_012009",P); - fstreamWriteBig(saIndexOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->sjdbInsert.outDir+"/SAindex","ERROR_012010",P); - fstreamWriteBig(saIndexOut, genome.SAi.charArray, genome.SAi.lengthByte,P->sjdbInsert.outDir+"/SAindex","ERROR_012011",P); + ofstream & saIndexOut = ofstrOpen(P->sjdbInsert.outDir+"/SAindex",ERROR_OUT, P); + fstreamWriteBig(saIndexOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(saIndexOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(saIndexOut, genome.SAi.charArray, genome.SAi.lengthByte,P->sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); saIndexOut.close(); }; From 3ae59395af0a93be07e4632cbbb316aa5d5ac3b1 Mon Sep 17 00:00:00 2001 From: Christian Krause Date: Wed, 4 Nov 2015 12:10:31 +0100 Subject: [PATCH 151/536] htslib allows user-defined CC, CFLAGS and CPPFLAGS - user-defined CFLAGS gets appended, this assures that user-defined settings will have precedence because they override the Makefile-defined ones - CPPFLAGS appends rather than sets, this will allow user-defined settings to not be overridden; appending or prepending here is not an issue --- htslib/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htslib/Makefile b/htslib/Makefile index 1087528..17212d4 100644 --- a/htslib/Makefile +++ b/htslib/Makefile @@ -4,14 +4,14 @@ # # Author: John Marshall -CC = gcc +CC ?= gcc AR = ar RANLIB = ranlib # TODO: edit cram code to remove need for -DSAMTOOLS -CPPFLAGS = -I. -DSAMTOOLS=1 +CPPFLAGS += -I. -DSAMTOOLS=1 # TODO: probably update cram code to make it compile cleanly with -Wc++-compat -CFLAGS = -g -Wall -O2 +CFLAGS := -g -Wall -O2 $(CFLAGS) EXTRA_CFLAGS_PIC = -fpic LDFLAGS = LDLIBS = From 3648d8fce31d2bc265ec0e0b16f95c089262811b Mon Sep 17 00:00:00 2001 From: Christian Krause Date: Wed, 4 Nov 2015 12:30:40 +0100 Subject: [PATCH 152/536] improve flag handling - adds `CPPFLAGS` to all `*.c` and `*.cpp` compilations to allow the user to specify custom include directories from this environment variable - user-defined `CFLAGS` gets appended, this assures that user-defined settings will have precedence because they override the Makefile-defined ones to give an example of why this is important: the Makefile defines `-Wall`; if the user wants to disable all warnings for his build and defines: export CFLAGS="-w" the g++ command line will look as follows: g++ ... -Wall ... -w ... the `-w` which comes later in the list of options will completely override `-Wall`; this gives the user full control; this is the expected behaviour if you are used to any of the autotools or cmake build tools: "the user should always be able to override predefined settings from the build" - the `CXXFLAGS` and `LDFLAGS` settings was not handled correctly, i.e. if the user would define either of them, everything from `CXXFLAGSextra`, `LDFLAGSextra`, etc. would not be included in these settings this caused some unexpected errors to occur because certain options like -std=c++0x and -fopenmp would not be used I changed this to append the user-defined settings (same reasoning as with CFLAGS) and this works now as expected --- Makefile | 51 ++++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 2586da8..4ba407d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ # user may define these whole flags -# LDFLAGS +# LDFLAGS +# CPPFLAGS # CXXFLAGS # CFLAGS @@ -8,7 +9,7 @@ LDFLAGSextra ?= CXXFLAGSextra ?= # user may define the compiler -CXX ?=g++ +CXX ?= g++ # pre-defined flags LDFLAGS_shared := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -lrt @@ -23,7 +24,7 @@ CXXFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) CXXFLAGS_main := -O3 $(CXXFLAGS_common) CXXFLAGS_gdb := -O0 -g $(CXXFLAGS_common) -CFLAGS ?= -O3 -pipe -Wall -Wextra +CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS) ########################################################################################################## @@ -53,10 +54,10 @@ SOURCES := $(wildcard *.cpp) $(wildcard *.c) %.o : %.cpp - $(CXX) -c $(CXXFLAGS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< %.o : %.c - $(CXX) -c $(CFLAGS) $< + $(CXX) -c $(CPPFLAGS) $(CFLAGS) $< all: STAR @@ -99,63 +100,63 @@ htslib/libhts.a : parametersDefault.xxd: parametersDefault xxd -i parametersDefault > parametersDefault.xxd -STAR : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -STAR : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_shared) +STAR : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) $(CXXFLAGS) +STAR : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_shared) $(LDFLAGS) STAR : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -POSIXSHARED : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -DPOSIX_SHARED_MEM -POSIXSHARED : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_shared) +POSIXSHARED : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) -DPOSIX_SHARED_MEM $(CXXFLAGS) +POSIXSHARED : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_shared) $(LDFLAGS) POSIXSHARED : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -STARstatic : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -STARstatic : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_static) +STARstatic : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) $(CXXFLAGS) +STARstatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_static) $(LDFLAGS) STARstatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -STARlong : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_LONG_READS' -STARlong : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_shared) +STARlong : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_LONG_READS' $(CXXFLAGS) +STARlong : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_shared) $(LDFLAGS) STARlong : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -STARlongStatic : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_LONG_READS' -STARlongStatic : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_static) +STARlongStatic : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_LONG_READS' $(CXXFLAGS) +STARlongStatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_static) $(LDFLAGS) STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -gdb : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_gdb) -gdb : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_gdb) +gdb : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_gdb) $(CXXFLAGS) +gdb : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_gdb) $(LDFLAGS) gdb : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -gdb-long : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_gdb) -D'COMPILE_FOR_LONG_READS' -gdb-long : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_gdb) +gdb-long : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_gdb) -D'COMPILE_FOR_LONG_READS' $(CXXFLAGS) +gdb-long : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_gdb) $(LDFLAGS) gdb-long : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -STARforMacStatic : CXXFLAGS ?= $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_MAC' -STARforMacStatic : LDFLAGS ?= $(LDFLAGSextra) $(LDFLAGS_Mac_static) +STARforMacStatic : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_MAC' $(CXXFLAGS) +STARforMacStatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_Mac_static) $(LDFLAGS) STARforMacStatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) ######################################################### all trargets below are not supported and not recommended! -STARforMac : CXXFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_main) +STARforMac : CXXFLAGS := -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_main) $(CXXFLAGS) STARforMac : parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS) $(LDFLAGS_Mac) $(OBJECTS) -STARlongForMacStatic : CXXFLAGS=-D'COMPILE_FOR_LONG_READS' -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_main) +STARlongForMacStatic : CXXFLAGS := -D'COMPILE_FOR_LONG_READS' -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_main) $(CXXFLAGS) STARlongForMacStatic : parametersDefault.xxd $(OBJECTS) $(CXX) -o STARlong $(CXXFLAGS) $(LDFLAGS_Mac_static) $(OBJECTS) # -STARforMacGDB : CXXFLAGS=-D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_gdb) +STARforMacGDB : CXXFLAGS := -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_gdb) $(CXXFLAGS) STARforMacGDB : parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) -localChains : CXXFLAGS=-D'OUTPUT_localChains' $(CXXFLAGS_main) +localChains : CXXFLAGS := -D'OUTPUT_localChains' $(CXXFLAGS_main) $(CXXFLAGS) localChains : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) From 3711b45f377d63bcdc67427d848b8ebd29bdb573 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 4 Nov 2015 18:52:27 -0500 Subject: [PATCH 153/536] Implemented --outSAMfilter KeepOnlyAddedReferences option. --- Genome.cpp | 1 + Genome_insertSequences.cpp | 2 +- Parameters.cpp | 16 + Parameters.h | 9 + ReadAlign_outputAlignments.cpp | 20 +- loadGTF.cpp | 15 +- parametersDefault | 4 + parametersDefault.xxd | 2100 ++++++++++++++++---------------- 8 files changed, 1123 insertions(+), 1044 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 33fa44a..c50a688 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -291,6 +291,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (P->genomeFastaFiles.at(0)!="-") {//will insert sequences in the genome, now estimate the extra size uint oldlen=P->chrStart.back();//record the old length + P->genomeInsertChrIndFirst=P->nChrReal+1; P->genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; }; diff --git a/Genome_insertSequences.cpp b/Genome_insertSequences.cpp index 10da398..01de722 100644 --- a/Genome_insertSequences.cpp +++ b/Genome_insertSequences.cpp @@ -19,10 +19,10 @@ if (P->genomeFastaFiles.at(0)!="-") uint sjdblen=P->nGenome-(P->chrStart.back()-P->genomeInsertL);//length of sjdb sequences memmove(G+P->chrStart.back(),G+P->chrStart.back()-P->genomeInsertL,sjdblen); memset(G+P->chrStart.back()-P->genomeInsertL, GENOME_spacingChar, P->genomeInsertL);//fill empty space with spacing characters + genomeScanFastaFiles(P, G+P->chrStart.back()-P->genomeInsertL, true); //read the seqs from file(s) into the free space uint64 nGenomeOld=P->nGenome; P->nGenome=P->chrStart.back()+sjdblen; - //insert new sequences into the SA insertSeqSA(SA, SApass1, SAi, G, G+P->chrStart.back()-P->genomeInsertL, nGenomeOld-sjdblen, P->genomeInsertL, sjdblen, P); diff --git a/Parameters.cpp b/Parameters.cpp index d5f8679..7e17131 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -92,6 +92,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMheaderCommentFile", &outSAMheaderCommentFile)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMcompression", &outBAMcompression)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMsortingThreadN", &outBAMsortingThreadN)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMfilter", &outSAMfilter.mode)); //output SJ filtering @@ -649,6 +650,21 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; + outSAMfilter.yes=false; + outSAMfilter.KeepOnlyAddedReferences=false; + if (outSAMfilter.mode.at(0)=="KeepOnlyAddedReferences") + { + outSAMfilter.yes=true; + outSAMfilter.KeepOnlyAddedReferences=true; + } else if (outSAMfilter.mode.at(0)!="None") + { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --outSAMfilter: "<logMain, EXIT_CODE_PARAMETER, *this); + }; + + readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files if (runMode=="alignReads" && genomeLoad!="Remove" && genomeLoad!="LoadAndExit") {//open reads files to check if they are present diff --git a/Parameters.h b/Parameters.h index 6c4c1dc..c71ff54 100644 --- a/Parameters.h +++ b/Parameters.h @@ -42,6 +42,8 @@ class Parameters { vector genomeFastaFiles; uint genomeSAsparseD;//sparsity=distance between indices uint genomeInsertL; //total length of the sequence to be inserted on the fly + uint genomeInsertChrIndFirst; //index of the first inserted chromosome + //binning,windows,anchors uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; @@ -129,6 +131,13 @@ class Parameters { uint64 *outBAMsortingBinStart; //genomic starts for bins for sorting BAM files uint16 outSAMflagOR, outSAMflagAND; + struct + { + vector mode; + bool yes; + bool KeepOnlyAddedReferences; + } outSAMfilter; + string outReadsUnmapped; int outQSconversionAdd; string outFileTmp; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index fa24448..0ae28e1 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -30,6 +30,7 @@ void ReadAlign::outputAlignments() { } else {//output transcripts outFilterPassed=true; + if (P->outFilterBySJoutStage==1) {//filtering by SJout for (uint iTr=0;iTrnExons-1;iex++) {//check all junctions @@ -67,6 +68,21 @@ void ReadAlign::outputAlignments() { }; if (outFilterPassed) { + bool outSAMfilterYes=true; + if (P->outSAMfilter.yes) + { + if (P->outSAMfilter.KeepOnlyAddedReferences) + { + for (uint itr=0;itrChrgenomeInsertChrIndFirst) + { + outSAMfilterYes=false; + break; + }; + }; + }; + }; if (nTr>1) {//multimappers statsRA.mappedReadsM++; unmapType=-1; @@ -80,13 +96,13 @@ void ReadAlign::outputAlignments() { exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; - if (P->outSAMbool){//SAM output + if (P->outSAMbool && outSAMfilterYes){//SAM output for (uint iTr=0;iTroutBAMunsorted || P->outBAMcoord) {//BAM output + if ((P->outBAMunsorted || P->outBAMcoord) && outSAMfilterYes) {//BAM output for (uint iTr=0;iTrchrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate diff --git a/loadGTF.cpp b/loadGTF.cpp index 819654c..2a38d9d 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -67,9 +67,13 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file if (exonN==0) { - P->inOut->logMain << "WARNING: found no exons in sjdbGTFfile=" << P->sjdbGTFfile <sjdbGTFfile <<"\n"; + errOut << "Solution: check the formatting of the GTF file, it must contain some lines woth ""exon"" in the 3rd column. "; + errOut << "If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; + uint* exonLoci=new uint [exonN*GTF_exonLoci_size]; char* transcriptStrand = new char [exonN]; vector transcriptID, geneID; @@ -150,6 +154,13 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file };//if (chr1.substr(0,1)!="#" && featureType=="exon") };// + if (exonN==0) + { + ostringstream errOut; + errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << P->sjdbGTFfile <<"\n"; + errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; //sort exonLoci by transcript ID and exon coordinates qsort((void*) exonLoci, exonN, sizeof(uint)*GTF_exonLoci_size, funCompareUint2); diff --git a/parametersDefault b/parametersDefault index 13196ac..6cf6a08 100644 --- a/parametersDefault +++ b/parametersDefault @@ -250,6 +250,10 @@ outSAMheaderPG - outSAMheaderCommentFile - string: path to the file with @CO (comment) lines of the SAM header +outSAMfilter None + string(s): filter the output into main SAM/BAM files + KeepOnlyAddedReferences ... only keep the reads for which all alignments are to the extra reference sequences added with --genomeFastaFiles at the mapping stage. + outBAMcompression 1 int: -1 to 10 BAM compression level, -1=default compression (6?), 0=no compression, 10=maximum compression diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 2868f67..cb5b8c6 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1117,1090 +1117,1112 @@ unsigned char parametersDefault[] = { 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, - 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, - 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, - 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, - 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, + 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, + 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, + 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, + 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, + 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, + 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, - 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, - 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, - 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, + 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, + 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, + 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, + 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, - 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, + 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, + 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, - 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, - 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, - 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, + 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x66, + 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, + 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, + 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, + 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, - 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, - 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, + 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, + 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, - 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, + 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, + 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, + 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, + 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, + 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, + 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, + 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, + 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, + 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, + 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, + 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, + 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, - 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, - 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, - 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, - 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, - 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, - 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, - 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, - 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, - 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, - 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, - 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, - 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, - 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, - 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, + 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, + 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, + 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, + 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, + 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, + 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, + 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, + 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, + 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, + 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, + 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, + 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, + 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, - 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, + 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, + 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, + 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, + 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, + 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, + 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, + 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, + 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, - 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, - 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, - 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, - 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, - 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, - 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, + 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, + 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, - 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, - 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, - 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, - 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, - 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, - 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, + 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, + 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, + 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, + 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, - 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, - 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, - 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x0a, 0x0a + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, + 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 26427; +unsigned int parametersDefault_len = 26700; From 8a4f041e70fb59ba988306bf60dd977c769e4810 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 6 Nov 2015 15:29:41 -0500 Subject: [PATCH 154/536] Implemented random multialignment output, see CHANGES for details. --- Makefile | 2 +- Parameters.cpp | 20 +- Parameters.h | 8 + ReadAlign.cpp | 6 +- ReadAlign.h | 10 +- ReadAlignChunk.cpp | 2 +- ReadAlign_alignBAM.cpp | 2 +- ReadAlign_multMapSelect.cpp | 72 +- ReadAlign_outputAlignments.cpp | 8 +- ReadAlign_outputTranscriptSAM.cpp | 2 +- STARmanual.tex | 451 ++++ genomeScanFastaFiles.cpp | 19 +- loadGTF.cpp | 5 +- parametersDefault | 13 + parametersDefault.xxd | 4081 +++++++++++++++-------------- 15 files changed, 2675 insertions(+), 2026 deletions(-) create mode 100644 STARmanual.tex diff --git a/Makefile b/Makefile index 4ba407d..52e67ad 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ LDFLAGS_gdb := $(LDFLAGS_shared) COMPTIMEPLACE := -D'COMPILATION_TIME_PLACE="$(shell echo `date` $(HOSTNAME):`pwd`)"' -CXXFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) +CXXFLAGS_common := -pipe -std=c++11 -Wall -Wextra -fopenmp $(COMPTIMEPLACE) CXXFLAGS_main := -O3 $(CXXFLAGS_common) CXXFLAGS_gdb := -O0 -g $(CXXFLAGS_common) diff --git a/Parameters.cpp b/Parameters.cpp index 7e17131..25a7ae7 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -33,6 +33,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "runMode", &runMode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "runThreadN", &runThreadN)); parArray.push_back(new ParameterInfoScalar (-1, -1, "runDirPerm", &runDirPermIn)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "runRNGseed", &runRNGseed)); //genome parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeDir", &genomeDir)); @@ -73,6 +74,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, 2, "outStd", &outStd)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outReadsUnmapped", &outReadsUnmapped)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outQSconversionAdd", &outQSconversionAdd)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outMultimapperOrder", &outMultimapperOrder.mode)); //outSAM parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMtype", &outSAMtype)); @@ -93,6 +95,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMcompression", &outBAMcompression)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMsortingThreadN", &outBAMsortingThreadN)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMfilter", &outSAMfilter.mode)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmultNmax", &outSAMmultNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMattrIHstart", &outSAMattrIHstart)); //output SJ filtering @@ -663,7 +667,21 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: specify one of the allowed values: KeepOnlyAddedReferences or None\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + + if (outMultimapperOrder.mode=="Old_2.4") + { + outMultimapperOrder.random=false; + } else if (outMultimapperOrder.mode=="Random") + { + outMultimapperOrder.random=true; + } else + { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --outMultimapperOrder: "<logMain, EXIT_CODE_PARAMETER, *this); + }; + readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files diff --git a/Parameters.h b/Parameters.h index c71ff54..479b740 100644 --- a/Parameters.h +++ b/Parameters.h @@ -29,6 +29,7 @@ class Parameters { int runThreadN; mode_t runDirPerm; string runDirPermIn; //permission for directores created at run-time + int runRNGseed; //random number generator seed //parameters vector parametersFiles; @@ -116,6 +117,7 @@ class Parameters { string outSAMmode, outSAMstrandField, outSAMunmapped, outSAMorder, outSAMprimaryFlag; vector outSAMattributes, outSAMheaderHD, outSAMheaderPG; vector outSAMattrRGline,outSAMattrRGlineSplit,outSAMattrRG; + uint outSAMmultNmax,outSAMattrIHstart; string outSAMheaderCommentFile; int outSAMmapqUnique; struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS;} outSAMattrPresent, outSAMattrPresentQuant; @@ -138,6 +140,12 @@ class Parameters { bool KeepOnlyAddedReferences; } outSAMfilter; + struct + { + string mode; + bool random; + } outMultimapperOrder; + string outReadsUnmapped; int outQSconversionAdd; string outFileTmp; diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 76018b6..a46e198 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -3,7 +3,7 @@ #include "Transcript.h" #include "ReadAlign.h" -ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn) : P(Pin), chunkTr(TrIn) {//allocate arrays +ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin), chunkTr(TrIn) {//allocate arrays G=genomeIn.G; SA=genomeIn.SA; @@ -16,6 +16,10 @@ ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *Tr memset(winBin[0],255,sizeof(winBin[0][0])*P->winBinN); memset(winBin[1],255,sizeof(winBin[0][0])*P->winBinN); + //RNGs + rngMultOrder.seed(P->runRNGseed*(iChunk+1)); + rngUniformReal0to1=std::uniform_real_distribution (0.0, 1.0); + //transcriptome if ( P->quant.trSAM.yes ) { alignTrAll=new Transcript [P->alignTranscriptsPerReadNmax]; diff --git a/ReadAlign.h b/ReadAlign.h index 5fec1c1..aed1d97 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -11,8 +11,10 @@ #include "Transcriptome.h" #include "BAMoutput.h" #include "Quantifications.h" +#include -class ReadAlign : public Genome { +class ReadAlign : public Genome +{ public: Parameters* P; //pointer to the parameters, will be initialized on construction @@ -25,6 +27,9 @@ class ReadAlign : public Genome { //mapping time time_t timeStart, timeFinish; + //random number generators + std::mt19937 rngMultOrder;//initialize in ReadAlign.cpp + std::uniform_real_distribution rngUniformReal0to1;//initialize in ReadAlign.cpp //input,output istream* readInStream[MAX_N_MATES]; @@ -107,11 +112,10 @@ class ReadAlign : public Genome { Transcript *alignC, *extendC, *polyAtailC; //alignment rules/conditions - intScore trMultScores[MAX_N_MULTMAP];//scores for the multiple mappers Transcript* trMult[MAX_N_MULTMAP];//multimapping transcripts Transcript *alignTrAll;//alignments to transcriptome - ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn);//allocate arrays + ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk);//allocate arrays void resetN();//resets the counters to 0 void multMapSelect(); int mapOneRead(); diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 49dc532..26f4eea 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -13,7 +13,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome chunkTr=NULL; }; - RA = new ReadAlign(P, genomeIn, chunkTr);//new local copy of RA for each chunk + RA = new ReadAlign(P, genomeIn, chunkTr, iChunk);//new local copy of RA for each chunk RA->iRead=0; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 0b9e699..6254dde 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -310,7 +310,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWriteInt(nTrOut,"NH",attrOutArray+attrN,P); break; case ATTR_HI: - attrN+=bamAttrArrayWriteInt(iTrOut+1,"HI",attrOutArray+attrN,P); + attrN+=bamAttrArrayWriteInt(iTrOut+P->outSAMattrIHstart,"HI",attrOutArray+attrN,P); break; case ATTR_AS: attrN+=bamAttrArrayWriteInt(trOut.maxScore,"AS",attrOutArray+attrN,P); diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index c0c3f06..8267306 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -3,6 +3,7 @@ #include "Transcript.h" #include "ReadAlign.h" #include "ErrorWarning.h" +#include void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts of all windows @@ -17,8 +18,6 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; - trBest->primaryFlag=true; - bool chimRecord = false; nTr=0; @@ -33,12 +32,10 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); }; - trMultScores[nTr]=trAll[iW][iTr]->maxScore; trMult[nTr]=trAll[iW][iTr]; trMult[nTr]->Chr = trAll[iW][0]->Chr; trMult[nTr]->Str = trAll[iW][0]->Str; trMult[nTr]->roStr = trAll[iW][0]->roStr; - if ( P->outSAMprimaryFlag=="AllBestScore" && trMultScores[nTr] == maxScore ) trMult[nTr]->primaryFlag=true; if ( (trAll[iW][iTr]->maxScore + P->outFilterMultimapScoreRange) >= maxScore) nTrMate++; @@ -47,10 +44,75 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts }; }; - for (uint iTr=0; iTr P->outFilterMultimapNmax) + {//too multi, no need for further processing, isnce it will be considered unmapped + return; + }; + + for (uint iTr=0; iTrroStart = trMult[iTr]->roStr==0 ? trMult[iTr]->rStart : Lread - trMult[iTr]->rStart - trMult[iTr]->rLength; trMult[iTr]->cStart=trMult[iTr]->gStart - P->chrStart[trMult[iTr]->Chr]; }; +// if (P->outMultimapperOrder.sortCoord) +// {//sort multimappers by coordinate +// uint *s=new uint[nTr*2]; +// Transcript **t=new Transcript*[nTr]; +// for (uint itr=0; itrexons[0][EX_G]; +// s[itr*2+1]=itr; +// t[itr]=trMult[itr]; +// }; +// qsort((void*) s, nTr, sizeof(uint)*2, funCompareUint1); +// for (uint itr=0; itroutMultimapperOrder.random && nTr>1) + {//randomize order of the alignments + int nbest=0; + for (uint itr=0; itrmaxScore == maxScore ) + { + swap(trMult[itr],trMult[nbest]); + ++nbest; + }; + }; + //shuffle separately the best aligns, and the rest + for (int itr=nbest-1; itr>=1; itr--) + {//Fisher-Yates-Durstenfeld-Knuth shuffle + int rand1=int (rngUniformReal0to1(rngMultOrder)*itr+0.5); + swap(trMult[itr],trMult[rand1]); + }; + for (int itr=nTr-nbest-1; itr>=1; itr--) + {//Fisher-Yates-Durstenfeld-Knuth shuffle + int rand1=int (rngUniformReal0to1(rngMultOrder)*itr+0.5); + swap(trMult[nbest+itr],trMult[nbest+rand1]); + }; + }; + + if ( P->outSAMprimaryFlag=="AllBestScore" ) + { + for (uint itr=0; itrmaxScore == maxScore ) trMult[itr]->primaryFlag=true; + }; + } else if (P->outMultimapperOrder.random) + { + for (uint itr=0; itrmaxScore == maxScore ) trMult[itr]->primaryFlag=true; + break; + }; + } else + {//old way + trBest->primaryFlag=true; + }; }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 0ae28e1..141d809 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -96,17 +96,19 @@ void ReadAlign::outputAlignments() { exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; + uint nTrOut=min(P->outSAMmultNmax,nTr); //number of to write to SAM/BAM files + if (P->outSAMbool && outSAMfilterYes){//SAM output - for (uint iTr=0;iTroutBAMunsorted || P->outBAMcoord) && outSAMfilterYes) {//BAM output - for (uint iTr=0;iTrchrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate - if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTr); + if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; }; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index cc21bc5..f2bcade 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -249,7 +249,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i *outStream <<"\tNH:i:" << nTrOut; break; case ATTR_HI: - *outStream <<"\tHI:i:"<outSAMattrIHstart; break; case ATTR_AS: *outStream<<"\tAS:i:"<0 && $8+$9<=5 {print $1,$2,$3,$4,$5,$6,$7,$8,$9}' | +sort | uniq -c | sort -k1,1rn +\end{verbatim} +This will keep only the canonical junctions with the repeat length less than 5 and will remove chimeras with mitochondrion genome. + +When I do it for one of our K562 runs, I get: +\begin{verbatim} +181 chr1 144676873 - chr1 147917466 + 1 0 1 + 29 chr5 69515744 - chr5 34182973 - 1 3 1 + 28 chr1 143910077 - chr1 149459550 - 1 1 0 + 27 chr22 23632601 + chr9 133729450 + 1 0 0 + 20 chr12 90313405 - chr21 40684813 - 1 2 0 + 20 chr22 23632601 + chr9 133655755 + 1 0 1 + 20 chr9 123636256 - chr9 123578959 + 1 1 4 + 15 chr16 85589970 + chr6 16762582 + 1 3 2 + 15 chr3 197348574 - chr3 195392936 + 1 1 0 + 14 chr18 39584506 + chr18 39560613 - 1 2 0 +\end{verbatim} +Note that line 4 and 6 here are BCR/ABL fusions. You would need to filter these junctions further to see which of them connect known but not homologous genes. + + +\section{Output in transcript coordinates.} +With \opt{quantMode} \optv{TranscriptomeSAM} option STAR will output alignments translated into transcript coordinates in the \ofilen{Aligned.toTranscriptome.out.bam} file (in addition to alignments in genomic coordinates in \ofilen{Aligned.*.sam/bam} files). These transcriptomic alignments can be used with various transcript quantification software that require reads to be mapped to transcriptome, such as RSEM or eXpress. For example, RSEM command line would look as follows: \codelines{rsem-calculate-expression ... --bam Aligned.toTranscriptome.out.bam /path/to/RSEM/reference RSEM}. +Note, that STAR first aligns reads to entire genome, and only then searches for concordance between alignments and transcripts. I believe this approach might offer certain advantages compared to the alignment to transcriptome only, by not forcing the alignments to annotated transcripts. + +By default, the output satisfies RSEM requirements: soft-clipping or indels are not allowed. Use \opt{quantTranscriptomeBan} \optv{Singleend} to allow insertions, deletions ans soft-clips in the transcriptomic alignments, which can be used by some expression quantification software (e.g. eXpress). + +\section{Counting number of reads per gene.} +With \opt{quantMode} \optv{GeneCounts} option STAR will count number reads per gene while mapping. +A read is counted if it overlaps (1nt or more) one and only one gene. Both ends of the paired-end read are checked for overlaps. +The counts coincide with those produced by htseq-count with default parameters. +This option requires annotations (GTF or GFF with --sjdbGTFfile option) used at the genome generation step, or at the mapping step. +STAR outputs read counts per gene into ReadsPerGene.out.tab file with 4 columns which correspond to different strandedness options: +\begin{itemize}[leftmargin=1in] +\item[column 1:] gene ID +\item[column 2:] counts for unstranded RNA-seq +\item[column 3:] counts for the 1st read strand aligned with RNA (htseq-count option -s yes) +\item[column 4:] counts for the 2nd read strand aligned with RNA (htseq-count option -s reverse) +\end{itemize} +Select the output according to the strandedness of your data. +Note, that if you have stranded data and choose one of the columns 3 or 4, the other column (4 or 3) will give you the count of antisense reads. +With \opt{quantMode} \optv{TranscriptomeSAM} \optv{GeneCounts}, and get both the \ofilen{Aligned.toTranscriptome.out.bam} and \ofilen{ReadsPerGene.out.tab} outputs. + + +\section{2-pass mapping.} + +For the most sensitive novel junction discovery,I would recommend running STAR in the 2-pass mode. It does not increase the number of detected novel junctions, but allows to detect more splices reads mapping to novel junctions. The basic idea is to run 1st pass of STAR mapping with the usual parameters, then collect the junctions detected in the first pass, and use them as "annotated" junctions for the 2nd pass mapping. + +\subsection{Multi-sample 2-pass mapping.} +For a study with multiple samples, it is recommended to collect 1st pass junctions from all samples. +\begin{enumerate} +\item Run 1st mapping pass for all samples with "usual" parameters. Using annotations is recommended either a the genome generation step, or mapping step. +\item Run 2nd mapping pass for all samples , listing SJ.out.tab files from all samples in \opt{sjdbFileChrStartEnd} \optvr{/path/to/sj1.tab /path/to/sj2.tab ...}. +\end{enumerate} + +\subsection{Per-sample 2-pass mapping.} + +Annotated junctions will be included in both the 1st and 2nd passes. +To run STAR 2-pass mapping for each sample separately, use \opt{twopassMode} \optv{Basic} option. STAR will perform the 1st pass mapping, then it will automatically extract junctions, insert them into the genome index, and, finally, re-map all reads in the 2nd mapping pass. This option can be used with annotations, which can be included either at the run-time (see \#1), or at the genome generation step. + +\opt{twopass1readsN} defines the number of reads to be mapped in the 1st pass. The default and most sensitive approach is to set it to -1 (or make it bigger than the number of reads in the sample) - in which case all reads in the input read file(s) are used in the 1st pass. While it can reduce mapping time by $\sim40\%$, it is not recommended to use a small portion of the reads in the 1st step, since it will significantly reduce sensitivity for the low expressed novel junctions. The idea to use a portion of the reads in the 1st pass was inspired by Kim, Langmead and Salzberg in Nature Methods 12, 357–360 (2015). + +\subsection{2-pass mapping with re-generated genome.} +This is the original 2-pass method which involves genome re-generation step in-between 1st and 2nd passes. Since 2.4.1a, it is recommended to use the on the fly 2-pass options as described above. +\begin{enumerate} +\item Run 1st pass STAR for all samples with "usual" parameters. Genome indices generated with annotations are recommended. +\item Collect all junctions detected in the 1st pass by merging \ofilen{SJ.out.tab} files from all runs. Filter the junctions by removing likelie false positives, e.g. junctions in the mitochondrion genome, or non-canonical junctions supported by a few reads. If you are using annotations, only novel junctions need to be considered here, since annotated junctions will be re-used in the 2nd pass anyway. +\item Use the filtered list of junctions from the 1st pass with \opt{sjdbFileChrStartEnd} option, together with annotations (via \opt{sjdbGTFfile} option) to generate the new genome indices for the 2nd pass mapping. This needs to be done only once for all samples. +\item Run the 2nd pass mapping for all samples with the new genome index. +\end{enumerate} + + +\section{Description of all options.}\label{Description_of_all_options} +For each STAR version, the most up-to-date information about all STAR parameters can be found in the \code{parametersDefault} file in the STAR source directory. The parameters in the \code{parametersDefault}, as well as in the descriptions below, are grouped by function: +\begin{itemize} +\item[] Special attention has to be paid to parameters that start with \optn{out*}, as they control the STAR output. +\item[] In particular, \optn{outFilter*} parameters control the filtering of output alignments which[] you might want to tweak to fit your needs. +\item[] Output of “chimeric” alignments is controlled by \optn{chim*} parameters. +\item[] Genome generation is controlled by \optn{genome*} parameters. +\item[] Annotations (splice junction database) are controlled by \optn{sjdb*} options at the genome generation step. +\item[] Tweaking \optn{score*}, \optn{align*}, \optn{seed*}, \optn{win*} parameters, which requires understanding of the STAR alignment algorithm, is recommended only for advanced users. +\end{itemize} + +Below, allowed parameter values are typed in magenta, and default values - in blue. + + + + +\newcommand{\pright}[1]{\begin{flushright} \begin{minipage}{0.8\textwidth}\raggedright #1 \end{minipage} \end{flushright}} + +\newcommand{\optSection}[1]{\subsection{#1}} +\newcommand{\optName}[1]{\hypertarget{#1}{\textcolor{violet}{\texttt{--#1}}}} +\newcommand{\optValue}[1]{\pright{\textcolor[rgb]{0,0.5,0}{default: \texttt{#1}}}} +\newcommand{\optLine}[1]{\pright{#1}} +\newenvironment{optTable}{}{} +\newenvironment{optOptTable}{\begin{flushright} \begin{minipage}{0.75\textwidth}\raggedright }{\end{minipage}\end{flushright}} + +\newcommand{\optOpt}[1]{\textcolor{blue}{\texttt{#1}}\par} +\newcommand{\optOptLine}[1]{{\hangpara{0.3in}{0}#1\par}} + +\input{parametersDefault.tex} + + +\end{document} diff --git a/genomeScanFastaFiles.cpp b/genomeScanFastaFiles.cpp index 56b6c4b..94f0fd8 100644 --- a/genomeScanFastaFiles.cpp +++ b/genomeScanFastaFiles.cpp @@ -14,18 +14,27 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta ifstream fileIn; for (uint ii=0;iigenomeFastaFiles.size();ii++) {//all the input files fileIn.open(P->genomeFastaFiles.at(ii).c_str()); - if ( !fileIn.good() ) {// + if ( !fileIn.good() ) + {// ostringstream errOut; errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - fileIn.peek(); - if ( !fileIn.good() ) {// + char cc=fileIn.peek(); + if ( !fileIn.good() ) + {// ostringstream errOut; errOut << "EXITING because of INPUT ERROR: could not read from genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - while(!fileIn.eof()) {//read each file until eof + }; + if (cc!='>') + { + ostringstream errOut; + errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <genomeFastaFiles.at(ii) << "is not fasta:"; + errOut << " the first character is " < .\n"; + errOut << " Solution: check formatting of the fasta file. Make sure the file is uncompressed (unzipped).\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; while(!fileIn.eof()) {//read each file until eof string lineIn (4096,'.'); getline(fileIn,lineIn); if (lineIn[0]=='>') {//new chromosome diff --git a/loadGTF.cpp b/loadGTF.cpp index 2a38d9d..5428205 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -69,8 +69,9 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file { ostringstream errOut; errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << P->sjdbGTFfile <<"\n"; - errOut << "Solution: check the formatting of the GTF file, it must contain some lines woth ""exon"" in the 3rd column. "; - errOut << "If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; + errOut << "Solution: check the formatting of the GTF file, it must contain some lines woth ""exon"" in the 3rd column.\n"; + errOut << " Make sure the GTF file is unzipped.\n"; + errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; diff --git a/parametersDefault b/parametersDefault index 6cf6a08..edd51cd 100644 --- a/parametersDefault +++ b/parametersDefault @@ -29,6 +29,8 @@ runDirPerm User_RWX User_RWX ... user-read/write/execute All_RWX ... all-read/write/execute (same as chmod 777) +runRNGseed 777 + int: random number generator seed. ### Genome Parameters @@ -176,6 +178,10 @@ outReadsUnmapped None outQSconversionAdd 0 int: add this number to the quality score (e.g. to convert from Illumina to Sanger, use -31) +outMultimapperOrder Old_2.4 + string: order of multimapping alignments in the output files + Old_2.4 ... quasi-random order used before 2.5.0 + Random ... random order of alignments for each multi-mapper. Read mates (pairs) are always adjacent, all alignment for each read stay together. This option will become default in the future releases. ### Output: SAM and BAM outSAMtype SAM @@ -206,6 +212,9 @@ outSAMattributes Standard All ... NH HI AS nM NM MD jM jI None ... no attributes +outSAMattrIHstart 1 + int>=0: start value for the IH attribute. 0 may be required by some downstream software, such as Cufflinks or StringTie. + outSAMunmapped None string: output of unmapped reads in the SAM format None ... no output @@ -254,6 +263,10 @@ outSAMfilter None string(s): filter the output into main SAM/BAM files KeepOnlyAddedReferences ... only keep the reads for which all alignments are to the extra reference sequences added with --genomeFastaFiles at the mapping stage. +outSAMmultNmax -1 + int: max number of multiple alignments for a read that will be output to the SAM/BAM files. + -1 ... all alignments (up to --outFilterMultimapNmax) will be output + outBAMcompression 1 int: -1 to 10 BAM compression level, -1=default compression (6?), 0=no compression, 10=maximum compression diff --git a/parametersDefault.xxd b/parametersDefault.xxd index cb5b8c6..6039c11 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -118,2111 +118,2188 @@ unsigned char parametersDefault[] = { 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x28, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, 0x68, 0x6d, 0x6f, 0x64, 0x20, 0x37, - 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, - 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x21, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, - 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, - 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x52, 0x4e, 0x47, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x21, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, + 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, + 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, + 0x64, 0x41, 0x6e, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, - 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, + 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, + 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, + 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, + 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, + 0x68, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, - 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, - 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, - 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, - 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, - 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, - 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, - 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, - 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, - 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, - 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, - 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, - 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, - 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x0a, - 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, - 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, - 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, - 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, - 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, - 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, - 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, - 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, + 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, + 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, + 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, + 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, + 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, + 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, + 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, + 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, + 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, + 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, + 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, + 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, + 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, + 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, + 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, - 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, - 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, - 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, - 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, - 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, - 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, - 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, - 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, - 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, - 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, - 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, - 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, - 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, - 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, - 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, - 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, - 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, + 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, + 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, + 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, + 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, + 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, + 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, + 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, + 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, + 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, + 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, + 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, + 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, + 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, + 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, + 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, + 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, + 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, - 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, - 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, - 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, - 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, + 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, + 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, + 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, + 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, + 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, - 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, - 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, - 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, - 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, - 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, + 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, + 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, + 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, - 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, - 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, - 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, - 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, - 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, - 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, - 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, - 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, + 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, + 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, + 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, - 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, - 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, - 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, - 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, - 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, - 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, - 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, + 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, + 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, + 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, + 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, + 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, + 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, + 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, - 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, - 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, - 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, - 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, - 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, - 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, - 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, - 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, - 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, - 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x28, 0x62, 0x65, 0x73, 0x69, 0x64, - 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, - 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, - 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, - 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, - 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, + 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, + 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, + 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, + 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, + 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, + 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, + 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, + 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, + 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x28, 0x62, 0x65, + 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, - 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, - 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, + 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, + 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, + 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, + 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, + 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, + 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, + 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, - 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, - 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, - 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, + 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, - 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, + 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, - 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, - 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, - 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, - 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, + 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, - 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, - 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, + 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, + 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, + 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, + 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, + 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, + 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, + 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, + 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, + 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, - 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, - 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, - 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, - 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, - 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, - 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, + 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, + 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, + 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, + 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, + 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, + 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, + 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, + 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, + 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, + 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, - 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, - 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, - 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, - 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, - 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, - 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, - 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, - 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, - 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, - 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, - 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, - 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, + 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, - 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, - 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, - 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, - 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, - 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, - 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, - 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, - 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, + 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, + 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, + 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, - 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, - 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, - 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, - 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, + 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, + 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, + 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, + 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, + 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, + 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, + 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, + 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, + 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, - 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, - 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, + 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, + 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, + 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, + 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, + 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, - 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, + 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, + 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, + 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, - 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, - 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, - 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, + 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, - 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, - 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, - 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, - 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, - 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, + 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, - 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, - 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, - 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, - 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, - 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, - 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, - 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, - 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, + 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, + 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, + 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, + 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, + 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, + 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, + 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, - 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, - 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, - 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, - 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, - 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, - 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, + 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, + 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, + 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, + 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, + 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, + 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, + 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, + 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, + 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, - 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, - 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, - 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, - 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, - 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, - 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, - 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, - 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, - 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, - 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, - 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, - 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, - 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, - 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, - 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, - 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, - 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, + 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, + 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, + 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, - 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, - 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, - 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, + 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, + 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, + 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, + 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, + 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, - 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, + 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, + 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, - 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, - 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, + 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, + 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, + 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, + 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, - 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, + 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, + 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, + 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 26700; +unsigned int parametersDefault_len = 27615; From fbf5b50a4a37edc8cd69589a28c15194553b1e92 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 6 Nov 2015 15:58:23 -0500 Subject: [PATCH 155/536] Updated RELEASEnotes --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 045fb16..02ad3a4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.0a_alpha" +#define STAR_VERSION "STAR_2.5.0a" From f7976ade85ac7f64b8557126efc7c65b352b8947 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 7 Nov 2015 12:09:56 -0500 Subject: [PATCH 156/536] Added STARlongForMacStatic compilation target to Makefile --- Makefile | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 52e67ad..eca66cd 100644 --- a/Makefile +++ b/Makefile @@ -140,24 +140,9 @@ STARforMacStatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_Mac_static) $(LDFLAGS) STARforMacStatic : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -######################################################### all trargets below are not supported and not recommended! - -STARforMac : CXXFLAGS := -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_main) $(CXXFLAGS) -STARforMac : parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CXXFLAGS) $(LDFLAGS_Mac) $(OBJECTS) - - -STARlongForMacStatic : CXXFLAGS := -D'COMPILE_FOR_LONG_READS' -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_main) $(CXXFLAGS) -STARlongForMacStatic : parametersDefault.xxd $(OBJECTS) - $(CXX) -o STARlong $(CXXFLAGS) $(LDFLAGS_Mac_static) $(OBJECTS) - -# -STARforMacGDB : CXXFLAGS := -D'COMPILE_FOR_MAC' -I ./Mac_Include/ $(CXXFLAGS_gdb) $(CXXFLAGS) -STARforMacGDB : parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CXXFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) - -localChains : CXXFLAGS := -D'OUTPUT_localChains' $(CXXFLAGS_main) $(CXXFLAGS) -localChains : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) +STARlongForMacStatic : CXXFLAGS := -D'COMPILE_FOR_LONG_READS' $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_MAC' $(CXXFLAGS) +STARlongForMacStatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_Mac_static) $(LDFLAGS) +STARlongForMacStatic : Depend.list parametersDefault.xxd $(OBJECTS) + $(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) From a7e01e4575b3e9ebfbb0847b030f6cfe590fca48 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 10 Nov 2015 17:26:13 -0500 Subject: [PATCH 157/536] Fixed a seg-fault that occurred when junctions where inserted after inserting reference sequences. --- Genome.cpp | 20 +++++++++++++------- Genome.h | 4 ++-- Genome_insertSequences.cpp | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index c50a688..16d18e9 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -299,13 +299,17 @@ void Genome::genomeLoad(){//allocate and load Genome if (P->sjdbInsert.pass1 || P->sjdbInsert.pass2) {//reserve extra memory for insertion at the 1st and/or 2nd step - nGenomePass1=P->nGenome+P->genomeInsertL; - nSApass1=P->nSA+2*P->genomeInsertL; + nGenomeInsert=P->nGenome+P->genomeInsertL; + nSAinsert=P->nSA+2*P->genomeInsertL; + + nGenomePass1=nGenomeInsert; + nSApass1=nSAinsert; if (P->sjdbInsert.pass1) { nGenomePass1+=P->limitSjdbInsertNsj*P->sjdbLength; nSApass1+=2*P->limitSjdbInsertNsj*P->sjdbLength; }; + nGenomePass2=nGenomePass1; nSApass2=nSApass1; if (P->sjdbInsert.pass2) @@ -322,7 +326,10 @@ void Genome::genomeLoad(){//allocate and load Genome SApass1.defineBits(P->GstrandBit+1,nSApass1); SApass1.pointArray(SApass2.charArray+SApass2.lengthByte-SApass1.lengthByte); - SA.pointArray(SApass1.charArray+SApass1.lengthByte-SA.lengthByte); + SAinsert.defineBits(P->GstrandBit+1,nSAinsert); + SAinsert.pointArray(SApass1.charArray+SApass1.lengthByte-SAinsert.lengthByte); + + SA.pointArray(SAinsert.charArray+SAinsert.lengthByte-SA.lengthByte); } else {//no sjdb insertions if (P->genomeInsertL==0) @@ -332,11 +339,10 @@ void Genome::genomeLoad(){//allocate and load Genome } else { G1=new char[P->nGenome+L+L+P->genomeInsertL]; - SApass1.defineBits(P->GstrandBit+1,P->nSA+2*P->genomeInsertL);//TODO: re-define GstrandBit if necessary - SApass1.allocateArray(); - SA.pointArray(SApass1.charArray+SApass1.lengthByte-SA.lengthByte); + SAinsert.defineBits(P->GstrandBit+1,P->nSA+2*P->genomeInsertL);//TODO: re-define GstrandBit if necessary + SAinsert.allocateArray(); + SA.pointArray(SAinsert.charArray+SAinsert.lengthByte-SA.lengthByte); }; - }; SAi.allocateArray(); P->inOut->logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<genomeFastaFiles.at(0)!="-") uint64 nGenomeOld=P->nGenome; P->nGenome=P->chrStart.back()+sjdblen; //insert new sequences into the SA - insertSeqSA(SA, SApass1, SAi, G, G+P->chrStart.back()-P->genomeInsertL, nGenomeOld-sjdblen, P->genomeInsertL, sjdblen, P); + insertSeqSA(SA, SAinsert, SAi, G, G+P->chrStart.back()-P->genomeInsertL, nGenomeOld-sjdblen, P->genomeInsertL, sjdblen, P); //insert new sequences into the SAi //update P From f9c1f375b6eff6eab87314e5de4bcdf4d723415e Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 11 Nov 2015 15:39:21 -0500 Subject: [PATCH 158/536] Fixed a seg-fault that occurred when non-default value of --genomeChrBinNbits was used. --- Genome.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Genome.cpp b/Genome.cpp index 16d18e9..8d9c3fa 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -136,6 +136,7 @@ void Genome::genomeLoad(){//allocate and load Genome //record required genome parameters in P P->genomeSAindexNbases=P1->genomeSAindexNbases; P->genomeChrBinNbits=P1->genomeChrBinNbits; + P->genomeChrBinNbases=1LLU<genomeChrBinNbits; P->genomeSAsparseD=P1->genomeSAsparseD; if (P->parArray.at(P->sjdbOverhang_par)->inputLevel==0 && P1->sjdbOverhang>0) {//if --sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use sjdbOverhang from the genome generation step From 8fc8c4cf96566578c55da72342b78c1836853136 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 13 Nov 2015 12:07:17 -0500 Subject: [PATCH 159/536] Fixed a minor bug in STARlong extension at the ends of the read. --- ReadAlign_stitchWindowSeeds.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 58a5845..b4b2ca8 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -50,7 +50,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* score2=WA[iW][iS1][WA_Length]; if ( WA[iW][iS1][WA_rStart]>0 \ && extendAlign(R, Q, G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[trA1.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend + P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; if (score2 > scoreSeedBest[iS1] ) { @@ -74,7 +74,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread-1 \ && extendAlign(R, Q, G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) {//if could extend + P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) + {//extend to the right scoreSeedBest[iS1]+=trA1.maxScore; }; if (scoreSeedBest[iS1]>scoreBest) {//record new best transcript @@ -155,7 +156,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread \ && extendAlign(R, Q, G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[trA1.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend + P->alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend trA.add(&trA1); trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon }; From f07f132fe6159170ec618ce600fda736a403ad1f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 17 Nov 2015 17:17:33 -0500 Subject: [PATCH 160/536] Fixed a minor bug that caused rare seg-faults. --- ReadAlign_stitchPieces.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index b78523b..25fa8c4 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -288,7 +288,7 @@ std::time(&timeStart); trA.maxScore=0; trAll[iW1]=trArrayPointer+trNtotal; - if (trNtotal+P->alignTranscriptsPerWindowNmax > P->alignTranscriptsPerReadNmax) { + if (trNtotal+P->alignTranscriptsPerWindowNmax >= P->alignTranscriptsPerReadNmax) { P->inOut->logMain << "WARNING: not enough space allocated for transcript. Did not process all windows for read "<< readName+1 <inOut->logMain <<" SOLUTION: increase alignTranscriptsPerReadNmax and re-run\n" << flush; break; From 3235fc4c4c632ce885caddd69978eee166c9748c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 18 Nov 2015 16:32:26 -0500 Subject: [PATCH 161/536] Fixed a bug in --outSAMfilter KeepOnlyAddedReferences. --- Genome.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Genome.cpp b/Genome.cpp index 8d9c3fa..3e76e21 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -292,7 +292,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (P->genomeFastaFiles.at(0)!="-") {//will insert sequences in the genome, now estimate the extra size uint oldlen=P->chrStart.back();//record the old length - P->genomeInsertChrIndFirst=P->nChrReal+1; + P->genomeInsertChrIndFirst=P->nChrReal; P->genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; }; From 3e041a78e0003ce3946eb5b746462744bf066404 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 20 Nov 2015 15:59:25 -0500 Subject: [PATCH 162/536] Added counting of chimeric reads into Log.final.out . --- ReadAlign_outputAlignments.cpp | 11 +++++++++-- Stats.cpp | 10 ++++++++-- Stats.h | 2 ++ VERSION | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 141d809..95657e2 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -10,8 +10,15 @@ void ReadAlign::outputAlignments() { bool mateMapped[2]={false,false}; if (P->outFilterBySJoutStage<=1) {//no chimeric output for stage=2 - if ( chimericDetection() && P->chimOutType=="WithinBAM" ) return; - //if chimeric alignment was recorded in main BAM files, it contains the representative portion, so non-chimeric aligmnent is not output + if ( chimericDetection() ) + { + statsRA.chimericAll++; + if ( P->chimOutType=="WithinBAM" ) + { + //if chimeric alignment was recorded in main BAM files, it contains the representative portion, so non-chimeric aligmnent is not output + return; + }; + }; }; if ( nW==0 ) {//no good windows diff --git a/Stats.cpp b/Stats.cpp index 61bc30e..1b22cbf 100644 --- a/Stats.cpp +++ b/Stats.cpp @@ -6,6 +6,7 @@ void Stats::resetN() {//zero all counters mappedMismatchesN = 0; mappedInsN = 0; mappedDelN = 0; mappedInsL = 0; mappedDelL = 0; mappedBases = 0; mappedPortion = 0; mappedReadsU = 0; mappedReadsM = 0; unmappedOther = 0; unmappedShort = 0; unmappedMismatch = 0; unmappedMulti = 0; unmappedAll = 0; + chimericAll = 0; splicesNsjdb=0; for (uint ii=0; ii0 ? double(unmappedMismatch)/double(readN)*100 : 0) <<'%' <<"\n" \ <0 ? double(unmappedShort)/double(readN)*100 : 0) <<'%' <<"\n" \ - <0 ? double(unmappedOther)/double(readN)*100 :0) <<'%'<<"\n" <0 ? double(unmappedOther)/double(readN)*100 :0) <<'%'<<"\n" \ + <0 ? double(chimericAll)/double(readN)*100 :0) <<'%'<<"\n" < Date: Mon, 30 Nov 2015 15:27:28 -0500 Subject: [PATCH 163/536] Fixed a problem with non-primary alignment flags with --outSAMmultNmax option. --- ReadAlign_multMapSelect.cpp | 81 ++++++++++++++++++++----------------- VERSION | 2 +- 2 files changed, 46 insertions(+), 37 deletions(-) diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index 8267306..5b6230d 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -73,46 +73,55 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts // delete [] s; // }; - if (P->outMultimapperOrder.random && nTr>1) - {//randomize order of the alignments + if (nTr==1) + {//unique mappers + trMult[0]->primaryFlag=true; + } else + {//multimappers int nbest=0; - for (uint itr=0; itrmaxScore == maxScore ) - { - swap(trMult[itr],trMult[nbest]); - ++nbest; + if (P->outMultimapperOrder.random || P->outSAMmultNmax != (uint) -1 ) + {//bring the best alignment to the top of the list. TODO sort alignments by the score? + for (uint itr=0; itrmaxScore == maxScore ) + { + swap(trMult[itr],trMult[nbest]); + ++nbest; + }; }; }; - //shuffle separately the best aligns, and the rest - for (int itr=nbest-1; itr>=1; itr--) - {//Fisher-Yates-Durstenfeld-Knuth shuffle - int rand1=int (rngUniformReal0to1(rngMultOrder)*itr+0.5); - swap(trMult[itr],trMult[rand1]); - }; - for (int itr=nTr-nbest-1; itr>=1; itr--) - {//Fisher-Yates-Durstenfeld-Knuth shuffle - int rand1=int (rngUniformReal0to1(rngMultOrder)*itr+0.5); - swap(trMult[nbest+itr],trMult[nbest+rand1]); - }; - }; - - if ( P->outSAMprimaryFlag=="AllBestScore" ) - { - for (uint itr=0; itrmaxScore == maxScore ) trMult[itr]->primaryFlag=true; - }; - } else if (P->outMultimapperOrder.random) - { - for (uint itr=0; itrmaxScore == maxScore ) trMult[itr]->primaryFlag=true; - break; + if (P->outMultimapperOrder.random) + {//shuffle separately the best aligns, and the rest + for (int itr=nbest-1; itr>=1; itr--) + {//Fisher-Yates-Durstenfeld-Knuth shuffle + int rand1=int (rngUniformReal0to1(rngMultOrder)*itr+0.5); + swap(trMult[itr],trMult[rand1]); + }; + for (int itr=nTr-nbest-1; itr>=1; itr--) + {//Fisher-Yates-Durstenfeld-Knuth shuffle + int rand1=int (rngUniformReal0to1(rngMultOrder)*itr+0.5); + swap(trMult[nbest+itr],trMult[nbest+rand1]); + }; + }; + + if ( P->outSAMprimaryFlag=="AllBestScore" ) + { + for (uint itr=0; itrmaxScore == maxScore ) trMult[itr]->primaryFlag=true; + }; + } else if (P->outMultimapperOrder.random || P->outSAMmultNmax != (uint) -1) + { + trMult[0]->primaryFlag=true;//mark as primary the first one in the random ordered list: best scoring aligns are already in front of the list + // for (uint itr=0; itrmaxScore == maxScore ) trMult[itr]->primaryFlag=true; + // break; + // }; + } else + {//old way + trBest->primaryFlag=true; }; - } else - {//old way - trBest->primaryFlag=true; }; }; diff --git a/VERSION b/VERSION index a8cbfe0..2513622 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.0a_modified" +#define STAR_VERSION "STAR_2.5.0b" From 1a8150d5ca93892b227db4e4dfc47904ad6a283e Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 7 Oct 2015 15:20:44 -0400 Subject: [PATCH 164/536] Implementing VCF reading --- BAMbinSortByCoordinate.cpp | 2 +- BAMoutput.cpp | 2 +- Makefile | 1 + Parameters.cpp | 11 + Parameters.h | 7 + ReadAlign_mapOneRead.cpp | 2 +- ReadAlign_quantTranscriptome.cpp | 2 +- STAR.cpp | 7 +- SequenceFuns.cpp | 24 + SequenceFuns.h | 3 + Transcriptome_geneCountsAddAlign.cpp | 2 +- Transcriptome_quantAlign.cpp | 2 +- genomeGenerate.cpp | 2 +- insertSeqSA.cpp | 2 +- loadGTF.cpp | 8 +- parametersDefault | 4 + parametersDefault.xxd | 2305 -------------------------- serviceFuns.cpp | 80 +- sjdbBuildIndex.cpp | 2 +- sjdbPrepare.cpp | 2 +- 20 files changed, 81 insertions(+), 2389 deletions(-) delete mode 100644 parametersDefault.xxd diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index ec35650..ed1aca0 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -1,6 +1,6 @@ #include "BAMbinSortByCoordinate.h" #include "ErrorWarning.h" -#include "serviceFuns.cpp" +#include "serviceFuns.h" #include "BAMfunctions.h" void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters *P) { diff --git a/BAMoutput.cpp b/BAMoutput.cpp index c5244a9..f168c2b 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -2,7 +2,7 @@ #include #include "GlobalVariables.h" #include -#include "serviceFuns.cpp" +#include "serviceFuns.h" #include "ThreadControl.h" BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate bam array diff --git a/Makefile b/Makefile index eca66cd..e463240 100644 --- a/Makefile +++ b/Makefile @@ -48,6 +48,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o \ + Variation.o serviceFuns.o \ GlobalVariables.cpp SOURCES := $(wildcard *.cpp) $(wildcard *.c) diff --git a/Parameters.cpp b/Parameters.cpp index 25a7ae7..630720c 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -206,6 +206,9 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &sjdbScore)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &sjdbInsert.save)); + //variation + parArray.push_back(new ParameterInfoScalar (-1, -1, "varVCFfile", &var.vcfFile)); + //quant parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quant.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quant.trSAM.bamCompression)); @@ -1117,6 +1120,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //genome parameters genomeChrBinNbases=1LLU<logMain << "Finished loading and checking parameters\n" <logMain << ii+1 <<"\t"<< chrName[ii] <<"\t"<var.yes) + { + mainVar=new Variation(P); + }; /////////////////////////////////////////////////////////////////////////////////////////////////START if (P->runThreadN>1) { g_threadChunks.threadArray=new pthread_t[P->runThreadN]; diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index 7e7d8a5..c78dad3 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -97,6 +97,30 @@ void convertNucleotidesToNumbers(const char* R0, char* R1, uint Lread) {//transf }; }; +char convertNt01234(const char R0) {//transform sequence from ACGT into 0-1-2-3 code + switch(R0) + { + case('a'): + case('A'): + return 0; + break; + case('c'): + case('C'): + return 1; + break; + case('g'): + case('G'): + return 2; + break; + case('t'): + case('T'): + return 3; + break; + default: + return 4; + }; +}; + uint chrFind(uint Start, uint i2, uint* chrStart) {// find chromosome from global locus uint i1=0, i3; while (i1+11) { diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 4667ca9..988cf51 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -1,6 +1,6 @@ #include "Transcriptome.h" #include "ReadAlign.h" -#include "serviceFuns.cpp" +#include "serviceFuns.h" int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, uint32 *exLenCum1, uint16 exN1, Transcript &aT) { diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index d12f5fc..ad87e87 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -14,7 +14,7 @@ #include "genomeScanFastaFiles.h" #include "genomeSAindex.h" -#include "serviceFuns.cpp" +#include "serviceFuns.h" #include "streamFuns.h" char* globalG; diff --git a/insertSeqSA.cpp b/insertSeqSA.cpp index e8732d4..9262b07 100644 --- a/insertSeqSA.cpp +++ b/insertSeqSA.cpp @@ -6,7 +6,7 @@ #include "ErrorWarning.h" #include "SuffixArrayFuns.h" #include "SequenceFuns.h" -#include "serviceFuns.cpp" +#include "serviceFuns.h" #include "streamFuns.h" #include "binarySearch2.h" #include "funCompareUintAndSuffixes.h" diff --git a/loadGTF.cpp b/loadGTF.cpp index 5428205..5e23fc1 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -1,7 +1,7 @@ #include "IncludeDefine.h" #include "Parameters.h" #include "ErrorWarning.h" -#include "serviceFuns.cpp" +#include "serviceFuns.h" #include "SjdbClass.h" #include "streamFuns.h" #include "TimeFunctions.h" @@ -47,12 +47,6 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - if (P->chrNameIndex.size()==0) - { - for (uint ii=0;iinChrReal;ii++) { - P->chrNameIndex[P->chrName[ii]]=ii; - }; - }; std::map transcriptIDnumber, geneIDnumber; uint exonN=0; diff --git a/parametersDefault b/parametersDefault index edd51cd..c4b518c 100644 --- a/parametersDefault +++ b/parametersDefault @@ -91,6 +91,10 @@ sjdbInsertSave Basic Basic ... only small junction / transcript files All ... all files including big Genome, SA and SAindex - this will create a complete genome directory +### Variation parameters +varVCFfile - + string: path to the VCF file that contains variation data. + ### Input Files inputBAMfile - string: path to BAM input file, to be used with --runMode inputAlignmentsFromBAM diff --git a/parametersDefault.xxd b/parametersDefault.xxd deleted file mode 100644 index 6039c11..0000000 --- a/parametersDefault.xxd +++ /dev/null @@ -1,2305 +0,0 @@ -unsigned char parametersDefault[] = { - 0x23, 0x23, 0x23, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x54, 0x41, 0x52, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x32, 0x30, 0x32, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x49, 0x44, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x21, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x32, 0x30, 0x31, 0x30, 0x31, 0x20, - 0x30, 0x32, 0x30, 0x32, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x64, - 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x21, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, - 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x2d, 0x22, 0x3a, 0x20, 0x6e, 0x6f, - 0x6e, 0x65, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x0a, 0x73, 0x79, 0x73, - 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, - 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x2c, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x72, 0x61, 0x62, 0x6c, 0x79, 0x20, 0x62, 0x61, 0x73, - 0x68, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2f, 0x62, 0x69, 0x6e, - 0x2f, 0x62, 0x61, 0x73, 0x68, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x73, 0x68, - 0x65, 0x6c, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x61, 0x69, - 0x6c, 0x20, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x55, 0x62, - 0x75, 0x6e, 0x74, 0x75, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, - 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20, - 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x79, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, - 0x75, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, - 0x6e, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x42, 0x41, - 0x4d, 0x2e, 0x20, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x2d, 0x2d, - 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x75, - 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x53, 0x54, 0x41, 0x52, 0x0a, 0x0a, - 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, - 0x5f, 0x52, 0x57, 0x58, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, - 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, - 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x5f, - 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x28, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, 0x68, 0x6d, 0x6f, 0x64, 0x20, 0x37, - 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x52, 0x4e, 0x47, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x21, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, - 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, - 0x64, 0x41, 0x6e, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, - 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, - 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, - 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, - 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, - 0x68, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, - 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, - 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, - 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, - 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, - 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, - 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, - 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, - 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, - 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, - 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, - 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, - 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, - 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, - 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, - 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, - 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, - 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, - 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, - 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, - 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, - 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, - 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, - 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, - 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, - 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, - 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, - 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, - 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, - 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, - 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, - 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, - 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, - 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, - 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, - 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, - 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, - 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, - 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, - 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, - 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, - 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, - 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, - 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, - 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, - 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, - 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, - 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, - 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, - 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, - 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, - 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, - 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, - 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, - 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, - 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, - 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, - 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, - 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, - 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, - 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, - 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, - 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, - 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, - 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, - 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, - 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x28, 0x62, 0x65, - 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, - 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, - 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, - 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, - 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, - 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, - 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, - 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, - 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, - 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, - 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, - 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, - 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, - 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, - 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, - 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, - 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, - 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, - 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, - 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, - 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, - 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, - 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, - 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, - 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, - 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, - 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, - 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, - 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, - 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, - 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, - 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, - 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, - 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, - 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, - 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, - 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, - 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, - 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, - 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, - 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, - 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, - 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, - 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, - 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, - 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, - 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, - 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, - 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, - 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, - 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, - 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, - 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, - 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, - 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, - 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, - 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, - 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, - 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, - 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, - 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, - 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, - 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, - 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, - 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, - 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, - 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, - 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, - 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, - 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, - 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, - 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, - 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, - 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, - 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, - 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, - 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, - 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, - 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, - 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, - 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, - 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x0a, 0x0a -}; -unsigned int parametersDefault_len = 27615; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 6e83e89..3059137 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -1,7 +1,4 @@ -#ifndef DEF_serviceFuns -#define DEF_serviceFuns - -#include "IncludeDefine.h" +#include "serviceFuns.h" template T sum1D(T* a, uint N) { @@ -10,7 +7,8 @@ template return s; }; -inline int funCompareUint1 (const void *a, const void *b) { +int funCompareUint1 (const void *a, const void *b) +{ uint va= *((uint*) a); uint vb= *((uint*) b); @@ -23,7 +21,8 @@ inline int funCompareUint1 (const void *a, const void *b) { }; }; -inline int funCompareUint2 (const void *a, const void *b) { +int funCompareUint2 (const void *a, const void *b) +{ uint va= *((uint*) a); uint vb= *((uint*) b); uint va1=*(((uint*) a)+1); @@ -40,68 +39,17 @@ inline int funCompareUint2 (const void *a, const void *b) { }; }; -template -inline int funCompareArrays (const void *a, const void *b) { - arrayType* va= (uint*) a; - arrayType* vb= (uint*) b; - - for (int ii=0;iivb[ii]) { - return 1; - } else if (va[ii] -inline uint32 binarySearch1(argType x, argType *X, uint32 N) { - //binary search in the sorted list - //check the boundaries first - if (x>X[N-1] || xi1+1) {//binary search - i3=(i1+i2)/2; - if (X[i3]>x) { - i2=i3; - } else { - i1=i3; - }; - }; - - while (i1 -inline int32 binarySearch1a(argType x, argType *X, int32 N) { - //binary search in the sorted list - //check the boundaries first - - if (x>X[N-1]) { - return N-1; - } else if (xi1+1) {//binary search - i3=(i1+i2)/2; - if (X[i3]>x) { - i2=i3; - } else { - i1=i3; - }; +int splitString(const std::string &s, char delim, std::vector &elems) { + std::stringstream ss(s); + std::string item; + int maxL=0; + elems.empty(); + while (std::getline(ss, item, delim)) { + maxL=max(maxL, (int)item.size()); + elems.push_back(item); }; - - while (i1 Date: Tue, 13 Oct 2015 15:27:19 -0400 Subject: [PATCH 165/536] Finished coding SNP-awareness. Need to check validity of mapping. --- Genome.h | 3 +++ IncludeDefine.h | 2 ++ Makefile | 2 +- Parameters.cpp | 20 ++++++++++++++++++-- Parameters.h | 3 ++- ReadAlign.cpp | 1 + ReadAlign_alignBAM.cpp | 12 ++++++++++++ STAR.cpp | 16 ++-------------- Transcript.h | 6 ++++++ serviceFuns.cpp | 2 +- stitchWindowAligns.cpp | 7 ++++++- 11 files changed, 54 insertions(+), 20 deletions(-) diff --git a/Genome.h b/Genome.h index 08f178d..b0eed3e 100644 --- a/Genome.h +++ b/Genome.h @@ -5,12 +5,15 @@ #include "Parameters.h" #include "PackedArray.h" #include "SharedMemory.h" +#include "Variation.h" class Genome { public: char *G, *sigG; PackedArray SA,SAinsert,SApass1,SApass2; PackedArray SAi; + Variation *Var; + uint nGenomeInsert, nGenomePass1, nGenomePass2, nSAinsert, nSApass1, nSApass2; diff --git a/IncludeDefine.h b/IncludeDefine.h index 6ce3e21..2777f50 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -79,6 +79,8 @@ typedef uint8_t uint8; #define ATTR_jI 8 #define ATTR_XS 9 #define ATTR_RG 10 +#define ATTR_vL 11 +#define ATTR_vT 12 //BAM definitions diff --git a/Makefile b/Makefile index e463240..a1f620e 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS) ########################################################################################################## OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ - Transcript.o Transcript_alignScore.o \ + Transcript.o Transcript_alignScore.o Transcript_variationAdjust.o \ ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ ReadAlignChunk.o ReadAlignChunk_processChunks.o ReadAlignChunk_mapChunk.o \ OutSJ.o outputSJ.o blocksOverlap.o ThreadControl.o sysRemoveDir.o \ diff --git a/Parameters.cpp b/Parameters.cpp index 630720c..470fb01 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -783,11 +783,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.jI=false; outSAMattrPresent.RG=false; outSAMattrPresent.XS=false; + outSAMattrPresent.vT=false; + outSAMattrPresent.vL=false; //for quant SAM output only NH and HI flags outSAMattrPresentQuant=outSAMattrPresent; - outSAMattrPresent.NH=true; - outSAMattrPresent.NH=true; + outSAMattrPresentQuant.NH=true; + outSAMattrPresentQuant.HI=true; outSAMattrOrderQuant.push_back(ATTR_NH); outSAMattrOrderQuant.push_back(ATTR_HI); @@ -826,6 +828,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (vAttr1.at(ii)== "jI") { outSAMattrOrder.push_back(ATTR_jI); outSAMattrPresent.jI=true; + } else if (vAttr1.at(ii)== "vT") { + outSAMattrOrder.push_back(ATTR_vT); + outSAMattrPresent.jI=true; + } else if (vAttr1.at(ii)== "vL") { + outSAMattrOrder.push_back(ATTR_vL); + outSAMattrPresent.jI=true; } else if (vAttr1.at(ii)== "RG") { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); @@ -845,6 +853,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; + if (!var.yes && (outSAMattrPresent.vT | outSAMattrPresent.vL)) + { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETER error: --outSAMattributes contains vT and/or vL tag(s), but --varVCFfile is not set\n"; + errOut <<"SOLUTION: re-run STAR with a --varVCFfile option, or without vT/vL tags in --outSAMattributes\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (outSAMattrRG.size()>0 && !outSAMattrPresent.RG) { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); diff --git a/Parameters.h b/Parameters.h index 6067bbc..5263508 100644 --- a/Parameters.h +++ b/Parameters.h @@ -120,7 +120,7 @@ class Parameters { uint outSAMmultNmax,outSAMattrIHstart; string outSAMheaderCommentFile; int outSAMmapqUnique; - struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS;} outSAMattrPresent, outSAMattrPresentQuant; + struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS,vL,vT;} outSAMattrPresent, outSAMattrPresentQuant; vector outSAMattrOrder, outSAMattrOrderQuant; int outBAMcompression; vector outSAMtype; @@ -275,6 +275,7 @@ class Parameters { string vcfFile; } var; + //chimeric uint chimSegmentMin, chimJunctionOverhangMin; //min chimeric donor/acceptor length uint chimSegmentReadGapMax; //max read gap for stitching chimeric windows diff --git a/ReadAlign.cpp b/ReadAlign.cpp index a46e198..09224d3 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -9,6 +9,7 @@ ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *Tr SA=genomeIn.SA; SAi=genomeIn.SAi; sigG=genomeIn.sigG; + Var=genomeIn.Var; winBin = new uintWinBin* [2]; winBin[0] = new uintWinBin [P->winBinN]; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 6254dde..52e871c 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -342,6 +342,18 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint case ATTR_RG: attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); break; + case ATTR_vL: + { + vector v1=trOut.snpLoci; + attrN+=bamAttrArrayWrite(v1,"vL",attrOutArray+attrN); + break; + }; + case ATTR_vT: + { + vector v1=trOut.snpGt; + attrN+=bamAttrArrayWrite(v1,"vT",attrOutArray+attrN); + break; + }; default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<twoPass.pass2=false; //this is the 1st pass - - if (P->genomeFastaFiles.at(0)!="-") - {//insert sequences in the genome - - }; SjdbClass sjdbLoci; @@ -93,17 +88,10 @@ int main(int argInN, char* argIn[]) { sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); }; - - - //calculate genome-related parameters Transcriptome *mainTranscriptome=NULL; - Variation *mainVar=NULL; - - if (P->var.yes) - { - mainVar=new Variation(P); - }; + mainGenome.Var=new Variation(P); + /////////////////////////////////////////////////////////////////////////////////////////////////START if (P->runThreadN>1) { g_threadChunks.threadArray=new pthread_t[P->runThreadN]; diff --git a/Transcript.h b/Transcript.h index 7fe3d14..63a2579 100644 --- a/Transcript.h +++ b/Transcript.h @@ -3,6 +3,7 @@ #include "IncludeDefine.h" #include "Parameters.h" +#include "Variation.h" class Transcript { public: @@ -50,12 +51,17 @@ class Transcript { uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment + vector snpInd; + vector snpLoci; + vector snpGt; + Transcript(); //resets to 0 void reset(); //reset to 0 void resetMapG(); // reset map to 0 void resetMapG(uint); // reset map to 0 for Lread bases void add(Transcript*); // add void alignScore(char **Read1, char *G, Parameters *P); + int variationAdjust(Variation &Var, char *R); }; #endif diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 3059137..ad6c75d 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -45,7 +45,7 @@ int splitString(const std::string &s, char delim, std::vector &elem std::stringstream ss(s); std::string item; int maxL=0; - elems.empty(); + elems.clear(); while (std::getline(ss, item, delim)) { maxL=max(maxL, (int)item.size()); elems.push_back(item); diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 8aa282e..c6d3129 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -222,7 +222,6 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //calculate some final values for the transcript trA.roStart = (trA.roStr == 0) ? trA.rStart : Lread - trA.rStart - trA.rLength; - trA.maxScore=Score; if (trA.exons[0][EX_iFrag]==trA.exons[trA.nExons-1][EX_iFrag]) {//mark single fragment transcripts trA.iFrag=trA.exons[0][EX_iFrag]; @@ -231,6 +230,12 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui trA.iFrag=-1; }; + //Variation + Score+=trA.variationAdjust(*RA->Var, R); + + trA.maxScore=Score; + + // transcript has been finalized, compare the score and record if ( Score+P->outFilterMultimapScoreRange >= wTr[0]->maxScore \ || ( trA.iFrag>=0 && Score+P->outFilterMultimapScoreRange >= RA->maxScoreMate[trA.iFrag] ) \ || P->chimSegmentMin>0) { From 1806bac528d5e7ac3dbf8f4216fa4839d426a1aa Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 13 Oct 2015 15:27:39 -0400 Subject: [PATCH 166/536] Finished coding SNP-awareness. Need to check validity of mapping. --- ReadAlign_outputVariation.cpp | 13 ++++ Transcript_variationAdjust.cpp | 52 +++++++++++++ Transcript_variationOutput.cpp | 6 ++ Variation.cpp | 135 +++++++++++++++++++++++++++++++++ Variation.h | 45 +++++++++++ serviceFuns.h | 106 ++++++++++++++++++++++++++ 6 files changed, 357 insertions(+) create mode 100644 ReadAlign_outputVariation.cpp create mode 100644 Transcript_variationAdjust.cpp create mode 100644 Transcript_variationOutput.cpp create mode 100644 Variation.cpp create mode 100644 Variation.h create mode 100644 serviceFuns.h diff --git a/ReadAlign_outputVariation.cpp b/ReadAlign_outputVariation.cpp new file mode 100644 index 0000000..729688c --- /dev/null +++ b/ReadAlign_outputVariation.cpp @@ -0,0 +1,13 @@ +#include "ReadAlign.h" + +void ReadAlign::outputVariation(Variation &Var, Transcript Tr, uint iTr, uint nTr) +{ + if (!Var.yes) + { + return; + }; + + + + +}; diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp new file mode 100644 index 0000000..a097857 --- /dev/null +++ b/Transcript_variationAdjust.cpp @@ -0,0 +1,52 @@ +#include "Transcript.h" +#include "serviceFuns.h" + +int Transcript::variationAdjust(Variation &Var, char *R) +{ + if (!Var.yes) + {//no variation + return 0; + }; + + int dScore=0;//chnage in the score + + //for each block, check whether it overlaps one or more SNPs + for (uint ie=0; ie (exons[ie][EX_G], Var.snp.loci, Var.snp.N); + if (isnp>0) + { + while (exons[ie][EX_G]+exons[ie][EX_L]>Var.snp.loci[isnp]) + {//these SNPs overlap the block + snpInd.push_back(isnp); //record snp index + snpLoci.push_back(Var.snp.loci[isnp]-Var.P->chrStart[Chr]); + + char ntR=R[exons[ie][EX_R]+Var.snp.loci[isnp]-exons[ie][EX_G]];//nt of the read in the SNP position, already trnasformed to + genome strand + uint8 igt; + for (igt=1; igt<3; igt++) + {//1st or 2nd allele + if (Var.snp.nt[isnp][igt]==ntR) + { + break; + }; + }; + if (ntR == Var.snp.nt[isnp][0]) + {//mark snp that agrees with the reference + igt*=10; + }; + snpGt.push_back(igt); + + if (igt<3 && ntR != Var.snp.nt[isnp][0]) + {//non-reference allele, correct nMM and score + dScore+=2; + nMM--; + nMatch++; + }; + + isnp++; + }; + }; + }; + return dScore; +}; diff --git a/Transcript_variationOutput.cpp b/Transcript_variationOutput.cpp new file mode 100644 index 0000000..203221d --- /dev/null +++ b/Transcript_variationOutput.cpp @@ -0,0 +1,6 @@ +#include "Transcript.h" + +void Transcript::variationOutput(Variation &Var) +{ + // +}; diff --git a/Variation.cpp b/Variation.cpp new file mode 100644 index 0000000..e94860f --- /dev/null +++ b/Variation.cpp @@ -0,0 +1,135 @@ +#include "Variation.h" +#include "streamFuns.h" +#include "SequenceFuns.h" +#include "TimeFunctions.h" +#include "serviceFuns.h" + +Variation::Variation (Parameters* Pin) +{ + P=Pin; + if (!P->var.yes) + { + yes=false; + return; + }; + + yes=true; + + varOutFileName=P->outFileNamePrefix+"Variation.out"; + varOutStream.open(varOutFileName); + + vcfFile=P->var.vcfFile; + loadVCF(vcfFile); + +}; + +void scanVCF(ifstream& vcf, bool load, Parameters* P, SNP& snp) +{ + snp.N=0; + uint nlines=0; + while (true) + { + string chr,id, ref, alt, dummy, sample; + uint pos; + nlines++; + + vcf >> chr; + if (!vcf.good()) + { + break; + }; + + if (chr.at(0)!='#') + { + vcf >> pos >> id >> ref >> alt >> dummy >> dummy >> dummy >> dummy >> dummy >> sample; + + vector altV(3); + + if (ref.size()==1 && splitString(alt,',',altV)==1) + { + if (P->chrNameIndex.count(chr)==0) {//chr not in Genome + if (!load) + { + P->inOut->logMain << "WARNING: while processing varVCFfile file=" << P->var.vcfFile <<": chromosome '"<inOut->logMain << "WARNING: while processing varVCFfile file=" << P->var.vcfFile <<": more than 2 alleles per sample for line number "<chrStart[P->chrNameIndex[chr]]; + snp.nt[snp.N][0]=convertNt01234( ref.at(0) ); + altV.insert(altV.begin(),ref); + snp.nt[snp.N][1]=convertNt01234( altV.at( atoi(&sample.at(0)) ).at(0) ); + snp.nt[snp.N][2]=convertNt01234( altV.at( atoi(&sample.at(2)) ).at(0) ); + +// snp.nt[snp.N].ref=convertNt01234(ref.at(0)); +// snp.nt[snp.N].=convertNt01234(ref.at(0)); + }; + snp.N++; + }; + }; + }; + getline(vcf,dummy); + }; +}; + + +void Variation::loadVCF(string fileIn) +{ + time_t rawTime; + time(&rawTime); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Loaded VCF data, found "< > nt1=snp.nt; + for (uint ii=0;iiinOut->logMain << timeMonthDayTime(rawTime) <<" ..... Finished sorting VCF data"< + +// struct SNPnt +// { +// char ref; +// char a1; +// char a2; +// }; + +class SNP +{ +public: + uint32 N; //number of snps + uint *loci; //snp coordinate +// SNPnt* nt; //reference and alternative bases +// char **nt; //reference and alternative bases +// char *nt1; //1D array to store nt + vector> nt;//reference and alternative bases +}; + +class Variation +{ +public: + //methods + Variation (Parameters* Pin); //create transcriptome structure, load and initialize parameters + void loadVCF(string fileIn); //load VCF file + + //variables + bool yes; + SNP snp; + + Parameters* P; + +private: + string vcfFile; + string varOutFileName; + ofstream varOutStream;//output file for variations +}; + +#endif \ No newline at end of file diff --git a/serviceFuns.h b/serviceFuns.h new file mode 100644 index 0000000..2b99857 --- /dev/null +++ b/serviceFuns.h @@ -0,0 +1,106 @@ +#ifndef CODE_serviceFuns +#define CODE_serviceFuns + +#include "IncludeDefine.h" + +#include +#include +#include +int splitString(const std::string &s, char delim, std::vector &elems); + +int funCompareUint2 (const void *a, const void *b); +int funCompareUint1 (const void *a, const void *b); + +//////////////////////////// TEMPLATES +template +inline int funCompareArrays (const void *a, const void *b) { + arrayType* va= (uint*) a; + arrayType* vb= (uint*) b; + + for (int ii=0;iivb[ii]) { + return 1; + } else if (va[ii] +inline uint32 binarySearch1(argType x, argType *X, uint32 N) { + //binary search in the sorted list + //check the boundaries first + if (x>X[N-1] || xi1+1) {//binary search + i3=(i1+i2)/2; + if (X[i3]>x) { + i2=i3; + } else { + i1=i3; + }; + }; + + while (i1 +inline int32 binarySearch1a(argType x, argType *X, int32 N) { + //binary search in the sorted list + //check the boundaries first + //1a is different when x is larger than the last element X[N-1], it returns N-1 + + if (x>X[N-1]) { + return N-1; + } else if (xi1+1) {//binary search + i3=(i1+i2)/2; + if (X[i3]>x) { + i2=i3; + } else { + i1=i3; + }; + }; + + while (i1 +inline int32 binarySearch1b(argType x, argType *X, int32 N) +{ + //binary search in the sorted list + //check the boundaries first + //1b returns the first X element that is >= x + //X are all distinct + //if x>X[N-1], -1 is returned + + if (x>X[N-1]) { + return -1; + } else if (x<=X[0]) { + return 0; + }; + + int32 i1=0, i2=N-1, i3=N/2; + while (i2>i1+1) {//binary search + i3=(i1+i2)/2; + if (X[i3]>=x) { + i2=i3; + } else { + i1=i3; + }; + }; + + return i2; +}; + +#endif \ No newline at end of file From 819c88eddaaca8240dc9cfef6696adfd9a63bbfa Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 16 Oct 2015 15:30:57 -0400 Subject: [PATCH 167/536] Finished coding SNP-awareness. Passed basic testing, number look reasonable. --- ReadAlignChunk_processChunks.cpp | 1 + Variation.cpp | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 3bdef50..261e24f 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -61,6 +61,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks }; }; } else if (nextChar=='>') {//fasta, can be multiline, which is converted to single line + P->iReadAll++; //increment read number for (uint imate=0; imatereadNmates; imate++) { if (P->outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping diff --git a/Variation.cpp b/Variation.cpp index e94860f..fdbe72a 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -41,21 +41,23 @@ void scanVCF(ifstream& vcf, bool load, Parameters* P, SNP& snp) if (chr.at(0)!='#') { - vcf >> pos >> id >> ref >> alt >> dummy >> dummy >> dummy >> dummy >> dummy >> sample; + vcf >> pos >> id >> ref >> alt >> dummy >> dummy >> dummy >> dummy >> sample; vector altV(3); if (ref.size()==1 && splitString(alt,',',altV)==1) { + altV.insert(altV.begin(),ref);//add ref to the beginning + if (P->chrNameIndex.count(chr)==0) {//chr not in Genome if (!load) { P->inOut->logMain << "WARNING: while processing varVCFfile file=" << P->var.vcfFile <<": chromosome '"<3 && sample.at(3)!=':') { if (!load) { @@ -63,6 +65,9 @@ void scanVCF(ifstream& vcf, bool load, Parameters* P, SNP& snp) }; } else if (sample.at(0)=='0' && sample.at(2)=='0') { + //both alleles are reference, no need to do anything + } else if (altV.at( atoi(&sample.at(0)) ).at(0)==ref.at(0) && altV.at( atoi(&sample.at(2)) ).at(0)==ref.at(0)) + { //both alleles are reference, no need to do anything } else { @@ -70,12 +75,11 @@ void scanVCF(ifstream& vcf, bool load, Parameters* P, SNP& snp) { snp.loci[snp.N]=pos-1+P->chrStart[P->chrNameIndex[chr]]; snp.nt[snp.N][0]=convertNt01234( ref.at(0) ); - altV.insert(altV.begin(),ref); snp.nt[snp.N][1]=convertNt01234( altV.at( atoi(&sample.at(0)) ).at(0) ); snp.nt[snp.N][2]=convertNt01234( altV.at( atoi(&sample.at(2)) ).at(0) ); -// snp.nt[snp.N].ref=convertNt01234(ref.at(0)); -// snp.nt[snp.N].=convertNt01234(ref.at(0)); + //cout << chr <<"\t"<< pos <<"\t"<< ref.at(0) <<"\t"<< altV.at( atoi(&sample.at(0)) ).at(0) <<"\t"<< altV.at( atoi(&sample.at(2)) ).at(0) <<"\n"; + }; snp.N++; }; From a52e5278a4388c920958c2a490499543a10cc058 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 17 Oct 2015 12:33:28 -0400 Subject: [PATCH 168/536] Implementing SNPs in sjdb --- Parameters.cpp | 16 ++++----- STAR.cpp | 8 +++-- SjdbClass.h | 1 - Transcript_variationAdjust.cpp | 2 +- Variation.cpp | 41 +++++++++++++++++++++- Variation.h | 4 +++ sjdbInsertJunctions.cpp | 2 +- sjdbPrepare.cpp | 62 ++++++++++++++++++++-------------- sjdbPrepare.h | 3 +- 9 files changed, 97 insertions(+), 42 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 470fb01..e3fb730 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -769,10 +769,15 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //inOut->fastaOutSeqs.open("Seqs.out.fasta"); }; }; + + //variation + var.yes=false; + if (var.vcfFile!="-") + { + var.yes=true; + }; //outSAMattributes - - outSAMattrPresent.NH=false;//TODO re-write as class with constructor? outSAMattrPresent.HI=false; outSAMattrPresent.AS=false; @@ -1136,13 +1141,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //genome parameters genomeChrBinNbases=1LLU<logMain << "Finished loading and checking parameters\n" <twoPass.pass2=false; //this is the 1st pass + + //calculate genome-related parameters + Transcriptome *mainTranscriptome=NULL; + mainGenome.Var=new Variation(P); + SjdbClass sjdbLoci; if (P->sjdbInsert.pass1) @@ -88,9 +93,6 @@ int main(int argInN, char* argIn[]) { sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); }; - //calculate genome-related parameters - Transcriptome *mainTranscriptome=NULL; - mainGenome.Var=new Variation(P); /////////////////////////////////////////////////////////////////////////////////////////////////START if (P->runThreadN>1) { diff --git a/SjdbClass.h b/SjdbClass.h index bb2a687..01035af 100644 --- a/SjdbClass.h +++ b/SjdbClass.h @@ -2,7 +2,6 @@ #define DEF_SjdbClass #include "IncludeDefine.h" -#include "Parameters.h" class SjdbClass { public: diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index a097857..d6a220b 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -17,7 +17,7 @@ int Transcript::variationAdjust(Variation &Var, char *R) int32 isnp=binarySearch1b (exons[ie][EX_G], Var.snp.loci, Var.snp.N); if (isnp>0) { - while (exons[ie][EX_G]+exons[ie][EX_L]>Var.snp.loci[isnp]) + while (isnpVar.snp.loci[isnp]) {//these SNPs overlap the block snpInd.push_back(isnp); //record snp index snpLoci.push_back(Var.snp.loci[isnp]-Var.P->chrStart[Chr]); diff --git a/Variation.cpp b/Variation.cpp index fdbe72a..5d0043e 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -136,4 +136,43 @@ void Variation::loadVCF(string fileIn) P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Finished sorting VCF data"<>> &snpV) +{ + int32 isnp=binarySearch1b (blockStart, loci, N); + while (isnp snp1; + snp1[0]=(int) (loci[isnp]-blockStart); + snp1[1]=(int) nt[isnp][ii+1]; + snpV[ii].push_back(snp1); + }; + }; + ++isnp; + }; +}; + +vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang) +{ + vector>> snpV(2), snpVout; + + if (!yes) + {//no variation + return snpV; + }; + + snp.snpOnBlocks(sjStart-sjdbOverhang,sjdbOverhang, snpV); + snp.snpOnBlocks(sjEnd+1,sjdbOverhang, snpV); + for (int ii=0; ii<2; ii++) + { + if (!snpV.at(ii).empty()) + { + snpVout.push_back(snpV.at(ii)); + }; + }; + + return snpVout; +}; \ No newline at end of file diff --git a/Variation.h b/Variation.h index 9a2f473..4e8efe0 100644 --- a/Variation.h +++ b/Variation.h @@ -21,6 +21,9 @@ class SNP // char **nt; //reference and alternative bases // char *nt1; //1D array to store nt vector> nt;//reference and alternative bases + + //methods + void snpOnBlocks(uint blockStart, uint blockL, vector>> &snpV); }; class Variation @@ -29,6 +32,7 @@ class Variation //methods Variation (Parameters* Pin); //create transcriptome structure, load and initialize parameters void loadVCF(string fileIn); //load VCF file + vector>> sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang); //calculates snp loci in sjdb sequences //variables bool yes; diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 8ef7dc8..52f630f 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -56,7 +56,7 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC }; char *Gsj=new char [2*P->sjdbLength*sjdbLoci.chr.size()+1];//array to store junction sequences, will be filled in sjdbPrepare - sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome.G, Gsj);//P->nGenome - change when replacing junctions + sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome, Gsj);//P->nGenome - change when replacing junctions time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <sjdbStart=new uint [nsj]; - P->sjdbEnd=new uint [nsj]; - P->sjdbMotif=new uint8 [nsj]; - P->sjdbShiftLeft=new uint8 [nsj]; - P->sjdbShiftRight=new uint8 [nsj]; - P->sjdbStrand=new uint8 [nsj]; + uint nsj1=nsj; + if (genome.Var->yes) nsj1*=2; + + P->sjdbStart=new uint [nsj1]; + P->sjdbEnd=new uint [nsj1]; + P->sjdbMotif=new uint8 [nsj1]; + P->sjdbShiftLeft=new uint8 [nsj1]; + P->sjdbShiftRight=new uint8 [nsj1]; + P->sjdbStrand=new uint8 [nsj1]; + + vector>>> sjdbSnp; - uint nsj1=0; + nsj1=0; for (uint ii=0;iisjdbStart[nsj1]=sjdbSort[ii*3]; - P->sjdbEnd[nsj1]=sjdbSort[ii*3+1]; - P->sjdbMotif[nsj1]=sjdbMotif[isj]; - P->sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; - P->sjdbShiftRight[nsj1]=sjdbShiftRight[isj]; - if (sjdbLoci.str.at(isj)=='+') { - P->sjdbStrand[nsj1]=1; - } else if (sjdbLoci.str.at(isj)=='-') { - P->sjdbStrand[nsj1]=2; - } else { - if (P->sjdbMotif[nsj1]==0) {//strand un-defined - P->sjdbStrand[nsj1]=0; + + vector>> sjdbSnp1=genome.Var->sjdbSnp(sjdbSort[ii*3],sjdbSort[ii*3+1],P->sjdbOverhang); + for (int ii=0; iisjdbStart[nsj1]=sjdbSort[ii*3]; + P->sjdbEnd[nsj1]=sjdbSort[ii*3+1]; + P->sjdbMotif[nsj1]=sjdbMotif[isj]; + P->sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; + P->sjdbShiftRight[nsj1]=sjdbShiftRight[isj]; + if (sjdbLoci.str.at(isj)=='+') { + P->sjdbStrand[nsj1]=1; + } else if (sjdbLoci.str.at(isj)=='-') { + P->sjdbStrand[nsj1]=2; } else { - P->sjdbStrand[nsj1]=2-P->sjdbMotif[nsj1]%2; + if (P->sjdbMotif[nsj1]==0) {//strand un-defined + P->sjdbStrand[nsj1]=0; + } else { + P->sjdbStrand[nsj1]=2-P->sjdbMotif[nsj1]%2; + }; }; + nsj1++; }; - nsj1++; }; P->sjdbN=nsj1; P->sjDstart = new uint [P->sjdbN]; diff --git a/sjdbPrepare.h b/sjdbPrepare.h index 1a40d05..8a4f42a 100644 --- a/sjdbPrepare.h +++ b/sjdbPrepare.h @@ -3,7 +3,8 @@ #include "SjdbClass.h" #include "Parameters.h" +#include "Genome.h" -void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string outDir, char *G, char *Gsj); +void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string outDir, Genome &G, char *Gsj); #endif \ No newline at end of file From e25fde39e48d2e0de2305956b457e2bcc8be8b93 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 18 Oct 2015 11:00:04 -0400 Subject: [PATCH 169/536] Finalized sjdbSNP, simulations look encouraging. --- Transcript.h | 2 +- Transcript_variationAdjust.cpp | 21 +++++++++++++++------ Variation.cpp | 27 ++++++++++++++------------- Variation.h | 4 ++-- sjdbPrepare.cpp | 12 +++++++++--- stitchWindowAligns.cpp | 2 +- 6 files changed, 42 insertions(+), 26 deletions(-) diff --git a/Transcript.h b/Transcript.h index 63a2579..371258c 100644 --- a/Transcript.h +++ b/Transcript.h @@ -61,7 +61,7 @@ class Transcript { void resetMapG(uint); // reset map to 0 for Lread bases void add(Transcript*); // add void alignScore(char **Read1, char *G, Parameters *P); - int variationAdjust(Variation &Var, char *R); + int variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters *P); }; #endif diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index d6a220b..ad5870a 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -1,14 +1,15 @@ #include "Transcript.h" #include "serviceFuns.h" -int Transcript::variationAdjust(Variation &Var, char *R) +int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters *P) { if (!Var.yes) {//no variation return 0; }; - int dScore=0;//chnage in the score + int dScore=0;//change in the score + uint nMM1=0; //for each block, check whether it overlaps one or more SNPs for (uint ie=0; ie0) + {//one or more mismtaches need to be corrected + uint nMMold=nMM; + alignScore(Read1, G, P); + nMM-=nMM1; + nMatch+=nMM1; + dScore=2*(nMMold-nMM);//score only changes if the number of mismatches is reduced after SNP adjustment + }; + return dScore; }; diff --git a/Variation.cpp b/Variation.cpp index 5d0043e..b678091 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -136,17 +136,17 @@ void Variation::loadVCF(string fileIn) P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Finished sorting VCF data"<>> &snpV) +void SNP::snpOnBlocks(uint blockStart, uint blockL, int blockShift, vector>> &snpV) { int32 isnp=binarySearch1b (blockStart, loci, N); while (isnp snp1; - snp1[0]=(int) (loci[isnp]-blockStart); + snp1[0]=(int) (loci[isnp]-blockStart)+blockShift; snp1[1]=(int) nt[isnp][ii+1]; snpV[ii].push_back(snp1); }; @@ -157,22 +157,23 @@ void SNP::snpOnBlocks(uint blockStart, uint blockL, vector>> vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang) { - vector>> snpV(2), snpVout; + vector>> snpV(2); if (!yes) {//no variation return snpV; }; - snp.snpOnBlocks(sjStart-sjdbOverhang,sjdbOverhang, snpV); - snp.snpOnBlocks(sjEnd+1,sjdbOverhang, snpV); - for (int ii=0; ii<2; ii++) + snp.snpOnBlocks(sjStart-sjdbOverhang, sjdbOverhang, 0, snpV); + snp.snpOnBlocks(sjEnd+1, sjdbOverhang, sjdbOverhang, snpV); + + if (snpV.at(0).empty() && snpV.at(1).empty()) { - if (!snpV.at(ii).empty()) - { - snpVout.push_back(snpV.at(ii)); - }; + snpV.pop_back(); + } else if (snpV.at(0) == snpV.at(1)) + { + snpV.pop_back(); }; - return snpVout; -}; \ No newline at end of file + return snpV; +}; diff --git a/Variation.h b/Variation.h index 4e8efe0..2259a33 100644 --- a/Variation.h +++ b/Variation.h @@ -23,7 +23,7 @@ class SNP vector> nt;//reference and alternative bases //methods - void snpOnBlocks(uint blockStart, uint blockL, vector>> &snpV); + void snpOnBlocks(uint blockStart, uint blockL, int blockShift, vector>> &snpV); }; class Variation @@ -46,4 +46,4 @@ class Variation ofstream varOutStream;//output file for variations }; -#endif \ No newline at end of file +#endif diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index bb75a4b..189b55a 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -139,7 +139,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o P->sjdbShiftRight=new uint8 [nsj1]; P->sjdbStrand=new uint8 [nsj1]; - vector>>> sjdbSnp; + vector>> sjdbSnp; nsj1=0; for (uint ii=0;ii>> sjdbSnp1=genome.Var->sjdbSnp(sjdbSort[ii*3],sjdbSort[ii*3+1],P->sjdbOverhang); - for (int ii=0; iisjdbStart[nsj1]=sjdbSort[ii*3]; @@ -219,6 +219,12 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o }; memcpy(Gsj+sjGstart,G+P->sjDstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci memcpy(Gsj+sjGstart+P->sjdbOverhang,G+P->sjAstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci + + for (int ia=0; iasjdbLength; Gsj[sjGstart-1]=GENOME_spacingChar;//spacing char between the sjdb seqs sjdbInfo << P->sjdbStart[ii] <<"\t"<< P->sjdbEnd[ii] <<"\t"<<(int) P->sjdbMotif[ii] <<"\t"<<(int) P->sjdbShiftLeft[ii] <<"\t"<<(int) P->sjdbShiftRight[ii]<<"\t"<<(int) P->sjdbStrand[ii] <<"\n"; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index c6d3129..02f353a 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -231,7 +231,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; //Variation - Score+=trA.variationAdjust(*RA->Var, R); + Score+=trA.variationAdjust(*RA->Var, R, RA->Read1, G, P); trA.maxScore=Score; From c78893a7610438ccaef533529864f930aa6ede18 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 19 Nov 2015 13:04:40 -0500 Subject: [PATCH 170/536] Minor fix after rebasing var on the updated master. --- Variation.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Variation.cpp b/Variation.cpp index b678091..626c248 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -97,8 +97,7 @@ void Variation::loadVCF(string fileIn) P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" < Date: Tue, 1 Dec 2015 15:58:03 -0500 Subject: [PATCH 171/536] Prohibit --outSAMtype SAM with othet options. --- Parameters.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 25a7ae7..d9bdd1f 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -566,6 +566,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters mkdir(outBAMsortTmpDir.c_str(),runDirPerm); }; } else if (outSAMtype.at(0)=="SAM") { + if (outSAMtype.size()>1) + { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETER error: --outSAMtype SAM can cannot be combined with "<logMain, EXIT_CODE_PARAMETER, *this); + }; outSAMbool=true; if (outStd=="SAM") { inOut->outSAM = & std::cout; @@ -574,7 +581,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters inOut->outSAM = & inOut->outSAMfile; }; } else if (outSAMtype.at(0)=="None") { - //nothin to do, all flags are already false + //nothing to do, all flags are already false } else { ostringstream errOut; errOut <<"EXITING because of fatal input ERROR: unknown value for the first word of outSAMtype: "<< outSAMtype.at(0) <<"\n"; From 52355b930b0da81234b3f6a40bf3b3bb029b1295 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 3 Dec 2015 18:20:22 -0500 Subject: [PATCH 172/536] Fixed a bug that prevented chimeric output for some of the circular configurations. --- ReadAlign_chimericDetection.cpp | 2 +- VERSION | 2 +- sjdbBuildIndex.cpp | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index ca0aa9f..4745a1b 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -35,7 +35,7 @@ bool ReadAlign::chimericDetection() { //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows //stitch only one window on each end of the read - if (P->chimSegmentMin>0 && nW>1 && trBest->rLength >= P->chimSegmentMin \ + if (P->chimSegmentMin>0 && trBest->rLength >= P->chimSegmentMin \ && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P->chimSegmentMin <= Lread \ || trBest->exons[0][EX_R] >= P->chimSegmentMin ) \ && trBest->nextTrScore+P->outFilterMultimapScoreRange < trBest->maxScore \ diff --git a/VERSION b/VERSION index 2513622..b767c90 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.0b" +#define STAR_VERSION "STAR_2.5.0b_modified" diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index c63b280..c6c1266 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -78,6 +78,8 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr { //indArray[ind1] = suffixArraySearch(seq1, istart, P->sjdbLength-istart1, G, SA, true, 0, P->nSA-1, 0, P) ; indArray[ind1] = suffixArraySearch1(seq1, istart, 10000, G, -1LLU, SA, true, 0, P->nSA-1, 0, P) ; + //-1LLU results in suffixes for the new junctions to be always included in SA *after* the suffixes of the old junctions + //for identical suffixes, this may result in unstable ordering indArray[ind1+1] = isj*P->sjdbLength+istart; }; }; From 1e730373ffe2389da1a4108e91361ada27b8ed74 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 4 Dec 2015 18:07:59 -0500 Subject: [PATCH 173/536] Fixed a bug that prevent correct operation when inserting junctions without Variation. --- Variation.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Variation.cpp b/Variation.cpp index 626c248..d5e4e92 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -159,8 +159,9 @@ vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint s vector>> snpV(2); if (!yes) - {//no variation - return snpV; + {//no variation, return 1 empty element + vector>> snpV1(1); + return snpV1; }; snp.snpOnBlocks(sjStart-sjdbOverhang, sjdbOverhang, 0, snpV); From ae9d981c91ea0d8f0e1a6d23dd61a044b3ad59f6 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 9 Dec 2015 17:00:56 -0500 Subject: [PATCH 174/536] Fixed a bug that filtered out some chimeric junctions. --- ReadAlign_chimericDetection.cpp | 29 ++++++++++++++++++++++------- blocksOverlap.cpp | 2 +- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 4745a1b..6d54fe5 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -3,6 +3,8 @@ #include "Transcript.h" #include "ReadAlign.h" #include "BAMfunctions.h" +#include "blocksOverlap.h" + //#include "SequenceFuns.h" //#include "stitchWindowAligns.h" //#include "sjSplitAlign.cpp" @@ -38,12 +40,12 @@ bool ReadAlign::chimericDetection() { if (P->chimSegmentMin>0 && trBest->rLength >= P->chimSegmentMin \ && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P->chimSegmentMin <= Lread \ || trBest->exons[0][EX_R] >= P->chimSegmentMin ) \ - && trBest->nextTrScore+P->outFilterMultimapScoreRange < trBest->maxScore \ && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif int chimScoreBest=0,chimScoreNext=0; trChim[0]=*trBest; + uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; if (roStart1>readLength[0]) roStart1--; @@ -97,15 +99,24 @@ bool ReadAlign::chimericDetection() { && ( diffMates || ( (roEnd1 + P->chimSegmentReadGapMax + 1) >= roStart2 && (roEnd2 + P->chimSegmentReadGapMax + 1) >= roStart1 ) ) ) { int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + + uint overlap1=0; + if (iWt>0 && chimScoreBest>0) + {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. + overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); + }; if (chimScore > chimScoreBest && chimScore >= P->chimScoreMin && chimScore+P->chimScoreDropMax >= (int) (readLength[0]+readLength[1]) ) { trChim[1]=*trAll[iW][iWt]; - chimScoreNext=chimScoreBest; + if (overlap1==0) + { + chimScoreNext=chimScoreBest; + }; chimScoreBest=chimScore; trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; trChim[1].cStart = trChim[1].gStart - P->chrStart[trChim[1].Chr]; chimStrBest=chimStr1; - } else if (chimScore>chimScoreNext) {//replace the nextscore if it's not the best one and is higher than the previous one + } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one chimScoreNext=chimScore; }; }; @@ -289,14 +300,18 @@ bool ReadAlign::chimericDetection() { // cout << readName <<"\t"<< (trChim[0].Str==0 ? chimJ1-chimJ0 : chimJ0-chimJ1) << "\t"<< (chimMotif>=0 ? P->alignIntronMax : P->alignMatesGapMax)<<"\n"; // cout << chimRepeat0 <<"\t"<=P->chimJunctionOverhangMin+chimRepeat0 \ - && trChim[1].exons[e1][EX_L]>=P->chimJunctionOverhangMin+chimRepeat1 \ + if ( chimN==2 \ && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P->alignIntronMax : P->alignMatesGapMax) ) ) - {//unique chimeras only && minOverhang1 - //&& minOverhang2 + {// //&& (diff str || diff chr || //|| gap > (alignIntronMax,alignMatesGapMax) ) negative gap = very large # because of uint + + if (chimMotif>=0 && \ + (trChim[0].exons[e0][EX_L]chimJunctionOverhangMin+chimRepeat0 || trChim[1].exons[e1][EX_L]chimJunctionOverhangMin+chimRepeat1) ) + {//filter out linear junctions that are very close to chimeric junction + return false; + }; chimRecord=true; //chimeric alignment was recorded diff --git a/blocksOverlap.cpp b/blocksOverlap.cpp index 4068414..881b5d5 100644 --- a/blocksOverlap.cpp +++ b/blocksOverlap.cpp @@ -1,6 +1,6 @@ #include "blocksOverlap.h" -uint blocksOverlap(Transcript &t1, Transcript &t2) {//calculate overlap between blocak of two transcripts +uint blocksOverlap(Transcript &t1, Transcript &t2) {//calculate overlap between blocks of two transcripts uint i1=0, i2=0, nOverlap=0; while (i1 Date: Wed, 9 Dec 2015 18:32:40 -0500 Subject: [PATCH 175/536] In Aligned.toTranscriptome.out.bam (--quantMode TranscriptomeSAM), non-primary SAM flag is assigned to all but one randomly selected alignment. --- ReadAlign_quantTranscriptome.cpp | 3 +++ Transcriptome_quantAlign.cpp | 1 + 2 files changed, 4 insertions(+) diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 4bbe6a7..5619b47 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -2,6 +2,7 @@ #include "ReadAlign.h" #include "Transcript.h" #include "serviceFuns.cpp" +#include uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT) { uint nAlignT=0; @@ -62,6 +63,8 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript // }; }; + alignT[int(rngUniformReal0to1(rngMultOrder)*nAlignT)].primaryFlag=true; + for (uint iatr=0;iatr Date: Thu, 17 Dec 2015 15:48:49 -0500 Subject: [PATCH 176/536] Implemented --genomeSuffixLengthMax option to control max siffix length at the genome generation step. Fixed a bug that caused genome generation stalling in some cases. --- Parameters.cpp | 1 + Parameters.h | 1 + genomeSAindex.cpp | 11 +- parametersDefault | 3 + parametersDefault.xxd | 3888 +++++++++++++++++++++-------------------- 5 files changed, 1959 insertions(+), 1945 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index d9bdd1f..e893883 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -42,6 +42,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAindexNbases", &genomeSAindexNbases)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeChrBinNbits", &genomeChrBinNbits)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &genomeSAsparseD)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSuffixLengthMax", &genomeSuffixLengthMax)); //read parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesIn", &readFilesIn)); diff --git a/Parameters.h b/Parameters.h index 479b740..19724ac 100644 --- a/Parameters.h +++ b/Parameters.h @@ -44,6 +44,7 @@ class Parameters { uint genomeSAsparseD;//sparsity=distance between indices uint genomeInsertL; //total length of the sequence to be inserted on the fly uint genomeInsertChrIndFirst; //index of the first inserted chromosome + uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length //binning,windows,anchors uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 86f36cd..124ec0e 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -228,14 +228,13 @@ void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaSte int iL4prev=iL4; isa+=isaStep; while (isanSA && (indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) - { + {//make large step in isa while the indFull/iL4 are still the same isa+=isaStep; }; if (isa>=P->nSA) - { - isa=P->nSA-1; - indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); - if (indFull==indFullPrev) + {//reached the end of the SA + indFull=funCalcSAiFromSA(G,SA,P->nSA-1,P->genomeSAindexNbases,P,iL4); + if (indFull==indFullPrev && iL4==iL4prev) { isa=P->nSA;//no more indices, the last one is equal to the previous return; @@ -244,7 +243,7 @@ void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaSte {//binary search uint i1=isa-isaStep; - uint i2=isa; + uint i2=min(isa,P->nSA-1); while (i1+10: suffux array sparsity, i.e. distance between indices: use bigger numbers to decrease needed RAM at the cost of mapping speed reduction +genomeSuffixLengthMax -1 + int: maximum length of the suffixes, has to be longer than read length. -1 = infinite. + ### Splice Junctions Database sjdbFileChrStartEnd - string(s): path to the files with genomic coordinates (chr start end strand) for the splice junction introns. Multiple files can be supplied wand will be concatenated. diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 6039c11..6931b04 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -265,1363 +265,1334 @@ unsigned char parametersDefault[] = { 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, - 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, - 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, - 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, - 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, + 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, + 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, + 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, + 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, - 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, - 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, - 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, - 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, - 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, - 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, - 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, - 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, - 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, - 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, - 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, - 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, - 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, + 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, + 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, + 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x6d, 0x65, 0x73, + 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, - 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, - 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, - 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, - 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, - 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, - 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, + 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, + 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, + 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, + 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, + 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, + 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, + 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, + 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, + 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, + 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, + 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, + 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, + 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, + 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, + 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, + 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, + 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, + 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, + 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, - 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, - 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, - 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, - 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, - 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, - 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, - 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, - 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, + 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, + 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, - 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, + 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, + 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, + 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, + 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, + 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, + 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, + 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, + 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, + 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, - 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, - 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, - 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, - 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, - 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, + 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, + 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, - 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, - 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, - 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, - 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, - 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, - 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, - 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, - 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, - 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, - 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, - 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, - 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, + 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, - 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, - 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, - 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, + 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, + 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, + 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, + 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, + 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, - 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, - 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x28, 0x62, 0x65, - 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, + 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, + 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x28, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, + 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, + 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, + 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, + 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, - 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, - 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, - 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, - 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, - 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, - 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, - 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, - 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, + 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, + 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, + 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, - 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, - 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, - 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, - 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, - 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, - 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, - 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, - 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, - 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, - 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, - 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, - 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, + 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, + 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, + 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, + 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, + 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, + 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, + 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, + 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, - 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, - 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, - 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, + 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, - 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, + 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, - 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, - 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, - 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, - 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, - 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, - 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, - 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, - 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, - 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, - 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, - 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, - 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, - 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, - 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, - 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, + 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, + 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, + 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, + 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, - 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, - 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, + 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, + 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, + 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, + 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, + 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, + 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, + 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, + 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, + 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, + 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, + 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, + 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, + 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, + 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, + 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, + 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, + 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, - 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, - 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, - 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, - 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, + 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, + 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, - 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, + 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, + 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, + 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, + 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, + 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, + 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, + 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, + 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, + 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, + 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, + 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, + 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x70, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, + 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, - 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, - 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, - 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, - 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, - 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, + 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, + 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, + 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, + 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, @@ -1629,16 +1600,340 @@ unsigned char parametersDefault[] = { 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, + 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, + 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, + 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, + 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, + 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, + 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, + 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, + 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, + 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, + 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, + 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, + 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, @@ -1647,659 +1942,374 @@ unsigned char parametersDefault[] = { 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, + 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, + 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, - 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, - 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, - 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, - 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, - 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, - 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, - 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, - 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, - 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, - 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, - 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, - 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, - 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, - 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, + 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, + 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, + 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, + 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, - 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, - 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, - 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, - 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, - 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, + 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, - 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, - 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, - 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, - 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, + 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, + 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, + 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, + 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, + 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, + 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, - 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, - 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, - 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, - 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, - 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, - 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, - 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x0a, 0x0a + 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, + 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, + 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, + 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, + 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, + 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, + 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 27615; +unsigned int parametersDefault_len = 27738; From 2b8206c6afadd38e66f14e438b045d657fee6351 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 17 Dec 2015 18:16:36 -0500 Subject: [PATCH 177/536] Fixed a bug that caused genome generation stalling in some cases. --- genomeSAindex.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 86f36cd..124ec0e 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -228,14 +228,13 @@ void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaSte int iL4prev=iL4; isa+=isaStep; while (isanSA && (indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) - { + {//make large step in isa while the indFull/iL4 are still the same isa+=isaStep; }; if (isa>=P->nSA) - { - isa=P->nSA-1; - indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); - if (indFull==indFullPrev) + {//reached the end of the SA + indFull=funCalcSAiFromSA(G,SA,P->nSA-1,P->genomeSAindexNbases,P,iL4); + if (indFull==indFullPrev && iL4==iL4prev) { isa=P->nSA;//no more indices, the last one is equal to the previous return; @@ -244,7 +243,7 @@ void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaSte {//binary search uint i1=isa-isaStep; - uint i2=isa; + uint i2=min(isa,P->nSA-1); while (i1+1 Date: Mon, 21 Dec 2015 17:58:43 -0500 Subject: [PATCH 178/536] Increased speed of the suffix array generation. --- genomeGenerate.cpp | 62 ++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index d12f5fc..6ff4eee 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -31,38 +31,46 @@ inline int funCompareSuffixes ( const void *a, const void *b){ uint va=0,vb=0; uint8 *va1, *vb1; - bool aeqb=true; - while (aeqb) { + while (jj < globalL) { va=*(ga-jj); vb=*(gb-jj); - va1=(uint8*) &va; - vb1=(uint8*) &vb; - for (ii=7;ii>=0;ii--) - { - if (va1[ii]!=vb1[ii] || va1[ii]==5) + + #define has5(v) ((((v)^0x0505050505050505) - 0x0101010101010101) & ~((v)^0x0505050505050505) & 0x8080808080808080) + + if (has5(va) && has5(vb)) + {//there is 5 in the sequence - only compare bytes before 5 + va1=(uint8*) &va; + vb1=(uint8*) &vb; + for (ii=7;ii>=0;ii--) { - aeqb=false; - break; + if (va1[ii]>vb1[ii]) + { + return 1; + } else if (va1[ii] *((uint*)b) ) + {//anti-stable order,since indexes are sorted in the reverse order + return -1; + } else + {//a cannot be equal to b + return 1; + }; + }; }; - }; - jj++; - }; - - if (va1[ii]>vb1[ii]) - { - return 1; - } else if (va1[ii] *((uint*)b) ) - {//anti-stable order,since indexes are sorted in the reverse order - return -1; } else - {//a cannot be equal to b - return 1; + {//no 5, simple comparison + if (va>vb) + { + return 1; + } else if (vagenomeSuffixLengthMax/sizeof(uint); //count the number of indices with 4nt prefix uint indPrefN=1LLU << 16; uint* indPrefCount = new uint [indPrefN]; From 5e7cd8dcc46dde10a3da576fcd20049ce645679d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 23 Dec 2015 12:17:36 -0500 Subject: [PATCH 179/536] 2.5.0c --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index b767c90..ed98e0e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.0b_modified" +#define STAR_VERSION "STAR_2.5.0c" From fcee10c24cdc8c40edf34ca96f3829106c4b0dec Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 23 Dec 2015 12:56:31 -0500 Subject: [PATCH 180/536] Implementing paired output for single-end alignments. --- Parameters.cpp | 35 +- Parameters.h | 10 +- ReadAlign_outputAlignments.cpp | 2 +- parametersDefault | 6 +- parametersDefault.xxd | 2625 ++++++++++++++++---------------- 5 files changed, 1375 insertions(+), 1303 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index e893883..7085eb7 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -82,7 +82,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmode", &outSAMmode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMstrandField", &outSAMstrandField)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMattributes", &outSAMattributes)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMunmapped", &outSAMunmapped)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMunmapped", &outSAMunmapped.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMorder", &outSAMorder)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMprimaryFlag", &outSAMprimaryFlag)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMreadID", &outSAMreadID)); @@ -1125,6 +1125,39 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //genome parameters genomeChrBinNbases=1LLU<logMain, EXIT_CODE_PARAMETER, *this); + }; + + for (uint ii=1;iilogMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" < outSAMattributes, outSAMheaderHD, outSAMheaderPG; vector outSAMattrRGline,outSAMattrRGlineSplit,outSAMattrRG; uint outSAMmultNmax,outSAMattrIHstart; @@ -134,6 +134,14 @@ class Parameters { uint64 *outBAMsortingBinStart; //genomic starts for bins for sorting BAM files uint16 outSAMflagOR, outSAMflagAND; + struct + { + vector mode; + bool yes; + bool within;//output unmapped reads within SAM/BAM files + bool keepPairs;//keep mates together + } outSAMunmapped; + struct { vector mode; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 95657e2..2a52c39 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -148,7 +148,7 @@ void ReadAlign::outputAlignments() { statsRA.unmappedAll++; }; - if (unmapType>=0 && P->outSAMunmapped=="Within") {//unmapped read, at least one mate + if (unmapType>=0 && P->outSAMunmapped.within) {//unmapped read, at least one mate if (P->outBAMunsorted || P->outBAMcoord || P->quant.trSAM.yes) {//BAM output uint mateChr=(uint) -1, mateStart=(uint) -1; uint8_t mateStr=0; diff --git a/parametersDefault b/parametersDefault index 0111a98..235a39e 100644 --- a/parametersDefault +++ b/parametersDefault @@ -219,9 +219,13 @@ outSAMattrIHstart 1 int>=0: start value for the IH attribute. 0 may be required by some downstream software, such as Cufflinks or StringTie. outSAMunmapped None - string: output of unmapped reads in the SAM format + string(s): output of unmapped reads in the SAM format + 1st word: None ... no output Within ... output unmapped reads within the main SAM file (i.e. Aligned.out.sam) + 2nd word: + KeepPairs ... record unmapped mate for each alignment, and, in case of unsroted output, keep it adjacent to its mapped mate. + Only affects multi-mapping reads outSAMorder Paired string: type of sorting for the SAM output diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 6931b04..3f468be 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -969,1347 +969,1374 @@ unsigned char parametersDefault[] = { 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, - 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, + 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, + 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, + 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, + 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, + 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, + 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, + 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, - 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, - 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, - 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, - 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, - 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, - 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, - 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, - 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, - 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, - 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, - 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, - 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, - 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, - 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, - 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, - 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, - 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, - 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, - 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, - 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, - 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, - 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, - 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, - 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, - 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, - 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, - 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, - 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, - 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, - 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, + 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, + 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, + 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, + 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, + 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, + 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, + 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, + 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, + 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, + 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, + 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, + 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, + 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, + 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, + 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, + 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, + 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, + 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, + 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, + 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, + 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, + 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, + 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, + 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, + 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, + 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, + 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, + 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, + 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, - 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, - 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, - 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, - 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, - 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, - 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, - 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, - 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x70, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, - 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, - 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, + 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x61, 0x70, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, + 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, + 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, - 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, + 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, - 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, - 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, - 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, - 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, - 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, - 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, + 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, + 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, - 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, - 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, + 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, - 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, - 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, - 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, + 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, + 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, - 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, - 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, + 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, + 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, + 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, + 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, + 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, - 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, + 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, - 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, + 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, + 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, - 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, - 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, - 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, + 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, + 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, + 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, + 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, + 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, - 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, - 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, - 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, - 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, - 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, + 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, + 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, + 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, + 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, + 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, + 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, - 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, - 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, - 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, + 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, - 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, - 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, - 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, + 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, + 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, - 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, - 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, + 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, + 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, + 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, - 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, - 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, + 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, + 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 27738; +unsigned int parametersDefault_len = 28061; From e1634c024f6d86ba100860c1f64cbcd96c40ddcb Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 4 Jan 2016 16:20:44 -0500 Subject: [PATCH 181/536] Implemented --outSAMunmapped Within KeepPairs option to record unmapped mate adjacent to the mapped one, in case single-end alignments are allowed. --- ReadAlign_alignBAM.cpp | 28 +- ReadAlign_outputAlignments.cpp | 130 +- ReadAlign_outputTranscriptSAM.cpp | 32 +- VERSION | 2 +- parametersDefault | 19 +- parametersDefault.xxd | 3045 +++++++++++++++-------------- 6 files changed, 1692 insertions(+), 1564 deletions(-) diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 6254dde..c1004a8 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -171,18 +171,36 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint uint trimL1, trimR1; if (alignType>=0) {//this mate is unmapped - if (mateMapped!=NULL && mateMapped[imate]) continue; //this mate was mapped, do not record it aws unmapped + if (mateMapped!=NULL && mateMapped[imate]) continue; //this mate was mapped, do not record it as unmapped samFLAG=0x4; if (P->readNmates==2) {//paired read samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); if (mateMapped[1-imate]) {//mate mapped - if (trBest->Str!=1-imate) samFLAG+=0x20;//mate strand reverted + if (trOut.Str!=(1-imate)) + {//mate strand reverted + samFLAG+=0x20; + }; + mateChr=trOut.Chr; + trChrStart=P->chrStart[mateChr]; + mateStart=trOut.exons[0][EX_G] - trChrStart; + mateStrand= trOut.Str == (1-imate) ? 0 : 1; + + if (!trOut.primaryFlag) + {//mapped mate is not primary + samFLAG+=0x100; + }; + } else {//mate unmapped samFLAG+=0x8; }; }; if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + + if (mateMapped[1-imate]) + {//mate is mapped, fill the infromation from trOut + + }; Mate=imate; Str=Mate; @@ -190,12 +208,12 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN=0; attrN+=bamAttrArrayWriteInt(0,"NH",attrOutArray+attrN,P); attrN+=bamAttrArrayWriteInt(0,"HI",attrOutArray+attrN,P); - attrN+=bamAttrArrayWriteInt(trBest->maxScore,"AS",attrOutArray+attrN,P); - attrN+=bamAttrArrayWriteInt(trBest->nMM,"nM",attrOutArray+attrN,P); + attrN+=bamAttrArrayWriteInt(trOut.maxScore,"AS",attrOutArray+attrN,P); + attrN+=bamAttrArrayWriteInt(trOut.nMM,"nM",attrOutArray+attrN,P); attrN+=bamAttrArrayWrite((to_string((uint) alignType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers if (!P->outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); - } else { + } else {//this mate is mapped if (flagPaired) {//paired reads samFLAG=0x0001; if (iExMate==trOut.nExons-1) {//single mate diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 2a52c39..f10edb4 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -103,33 +103,96 @@ void ReadAlign::outputAlignments() { exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; - uint nTrOut=min(P->outSAMmultNmax,nTr); //number of to write to SAM/BAM files + uint nTrOut=min(P->outSAMmultNmax,nTr); //number of to write to SAM/BAM files - if (P->outSAMbool && outSAMfilterYes){//SAM output - for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; + mateMapped[trMult[iTr]->exons[trBest->nExons-1][EX_iFrag]]=true; + + //mateMapped1 = true if a mate is present in this transcript + bool mateMapped1[2]={false,false}; + mateMapped1[trMult[iTr]->exons[0][EX_iFrag]]=true; + mateMapped1[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; + + if (P->outSAMbool && outSAMfilterYes) + {//SAM output outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); + if (P->outSAMunmapped.keepPairs && P->readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) + {//keep pairs && paired reads && one of the mates not mapped in this transcript + outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, outSAMstream); + }; }; - }; - if ((P->outBAMunsorted || P->outBAMcoord) && outSAMfilterYes) {//BAM output - for (uint iTr=0;iTroutBAMunsorted || P->outBAMcoord) && outSAMfilterYes) + {//BAM output alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) {//output each mate - if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); + + if (P->outBAMunsorted) + {//unsorted + for (uint imate=0; imatereadNmates; imate++) + {//output each mate + outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); + }; + if (P->outSAMunmapped.keepPairs && P->readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) + {//keep pairs && paired reads && one of the mates not mapped in this transcript + alignBAM(*trMult[iTr], 0, 0, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, 4, mateMapped1, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + for (uint imate=0; imatereadNmates; imate++) + {//output each mate + outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); + }; + }; }; - }; + + if (P->outBAMcoord) + {//coordinate sorted + for (uint imate=0; imatereadNmates; imate++) + {//output each mate + outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); + }; + }; + + }; }; - if (P->outSJfilterReads=="All" || nTr==1) { + if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) + { + unmapType=4; + }; + + if (unmapType==4) + {//output unmapped end for single-end alignments + if (P->outSAMbool && !P->outSAMunmapped.keepPairs && outSAMfilterYes) + { + outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); + }; + + if ( (P->outBAMcoord || (P->outBAMunsorted && !P->outSAMunmapped.keepPairs) ) && outSAMfilterYes) + {//BAM output + alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + for (uint imate=0; imatereadNmates; imate++) + {//alignBAM output is empty for mapped mate, but still need to scan through it + if (P->outBAMunsorted && !P->outSAMunmapped.keepPairs) + { + outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + }; + if (P->outBAMcoord) + {//KeepPairs option does not affect for sorted BAM since we do not want multiple entries for the same unmapped read + outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); + }; + }; + }; + }; + + if (P->outSJfilterReads=="All" || nTr==1) + { uint sjReadStartN=chunkOutSJ->N; - for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; - mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; - if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) unmapType=4; if ( P->quant.geCount.yes ) { @@ -148,24 +211,29 @@ void ReadAlign::outputAlignments() { statsRA.unmappedAll++; }; - if (unmapType>=0 && P->outSAMunmapped.within) {//unmapped read, at least one mate - if (P->outBAMunsorted || P->outBAMcoord || P->quant.trSAM.yes) {//BAM output - uint mateChr=(uint) -1, mateStart=(uint) -1; - uint8_t mateStr=0; - if (unmapType==4) {//other mate is mapped, record its position - mateChr=trBest->Chr; - mateStart=trBest->exons[0][EX_G]; - mateStr=(uint8_t) (trBest->Str!=trBest->exons[0][EX_iFrag]); - }; - alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], mateChr, mateStart, mateStr, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) {//output each mate - if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); - //TODO clean for single-end alignments of PE reads - if ( P->quant.trSAM.yes && unmapType!=4) outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); + if ( P->outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped + if (P->outBAMcoord || P->outBAMunsorted || P->quant.trSAM.yes) + {//BAM output + alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + for (uint imate=0; imatereadNmates; imate++) + {//output each mate + if (P->outBAMunsorted) + { + outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + }; + if (P->quant.trSAM.yes) + { + outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + }; + if (P->outBAMcoord) + { + outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); + }; }; }; - if (P->outSAMbool) { + + if (P->outSAMbool) + {//output SAM outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); }; }; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index f2bcade..bf7450d 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -8,32 +8,46 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i uint outStreamPos0=(uint)outStream->tellp(); - if (unmapType>=0) {//unmapped reads: SAM - for (uint imate=0;imatereadNmates;imate++) {//cycle over mates - if (!mateMapped[imate]) { + if (unmapType>=0) + {//unmapped reads: SAM + for (uint imate=0;imatereadNmates;imate++) + {//cycle over mates + if (!mateMapped[imate]) + { uint16 samFLAG=0x4; - if (P->readNmates==2) {//paired read + if (P->readNmates==2) + {//paired read samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); - if (mateMapped[1-imate]) {//mate mapped - if (trBest->Str!=1-imate) samFLAG+=0x20;//mate strand reverted - } else {//mate unmapped + if (mateMapped[1-imate]) + {//mate mapped + if ( trOut.Str != (1-imate) ) + { + samFLAG+=0x20;//mate strand reverted + }; + } else + {//mate unmapped samFLAG+=0x8; }; }; if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + if (mateMapped[1-imate] && !trOut.primaryFlag) + {//mapped mate is not primary + samFLAG+=0x100; + }; + *outStream << readName+1 <<"\t"<< samFLAG \ <<"\t"<< '*' <<"\t"<< '0' <<"\t"<< '0' <<"\t"<< '*'; if (mateMapped[1-imate]) {//mate is mapped - *outStream <<"\t"<< P->chrName[trBest->Chr] <<"\t"<< trBest->exons[0][EX_G] + 1 - P->chrStart[trBest->Chr]; + *outStream <<"\t"<< P->chrName[trOut.Chr] <<"\t"<< trOut.exons[0][EX_G] + 1 - P->chrStart[trOut.Chr]; } else { *outStream <<"\t"<< '*' <<"\t"<< '0'; }; *outStream <<"\t"<< '0' <<"\t"<< Read0[imate] <<"\t"<< (readFileType==2 ? Qual0[imate]:"*") \ - <<"\tNH:i:0" <<"\tHI:i:0" <<"\tAS:i:"<maxScore <<"\tnM:i:"<nMM<<"\tuT:A:" <outSAMattrRG.empty()) *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); *outStream <<"\n"; diff --git a/VERSION b/VERSION index ed98e0e..5f61549 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.0c" +#define STAR_VERSION "STAR_2.5.0c_modified" diff --git a/parametersDefault b/parametersDefault index 235a39e..3bb30eb 100644 --- a/parametersDefault +++ b/parametersDefault @@ -174,7 +174,7 @@ outStd Log BAM_Quant ... alignments to transcriptome in BAM format, unsorted. Requires --quantMode TranscriptomeSAM outReadsUnmapped None - string: output of unmapped reads (besides SAM) + string: output of unmapped and partially mapped (i.e. mapped only one mate of a paired end read) reads in separate file(s). None ... no output Fastx ... output in separate fasta/fastq files, Unmapped.out.mate1/2 @@ -324,29 +324,30 @@ outFilterMultimapScoreRange 1 int: the score range below the maximum score for multimapping alignments outFilterMultimapNmax 10 - int: read alignments will be output only if the read maps fewer than this value, otherwise no alignments will be output + int: maximum number of loci the read is allowed to map to. Alignments (all of them) will be output only if the read maps to no more loci than this value. + Otherwise no alignments will be output, and the read will be counted as "mapped to too many loci" in the Log.final.out . outFilterMismatchNmax 10 - int: alignment will be output only if it has fewer mismatches than this value + int: alignment will be output only if it has no more mismatches than this value. outFilterMismatchNoverLmax 0.3 - int: alignment will be output only if its ratio of mismatches to *mapped* length is less than this value + int: alignment will be output only if its ratio of mismatches to *mapped* length is less than or equal to this value. outFilterMismatchNoverReadLmax 1 - int: alignment will be output only if its ratio of mismatches to *read* length is less than this value + int: alignment will be output only if its ratio of mismatches to *read* length is less than or equal to this value. outFilterScoreMin 0 - int: alignment will be output only if its score is higher than this value + int: alignment will be output only if its score is higher than or equal to this value. outFilterScoreMinOverLread 0.66 - float: outFilterScoreMin normalized to read length (sum of mates' lengths for paired-end reads) + float: same as outFilterScoreMin, but normalized to read length (sum of mates' lengths for paired-end reads) outFilterMatchNmin 0 - int: alignment will be output only if the number of matched bases is higher than this value + int: alignment will be output only if the number of matched bases is higher than or equal to this value. outFilterMatchNminOverLread 0.66 - float: outFilterMatchNmin normalized to read length (sum of mates' lengths for paired-end reads) + float: sam as outFilterMatchNmin, but normalized to the read length (sum of mates' lengths for paired-end reads). outFilterIntronMotifs None string: filter alignment using their motifs diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 3f468be..98a4ff4 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -753,1590 +753,1617 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x28, 0x62, 0x65, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x53, 0x41, 0x4d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, + 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, + 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, + 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, + 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, + 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, + 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, - 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, - 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, - 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, - 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, - 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, - 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, - 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, - 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, - 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, + 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, + 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, - 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, + 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, + 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, + 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, + 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, + 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, - 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, - 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, - 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, - 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, - 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, - 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, - 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, - 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, - 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, + 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, + 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, + 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, + 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, - 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, - 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, - 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, - 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, - 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, - 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, - 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, - 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, - 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, - 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, - 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, - 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, + 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, + 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, + 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, + 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, + 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, + 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, + 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, + 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, + 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, + 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, - 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, - 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, - 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, - 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, - 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, - 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, - 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, - 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, - 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, - 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, - 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, - 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, - 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, - 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, - 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, - 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, - 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, - 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, + 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, + 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, + 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, + 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, + 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, + 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, + 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, + 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, + 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, + 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, - 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, - 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, - 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, + 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, - 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, - 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, - 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, - 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, + 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, + 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, + 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, - 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, - 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, - 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, + 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, + 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, + 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, + 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, + 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, + 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, - 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, + 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, - 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, + 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, + 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, - 0x61, 0x70, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, - 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, + 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, + 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, - 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, + 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, - 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, - 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, + 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, + 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, + 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, + 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, + 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, + 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, + 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, - 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, + 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, - 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, + 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, + 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, + 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, + 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, - 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, - 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, - 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, - 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, - 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, - 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, - 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, + 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, + 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, + 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, + 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, + 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, + 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, - 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, - 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, - 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, - 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, - 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, - 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, - 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, - 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, - 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, - 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, - 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, + 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, - 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, - 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, + 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, - 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, - 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, - 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, - 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, - 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, - 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, - 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, + 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, + 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, - 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, - 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, - 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, - 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 28061; +unsigned int parametersDefault_len = 28389; From 86fbbdaddfb5dd426cf8cbbcbec07f57ec9d472f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 8 Jan 2016 18:15:30 -0500 Subject: [PATCH 182/536] Cleaned up the code to remove compilation warnings. --- BAMbinSortByCoordinate.cpp | 2 +- BAMbinSortByCoordinate.h | 2 +- BAMfunctions.cpp | 2 +- Parameters.cpp | 7 ++++--- ReadAlign_alignBAM.cpp | 2 +- ReadAlign_chimericDetection.cpp | 4 ++-- ReadAlign_mapOneRead.cpp | 5 ++--- ReadAlign_outputTranscriptSAM.cpp | 2 +- ReadAlign_stitchWindowSeeds.cpp | 6 +----- STAR.cpp | 7 ++++--- Stats.cpp | 2 +- Stats.h | 2 +- SuffixArrayFuns.cpp | 10 +++++++--- SuffixArrayFuns.h | 1 - Transcriptome_geneCountsAddAlign.cpp | 2 +- bamRemoveDuplicates.cpp | 4 ++-- extendAlign.cpp | 4 ++-- genomeGenerate.cpp | 9 +++++++++ genomeSAindex.cpp | 2 +- signalFromBAM.cpp | 6 +++--- stitchAlignToTranscript.cpp | 4 ++-- 21 files changed, 47 insertions(+), 38 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index ec35650..55287af 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -3,7 +3,7 @@ #include "serviceFuns.cpp" #include "BAMfunctions.h" -void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters *P) { +void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, Parameters *P) { if (binS==0) return; //nothing to do for empty bins //allocate arrays diff --git a/BAMbinSortByCoordinate.h b/BAMbinSortByCoordinate.h index 21b6cf2..fb87a00 100644 --- a/BAMbinSortByCoordinate.h +++ b/BAMbinSortByCoordinate.h @@ -4,6 +4,6 @@ #include "Parameters.h" #include SAMTOOLS_BGZF_H -void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters *P); +void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, Parameters *P); #endif \ No newline at end of file diff --git a/BAMfunctions.cpp b/BAMfunctions.cpp index 28584d5..6329478 100644 --- a/BAMfunctions.cpp +++ b/BAMfunctions.cpp @@ -29,7 +29,7 @@ string bam_cigarString (bam1_t *b) {//output CIGAR string int bam_read1_fromArray(char *bamChar, bam1_t *b) //modified from samtools bam_read1 to assign BAM record in mmemry to bam structure { bam1_core_t *c = &b->core; - int32_t block_len, ret, i; + 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 diff --git a/Parameters.cpp b/Parameters.cpp index 7085eb7..e3eb17d 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1080,7 +1080,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //chimeric chimPar.filter.genomicN=false; - for (int ii=0; iilogMain, EXIT_CODE_INPUT_FILES, *this); }; + char chrInChar[1000]; + while (chrStreamIn.good()) { string chrIn; - char chrInChar[1000]; chrStreamIn.getline(chrInChar,1000); chrIn=chrInChar; if (chrIn=="") break; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index c1004a8..b7c1737 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -168,7 +168,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint int MAPQ=0; uint32 attrN=0; char attrOutArray[BAM_ATTR_MaxSize]; - uint trimL1, trimR1; + uint trimL1=0, trimR1=0; if (alignType>=0) {//this mate is unmapped if (mateMapped!=NULL && mateMapped[imate]) continue; //this mate was mapped, do not record it as unmapped diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 6d54fe5..e26c46c 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -347,7 +347,7 @@ bool ReadAlign::chimericDetection() { uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering uint mateChr,mateStart; uint8_t mateStrand; - for (int itr=0;itr<(int)chimN;itr++) {//generate bam for all chimeric pieces + for (uint itr=0;itr0) {//check if the 1st piece in reveree direction does not need to be remapped Lmapped=0; - uint Nrep2=0; while ( istart*Lstart + Lmapped + P->minLmap < splitR[1][ip] ) {//map until unmapped portion is <=minLmap uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart + Lmapped ) : \ ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1-Lmapped); //choose Shift for forward or reverse -// uint seedLength=min(splitR[1][ip] - Lmapped - istart*Lstart, P->seedSearchLmax); + //uint seedLength=min(splitR[1][ip] - Lmapped - istart*Lstart, P->seedSearchLmax); uint seedLength=splitR[1][ip] - Lmapped - istart*Lstart; - Nrep2=maxMappableLength2strands(Shift, seedLength, iDir, 0, P->nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple + maxMappableLength2strands(Shift, seedLength, iDir, 0, P->nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple if (iDir==0 && istart==0 && Lmapped==0 && Shift+L == splitR[1][ip] ) {//this piece maps full length and does not need to be mapped from the opposite direction flagDirMap=false; }; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index bf7450d..6f3f7c1 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -257,7 +257,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i }; tagMD+=to_string(matchN); }; - for (int ii=0;iioutSAMattrOrder.size();ii++) { + for (uint ii=0;iioutSAMattrOrder.size();ii++) { switch (P->outSAMattrOrder[ii]) { case ATTR_NH: *outStream <<"\tNH:i:" << nTrOut; diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index b4b2ca8..f5cc220 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -130,16 +130,12 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* trA.maxScore=Score; {//extend to the left - uint iS1=seedChain[seedN-1]; trA1=*trInit; if ( trA.exons[0][EX_R]>0 \ && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend trA.add(&trA1); -// trA.maxScore += trA1.maxScore + WA[iW][iS1][WA_Length]; -// trA.nMatch += trA1.nMatch + WA[iW][iS1][WA_Length]; //# of matches -// trA.nMM += trA1.nMM; trA.exons[0][EX_R] -= trA1.extendL; trA.exons[0][EX_G] -= trA1.extendL; @@ -254,7 +250,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* //check exons lenghts including repeats, do not report a transcript with short exons // for (uint isj=0;isj=0 && \ -// ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] \ +// ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] // || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1]) ) { // return;//do not record this transcript in wTr // }; diff --git a/STAR.cpp b/STAR.cpp index 3f4106d..86df04e 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -159,7 +159,7 @@ int main(int argInN, char* argIn[]) { P->inOut->logProgress << timeMonthDayTime(rawtime) <<"\tFinished 1st pass mapping\n"; *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished 1st pass mapping\n" <twoPass.dir + "/Log.final.out").c_str()); - g_statsAll.reportFinal(logFinal1,P1); + g_statsAll.reportFinal(logFinal1); P->twoPass.pass2=true;//starting the 2nd pass P->twoPass.pass1sjFile=P->twoPass.dir+"/SJ.out.tab"; @@ -376,7 +376,7 @@ int main(int argInN, char* argIn[]) { }; sleep(0.1); }; - BAMbinSortByCoordinate(ibin,binN,binS,P->runThreadN,P->outBAMsortTmpDir,P->inOut->outBAMfileCoord, P); + BAMbinSortByCoordinate(ibin,binN,binS,P->runThreadN,P->outBAMsortTmpDir, P); #pragma omp critical totalMem-=newMem;//"release" RAM }; @@ -412,7 +412,7 @@ int main(int argInN, char* argIn[]) { g_statsAll.progressReport(P->inOut->logProgress); P->inOut->logProgress << "ALL DONE!\n"<inOut->logFinal.open((P->outFileNamePrefix + "Log.final.out").c_str()); - g_statsAll.reportFinal(P->inOut->logFinal,P); + g_statsAll.reportFinal(P->inOut->logFinal); *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... Finished successfully\n" <inOut->logMain << "ALL DONE!\n"<closeReadsFiles();//this will kill the readFilesCommand processes if necessary mainGenome.~Genome(); //need explicit call because of the 'delete P->inOut' below, which will destroy P->inOut->logStdOut + ///@todo create Destructor to destroy P->inOut delete P->inOut; //to close files delete P; diff --git a/Stats.cpp b/Stats.cpp index 1b22cbf..bbbd51d 100644 --- a/Stats.cpp +++ b/Stats.cpp @@ -94,7 +94,7 @@ void Stats::progressReport(ofstream &progressStream) { }; }; -void Stats::reportFinal(ofstream &streamOut, Parameters *P) { +void Stats::reportFinal(ofstream &streamOut) { int w1=50; time( &timeFinish); diff --git a/Stats.h b/Stats.h index ab56acd..0efe5f3 100644 --- a/Stats.h +++ b/Stats.h @@ -32,6 +32,6 @@ class Stats { void addStats(Stats &S); void progressReportHeader(ofstream &progressStream); void progressReport(ofstream &progressStream) ; - void reportFinal(ofstream &streamOut, Parameters *P); + void reportFinal(ofstream &streamOut); }; #endif diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index f4837ac..c1ef95b 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -188,14 +188,15 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint return i2-i1+1; }; -uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P) { +/* +uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, uint i1, uint i2, uint L, Parameters* P) { // binary search in SA space // s[0],s[1] - sequence, complementary sequence // S - start offset // N - sequence length // g - genome sequence // SA - suffix array - // dirR - direction, true=froward, false=reverse!!!!!!!NOT WORKING + ///@todo dirR - direction, true=froward, false=reverse!!!!!!!NOT WORKING // i1,i2 = starting indices in SA // L - starting length // output: SA index < searched string, i.e. g[SA[index]]g[ii]) {compRes=true;} else {compRes=false;}; return N; //exact match - } else if (!dirG) { + } + else + { char* s = s2[1] + S + L; g += P->nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) diff --git a/SuffixArrayFuns.h b/SuffixArrayFuns.h index efbeb50..273fe30 100644 --- a/SuffixArrayFuns.h +++ b/SuffixArrayFuns.h @@ -11,7 +11,6 @@ uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters* P); void writePacked( char* a, uint jj, uint x); uint readPacked(char* a, uint jj); -uint suffixArraySearch(char** s, uint S, uint N, char* g, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P); uint suffixArraySearch1(char** s2, uint S, uint N, char* G, uint64 gInsert, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P); int64 funCalcSAi(char* G, uint iL); uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters* P, int & iL4); diff --git a/Transcriptome_geneCountsAddAlign.cpp b/Transcriptome_geneCountsAddAlign.cpp index 20820d7..f0a415f 100644 --- a/Transcriptome_geneCountsAddAlign.cpp +++ b/Transcriptome_geneCountsAddAlign.cpp @@ -44,7 +44,7 @@ void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignm } else if (gene1.at(itype)==-2) { continue;//this align was already founf to be ambig for this strand - } else if (gene1.at(itype)!=exG.g[e1]) {//another gene overlaps this read + } else if (gene1.at(itype)!=(int32)exG.g[e1]) {//another gene overlaps this read gene1[itype]=-2;//mark ambiguous };//otherwise it's the same gene }; diff --git a/bamRemoveDuplicates.cpp b/bamRemoveDuplicates.cpp index d2c3b39..fd5e733 100644 --- a/bamRemoveDuplicates.cpp +++ b/bamRemoveDuplicates.cpp @@ -20,7 +20,7 @@ int funCompareNames(const void *a, const void *b) {//compare read names compareReturn(la,lb) else { char* ca=(char*) (pa+9); char* cb=(char*) (pb+9); - for (int ii=0;ii>16; @@ -98,7 +98,7 @@ int funCompareCoordFlagCigarSeq(const void *a, const void *b) { compareReturn((sa[ii/2]>>4),(sb[ii/2]>>4)); }; } else { - int ii=pa2[5]-g_bamRemoveDuplicatesMate2basesN; + uint32 ii=pa2[5]-g_bamRemoveDuplicatesMate2basesN; if (ii%2>0) { compareReturn((sa[ii/2]&15),(sb[ii/2]&15)); ++ii; diff --git a/extendAlign.cpp b/extendAlign.cpp index fdcdad3..1dde38e 100644 --- a/extendAlign.cpp +++ b/extendAlign.cpp @@ -23,7 +23,7 @@ if (extendToEnd) {//end to end extension iS=dR*iExt; iG=dG*iExt; - if ((gStart+iG)==-1 || G[iG]==5) {//prohibit extension through chr boundary + if ((gStart+iG)==(uint)(-1) || G[iG]==5) {//prohibit extension through chr boundary trA->extendL=0; trA->maxScore=-999999999; trA->nMatch=0; @@ -61,7 +61,7 @@ for (int i=0;i<(int) L;i++) { iS=dR*i; iG=dG*i; - if ((gStart+iG)==-1 || G[iG]==5 || R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through chr boundary, or through the spacer between fragments + if ((gStart+iG)==(uint)(-1) || G[iG]==5 || R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through chr boundary, or through the spacer between fragments if (R[iS]>3 || G[iG]>3) continue;//no penalties for Ns in reads or genome if (G[iG]==R[iS]) {//Match diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 6ff4eee..acf9465 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -72,6 +72,15 @@ inline int funCompareSuffixes ( const void *a, const void *b){ }; jj++; }; + + //suffixes are equal up to globalL, no simply compare the indexes + if ( *((uint*)a) > *((uint*)b) ) + {//anti-stable order,since indexes are sorted in the reverse order + return -1; + } else + {//a cannot be equal to b + return 1; + }; }; // inline bool funCompareSuffixesBool ( const void *a, const void *b) diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 124ec0e..85349e3 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -180,7 +180,7 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexNbases; iL1++) { SAi.writePacked(P->genomeSAindexStart[iL1]+ind0[iL1],SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] | P->SAiMarkNmaskC); // if (SAi[P->genomeSAindexStart[iL]+ind0[iL1]] != SAi1[P->genomeSAindexStart[iL]+ind0[iL1]]) diff --git a/signalFromBAM.cpp b/signalFromBAM.cpp index 4c5a7af..4237aea 100644 --- a/signalFromBAM.cpp +++ b/signalFromBAM.cpp @@ -60,7 +60,7 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter } else if (P.outWigFlags.norm==1) {//normlaized normFactor[0]=1.0e6 / nUniq; normFactor[1]=1.0e6 / (nUniq+nMult); - for (uint32_t is=0;iscore.tid!=iChr || bamBytes1<0) { //output to file if (iChr!=-999) {//iChr=-999 marks chromosomes that are not output, including unmapped reads - for (uint32_t is=0;isnMM + nMM)<=outFilterMismatchNmaxTotal \ - && ( jCan<0 || (jCan<7 && nMM<=P->alignSJstitchMismatchNmax[(jCan+1)/2]) ) ) + && ( jCan<0 || (jCan<7 && nMM<= (uint) P->alignSJstitchMismatchNmax[(jCan+1)/2]) ) ) #endif {//stitching worked only if there no mis-matches for non-GT/AG junctions trA->nMM += nMM; @@ -373,7 +373,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->nMatch += L; trExtend.reset(); -// if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + //if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, //if end extension needs to be forced, use large length. Otherwise, only extend until the beginning of the transcript uint extlen=P->alignEndsType.ext[iFragB][1] ? DEF_readSeqLengthMax : gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R]; if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, extlen, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ From ca04ad57f42c62fac324292375a6704e07803d31 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 13 Jan 2016 16:35:41 -0500 Subject: [PATCH 183/536] Fixed a bug in --quantMode TranscriptomeSAM that prevented output to Aligned.toTranscriptome.out.bam of the reads mapped to the very last annotated transcript. --- Transcriptome_quantAlign.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 923dff1..5db324c 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -100,7 +100,7 @@ uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall) { uint32 nAtr=0; //number of alignments to the transcriptome //binary search through transcript starts - uint32 tr1=binarySearch1(aG.exons[0][EX_G], trS, nTr); + uint32 tr1=binarySearch1a(aG.exons[0][EX_G], trS, nTr); if (tr1==(uint32) -1) return 0; //alignment outside of range of all transcripts uint aGend=aG.exons[aG.nExons-1][EX_G]; From b1c52d77d5db2bad3025a3a245a2546a0e2f38e4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 15 Jan 2016 16:14:06 -0500 Subject: [PATCH 184/536] Fixed a bug causing crashed introduced in the previous patch. --- BAMbinSortByCoordinate.cpp | 12 +- ReadAlign_outputAlignments.cpp | 2 +- parametersDefault | 8 +- parametersDefault.xxd | 1684 ++++++++++++++++---------------- 4 files changed, 856 insertions(+), 850 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index 55287af..86b0f68 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -7,15 +7,21 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st if (binS==0) return; //nothing to do for empty bins //allocate arrays - char *bamIn=new char[binS]; + char *bamIn=new char[binS+1]; uint *startPos=new uint[binN*3]; uint bamInBytes=0; //load all aligns for (uint it=0; it0) + { + bamInStream.seekg(std::ios::beg); + bamInStream.read(bamIn+bamInBytes,s1);//read the whole file + }; bamInBytes += bamInStream.gcount(); bamInStream.close(); remove(bamInFile.c_str()); diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index f10edb4..9714fb3 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -109,7 +109,7 @@ void ReadAlign::outputAlignments() { {//write all transcripts //mate mapped = true if a mate was present in one of the trancsripts mateMapped[trMult[iTr]->exons[0][EX_iFrag]]=true; - mateMapped[trMult[iTr]->exons[trBest->nExons-1][EX_iFrag]]=true; + mateMapped[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; //mateMapped1 = true if a mate is present in this transcript bool mateMapped1[2]={false,false}; diff --git a/parametersDefault b/parametersDefault index 3bb30eb..bdf1482 100644 --- a/parametersDefault +++ b/parametersDefault @@ -331,17 +331,17 @@ outFilterMismatchNmax 10 int: alignment will be output only if it has no more mismatches than this value. outFilterMismatchNoverLmax 0.3 - int: alignment will be output only if its ratio of mismatches to *mapped* length is less than or equal to this value. + float: alignment will be output only if its ratio of mismatches to *mapped* length is less than or equal to this value. -outFilterMismatchNoverReadLmax 1 - int: alignment will be output only if its ratio of mismatches to *read* length is less than or equal to this value. +outFilterMismatchNoverReadLmax 1.0 + float: alignment will be output only if its ratio of mismatches to *read* length is less than or equal to this value. outFilterScoreMin 0 int: alignment will be output only if its score is higher than or equal to this value. outFilterScoreMinOverLread 0.66 - float: same as outFilterScoreMin, but normalized to read length (sum of mates' lengths for paired-end reads) + float: same as outFilterScoreMin, but normalized to read length (sum of mates' lengths for paired-end reads) outFilterMatchNmin 0 int: alignment will be output only if the number of matched bases is higher than or equal to this value. diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 98a4ff4..41a35eb 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1494,876 +1494,876 @@ unsigned char parametersDefault[] = { 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, - 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, - 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, - 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, - 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, - 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, - 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, - 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, - 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, + 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, + 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, + 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, + 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, + 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, + 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, + 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, + 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, + 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, + 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, + 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, - 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, - 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, - 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, - 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, - 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, - 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, - 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, - 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, - 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, - 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, + 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, + 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, + 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, + 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, - 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, - 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, - 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, + 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, + 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, + 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, - 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, - 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, - 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, - 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, - 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, - 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, - 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, - 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, + 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, - 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, - 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, + 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, + 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, + 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, + 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, + 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, + 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, + 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, + 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, + 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, + 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, + 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, + 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, + 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, - 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, - 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, - 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, - 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, - 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, + 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, + 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, + 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, + 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, + 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, + 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, + 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 28389; +unsigned int parametersDefault_len = 28391; From a86c7bbb2104db4cbedb404a52cb9909625f8e18 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 19 Jan 2016 17:05:33 -0500 Subject: [PATCH 185/536] Updated manual. --- STARmanual.tex | 451 ------------------------------------------------- VERSION | 2 +- 2 files changed, 1 insertion(+), 452 deletions(-) delete mode 100644 STARmanual.tex diff --git a/STARmanual.tex b/STARmanual.tex deleted file mode 100644 index ab4107a..0000000 --- a/STARmanual.tex +++ /dev/null @@ -1,451 +0,0 @@ -\documentclass[12pt]{article} -\usepackage[colorlinks]{hyperref} -%\usepackage{color} -\usepackage[usenames,dvipsnames,svgnames,table]{xcolor} -\usepackage{tabularx} -\usepackage{longtable} -\usepackage{hanging} -\usepackage{changepage} -\usepackage[top=1in, bottom=1in, left=0.7in, right=0.7in]{geometry} -\usepackage{enumitem} - -\begin{document} -\hypersetup{ - linkcolor=MidnightBlue - } - - -%%%%%% global commands -% option name, no reference -\newcommand{\optn}[1]{\textcolor{violet}{\texttt{--#1}}} -% option name -\newcommand{\opt}[1]{\hyperlink{#1}{\optn{#1}}} -%option value, to be replaces with user value -\newcommand{\optv}[1]{\texttt{#1}} -\newcommand{\optvr}[1]{\textit{\texttt{#1}}} - -\newcommand{\code}[1]{\texttt{#1}} - -\newcommand{\codelines}[1]{\begin{adjustwidth}{0.5in}{0in} - \raggedright\texttt{#1} - \end{adjustwidth}} - -\newcommand{\ofilen}[1]{\texttt{#1}} - -\newcommand{\sechyperref}[1]{\hyperref[#1]{Section \ref{#1}. \nameref{#1}}} - -\title{STAR manual 2.4.2a} -\author{Alexnder Dobin\\ -dobin@cshl.edu} -\maketitle -\tableofcontents - -\newpage - -%\section{Introduction} -\section{Getting started.} -\subsection{Installation.} - -STAR source code and binaries can be downloaded from GitHub: named releases from \url{https://github.com/alexdobin/STAR/releases}, or the master branch from \url{https://github.com/alexdobin/STAR}. The pre-compiled STAR executables are located \code{bin/} subdirectory. The \code{static} executables are the easisest to use, as they are statically compiled and are not dependents on external libraries. - -To compile STAR from sources run \code{make} in the source directory for a Linux-like environment, or run \code{make STARforMac} for Mac OS X. This will produce the executable \code{'STAR'} inside the source directory. - -\subsubsection{Installation - in depth and troubleshooting.} -STAR is compiled with gcc c++ compiler and depends only on standard gcc libraries. Some generic instructions on installing correct gcc environments are given below. - -\paragraph{Ubuntu.}\hfill -\codelines{\$ sudo apt-get update\\ -\$ sudo apt-get install g++\\ -\$ sudo apt-get install make -} - -\paragraph{Red Hat, CentOS, Fedora.}\hfill -\codelines{\$ sudo yum update\\ - \$ sudo yum install make\\ - \$ sudo yum install gcc-c++\\ - \$ sudo yum install glibc-static - } - -\paragraph{SUSE.}\hfill -\codelines {\$ sudo zypper update\\ - \$ sudo zypper in gcc gcc-c++ -} - -\paragraph{Mac OS X.\newline} -Current versions of Mac OS X Xcode are shipped with Clang replacing the standard gcc compiler. Presently, standard Clang does not support OpenMP which creates problems for STAR compilation. One option to avoid this problem is to install gcc (preferrably using \code{homebrew} package manager). Another option is to add OpenMP functionality to Clang. - -\subsection{Basic workflow.} -Basic STAR workflow consists of 2 steps: -\begin{enumerate} -\item -Generating genome indexes files (see \sechyperref{Generating_genome_indexes}.\newline -In this step user supplied the reference genome sequences (FASTA files) and annotations (GTF file), from which STAR generate genome indexes that are utilized in the 2nd (mapping) step. The genome indexes are saved to disk and need only be generated \textbf{once} for each genome/annotation combination. A limited collection of STAR genomes is available from \url{http://labshare.cshl.edu/shares/gingeraslab/www-data/dobin/STAR/STARgenomes/}, however, it is strongly recommended that users generate their own genome indexes with most up-to-date assemblies and annotations. -\item -Mapping reads to the genome (see \sechyperref{Running_mapping_jobs}).\newline -In this step user supplies the genome files generated in the 1st step, as well as the RNA-seq reads (sequences) in the form of FASTA or FASTQ files. STAR maps the reads to the genome, and writes several output files, such as alignments (SAM/BAM), mapping summary statistics, splice junctions, unmapped reads, signal (wiggle) tracks etc. Output files are described in \sechyperref{Output_files}. Mapping is controlled by a variety of input parameters (options) that are described in brief in \sechyperref{Description_of_all_options}, and in more detail in \sechyperref{Running_mapping_jobs}. -\end{enumerate} - -STAR command line has the following format:\codelines{ -STAR --option1-name option1-value(s)--option2-name option2-value(s) ... -} -If an option can accept multiple values, they are separated by spaces, and in a few cases - by commas. - - -\section{Generating genome indexes.}\label{Generating_genome_indexes} -\subsection{Basic options.} -The basic options to generate genome indices are as follows: -\codelines{\opt{runThreadN} \optvr{NumberOfThreads}\\ -\opt{runMode} \optv{genomeGenerate}\\ -\opt{genomeDir} \optvr{/path/to/genomeDir}\\ -\opt{genomeFastaFiles} \optvr{/path/to/genome/fasta1 /path/to/genome/fasta2 ...} \\ -\opt{sjdbGTFfile} \optvr{/path/to/annotations.gtf}\\ -\opt{sjdbOverhang} \optvr{ReadLength-1}\\ -} - -\begin{itemize} -\item[] -\opt{runThreadN} option defines the number of threads to be used for genome generation, it has to be set to the number of available cores on the server node. - -\item[] -\opt{runMode} \optv{genomeGenerate} option directs STAR to run genome indices generation job. - -\opt{genomeDir} specifies path to the directory (henceforth called "genome directory" where the genome indices are stored. This directory has to be created (with \code{mkdir}) before STAR run and needs to writing permissions. The file system needs to have at least 100GB of disk space available for a typical mammalian genome. It is recommended to remove all files from the genome directory before running the genome generation step. This directory path will have to be supplied at the mapping step to identify the reference genome. - -\item[] -\opt{genomeFastaFiles} specified one or more FASTA files with the genome reference sequences. Multiple reference sequences (henceforth called “chromosomes”) are allowed for each fasta file. You can rename the chromosomes’ names in the chrName.txt keeping the order of the chromosomes in the file: the names from this file will be used in all output alignment files (such as .sam). The tabs are not allowed in chromosomes’ names, and spaces are not recommended. - -\item[] -\opt{sjdbGTFfile} specifies the path to the file with annotated transcripts in the standard GTF format. STAR will extract splice junctions from this file and use them to greatly improve accuracy of the mapping. While this is optional, and STAR can be run without annotations, using annotations is \textbf{highly recommended} whenever they are available. Starting from 2.4.1a, the annotations can also be included on the fly at the mapping step. - -\item[] -\opt{sjdbOverhang} specifies the length of the genomic sequence around the annotated junction to be used in constructing the splice junctions database. Ideally, this length should be equal to the \optvr{ReadLength-1}, where \optvr{ReadLength} is the length of the reads. For instance, for Illumina 2x100b paired-end reads, the ideal value is 100-1=99. In case of reads of varying length, the ideal value is \optvr{max(ReadLength)-1}. \textbf{In most cases, the default value of 100 will work as well as the ideal value.} -\end{itemize} - -Genome files comprise binary genome sequence, suffix arrays, text chromosome names/lengths, splice junctions coordinates, and transcripts/genes information. Most of these files use internal STAR format and are not intended to be utilized by the end user. It is strongly \textbf{not recommended} to change any of these file with one exception: you can rename the chromosome names in the chrName.txt keeping the order of the chromosomes in the file: the names from this file will be used in all output files (e.g. SAM/BAM). - -\subsection{Advanced options.} -\subsubsection{Which chromosomes/scaffolds/patches to include?} -It is strongly recommended to include major chromosomes (e.g., for human chr1-22,chrX,chrY,chrM,) as well as un-placed and un-localized scaffolds. Typically, un-placed/un-localized scaffolds add just a few MegaBases to the genome length, however, a substantial number of reads may map to ribosomal RNA (rRNA) repeats on these scaffolds. These reads would be reported as unmapped if the scaffolds are not included in the genome, or, even worse, may be aligned to wrong loci on the chromosomes. Generally, patches and alternative haplotypes should \textbf{not} be included in the genome. - -Examples of acceptable genome sequence files: -\begin{itemize} -\item \textbf{ENSEMBL:} files marked with .dna.primary.assembly, such as: -\url{ftp://ftp.ensembl.org/pub/release-77/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz} -\item \textbf{NCBI:} "no alternative - analysis set": \url{ftp://ftp.ncbi.nlm.nih.gov/genbank/genomes/Eukaryotes/vertebrates_mammals/Homo_sapiens/GRCh38/seqs_for_alignment_pipelines/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.gz} -\end{itemize} -\subsubsection{Which annotations to use?} -The use of the most comprehensive annotations for a given species is strongly recommended. Very importantly, chromosome names in the annotations GTF file have to match chromosome names in the FASTA genome sequence files. For example, one can use ENSEMBL FASTA files with ENSEMBL GTF files, and UCSC FASTA files with UCSC FASTA files. However, since UCSC uses \code{chr1, chr2, ...} naming convention, and ENSEMBL uses \code{1, 2, ...} naming, the ENSEMBL and UCSC FASTA and GTF files cannot be mixed together, unless chromosomes are renamed to match between the FASTA anf GTF files. - -For mouse and human, the Gencode annotations are recommended: \url{http://www.gencodegenes.org/}. - -\subsubsection{Annotations in GFF format.} -In addition to the aforementioned options, for GFF3 formatted annotations you need to use \opt{sjdbGTFtagExonParentTranscript} \optv{Parent}. In general, for \opt{sjdbGTFfile} files STAR only processes lines which have \opt{sjdbGTFfeatureExon} (=\optv{exon} by default) in the 3rd field (column). The exons are assigned to the transcripts using parent-child relationship defined by the \opt{sjdbGTFtagExonParentTranscript} (=\optv{transcript\_id} by default) GTF/GFF attribute. - -\subsubsection{Using a list of annotated junctions.} -STAR can also utilize annotations formatted as a list of splice junctions coordinates in a text file: \opt{sjdbFileChrStartEnd} \optvr{/path/to/sjdbFile.txt}. This file should contains 4 columns separated by tabs: -\codelines{Chr \quad{\textbackslash}tab\quad Start \quad{\textbackslash}tab\quad End \quad{\textbackslash}tab\quad Strand=+/-/.} -Here Start and End are first and last bases of the introns (1-based chromosome coordinates). -This file can be used in addition to the \opt{sjdbGTFfile}, in which case STAR will extract junctions from both files. - -Note, that the \opt{sjdbFileChrStartEnd} file can contain duplicate (identical) junctions, STAR will collapse (remove) duplicate junctions. - -\subsubsection{Very small genome.} -For small genomes, the parameter \opt{genomeSAindexNbases} needs to be scaled down, with a typical value of \code{min(14, log2(GenomeLength)/2 - 1)}. For example, for 1~megaBase genome, this is equal to 9, for 100~kiloBase genome, this is equal to 7. - -\subsubsection{Genome with a large number of references.} -If you are using a genome with a large (\textgreater 5,000) number of references (chrosomes/scaffolds), you may need to reduce the \opt{genomeChrBinNbits} to reduce RAM consumption. The following scaling is recommended: \opt{genomeChrBinNbits} = \code{min(18, log2(GenomeLength/NumberOfReferences))}. For example, for 3~gigaBase genome with 100,000 chromosomes/scaffolds, this is equal to 15. - -\section{Running mapping jobs.}\label{Running_mapping_jobs} -\subsection{Basic options.} -The basic options to run a mapping job are as follows: -\codelines{\opt{runThreadN} \optvr{NumberOfThreads}\\ -\opt{genomeDir} \optvr{/path/to/genomeDir}\\ -\opt{readFilesIn} \optvr{/path/to/read1} [\optvr{/path/to/read2}] -} - -\begin{itemize} -\item[] -%\opt{runThreadN} option defines the number of threads to be used for mapping, it has to be set to the number of available cores on the server node. - -\opt{genomeDir} specifies path to the genome directory where genome indices where generated (see \sechyperref{Generating_genome_indexes}). - -\item[] -\opt{readFilesIn} name(s) (with path) of the files containing the sequences to be mapped (e.g. RNA-seq FASTQ files). If using Illumina paired-end reads, the \optvr{read1} and \optv{read2} files have to be supplied. STAR can process both FASTA and FASTQ files. Multi-line (i.e. sequence split in multiple lines) FASTA file are supported. If the read files are compressed, use the \opt{readFilesCommand} \optvr{UncompressionCommand} option, where \optvr{UncompressionCommand} is the un-compression command that takes the file name as input parameter, and sends the uncompressed output to stdout. For example, for gzipped files (*.gz) use -\code{\opt{readFilesCommand} \optv{zcat}} -OR -\code{\opt{readFilesCommand} \optv{gzip -c}}. -For bzip2-compressed files, use -\code{\opt{readFilesCommand} \optv{bzip2 -c}}. -\end{itemize} - -\subsection{Advanced options.} -There are many advanced options that control STAR mapping behavior. All options are briefly described in the Section \sechyperref{Description_of_all_options}. - -\subsubsection{Using annotations at the mapping stage.} -Since 2.4.1a, the annotations can be included on the fly at the mapping step, without including them at the genome generation step. You can specify \opt{sjdbGTFfile} \optvr{/path/to/ann.gtf} and/or \opt{sjdbFileChrStartEnd} \optvr{/path/to/sj.tab}, as well as \opt{sjdbOverhang}, and any other \opt{sjdb*} options. The genome indices can be generated with or without another set of annotations/junctions. In the latter case the new junctions will added to the old ones. STAR will insert the junctions into genome indices on the fly before mapping, which takes 1~2 minutes. The on the fly genome indices can be saved (for reuse) with \opt{sjdbInsertSave} \optv{All}, into \optvr{\_STARgenome} directory inside the current run directory. - -\subsubsection{ENCODE options} -An example of ENCODE standard options for long RNA-seq pipeline is given below: -\begin{itemize} -\item[] -\opt{outFilterType} BySJout\\ -reduces the number of "spurious" junctions -\item[] -\opt{outFilterMultimapNmax} 20\\ -max number of multiple alignments allowed for a read: if exceeded, the read is considered unmapped -\item[] -\opt{alignSJoverhangMin} 8\\ -minimum overhang for unannotated junctions -\item[] -\opt{alignSJDBoverhangMin} 1\\ -minimum overhang for annotated junctions -\item[] -\opt{outFilterMismatchNmax} 999\\ -maximum number of mismatches per pair, large number switches off this filter -\item[] -%\opt{outFilterMismatchNoverReadLmax} 0.04\\ -max number of mismatches per pair relative to read length: for 2x100b, max number of mismatches is 0.06*200=8 for the paired read -\item[] -\opt{alignIntronMin} 20\\ -minimum intron length -\item[] -\opt{alignIntronMax} 1000000\\ -maximum intron length -\item[] -\opt{alignMatesGapMax} 1000000\\ -maximum genomic distance between mates -\end{itemize} - -\section{Output files.}\label{Output_files} -STAR produces multiple output files. All files have standard name, however, you can change the file prefixes using \opt{outFileNamePrefix} \optvr{/path/to/output/dir/prefix}. By default, this parameter is \optv{./}, i.e. all output files are written in the current directory. -\subsection{Log files.} -\begin{itemize} -\item[] -\ofilen{Log.out}: main log file with a lot of detailed information about the run. This file is most useful for troubleshooting and debugging. -\item[] -\ofilen{Log.progress.out}: reports job progress statistics, such as the number of processed reads, \% of mapped reads etc. It is updated in ~1 minute intervals. -\item[] -\ofilen{Log.final.out}: summary mapping statistics after mapping job is complete, very useful for quality control. The statistics are calculated for each read (single- or paired-end) and then summed or averaged over all reads. Note that STAR counts a paired-end read as one read, (unlike the samtools flagstat/idxstats, which count each mate separately). Most of the information is collected about the UNIQUE mappers (unlike samtools flagstat/idxstats which does not separate unique or multi-mappers). Each splicing is counted in the numbers of splices, which would correspond to summing the counts in \ofilen{SJ.out.tab}. The mismatch/indel error rates are calculated on a per base basis, i.e. as total number of mismatches/indels in all unique mappers divided by the total number of mapped bases. -\end{itemize} - -\subsection{SAM.} -\ofilen{Aligned.out.sam} - alignments in standard SAM format. -\subsubsection{Multimappers.} -The number of loci Nmap a read maps to is given by \code{NH:i:} field. Value of 1 corresponds to unique mappers, while values \textgreater1 corresponds to multi-mappers. \code{HI} attrbiutes enumerates multiple alignments of a read starting with 1. - -The mapping quality MAPQ (column 5) is 255 for uniquely mapping reads, and int(-10*log10(1-1/Nmap)) for multi-mapping reads. This scheme is same as the one used by TopHat and is compatible with Cufflinks. The default MAPQ=255 for the unique mappers maybe changed with \opt{outSAMmapqUnique} \optvr{Integer0to255} option to ensure compatibility with downstream tools such as GATK. - -For multi-mappers, all alignments except one are marked with 0x100 (secondary alignment) in the FLAG (column 2 of the SAM). The unmarked alignment is either the best one (i.e. highest scoring), or is randomly selected from the alignments of equal quality. This default behavior can be changed with \opt{outSAMprimaryFlag} \optv{AllBestScore} option, that will output all alignments with the best score as primary alignments (i.e. 0x100 bit in the FLAG unset). - -\subsubsection{SAM attributes.} -The SAM attributes can be specified by the user using \opt{outSAMattributes} \optvr{A1 A2 A3 ...} option which accept a list of 2-character SAM attrbiutes. The implemented attrbutes are: \optv{NH HI NM MD AS nM jM jI XS}. By default, STAR outputs \optv{NH HI AS nM} attributes. -\begin{itemize} -\item[] -\optv{NH HI NM MD} have standard meaning as defined in the SAM format specifications. -\item[] -\optv{AS} id the local alignment score (paired for paired-edn reads). -\item[] -\optv{nM} is the number of mismatches per (paired) alignment, not to be confused with \optv{NM}, which is the number of mismatches in each mate. -\item[] -\optv{jM:B:c,M1,M2,...} intron motifs for all junctions (i.e. N in CIGAR): 0: non-canonical; 1: GT/AG, 2: CT/AC, 3: GC/AG, 4: CT/GC, 5: AT/AC, 6: GT/AT. If splice junctions database is used, and a junction is annotated, 20 is added to its motif value. -\item[] -\optv{jI:B:I,Start1,End1,Start2,End2,...} Start and End of introns for all junctions (1-based). -\item[] -\optv{jM jI} attributes require samtools 0.1.18 or later, and were reported to be incompatible with some downstream tools such as Cufflinks. -\end{itemize} - -\subsubsection{Compatibility with Cufflinks/Cuffdiff.} -For unstranded RNA-seq data, Cufflinks/Cuffdiff require spliced alignments with \optv{XS} strand attribute, which STAR will generate with \opt{outSAMstrandField} \optv{intronMotif} option. As required, the XS strand attribute will be generated for all alignments that contain splice junctions. The spliced alignments that have undefined strand (i.e. containing only non-canonical unannotated junctions) will be suppressed. - -If you have stranded RNA-seq data, you do not need to use any specific STAR options. Instead, you need to run Cufflinks with the library option \opt{library-type} options. For example, \code{cufflinks ... --library-type fr-firststrand} should be used for the “standard” dUTP protocol, including Illumina's stranded Tru-Seq. This option has to be used only for Cufflinks runs and not for STAR runs. - -In addition, it is recommended to remove the non-canonical junctions for Cufflinks runs using \opt{outFilterIntronMotifs} \optv{RemoveNoncanonical}. - -\subsection{Unsorted and sorted-by-coordinate BAM.} -STAR can output alignments directly in binary BAM format, thus saving time on converting SAM files to BAM. It can also sort BAM files by coordinates, which is required by many downstream applications. -\begin{itemize} -\raggedright -\item[] -\opt{outSAMtype} \optv{BAM Unsorted}\\ -output unsorted \ofilen{Aligned.out.bam} file. The paired ends of an alignment are always adjacent, and multiple alignments of a read are adjacent as well. This "unsorted" file can be directly used with downstream software such as \code{HTseq}, without the need of name sorting. The order of the reads will match that of the input FASTQ(A) files only if one thread is used \opt{runThread} \optv{1}, and \opt{outFilterType} \opt{BySJout} is \textbf{not} used. -\item[] -\opt{outSAMtype} \optv{BAM SortedByCoordinate}\\ -output sorted by coordinate \ofilen{Aligned.sortedByCoord.out.bam} file, similar to \code{samtools sort} command. -\item[] -\opt{outSAMtype} \optv{BAM Unsorted SortedByCoordinate}\\ -output both unsorted and sorted files. -\end{itemize} - -\subsection{Splice junctions.} -\ofilen{SJ.out.tab} contains high confidence collapsed splice junctions in tab-delimited format. Note that STAR defines the junction start/end as intronic bases, while many other software define them as exonic bases. The columns have the following meaning: -%\begin{enumerate}[label=\bfseries Exercise \arabic*:] -\begin{itemize}[leftmargin=1in] -\item[column 1:] chromosome -\item[column 2:] first base of the intron (1-based) -\item[column 3:] last base of the intron (1-based) -\item[column 4:] strand (0: undefined, 1: +, 2: -) -\item[column 5:] intron motif: 0: non-canonical; 1: GT/AG, 2: CT/AC, 3: GC/AG, 4: CT/GC, 5: AT/AC, 6: GT/AT -\item[column 6:] 0: unannotated, 1: annotated (only if splice junctions database is used) -\item[column 7:] number of uniquely mapping reads crossing the junction -\item[column 8:] number of multi-mapping reads crossing the junction -\item[column 9:] maximum spliced alignment overhang -\end{itemize} -The filtering for this output file is controlled by the \optn{outSJfilter*} parameters, as described in \sechyperref{Output_Filtering:_Splice_Junctions}. -%\subsection{Wiggle/bedGraph.} - -\section{Chimeric and circular alignments.} -To switch on detection of chimeric (fusion) alignments (in addition to normal mapping), \opt{chimSegmentMin} should be set to a positive value. Each chimeric alignment consists of two "segments". Each segment is non-chimeric on its own, but the segments are chimeric to each other (i.e. the segments belong to different chromosomes, or different strands, or are far from each other). Both segments may contain splice junctions, and one of the segments may contain portions of both mates. \opt{chimSegmentMin} parameter controls the minimum mapped length of the two segments that is allowed. For example, if you have 2x75 reads and used \opt{chimSegmentMin} 20, a chimeric alignment with 130b on one chromosome and 20b on the other will be output, while 135 + 15 won't be. -\subsection{STAR-Fusion.} -STAR-Fusion is a software package for detecting fusion transcript from STAR chimeric output. It is developed and maintained by Brian Haas. Please visit its GitHub page for instructions and documentation: \url{https://github.com/STAR-Fusion/STAR-Fusion}. - -\subsection{Chimeric alignments in the main BAM files.} -Chimeric alignments can be included together with normal alignments in the main (sorted or unsorted) BAM file(s) using \opt{chimOutType} \optv{WithinBAM}. In these files, formatting of chimeric alignments follows the latest SAM/BAM specifications. - -\subsection{Chimeric alignments in \ofilen{Chimeric.out.sam} .} -When chimeric detection is switched on, STAR will output normal alignments into \ofilen{Aligned.*.sam/bam}, and will output chimeric alignments into a separate file \ofilen{Chimeric.out.sam}. -Some reads may be output to both normal SAM/BAM files, and \ofilen{Chimeric.out.sam} for the following reason. STAR will output a non-chimeric alignment into \ofilen{Aligned.out.sam} with soft-clipping a portion of the read. If this portion is long enough, and it maps well and uniquely somewhere else in the genome, there will also be a chimeric alignment output into \ofilen{Chimeric.out.sam}. For instance, if you have a paired-end read where the second mate can be split chimerically into 70 and 30 bases. The 100b of the first mate + 70b of the 2nd mate map non-chimerically,and the mapping length/score are big enough, so they will be output into \ofilen{Aligned.out.sam} file. At the same time, the chimeric segments 100-mate1 + 70-mate2 and 30-mate2 will be output into \ofilen{Chimeric.out.sam}. - -\subsection{Chimeric alignments in \ofilen{Chimeric.out.junction}} -In addition to \ofilen{Chimeric.out.sam}, STAR will generate \ofilen{Chimeric.out.junction} file which maybe more convenient for downstream analysis. -The format of this file is as follows. Every line contains one chimerically aligned read, e.g.: -\begin{verbatim} -chr22 23632601 + chr9 133729450 + 1 0 0 -SINATRA-0006:3:3:6387:5665#0 23632554 47M29S 133729451 47S29M40p76M -\end{verbatim} - -The first 9 columns give information about the chimeric junction: -\begin{itemize}[leftmargin=1in] -\item[column 1:] chromosome of the donor -\item[column 2:] first base of the intron of the donor (1-based) -\item[column 3:] strand of the donor -\item[column 4:] chromosome of the acceptor -\item[column 5:] first base of the intron of the acceptor (1-based) -\item[column 6:] strand of the acceptor -\item[column 7:] junction type: -1=encompassing junction (between the mates), 1=GT/AG, 2=CT/AC -\item[column 8:] repeat length to the left of the junction -\item[column 9:] repeat length to the right of the junction -\end{itemize} - -Columns 10-14 describe the alignments of the two chimeric segments, it is SAM like. Alignments are given with respect to the (+) strand -\begin{itemize}[leftmargin=1in] -\item[column 10:] read name -\item[column 11:] first base of the first segment (on the + strand) -\item[column 12:] CIGAR of the first segment -\item[column 13:] first base of the second segment -\item[column 14:] CIGAR of the second segment -\end{itemize} - -Unlike standard SAM, both mates are recorded in one line here. The gap of length \code{L} between the mates is marked by the \code{p} in the CIGAR string. -If the mates overlap, \code{L<0}. - -For strand definitions, when aligning paired end reads, the sequence of the second mate is reverse complemented. - -For encompassing junctions, i.e. junction type: -1=junction is between the mates, columns 2 and 5 represent the bounds on the chimeric junction loci. For the 1st mate, it will be the genomic base following the last 3' mapped base. For the 2nd mate (which is reverse complemented to have the same orientation as 1st mate), it will be the genomic base preceding the 5' mapped base. For example, if there is a chimeric junction that connects chr1/+strand/base1000 to chr2/+strand/base2000, and read 1 maps to chr1/+strand/bases800-900, and read 2 (after reverse complementing) maps to chr2/+strand/bases2100-2200, then columns 2 and 5 will have 901 and 2099. - -To filter chimeric junctions and find the number of reads supporting each junction you could use, for example: -\begin{verbatim} -cat Chimeric.out.junction | -awk '$1!="chrM" && $4!="chrM" && $7>0 && $8+$9<=5 {print $1,$2,$3,$4,$5,$6,$7,$8,$9}' | -sort | uniq -c | sort -k1,1rn -\end{verbatim} -This will keep only the canonical junctions with the repeat length less than 5 and will remove chimeras with mitochondrion genome. - -When I do it for one of our K562 runs, I get: -\begin{verbatim} -181 chr1 144676873 - chr1 147917466 + 1 0 1 - 29 chr5 69515744 - chr5 34182973 - 1 3 1 - 28 chr1 143910077 - chr1 149459550 - 1 1 0 - 27 chr22 23632601 + chr9 133729450 + 1 0 0 - 20 chr12 90313405 - chr21 40684813 - 1 2 0 - 20 chr22 23632601 + chr9 133655755 + 1 0 1 - 20 chr9 123636256 - chr9 123578959 + 1 1 4 - 15 chr16 85589970 + chr6 16762582 + 1 3 2 - 15 chr3 197348574 - chr3 195392936 + 1 1 0 - 14 chr18 39584506 + chr18 39560613 - 1 2 0 -\end{verbatim} -Note that line 4 and 6 here are BCR/ABL fusions. You would need to filter these junctions further to see which of them connect known but not homologous genes. - - -\section{Output in transcript coordinates.} -With \opt{quantMode} \optv{TranscriptomeSAM} option STAR will output alignments translated into transcript coordinates in the \ofilen{Aligned.toTranscriptome.out.bam} file (in addition to alignments in genomic coordinates in \ofilen{Aligned.*.sam/bam} files). These transcriptomic alignments can be used with various transcript quantification software that require reads to be mapped to transcriptome, such as RSEM or eXpress. For example, RSEM command line would look as follows: \codelines{rsem-calculate-expression ... --bam Aligned.toTranscriptome.out.bam /path/to/RSEM/reference RSEM}. -Note, that STAR first aligns reads to entire genome, and only then searches for concordance between alignments and transcripts. I believe this approach might offer certain advantages compared to the alignment to transcriptome only, by not forcing the alignments to annotated transcripts. - -By default, the output satisfies RSEM requirements: soft-clipping or indels are not allowed. Use \opt{quantTranscriptomeBan} \optv{Singleend} to allow insertions, deletions ans soft-clips in the transcriptomic alignments, which can be used by some expression quantification software (e.g. eXpress). - -\section{Counting number of reads per gene.} -With \opt{quantMode} \optv{GeneCounts} option STAR will count number reads per gene while mapping. -A read is counted if it overlaps (1nt or more) one and only one gene. Both ends of the paired-end read are checked for overlaps. -The counts coincide with those produced by htseq-count with default parameters. -This option requires annotations (GTF or GFF with --sjdbGTFfile option) used at the genome generation step, or at the mapping step. -STAR outputs read counts per gene into ReadsPerGene.out.tab file with 4 columns which correspond to different strandedness options: -\begin{itemize}[leftmargin=1in] -\item[column 1:] gene ID -\item[column 2:] counts for unstranded RNA-seq -\item[column 3:] counts for the 1st read strand aligned with RNA (htseq-count option -s yes) -\item[column 4:] counts for the 2nd read strand aligned with RNA (htseq-count option -s reverse) -\end{itemize} -Select the output according to the strandedness of your data. -Note, that if you have stranded data and choose one of the columns 3 or 4, the other column (4 or 3) will give you the count of antisense reads. -With \opt{quantMode} \optv{TranscriptomeSAM} \optv{GeneCounts}, and get both the \ofilen{Aligned.toTranscriptome.out.bam} and \ofilen{ReadsPerGene.out.tab} outputs. - - -\section{2-pass mapping.} - -For the most sensitive novel junction discovery,I would recommend running STAR in the 2-pass mode. It does not increase the number of detected novel junctions, but allows to detect more splices reads mapping to novel junctions. The basic idea is to run 1st pass of STAR mapping with the usual parameters, then collect the junctions detected in the first pass, and use them as "annotated" junctions for the 2nd pass mapping. - -\subsection{Multi-sample 2-pass mapping.} -For a study with multiple samples, it is recommended to collect 1st pass junctions from all samples. -\begin{enumerate} -\item Run 1st mapping pass for all samples with "usual" parameters. Using annotations is recommended either a the genome generation step, or mapping step. -\item Run 2nd mapping pass for all samples , listing SJ.out.tab files from all samples in \opt{sjdbFileChrStartEnd} \optvr{/path/to/sj1.tab /path/to/sj2.tab ...}. -\end{enumerate} - -\subsection{Per-sample 2-pass mapping.} - -Annotated junctions will be included in both the 1st and 2nd passes. -To run STAR 2-pass mapping for each sample separately, use \opt{twopassMode} \optv{Basic} option. STAR will perform the 1st pass mapping, then it will automatically extract junctions, insert them into the genome index, and, finally, re-map all reads in the 2nd mapping pass. This option can be used with annotations, which can be included either at the run-time (see \#1), or at the genome generation step. - -\opt{twopass1readsN} defines the number of reads to be mapped in the 1st pass. The default and most sensitive approach is to set it to -1 (or make it bigger than the number of reads in the sample) - in which case all reads in the input read file(s) are used in the 1st pass. While it can reduce mapping time by $\sim40\%$, it is not recommended to use a small portion of the reads in the 1st step, since it will significantly reduce sensitivity for the low expressed novel junctions. The idea to use a portion of the reads in the 1st pass was inspired by Kim, Langmead and Salzberg in Nature Methods 12, 357–360 (2015). - -\subsection{2-pass mapping with re-generated genome.} -This is the original 2-pass method which involves genome re-generation step in-between 1st and 2nd passes. Since 2.4.1a, it is recommended to use the on the fly 2-pass options as described above. -\begin{enumerate} -\item Run 1st pass STAR for all samples with "usual" parameters. Genome indices generated with annotations are recommended. -\item Collect all junctions detected in the 1st pass by merging \ofilen{SJ.out.tab} files from all runs. Filter the junctions by removing likelie false positives, e.g. junctions in the mitochondrion genome, or non-canonical junctions supported by a few reads. If you are using annotations, only novel junctions need to be considered here, since annotated junctions will be re-used in the 2nd pass anyway. -\item Use the filtered list of junctions from the 1st pass with \opt{sjdbFileChrStartEnd} option, together with annotations (via \opt{sjdbGTFfile} option) to generate the new genome indices for the 2nd pass mapping. This needs to be done only once for all samples. -\item Run the 2nd pass mapping for all samples with the new genome index. -\end{enumerate} - - -\section{Description of all options.}\label{Description_of_all_options} -For each STAR version, the most up-to-date information about all STAR parameters can be found in the \code{parametersDefault} file in the STAR source directory. The parameters in the \code{parametersDefault}, as well as in the descriptions below, are grouped by function: -\begin{itemize} -\item[] Special attention has to be paid to parameters that start with \optn{out*}, as they control the STAR output. -\item[] In particular, \optn{outFilter*} parameters control the filtering of output alignments which[] you might want to tweak to fit your needs. -\item[] Output of “chimeric” alignments is controlled by \optn{chim*} parameters. -\item[] Genome generation is controlled by \optn{genome*} parameters. -\item[] Annotations (splice junction database) are controlled by \optn{sjdb*} options at the genome generation step. -\item[] Tweaking \optn{score*}, \optn{align*}, \optn{seed*}, \optn{win*} parameters, which requires understanding of the STAR alignment algorithm, is recommended only for advanced users. -\end{itemize} - -Below, allowed parameter values are typed in magenta, and default values - in blue. - - - - -\newcommand{\pright}[1]{\begin{flushright} \begin{minipage}{0.8\textwidth}\raggedright #1 \end{minipage} \end{flushright}} - -\newcommand{\optSection}[1]{\subsection{#1}} -\newcommand{\optName}[1]{\hypertarget{#1}{\textcolor{violet}{\texttt{--#1}}}} -\newcommand{\optValue}[1]{\pright{\textcolor[rgb]{0,0.5,0}{default: \texttt{#1}}}} -\newcommand{\optLine}[1]{\pright{#1}} -\newenvironment{optTable}{}{} -\newenvironment{optOptTable}{\begin{flushright} \begin{minipage}{0.75\textwidth}\raggedright }{\end{minipage}\end{flushright}} - -\newcommand{\optOpt}[1]{\textcolor{blue}{\texttt{#1}}\par} -\newcommand{\optOptLine}[1]{{\hangpara{0.3in}{0}#1\par}} - -\input{parametersDefault.tex} - - -\end{document} diff --git a/VERSION b/VERSION index 5f61549..bd08704 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.0c_modified" +#define STAR_VERSION "STAR_2.5.1a" From 84c82b04429d0ba5f293f532921b49fb42cb3378 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 19 Jan 2016 17:26:38 -0500 Subject: [PATCH 186/536] 2.5.1a --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index eca66cd..9ac8a77 100644 --- a/Makefile +++ b/Makefile @@ -75,6 +75,9 @@ cleanRelease: rm -f *.o Depend.list $(MAKE) -C htslib clean +.PHONY: install +install: + 'mv' STAR STARlong ../bin ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),cleanRelease) From afdb9f7c957ca2cdce5c9d476fb5aff80063071c Mon Sep 17 00:00:00 2001 From: Marcel Schilling Date: Thu, 21 Jan 2016 15:03:34 +0100 Subject: [PATCH 187/536] fixed typo in sjdbGTFchrPrefix description 'geneomes' --> 'genomes' --- parametersDefault | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parametersDefault b/parametersDefault index bdf1482..d7fc95d 100644 --- a/parametersDefault +++ b/parametersDefault @@ -72,7 +72,7 @@ sjdbGTFfile - string: path to the GTF file with annotations sjdbGTFchrPrefix - - string: prefix for chromosome names in a GTF file (e.g. 'chr' for using ENSMEBL annotations with UCSC geneomes) + string: prefix for chromosome names in a GTF file (e.g. 'chr' for using ENSMEBL annotations with UCSC genomes) sjdbGTFfeatureExon exon string: feature type in GTF file to be used as exons for building transcripts From fd0c9161f5d320beb293ec2e1bdeb7825f8336f4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 22 Jan 2016 15:06:11 -0500 Subject: [PATCH 188/536] Fixed a bug in signal generation with --outWigType introduced in 2.5.1a --- ReadAlign_stitchWindowSeeds.cpp | 2 +- VERSION | 2 +- signalFromBAM.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index f5cc220..43d20c2 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -249,7 +249,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* //check exons lenghts including repeats, do not report a transcript with short exons // for (uint isj=0;isj=0 && \ +// if ( trA.canonSJ[isj]>=0 && // ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] // || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1]) ) { // return;//do not record this transcript in wTr diff --git a/VERSION b/VERSION index bd08704..43f76b5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.1a" +#define STAR_VERSION "STAR_2.5.1b" diff --git a/signalFromBAM.cpp b/signalFromBAM.cpp index 4237aea..7f6b874 100644 --- a/signalFromBAM.cpp +++ b/signalFromBAM.cpp @@ -72,9 +72,9 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter int iChr=-999; double *sigAll=NULL; + uint32_t chrLen=0; while ( true ) {//until the end of file - int bamBytes1=bam_read1(bamIn, bamA); - uint32_t chrLen=0; + int bamBytes1=bam_read1(bamIn, bamA); if (bamA->core.tid!=iChr || bamBytes1<0) { //output to file if (iChr!=-999) {//iChr=-999 marks chromosomes that are not output, including unmapped reads From 54b570fe6d1cc69cfca8667d652dd7961128e8ff Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 28 Jan 2016 19:00:36 -0500 Subject: [PATCH 189/536] Fixed a bug that caused output of unmapped mates for single end alignments even with --outSAMunmapped None . --- ReadAlign_outputAlignments.cpp | 2 +- VERSION | 2 +- parametersDefault.xxd | 3872 ++++++++++++++++---------------- 3 files changed, 1938 insertions(+), 1938 deletions(-) diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 9714fb3..79313c1 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -161,7 +161,7 @@ void ReadAlign::outputAlignments() { unmapType=4; }; - if (unmapType==4) + if (unmapType==4 && P->outSAMunmapped.yes) {//output unmapped end for single-end alignments if (P->outSAMbool && !P->outSAMunmapped.keepPairs && outSAMfilterYes) { diff --git a/VERSION b/VERSION index 43f76b5..019e9d7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.1b" +#define STAR_VERSION "STAR_2.5.1b_modified" diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 41a35eb..4130ab1 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -317,2053 +317,2053 @@ unsigned char parametersDefault[] = { 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, - 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x6f, 0x6d, 0x65, 0x73, - 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, + 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, - 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, - 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, - 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, - 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, - 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, - 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, - 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, - 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, + 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, + 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, + 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, + 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, - 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, - 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, - 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, - 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, - 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, - 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, - 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, + 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, + 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, + 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, - 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, - 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, - 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, - 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, - 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, + 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, + 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, + 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, + 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, + 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, + 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, + 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, + 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, + 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, + 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, + 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, + 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, + 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, + 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, + 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, + 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, + 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, + 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, + 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, + 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, - 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, - 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, - 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, - 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, - 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, + 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, + 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, - 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, - 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, + 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, + 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, + 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, + 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, - 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, - 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, - 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, - 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, + 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, + 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, + 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, + 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, + 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, - 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, - 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, - 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, + 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, + 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, + 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, - 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, - 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, - 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, + 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, - 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, + 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, - 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, - 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, - 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, - 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, - 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, - 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, - 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, - 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, - 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, - 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, - 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, - 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, - 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, + 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, - 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, - 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, + 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, + 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, + 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, + 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, + 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, + 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, + 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, + 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, - 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, - 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, - 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, - 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, + 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x75, 0x6e, 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, - 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, - 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, - 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, - 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, - 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, - 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, - 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, - 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, - 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, - 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, - 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, - 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, - 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, - 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, - 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, - 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, - 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, - 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, - 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, - 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, - 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, - 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, - 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, - 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, - 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, - 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, - 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, + 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, + 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, + 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, + 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, + 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, + 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, + 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, + 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, + 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, + 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, + 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, + 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, + 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, + 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, + 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, + 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, + 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, + 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, + 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, + 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, + 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, + 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, + 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, + 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, + 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, + 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, + 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, + 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, + 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, - 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, + 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, + 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, + 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, + 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, + 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, + 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, - 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, - 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, + 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, - 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, + 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, + 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, - 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, - 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, - 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, - 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, + 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, - 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, + 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, + 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, - 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, + 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, + 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, + 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, + 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, - 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, - 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, - 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, - 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, - 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, - 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, - 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, - 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, + 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, + 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, + 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, + 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, + 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, + 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, + 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, - 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, - 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, + 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, + 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, + 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, + 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, + 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, + 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, - 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, + 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, - 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, - 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, - 0x20, 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, - 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, + 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, + 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, + 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, + 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, + 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, + 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, + 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, + 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, + 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, - 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, - 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, - 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, - 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, - 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, - 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, - 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, - 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, + 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, + 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, - 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, - 0x73, 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, - 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, - 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, + 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, + 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, - 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, - 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, + 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, + 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, - 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, + 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, - 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, - 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, + 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, + 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, + 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, + 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, + 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 28391; +unsigned int parametersDefault_len = 28390; From 042d6f4c565e059ae480d4c196fd03d643516fd3 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 18 Feb 2016 12:12:20 -0500 Subject: [PATCH 190/536] Removed trailing white space from all source files. --- BAMbinSortByCoordinate.cpp | 16 +- BAMbinSortByCoordinate.h | 2 +- BAMbinSortUnmapped.cpp | 8 +- BAMbinSortUnmapped.h | 2 +- BAMfunctions.cpp | 18 +- BAMoutput.cpp | 54 +- BAMoutput.h | 2 +- ErrorWarning.cpp | 2 +- Genome.cpp | 252 ++++----- Genome.h | 8 +- Genome_insertSequences.cpp | 8 +- InOutStreams.cpp | 20 +- InOutStreams.h | 4 +- IncludeDefine.h | 8 +- OutSJ.cpp | 16 +- OutSJ.h | 26 +- PackedArray.h | 6 +- ParameterInfo.h | 34 +- Parameters.cpp | 582 ++++++++++----------- Parameters.h | 138 ++--- Parameters_openReadsFiles.cpp | 38 +- Quantifications.cpp | 10 +- Quantifications.h | 6 +- ReadAlign.cpp | 62 +-- ReadAlign.h | 68 +-- ReadAlignChunk.cpp | 38 +- ReadAlignChunk.h | 8 +- ReadAlignChunk_mapChunk.cpp | 44 +- ReadAlignChunk_processChunks.cpp | 70 +-- ReadAlign_alignBAM.cpp | 168 +++--- ReadAlign_assignAlignToWindow.cpp | 44 +- ReadAlign_chimericDetection.cpp | 108 ++-- ReadAlign_createExtendWindowsWithAlign.cpp | 20 +- ReadAlign_mapOneRead.cpp | 52 +- ReadAlign_maxMappableLength2strands.cpp | 28 +- ReadAlign_multMapSelect.cpp | 46 +- ReadAlign_oneRead.cpp | 40 +- ReadAlign_outputAlignments.cpp | 132 ++--- ReadAlign_outputTranscriptCIGARp.cpp | 32 +- ReadAlign_outputTranscriptSAM.cpp | 112 ++-- ReadAlign_outputTranscriptSJ.cpp | 22 +- ReadAlign_quantTranscriptome.cpp | 36 +- ReadAlign_stitchPieces.cpp | 136 ++--- ReadAlign_stitchWindowSeeds.cpp | 124 ++--- ReadAlign_storeAligns.cpp | 46 +- STAR.cpp | 170 +++--- SequenceFuns.cpp | 38 +- SequenceFuns.h | 2 +- SharedMemory.cpp | 24 +- SharedMemory.h | 6 +- SjdbClass.h | 2 +- Stats.cpp | 26 +- Stats.h | 12 +- SuffixArrayFuns.cpp | 162 +++--- SuffixArrayFuns.h | 2 +- ThreadControl.h | 8 +- Transcript.cpp | 18 +- Transcript.h | 34 +- Transcript_alignScore.cpp | 8 +- Transcriptome.cpp | 32 +- Transcriptome.h | 6 +- Transcriptome_geneCountsAddAlign.cpp | 26 +- Transcriptome_quantAlign.cpp | 28 +- alignSmithWaterman.cpp | 76 +-- bamRemoveDuplicates.cpp | 54 +- binarySearch2.cpp | 8 +- blocksOverlap.cpp | 14 +- extendAlign.cpp | 28 +- funCompareUintAndSuffixes.cpp | 8 +- genomeGenerate.cpp | 206 ++++---- genomeParametersWrite.cpp | 12 +- genomeSAindex.cpp | 84 +-- genomeScanFastaFiles.cpp | 54 +- insertSeqSA.cpp | 98 ++-- loadGTF.cpp | 76 +-- mapThreadsSpawn.cpp | 8 +- outputSJ.cpp | 26 +- parametersDefault | 40 +- readLoad.cpp | 66 +-- serviceFuns.cpp | 18 +- signalFromBAM.cpp | 54 +- sjSplitAlign.cpp | 2 +- sjdbBuildIndex.cpp | 104 ++-- sjdbInsertJunctions.cpp | 26 +- sjdbLoadFromFiles.cpp | 6 +- sjdbLoadFromStream.cpp | 2 +- sjdbPrepare.cpp | 58 +- stitchAlignToTranscript.cpp | 124 ++--- stitchGapIndel.cpp | 28 +- stitchWindowAligns.cpp | 130 ++--- streamFuns.cpp | 16 +- sysRemoveDir.cpp | 2 +- 92 files changed, 2364 insertions(+), 2364 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index 86b0f68..c312c88 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -4,7 +4,7 @@ #include "BAMfunctions.h" void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, Parameters *P) { - + if (binS==0) return; //nothing to do for empty bins //allocate arrays char *bamIn=new char[binS+1]; @@ -32,30 +32,30 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st errOut << binS <<" "<< bamInBytes <<" "<< iBin <<"\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, 1, *P); }; - + //extract coordinates - + for (uint ib=0,ia=0;iaoutBAMcompression)).c_str()); outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrName,P->chrLength); //send ordered aligns to bgzf one-by-one for (uint ia=0;iaoutBAMcompression)).c_str()); outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrName,P->chrLength); - + vector bamInFile; std::map startPos; @@ -17,7 +17,7 @@ void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgz bamInFile.push_back(dirBAMsort+to_string(it)+"/"+to_string((uint) iBin)+".BySJout"); }; vector bamSize(bamInFile.size(),0); - + //allocate arrays char **bamIn=new char* [bamInFile.size()]; ifstream *bamInStream = new ifstream [bamInFile.size()]; @@ -42,7 +42,7 @@ void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgz uint startNext=startPos.size()>1 ? (++startPos.begin())->first : (uint) -1; while (true) { - bgzf_write(bgzfBin, bamIn[it], bamSize.at(it)); + bgzf_write(bgzfBin, bamIn[it], bamSize.at(it)); bamInStream[it].read(bamIn[it],sizeof(int32));//read record size if (bamInStream[it].good()) { bamSize[it]=((*(uint32*)bamIn[it])+sizeof(int32)); @@ -58,7 +58,7 @@ void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgz }; startPos.erase(startPos.begin()); }; - + bgzf_flush(bgzfBin); bgzf_close(bgzfBin); diff --git a/BAMbinSortUnmapped.h b/BAMbinSortUnmapped.h index d3bde58..070352a 100644 --- a/BAMbinSortUnmapped.h +++ b/BAMbinSortUnmapped.h @@ -5,5 +5,5 @@ #include SAMTOOLS_BGZF_H void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters *P); - + #endif diff --git a/BAMfunctions.cpp b/BAMfunctions.cpp index 6329478..e1c5ea9 100644 --- a/BAMfunctions.cpp +++ b/BAMfunctions.cpp @@ -14,14 +14,14 @@ string bam_cigarString (bam1_t *b) {//output CIGAR string }; }; - + // if (c->n_cigar) { // cigar // for (int i = 0; i < c->n_cigar; ++i) { // kputw(bam_cigar_oplen(cigar[i]), str); // kputc(bam_cigar_opchr(cigar[i]), str); // } // } else kputc('*', str); -// +// // string cigarString (str->s,str->l); return cigarString; }; @@ -39,14 +39,14 @@ int bam_read1_fromArray(char *bamChar, bam1_t *b) //modified from samtools bam_r uint32_t *bamU32=(uint32_t*) bamChar; block_len=bamU32[0]; - + // // 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); // // } x=bamU32+1; - + 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; @@ -67,14 +67,14 @@ int bam_read1_fromArray(char *bamChar, bam1_t *b) //modified from samtools bam_r // // //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); b->data=(uint8_t*) bamChar+4*9; - + return 4 + block_len; } void outBAMwriteHeader (BGZF* fp, const string &samh, const vector &chrn, const vector &chrl) { bgzf_write(fp,"BAM\001",4); - int32 hlen=samh.size(); + int32 hlen=samh.size(); bgzf_write(fp,(char*) &hlen,sizeof(hlen)); bgzf_write(fp,samh.c_str(),hlen); int32 nchr=(int32) chrn.size(); @@ -97,14 +97,14 @@ TintType bamAttributeInt(const char *bamAux, const char *attrName) {//not tested case ('c'): return (TintType) *(int8_t*)(attrStart+3); case ('s'): - return (TintType) *(int16_t*)(attrStart+3); + return (TintType) *(int16_t*)(attrStart+3); case ('i'): return (TintType) *(int32_t*)(attrStart+3); case ('C'): return (TintType) *(uint8_t*)(attrStart+3); case ('S'): - return (TintType) *(uint16_t*)(attrStart+3); + return (TintType) *(uint16_t*)(attrStart+3); case ('I'): return (TintType) *(uint32_t*)(attrStart+3); - }; + }; }; diff --git a/BAMoutput.cpp b/BAMoutput.cpp index c5244a9..13f64fb 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -8,7 +8,7 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate bam array P=Pin; - + nBins=P->outBAMcoordNbins; binSize=P->chunkOutBAMsizeBytes/nBins; bamArraySize=binSize*nBins; @@ -16,9 +16,9 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate ba bamDir=tmpDir+to_string((uint) iChunk);//local directory for this thread (iChunk) - mkdir(bamDir.c_str(),P->runDirPerm); + mkdir(bamDir.c_str(),P->runDirPerm); binStart=new char* [nBins]; - binBytes=new uint64 [nBins]; + binBytes=new uint64 [nBins]; binStream=new ofstream* [nBins]; binTotalN=new uint [nBins]; binTotalBytes=new uint [nBins]; @@ -29,15 +29,15 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate ba binTotalN[ii]=0; binTotalBytes[ii]=0; }; - + binSize1=binStart[nBins-1]-binStart[0]; nBins=1;//start with one bin to estimate genomic bin sizes }; BAMoutput::BAMoutput (BGZF *bgzfBAMin, Parameters *Pin) {//allocate BAM array with one bin, streamed directly into bgzf file - - P=Pin; - + + P=Pin; + bamArraySize=P->chunkOutBAMsizeBytes; bamArray = new char [bamArraySize]; binBytes1=0; @@ -53,55 +53,55 @@ BAMoutput::BAMoutput (BGZF *bgzfBAMin, Parameters *Pin) {//allocate BAM array wi }; void BAMoutput::unsortedOneAlign (char *bamIn, uint bamSize, uint bamSize2) {//record one alignment to the buffer, write buffer if needed - - if (bamSize==0) return; //no output, could happen if one of the mates is not mapped - + + if (bamSize==0) return; //no output, could happen if one of the mates is not mapped + if (binBytes1+bamSize2 > bamArraySize) {//write out this buffer - if (g_threadChunks.threadBool) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); + if (g_threadChunks.threadBool) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); bgzf_write(bgzfBAM,bamArray,binBytes1); - if (g_threadChunks.threadBool) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); - + if (g_threadChunks.threadBool) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); + binBytes1=0;//rewind the buffer }; - + memcpy(bamArray+binBytes1, bamIn, bamSize); binBytes1 += bamSize; - + }; void BAMoutput::unsortedFlush () {//flush all alignments - if (g_threadChunks.threadBool) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); + if (g_threadChunks.threadBool) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); bgzf_write(bgzfBAM,bamArray,binBytes1); - if (g_threadChunks.threadBool) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); + if (g_threadChunks.threadBool) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); binBytes1=0;//rewind the buffer }; void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint iRead) { - + uint32 *bamIn32; uint alignG; uint32 iBin=0; - + if (bamSize==0) { return; //no output, could happen if one of the mates is not mapped } else { //determine which bin this alignment belongs to - bamIn32=(uint32*) bamIn; - alignG=( ((uint) bamIn32[1]) << 32 ) | ( (uint)bamIn32[2] ); + bamIn32=(uint32*) bamIn; + alignG=( ((uint) bamIn32[1]) << 32 ) | ( (uint)bamIn32[2] ); if (bamIn32[1] == ((uint32) -1) ) {//unmapped iBin=P->outBAMcoordNbins-1; } else if (nBins>1) {//bin starts have already been determined iBin=binarySearch1a (alignG, P->outBAMsortingBinStart, (int32) (nBins-1)); }; }; - + // if ( alignG == (uint32) -1 ) {//unmapped alignment, last bin // iBin=nBins-1; // } else { // iBin=(alignG + chrStart)/binGlen; // }; - + //write buffer is filled if (binBytes[iBin]+bamSize+sizeof(uint) > ( (iBin>0 || nBins>1) ? binSize : binSize1) ) {//write out this buffer if ( nBins>1 || iBin==(P->outBAMcoordNbins-1) ) {//normal writing, bins have already been determined @@ -113,7 +113,7 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint iRead) { return; }; }; - + //record this alignment in its bin memcpy(binStart[iBin]+binBytes[iBin], bamIn, bamSize); binBytes[iBin] += bamSize; @@ -159,9 +159,9 @@ void BAMoutput::coordBins() {//define genomic starts for bins char *binStartOld=new char [binSize1]; memcpy(binStartOld,binStart[0],binBytes[0]); - binBytes[0]=0; + binBytes[0]=0; binTotalN[0]=0; - binTotalBytes[0]=0; + binTotalBytes[0]=0; //re-bin all aligns for (uint ib=0,ia=0;iaoutBAMcoordNbins-1; + uint iBin=P->outBAMcoordNbins-1; binStream[iBin]->write(binStart[iBin],binBytes[iBin]); binStream[iBin]->flush(); binBytes[iBin]=0;//rewind the buffer diff --git a/BAMoutput.h b/BAMoutput.h index fd676ef..3228a8e 100644 --- a/BAMoutput.h +++ b/BAMoutput.h @@ -17,7 +17,7 @@ class BAMoutput {// void unsortedOneAlign (char *bamIn, uint bamSize, uint bamSize2); void unsortedFlush (); void coordUnmappedPrepareBySJout(); - + uint32 nBins; //number of bins to split genome into uint* binTotalN; //total number of aligns in each bin uint* binTotalBytes;//total size of aligns in each bin diff --git a/ErrorWarning.cpp b/ErrorWarning.cpp index 8ced2b1..aa6cf37 100644 --- a/ErrorWarning.cpp +++ b/ErrorWarning.cpp @@ -10,7 +10,7 @@ void exitWithError(string messageOut, ostream &streamOut1, ostream &streamOut2, if (streamOut1.good()) { streamOut1 << "\n" << messageOut << endl << timeMonthDayTime(timeCurrent) <<" ...... FATAL ERROR, exiting\n" <genomeDir+ "/" +name).c_str(), ios::binary); + stream.open((P->genomeDir+ "/" +name).c_str(), ios::binary); if (!stream.good()) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir << "/" << name <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; @@ -62,7 +62,7 @@ uint Genome::OpenStream(string name, ifstream & stream) P->inOut->logMain << "checking " << name << " size"; stream.seekg (0, ios::end); size=(uint) stream.tellg(); - stream.clear(); + stream.clear(); stream.seekg (0, ios::beg); P->inOut->logMain << "file size: "<< size <<" bytes; state: good=" <inOut->logStdOut) << timeMonthDayTime(rawtime) << " ..... Loading genome\n" <inOut->logStdOut) << timeMonthDayTime(rawtime) << " ..... Loading genome\n" <genomeDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { P->inOut->logMain << "Reading genome generation parameters:\n"; @@ -93,10 +93,10 @@ void Genome::genomeLoad(){//allocate and load Genome } else { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir+("/genomeParameters.txt") << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - }; - + }; + //check genome version if (P1->versionGenome.size()==0 || P1->versionGenome[0]==0) {// ostringstream errOut; @@ -106,7 +106,7 @@ void Genome::genomeLoad(){//allocate and load Genome } else if (P->sjdbFileChrStartEnd.at(0)=="-" && P1->versionGenome.at(0) >= P->versionGenome.at(0)) {// P->inOut->logMain << "Genome version is compatible with current STAR version\n"; } else if (P->sjdbFileChrStartEnd.at(0)!="-" && P1->versionGenome.at(0) >= P->versionGenome.at(1)) {// - P->inOut->logMain << "Genome version is compatible with current STAR version\n"; + P->inOut->logMain << "Genome version is compatible with current STAR version\n"; } else { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: Genome version is INCOMPATIBLE with current STAR version\n"; @@ -124,37 +124,37 @@ void Genome::genomeLoad(){//allocate and load Genome {//file exists sjdbInfoExists=true; }; - - if ( P->sjdbInsert.yes && sjdbInfoExists && P1->sjdbInsert.save=="") + + if ( P->sjdbInsert.yes && sjdbInfoExists && P1->sjdbInsert.save=="") {//if sjdbInsert, and genome had junctions, and genome is old - it should be re-generated with new STAR ostringstream errOut; errOut << "EXITING because of FATAL ERROR: old Genome is INCOMPATIBLE with on the fly junction insertion\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; - + //record required genome parameters in P P->genomeSAindexNbases=P1->genomeSAindexNbases; P->genomeChrBinNbits=P1->genomeChrBinNbits; P->genomeChrBinNbases=1LLU<genomeChrBinNbits; P->genomeSAsparseD=P1->genomeSAsparseD; - if (P->parArray.at(P->sjdbOverhang_par)->inputLevel==0 && P1->sjdbOverhang>0) + if (P->parArray.at(P->sjdbOverhang_par)->inputLevel==0 && P1->sjdbOverhang>0) {//if --sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use sjdbOverhang from the genome generation step P->sjdbOverhang=P1->sjdbOverhang; P->inOut->logMain << "--sjdbOverhang = " << P->sjdbOverhang << " taken from the generated genome\n"; - } else if (sjdbInfoExists && P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang!=P1->sjdbOverhang) + } else if (sjdbInfoExists && P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang!=P1->sjdbOverhang) {//if sjdbOverhang was defined at the genome generation step,the mapping step value has to agree with it ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: present --sjdbOverhang="<sjdbOverhang << " is not equal to the value at the genome generation step ="<< P1->sjdbOverhang << "\n"; - errOut << "SOLUTION: \n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; - + P->sjdbLength = P->sjdbOverhang==0 ? 0 : P->sjdbOverhang*2+1; - P->inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<nGenome = OpenStream("Genome",GenomeIn); @@ -164,10 +164,10 @@ void Genome::genomeLoad(){//allocate and load Genome uint SAiInBytes=0; SAiInBytes += fstreamReadBig(SAiIn,(char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases)); P->genomeSAindexStart = new uint[P->genomeSAindexNbases+1]; - SAiInBytes += fstreamReadBig(SAiIn,(char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1)); + SAiInBytes += fstreamReadBig(SAiIn,(char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1)); P->nSAi=P->genomeSAindexStart[P->genomeSAindexNbases]; P->inOut->logMain << "Read from SAindex: genomeSAindexNbases=" << P->genomeSAindexNbases <<" nSAi="<< P->nSAi <GstrandBit = (uint) floor(log(P->nGenome)/log(2))+1; @@ -175,23 +175,23 @@ void Genome::genomeLoad(){//allocate and load Genome P->GstrandMask = ~(1LLU<GstrandBit); P->nSA=(P->nSAbyte*8)/(P->GstrandBit+1); - SA.defineBits(P->GstrandBit+1,P->nSA); - + SA.defineBits(P->GstrandBit+1,P->nSA); + P->SAiMarkNbit=P->GstrandBit+1; P->SAiMarkAbsentBit=P->GstrandBit+2; - + P->SAiMarkNmaskC=1LLU << P->SAiMarkNbit; P->SAiMarkNmask=~P->SAiMarkNmaskC; P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; - - SAi.defineBits(P->GstrandBit+3,P->nSAi); - P->inOut->logMain << "nGenome=" << P->nGenome << "; nSAbyte=" << P->nSAbyte <inOut->logMain <<"GstrandBit="<GstrandBit)<<" SA number of indices="<nSA<GstrandBit+3,P->nSAi); + + P->inOut->logMain << "nGenome=" << P->nGenome << "; nSAbyte=" << P->nSAbyte <inOut->logMain <<"GstrandBit="<GstrandBit)<<" SA number of indices="<nSA<nGenome+L+L+SHM_startG+8; - shmSize+= SAi.lengthByte; + shmSize+= SAi.lengthByte; if (P->annotScoreScale>0) shmSize+=P->nGenome; @@ -208,7 +208,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (!sharedMemory->NeedsAllocation()) P->inOut->logMain <<"Found genome in shared memory\n"<genomeLoad=="Remove") {//kill the genome and exit if (sharedMemory->NeedsAllocation()) {//did not find genome in shared memory, nothing to kill ostringstream errOut; @@ -216,11 +216,11 @@ void Genome::genomeLoad(){//allocate and load Genome exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); } else { sharedMemory->Clean(); - P->inOut->logMain <<"DONE: removed the genome from shared memory\n"<inOut->logMain <<"DONE: removed the genome from shared memory\n"<NeedsAllocation()){ P->inOut->logMain <<"Allocating shared memory for genome\n"<Allocate(shmSize); @@ -230,27 +230,27 @@ void Genome::genomeLoad(){//allocate and load Genome { HandleSharedMemoryException(exc, shmSize); } - + shmStart = (char*) sharedMemory->GetMapped(); shmNG= (uint*) (shmStart+SHM_sizeG); - shmNSA= (uint*) (shmStart+SHM_sizeSA); - + shmNSA= (uint*) (shmStart+SHM_sizeSA); + if (!sharedMemory->IsAllocator()) { // genome is in shared memory or being loaded // wait for the process that will populate it // and record the sizes - + uint iwait=0; while (*shmNG != P->nGenome) { iwait++; P->inOut->logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <inOut->logMain, EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG, *P); + errOut << "SOLUTION: remove the shared memory chunk by running STAR with --genomeLoad Remove, and restart STAR" <inOut->logMain, EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG, *P); }; }; @@ -258,10 +258,10 @@ void Genome::genomeLoad(){//allocate and load Genome { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: the SA file size did not match what we found in shared memory" << "\n" << flush; - errOut << "SOLUTION: remove the shared memory chunk by running STAR with --genomeLoad Remove, and restart STAR" << flush; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INCONSISTENT_DATA, *P); + errOut << "SOLUTION: remove the shared memory chunk by running STAR with --genomeLoad Remove, and restart STAR" << flush; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INCONSISTENT_DATA, *P); } - + P->inOut->logMain << "Using shared memory for genome. key=0x" <inOut->logMain, EXIT_CODE_SHM, *P); // }; if (P->annotScoreScale>0) {//optional allocation sigG = shmNext; shmNext += P->nGenome; - } + } } else if (P->genomeLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory { @@ -293,16 +293,16 @@ void Genome::genomeLoad(){//allocate and load Genome {//will insert sequences in the genome, now estimate the extra size uint oldlen=P->chrStart.back();//record the old length P->genomeInsertChrIndFirst=P->nChrReal; - P->genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; + P->genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; }; - + try { - + if (P->sjdbInsert.pass1 || P->sjdbInsert.pass2) {//reserve extra memory for insertion at the 1st and/or 2nd step nGenomeInsert=P->nGenome+P->genomeInsertL; nSAinsert=P->nSA+2*P->genomeInsertL; - + nGenomePass1=nGenomeInsert; nSApass1=nSAinsert; if (P->sjdbInsert.pass1) @@ -310,61 +310,61 @@ void Genome::genomeLoad(){//allocate and load Genome nGenomePass1+=P->limitSjdbInsertNsj*P->sjdbLength; nSApass1+=2*P->limitSjdbInsertNsj*P->sjdbLength; }; - + nGenomePass2=nGenomePass1; nSApass2=nSApass1; if (P->sjdbInsert.pass2) { nGenomePass2+=P->limitSjdbInsertNsj*P->sjdbLength; - nSApass2+=2*P->limitSjdbInsertNsj*P->sjdbLength; - }; - - G1=new char[nGenomePass2+L+L]; - + nSApass2+=2*P->limitSjdbInsertNsj*P->sjdbLength; + }; + + G1=new char[nGenomePass2+L+L]; + SApass2.defineBits(P->GstrandBit+1,nSApass2); SApass2.allocateArray(); - + SApass1.defineBits(P->GstrandBit+1,nSApass1); SApass1.pointArray(SApass2.charArray+SApass2.lengthByte-SApass1.lengthByte); - + SAinsert.defineBits(P->GstrandBit+1,nSAinsert); SAinsert.pointArray(SApass1.charArray+SApass1.lengthByte-SAinsert.lengthByte); - + SA.pointArray(SAinsert.charArray+SAinsert.lengthByte-SA.lengthByte); - } else + } else {//no sjdb insertions if (P->genomeInsertL==0) {// no sequence insertion, simple allocation - G1=new char[P->nGenome+L+L]; + G1=new char[P->nGenome+L+L]; SA.allocateArray(); - } else + } else { - G1=new char[P->nGenome+L+L+P->genomeInsertL]; + G1=new char[P->nGenome+L+L+P->genomeInsertL]; SAinsert.defineBits(P->GstrandBit+1,P->nSA+2*P->genomeInsertL);//TODO: re-define GstrandBit if necessary SAinsert.allocateArray(); SA.pointArray(SAinsert.charArray+SAinsert.lengthByte-SA.lengthByte); }; - }; + }; SAi.allocateArray(); - P->inOut->logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<inOut->logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000 << " bytes\n"; errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << P->nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000<inOut->logMain, EXIT_CODE_MEMORY_ALLOCATION, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_MEMORY_ALLOCATION, *P); }; - + } - + // if (twopass1readsN==0) {//not 2-pass // shmStartG=SHM_startSHM; // shmStartSA=0; // } else {//2-pass // ostringstream errOut; // errOut << "EXITING because of FATAL ERROR: 2-pass procedure cannot be used with genome already loaded im memory' "\n" ; -// errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <inOut->logMain, EXIT_CODE_SHM, *P); // }; @@ -376,71 +376,71 @@ void Genome::genomeLoad(){//allocate and load Genome if (P->genomeLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files //load genome P->inOut->logMain <<"Genome file size: "<nGenome <<" bytes; state: good=" <inOut->logMain <<"Loading Genome ... " << flush; - uint genomeReadBytesN=fstreamReadBig(GenomeIn,G,P->nGenome); + <<" eof="<inOut->logMain <<"Loading Genome ... " << flush; + uint genomeReadBytesN=fstreamReadBig(GenomeIn,G,P->nGenome); P->inOut->logMain <<"done! state: good=" <nGenome+ii]=K-1; - }; - + G[P->nGenome+ii]=K-1; + }; + //load SAs P->inOut->logMain <<"SA file size: "<inOut->logMain <<"Loading SA ... " << flush; + <<" eof="<inOut->logMain <<"Loading SA ... " << flush; genomeReadBytesN=fstreamReadBig(SAin,SA.charArray, SA.lengthByte); P->inOut->logMain <<"done! state: good=" <inOut->logMain <<"Loading SAindex ... " << flush; + + P->inOut->logMain <<"Loading SAindex ... " << flush; SAiInBytes +=fstreamReadBig(SAiIn,SAi.charArray, SAi.lengthByte); - P->inOut->logMain <<"done: "<inOut->logMain <<"done: "<genomeLoad=="LoadAndKeep" || - P->genomeLoad=="LoadAndRemove" || - P->genomeLoad=="LoadAndExit") && isAllocatorProcess ) + SAiIn.close(); + + if ((P->genomeLoad=="LoadAndKeep" || + P->genomeLoad=="LoadAndRemove" || + P->genomeLoad=="LoadAndExit") && isAllocatorProcess ) { //record sizes. This marks the end of genome loading *shmNG=P->nGenome; *shmNSA=P->nSAbyte; }; - + time ( &rawtime ); - P->inOut->logMain << "Finished loading the genome: " << asctime (localtime ( &rawtime )) <<"\n"<inOut->logMain << "Finished loading the genome: " << asctime (localtime ( &rawtime )) <<"\n"<nGenome; ii++) sum1 += (uint) (unsigned char) G[ii]; - P->inOut->logMain << "Sum of all Genome bytes: " <inOut->logMain << "Sum of all Genome bytes: " <inOut->logMain << "Sum of all SA bytes: " <inOut->logMain << "Sum of all SAi bytes: " <genomeLoad=="LoadAndExit") { uint shmSum=0; for (uint ii=0;iiinOut->logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<chrBinFill(); - + //splice junctions database if (P->nGenome==P->chrStart[P->nChrReal]) {//no sjdb P->sjdbN=0; @@ -448,16 +448,16 @@ void Genome::genomeLoad(){//allocate and load Genome } else {//there are sjdb chromosomes ifstream sjdbInfo((P->genomeDir+"/sjdbInfo.txt").c_str()); if (sjdbInfo.fail()) { - ostringstream errOut; + ostringstream errOut; errOut << "EXITING because of FATAL error, could not open file " << (P->genomeDir+"/sjdbInfo.txt") <<"\n"; - errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - - + + sjdbInfo >> P->sjdbN >> P->sjdbOverhang; - P->inOut->logMain << "Processing splice junctions database sjdbN=" <sjdbN<<", sjdbOverhang=" <sjdbOverhang <<" \n"; - + P->inOut->logMain << "Processing splice junctions database sjdbN=" <sjdbN<<", sjdbOverhang=" <sjdbOverhang <<" \n"; + P->sjChrStart=P->nChrReal; P->sjGstart=P->chrStart[P->sjChrStart]; @@ -466,13 +466,13 @@ void Genome::genomeLoad(){//allocate and load Genome P->sjAstart=new uint [P->sjdbN]; P->sjdbStart=new uint [P->sjdbN]; P->sjdbEnd=new uint [P->sjdbN]; - + P->sjdbMotif=new uint8 [P->sjdbN]; P->sjdbShiftLeft=new uint8 [P->sjdbN]; P->sjdbShiftRight=new uint8 [P->sjdbN]; P->sjdbStrand=new uint8 [P->sjdbN]; - for (uint ii=0;iisjdbN;ii++) {//get the info about junctions from sjdbInfo.txt + for (uint ii=0;iisjdbN;ii++) {//get the info about junctions from sjdbInfo.txt { uint16 d1,d2,d3,d4; sjdbInfo >> P->sjdbStart[ii] >> P->sjdbEnd[ii] >> d1 >> d2 >> d3 >> d4; @@ -481,15 +481,15 @@ void Genome::genomeLoad(){//allocate and load Genome P->sjdbShiftRight[ii] = (uint8) d3; P->sjdbStrand[ii] = (uint8) d4; }; - P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; - P->sjAstart[ii] = P->sjdbEnd[ii] + 1; + P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; + P->sjAstart[ii] = P->sjdbEnd[ii] + 1; if (P->sjdbMotif[ii]==0) {//shinon-canonical junctions back to their true coordinates P->sjDstart[ii] += P->sjdbShiftLeft[ii]; P->sjAstart[ii] += P->sjdbShiftLeft[ii]; }; }; - }; - + }; + //check and redefine some parameters //max intron size if (P->alignIntronMax==0 && P->alignMatesGapMax==0) { @@ -500,14 +500,14 @@ void Genome::genomeLoad(){//allocate and load Genome P->winBinNbits=max( (uint) floor(log2(P->nGenome/40000)+0.5), (uint) floor(log2(max(max(4LLU,P->alignIntronMax),P->alignMatesGapMax)/4)+0.5) ); P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" redefined winBinNbits="<< P->winBinNbits <winBinNbits > P->genomeChrBinNbits) { P->inOut->logMain << "winBinNbits=" <winBinNbits <<" > " << "genomeChrBinNbits=" << P->genomeChrBinNbits << " redefining:\n"; P->winBinNbits=P->genomeChrBinNbits; P->inOut->logMain << "winBinNbits=" <winBinNbits <alignIntronMax==0 && P->alignMatesGapMax==0) { } else { //redefine winFlankNbins,winAnchorDistNbins @@ -516,7 +516,7 @@ void Genome::genomeLoad(){//allocate and load Genome P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" and alignMatesGapMax="<alignMatesGapMax<<\ ", redefined winFlankNbins="<winFlankNbins<<" and winAnchorDistNbins="<winAnchorDistNbins<winBinChrNbits=P->genomeChrBinNbits-P->winBinNbits; P->winBinN = P->nGenome/(1LLU << P->winBinNbits)+1;//this may be chenaged later }; @@ -530,9 +530,9 @@ void Genome::HandleSharedMemoryException(const SharedMemoryException & exc, uint int exitCode = EXIT_CODE_SHM; switch (exc.GetErrorCode()) { - case EOPENFAILED: + case EOPENFAILED: errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open()." << endl << flush; - errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; + errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; break; case EEXISTS: errOut << "EXITING: fatal error from shmget() trying to allocate shared memory piece." << endl; @@ -548,25 +548,25 @@ void Genome::HandleSharedMemoryException(const SharedMemoryException & exc, uint break; case EMAPFAILED: errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmat() while trying to get address of the shared memory piece." << endl << flush; - errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; + errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; break; case ECLOSE: - errOut << "EXITING because of FATAL ERROR: could not close the shared memory object." << endl << flush; + errOut << "EXITING because of FATAL ERROR: could not close the shared memory object." << endl << flush; break; case EUNLINK: #ifdef POSIX_SHARED_MEM errOut << "EXITING because of FATAL ERROR: could not delete the shared object." << endl << flush; #else errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmctl() while trying to remove shared memory piece." << endl << flush; - errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; + errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; #endif break; default: errOut << "EXITING because of FATAL ERROR: There was an issue with the shared memory allocation. Try running STAR with --genomeLoad NoSharedMemory to avoid using shared memory."; break; - } + } - try + try { if (sharedMemory != NULL) sharedMemory->Clean(); diff --git a/Genome.h b/Genome.h index 08f178d..c564be6 100644 --- a/Genome.h +++ b/Genome.h @@ -11,13 +11,13 @@ class Genome { char *G, *sigG; PackedArray SA,SAinsert,SApass1,SApass2; PackedArray SAi; - - uint nGenomeInsert, nGenomePass1, nGenomePass2, nSAinsert, nSApass1, nSApass2; + + uint nGenomeInsert, nGenomePass1, nGenomePass2, nSAinsert, nSApass1, nSApass2; Genome (Parameters* Pin ); Genome () {};//empty constructor ~Genome(); - + void freeMemory(); void genomeLoad(); @@ -26,7 +26,7 @@ class Genome { private: Parameters* P; - key_t shmKey; + key_t shmKey; char *shmStart; char *G1; //pointer -200 of G SharedMemory * sharedMemory; diff --git a/Genome_insertSequences.cpp b/Genome_insertSequences.cpp index 5edf127..24348ec 100644 --- a/Genome_insertSequences.cpp +++ b/Genome_insertSequences.cpp @@ -1,4 +1,4 @@ -/* +/* * inserts sequences into the SA and SAi indices */ #include "Genome.h" @@ -12,17 +12,17 @@ if (P->genomeFastaFiles.at(0)!="-") { time_t rawtime; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting extra sequences into genome indexes" <inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting extra sequences into genome indexes" <nGenome-(P->chrStart.back()-P->genomeInsertL);//length of sjdb sequences memmove(G+P->chrStart.back(),G+P->chrStart.back()-P->genomeInsertL,sjdblen); memset(G+P->chrStart.back()-P->genomeInsertL, GENOME_spacingChar, P->genomeInsertL);//fill empty space with spacing characters - + genomeScanFastaFiles(P, G+P->chrStart.back()-P->genomeInsertL, true); //read the seqs from file(s) into the free space uint64 nGenomeOld=P->nGenome; - P->nGenome=P->chrStart.back()+sjdblen; + P->nGenome=P->chrStart.back()+sjdblen; //insert new sequences into the SA insertSeqSA(SA, SAinsert, SAi, G, G+P->chrStart.back()-P->genomeInsertL, nGenomeOld-sjdblen, P->genomeInsertL, sjdblen, P); diff --git a/InOutStreams.cpp b/InOutStreams.cpp index ef53bfa..f280de9 100644 --- a/InOutStreams.cpp +++ b/InOutStreams.cpp @@ -9,30 +9,30 @@ InOutStreams::InOutStreams() { }; InOutStreams::~InOutStreams() { - + if (logStdOut!=NULL) logStdOut->flush(); if (outSAM!=NULL) outSAM->flush(); - + logStdOutFile.flush(); outSAMfile.flush(); - + outChimSAM.flush(); - outChimJunction.flush(); + outChimJunction.flush(); logProgress.flush(); logMain.flush(); logFinal.flush(); outLocalChains.flush(); - + logStdOutFile.close(); outSAMfile.close(); outChimSAM.close(); - outChimJunction.close(); + outChimJunction.close(); logProgress.close(); logMain.close(); - logFinal.close(); + logFinal.close(); outLocalChains.close(); - - + + for (int ii=0;ii<2;ii++) { if (outUnmappedReadsStream[ii].is_open()) { outUnmappedReadsStream[ii].flush(); @@ -40,4 +40,4 @@ InOutStreams::~InOutStreams() { } }; }; - + diff --git a/InOutStreams.h b/InOutStreams.h index 8013788..441af7f 100644 --- a/InOutStreams.h +++ b/InOutStreams.h @@ -9,10 +9,10 @@ class InOutStreams { ostream *logStdOut, *outSAM; ofstream logStdOutFile, outSAMfile; BGZF *outBAMfileUnsorted, *outBAMfileCoord, *outQuantBAMfile; - + ofstream outChimSAM, outChimJunction, logMain, logProgress, logFinal, outUnmappedReadsStream[MAX_N_MATES]; ifstream readIn[MAX_N_MATES]; - + //compilation-optional streams ofstream outLocalChains; diff --git a/IncludeDefine.h b/IncludeDefine.h index 6ce3e21..f80b44b 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include @@ -39,7 +39,7 @@ using namespace std; #endif typedef int8_t int8; -typedef uint8_t uint8; +typedef uint8_t uint8; #define uint unsigned long long #define sint signed long long @@ -100,7 +100,7 @@ typedef uint8_t uint8; #define MAX_N_EXONS 1000 #else #define MAX_N_EXONS 20 -#endif +#endif //input reads #define MAX_N_MATES 2 @@ -221,5 +221,5 @@ typedef uint uiWA[WA_SIZE]; #endif // #define DEBUG_NreadStart 500000 - + #endif diff --git a/OutSJ.cpp b/OutSJ.cpp index 121f439..71f67b3 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -13,7 +13,7 @@ OutSJ::OutSJ (uint nSJmax, Parameters *inP) {//do I need P? int compareSJ(const void* i1, const void* i2) {//compare SJs from the data structure uint s1=*( (uint*)i1 ); uint s2=*( (uint*)i2 ); - + if (s1>s2) { return 1; } else if (s1inOut->logMain, EXIT_CODE_BUG, *P);\ // *(isj1P+motifP) = *(isjP+motifP) ; - }; + }; if (*(isj1P+annotP) < *(isjP+annotP) ) { stringstream errOut; errOut <<"EXITING becaues of BUG: different annotation status for the same junction while collapsing junctions:"\ <<*(uint*)(isj1P+startP) <<" "<<*(uint32*)(isj1P+gapP) <<" "<inOut->logMain, EXIT_CODE_BUG, *P);\ - + // *(isj1P+annotP) = *(isjP+annotP) ; - }; - + }; + } diff --git a/OutSJ.h b/OutSJ.h index e05f598..aa89899 100644 --- a/OutSJ.h +++ b/OutSJ.h @@ -9,12 +9,12 @@ class Junction {//one junction const static uint gapP=startP+sizeof(uint); const static uint strandP=gapP+sizeof(uint32); const static uint motifP=strandP+sizeof(char); - const static uint annotP=motifP+sizeof(char); - const static uint countUniqueP=annotP+sizeof(char); - const static uint countMultipleP=countUniqueP+sizeof(uint32); - const static uint overhangLeftP=countMultipleP+sizeof(uint32); - const static uint overhangRightP=overhangLeftP+sizeof(uint16); - + const static uint annotP=motifP+sizeof(char); + const static uint countUniqueP=annotP+sizeof(char); + const static uint countMultipleP=countUniqueP+sizeof(uint32); + const static uint overhangLeftP=countMultipleP+sizeof(uint32); + const static uint overhangRightP=overhangLeftP+sizeof(uint16); + uint *start; uint32 *gap; char *strand, *motif, *annot; @@ -22,7 +22,7 @@ class Junction {//one junction uint16 *overhangLeft, *overhangRight; const static uint dataSize=overhangRightP+sizeof(uint16); - + void junctionPointer(char* sjPoint, uint isj); void outputStream(ostream &outStream, Parameters* P); void collapseOneSJ(char* isj1P, char* isjP, Parameters* P); @@ -33,18 +33,18 @@ class OutSJ { public: //all junctions char* data; //sj array[Njunctions][dataSize] - + uint N; //number of junctions stored - + Junction oneSJ; - + Parameters *P; - + OutSJ(uint nSJmax, Parameters *P); - + void collapseSJ();//collapse the junctions in data // int compareSJ(void* i1, void* i2); - + }; int compareSJ(const void* i1, const void* i2); //external functions diff --git a/PackedArray.h b/PackedArray.h index af479aa..efaad5b 100644 --- a/PackedArray.h +++ b/PackedArray.h @@ -5,14 +5,14 @@ class PackedArray { private: - uint bitRecMask, wordCompLength; + uint bitRecMask, wordCompLength; bool arrayAllocated; //true if charArray was allocated public: uint wordLength, length, lengthByte; uint operator [] (uint ii); char* charArray; - - PackedArray(); + + PackedArray(); void defineBits (uint Nbits, uint lengthIn); void writePacked(uint jj, uint x); void allocateArray(); diff --git a/ParameterInfo.h b/ParameterInfo.h index ec24e53..cd67c6a 100644 --- a/ParameterInfo.h +++ b/ParameterInfo.h @@ -7,8 +7,8 @@ class ParameterInfoBase { int inputLevel; //where the parameter was defined int inputLevelAllowed; //at which inpurt level parameter definition is allowed virtual void inputValues(istringstream &streamIn) =0; - friend std::ostream& operator<< (std::ostream& o, ParameterInfoBase const& b); - virtual ~ParameterInfoBase() {}; + friend std::ostream& operator<< (std::ostream& o, ParameterInfoBase const& b); + virtual ~ParameterInfoBase() {}; protected: virtual void printValues(std::ostream& o) const = 0; }; @@ -21,7 +21,7 @@ inline std::ostream& operator<< (std::ostream& o, ParameterInfoBase const& b) { }; -template +template inline parameterType inputOneValue (istringstream &streamIn) { parameterType oneV; streamIn >> oneV; @@ -36,62 +36,62 @@ inline string inputOneValue (istringstream &streamIn) { } else { streamIn.get();//skip " getline(streamIn,oneV,'"'); - }; + }; return oneV; }; -template +template inline void printOneValue (parameterType *value, std::ostream& outStr) { outStr << *value; }; template <> inline void printOneValue (string *value, std::ostream& outStr) { if ((*value).find_first_of(" \t")!=std::string::npos) {//there is white space in the argument, put "" around - outStr << '\"' << *value <<'\"'; + outStr << '\"' << *value <<'\"'; } else { outStr << *value; }; }; template -class ParameterInfoScalar : public ParameterInfoBase { +class ParameterInfoScalar : public ParameterInfoBase { public: parameterType *value; vector allowedValues; - + ParameterInfoScalar(int inputLevelIn, int inputLevelAllowedIn, string nameStringIn, parameterType* valueIn) { nameString=nameStringIn; inputLevel=inputLevelIn; inputLevelAllowed=inputLevelAllowedIn; value=valueIn; }; - + void inputValues(istringstream &streamIn) { *value=inputOneValue (streamIn); }; - + ~ParameterInfoScalar() {}; protected: virtual void printValues(std::ostream& outStr) const { printOneValue(value, outStr); - }; - + }; + }; template -class ParameterInfoVector : public ParameterInfoBase { +class ParameterInfoVector : public ParameterInfoBase { public: vector *value; vector allowedValues; - + ParameterInfoVector(int inputLevelIn, int inputLevelAllowedIn, string nameStringIn, vector *valueIn) { nameString=nameStringIn; inputLevel=inputLevelIn; inputLevelAllowed=inputLevelAllowedIn; value=valueIn; }; - + void inputValues(istringstream &streamIn) { (*value).clear(); while (streamIn.good()) { @@ -99,7 +99,7 @@ class ParameterInfoVector : public ParameterInfoBase { streamIn >> ws; //remove white space, may arrive at the end of line }; }; - + ~ParameterInfoVector() {}; protected: virtual void printValues(std::ostream& outStr) const { @@ -107,6 +107,6 @@ class ParameterInfoVector : public ParameterInfoBase { printOneValue(&(*value).at(ii),outStr); outStr<<" "; }; - }; + }; }; #endif diff --git a/Parameters.cpp b/Parameters.cpp index e3eb17d..df2d051 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -16,45 +16,45 @@ #define PAR_NAME_PRINT_WIDTH 30 Parameters::Parameters() {//initalize parameters info - + inOut = new InOutStreams; - + //versions parArray.push_back(new ParameterInfoScalar (-1, -1, "versionSTAR", &versionSTAR)); parArray.push_back(new ParameterInfoVector (-1, -1, "versionGenome", &versionGenome)); - + //parameters parArray.push_back(new ParameterInfoVector (-1, 2, "parametersFiles", ¶metersFiles)); - - //system - parArray.push_back(new ParameterInfoScalar (-1, -1, "sysShell", &sysShell)); - + + //system + parArray.push_back(new ParameterInfoScalar (-1, -1, "sysShell", &sysShell)); + //run parArray.push_back(new ParameterInfoScalar (-1, -1, "runMode", &runMode)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "runThreadN", &runThreadN)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "runThreadN", &runThreadN)); parArray.push_back(new ParameterInfoScalar (-1, -1, "runDirPerm", &runDirPermIn)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "runRNGseed", &runRNGseed)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "runRNGseed", &runRNGseed)); + //genome parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeDir", &genomeDir)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeLoad", &genomeLoad)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeLoad", &genomeLoad)); parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFastaFiles", &genomeFastaFiles)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAindexNbases", &genomeSAindexNbases)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeChrBinNbits", &genomeChrBinNbits)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &genomeSAsparseD)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSuffixLengthMax", &genomeSuffixLengthMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAindexNbases", &genomeSAindexNbases)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeChrBinNbits", &genomeChrBinNbits)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &genomeSAsparseD)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSuffixLengthMax", &genomeSuffixLengthMax)); //read parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesIn", &readFilesIn)); parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesCommand", &readFilesCommand)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); parArray.push_back(new ParameterInfoVector (-1, -1, "readNameSeparator", &readNameSeparator)); - + //input from BAM parArray.push_back(new ParameterInfoScalar (-1, -1, "inputBAMfile", &inputBAMfile)); - + //BAM processing parArray.push_back(new ParameterInfoScalar (-1, -1, "bamRemoveDuplicatesType", &bamRemoveDuplicatesType)); parArray.push_back(new ParameterInfoScalar (-1, -1, "bamRemoveDuplicatesMate2basesN", &bamRemoveDuplicatesMate2basesN)); @@ -71,14 +71,14 @@ Parameters::Parameters() {//initalize parameters info //output parArray.push_back(new ParameterInfoScalar (-1, 2, "outFileNamePrefix", &outFileNamePrefix)); - parArray.push_back(new ParameterInfoScalar (-1, 2, "outTmpDir", &outTmpDir)); - parArray.push_back(new ParameterInfoScalar (-1, 2, "outStd", &outStd)); + parArray.push_back(new ParameterInfoScalar (-1, 2, "outTmpDir", &outTmpDir)); + parArray.push_back(new ParameterInfoScalar (-1, 2, "outStd", &outStd)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outReadsUnmapped", &outReadsUnmapped)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outQSconversionAdd", &outQSconversionAdd)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outMultimapperOrder", &outMultimapperOrder.mode)); - + //outSAM - parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMtype", &outSAMtype)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMtype", &outSAMtype)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmode", &outSAMmode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMstrandField", &outSAMstrandField)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMattributes", &outSAMattributes)); @@ -103,7 +103,7 @@ Parameters::Parameters() {//initalize parameters info //output SJ filtering parArray.push_back(new ParameterInfoScalar (-1, -1, "outSJfilterReads", &outSJfilterReads)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterCountUniqueMin", &outSJfilterCountUniqueMin)); - parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterCountTotalMin", &outSJfilterCountTotalMin)); + parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterCountTotalMin", &outSJfilterCountTotalMin)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterOverhangMin", &outSJfilterOverhangMin)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterDistToOtherSJmin", &outSJfilterDistToOtherSJmin)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSJfilterIntronMaxVsReadN", &outSJfilterIntronMaxVsReadN)); @@ -119,18 +119,18 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMultimapNmax", &outFilterMultimapNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMultimapScoreRange", &outFilterMultimapScoreRange)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterScoreMin", &outFilterScoreMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterScoreMinOverLread", &outFilterScoreMinOverLread)); - - parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMatchNmin", &outFilterMatchNmin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMatchNminOverLread", &outFilterMatchNminOverLread)); - + + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMatchNmin", &outFilterMatchNmin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMatchNminOverLread", &outFilterMatchNminOverLread)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMismatchNmax", &outFilterMismatchNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMismatchNoverLmax", &outFilterMismatchNoverLmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMismatchNoverReadLmax", &outFilterMismatchNoverReadLmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterIntronMotifs", &outFilterIntronMotifs)); - + //clipping parArray.push_back(new ParameterInfoVector (-1, -1, "clip5pNbases", &clip5pNbases)); parArray.push_back(new ParameterInfoVector (-1, -1, "clip3pNbases", &clip3pNbases)); @@ -143,7 +143,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "winAnchorDistNbins", &winAnchorDistNbins)); parArray.push_back(new ParameterInfoScalar (-1, -1, "winFlankNbins", &winFlankNbins)); parArray.push_back(new ParameterInfoScalar (-1, -1, "winAnchorMultimapNmax", &winAnchorMultimapNmax)); - + //scoring parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreGap", &scoreGap)); parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreGapNoncan", &scoreGapNoncan)); @@ -155,58 +155,58 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreDelBase", &scoreDelBase)); parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreDelOpen", &scoreDelOpen)); parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreInsOpen", &scoreInsOpen)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreInsBase", &scoreInsBase)); - - //alignment + parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreInsBase", &scoreInsBase)); + + //alignment parArray.push_back(new ParameterInfoScalar (-1, -1, "seedSearchLmax", &seedSearchLmax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "seedSearchStartLmax", &seedSearchStartLmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedSearchStartLmax", &seedSearchStartLmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "seedSearchStartLmaxOverLread", &seedSearchStartLmaxOverLread)); - - parArray.push_back(new ParameterInfoScalar (-1, -1, "seedPerReadNmax", &seedPerReadNmax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "seedPerWindowNmax", &seedPerWindowNmax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "seedNoneLociPerWindow", &seedNoneLociPerWindow)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "seedMultimapNmax", &seedMultimapNmax)); - - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignIntronMin", &alignIntronMin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignIntronMax", &alignIntronMax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignMatesGapMax", &alignMatesGapMax)); - - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerReadNmax", &alignTranscriptsPerReadNmax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSJoverhangMin", &alignSJoverhangMin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSJDBoverhangMin", &alignSJDBoverhangMin)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedPerReadNmax", &seedPerReadNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedPerWindowNmax", &seedPerWindowNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedNoneLociPerWindow", &seedNoneLociPerWindow)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedMultimapNmax", &seedMultimapNmax)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignIntronMin", &alignIntronMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignIntronMax", &alignIntronMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignMatesGapMax", &alignMatesGapMax)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerReadNmax", &alignTranscriptsPerReadNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSJoverhangMin", &alignSJoverhangMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSJDBoverhangMin", &alignSJDBoverhangMin)); parArray.push_back(new ParameterInfoVector (-1, -1, "alignSJstitchMismatchNmax", &alignSJstitchMismatchNmax)); - - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLmin", &alignSplicedMateMapLmin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLminOverLmate", &alignSplicedMateMapLminOverLmate)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignWindowsPerReadNmax", &alignWindowsPerReadNmax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerWindowNmax", &alignTranscriptsPerWindowNmax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignEndsType", &alignEndsType.in)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSoftClipAtReferenceEnds", &alignSoftClipAtReferenceEnds)); + + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLmin", &alignSplicedMateMapLmin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSplicedMateMapLminOverLmate", &alignSplicedMateMapLminOverLmate)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignWindowsPerReadNmax", &alignWindowsPerReadNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerWindowNmax", &alignTranscriptsPerWindowNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignEndsType", &alignEndsType.in)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSoftClipAtReferenceEnds", &alignSoftClipAtReferenceEnds)); //chimeric - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &chimSegmentMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &chimSegmentMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &chimScoreMin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreDropMax", &chimScoreDropMax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreSeparation", &chimScoreSeparation)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreDropMax", &chimScoreDropMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreSeparation", &chimScoreSeparation)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimOutType", &chimOutType)); parArray.push_back(new ParameterInfoVector (-1, -1, "chimFilter", &chimFilter)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentReadGapMax", &chimSegmentReadGapMax)); - + //sjdb parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfile", &sjdbGTFfile)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFchrPrefix", &sjdbGTFchrPrefix)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfeatureExon", &sjdbGTFfeatureExon)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentTranscript", &sjdbGTFtagExonParentTranscript)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentGene", &sjdbGTFtagExonParentGene)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfile", &sjdbGTFfile)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFchrPrefix", &sjdbGTFchrPrefix)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfeatureExon", &sjdbGTFfeatureExon)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentTranscript", &sjdbGTFtagExonParentTranscript)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentGene", &sjdbGTFtagExonParentGene)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &sjdbOverhang)); sjdbOverhang_par=parArray.size()-1; parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &sjdbScore)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &sjdbInsert.save)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &sjdbInsert.save)); + //quant parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quant.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quant.trSAM.bamCompression)); @@ -217,23 +217,23 @@ Parameters::Parameters() {//initalize parameters info twoPass.pass1readsN_par=parArray.size()-1; parArray.push_back(new ParameterInfoScalar (-1, -1, "twopassMode", &twoPass.mode)); - + // //SW parameters // parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); // parArray.push_back(new ParameterInfoScalar (-1, -1, "swWinCoverageMinP", &swWinCoverageMinP)); - + parameterInputName.push_back("Default"); parameterInputName.push_back("Command-Line-Initial"); - parameterInputName.push_back("Command-Line"); + parameterInputName.push_back("Command-Line"); parameterInputName.push_back("genomeParameters.txt"); - + }; void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters: default, from files, from command line - + ///////// Default parameters - + #include "parametersDefault.xxd" string parString( (const char*) parametersDefault,parametersDefault_len); stringstream parStream (parString); @@ -245,51 +245,51 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"BUG: DEFAULT parameter value not defined: "<nameString; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - }; - + }; + ///////// Initial parameters from Command Line - - commandLine=""; - string commandLineFile=""; + + commandLine=""; + string commandLineFile=""; if (argInN>1) {//scan parameters from command line commandLine += string(argIn[0]); for (int iarg=1; iarglogMain.open((outFileNamePrefix + "Log.out").c_str()); if (inOut->logMain.fail()) { ostringstream errOut; @@ -297,12 +297,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"Check if the path " << outFileNamePrefix << " exists and you have permissions to write there\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + inOut->logMain << "STAR version=" << STAR_VERSION << "\n"<logMain << "STAR compilation time,server,dir=" << COMPILATION_TIME_PLACE << "\n"<logMain << "STAR compilation time,server,dir=" << COMPILATION_TIME_PLACE << "\n"<logStdOut=& std::cout; @@ -314,34 +314,34 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"EXITING because of FATAL PARAMETER error: outStd="<logMain, EXIT_CODE_PARAMETER, *this); - }; - + }; + inOut->logMain << "##### DEFAULT parameters:\n" <inputLevel==0) { inOut->logMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; }; - }; - + }; + inOut->logMain <<"##### Command Line:\n"<logMain << "##### Initial USER parameters from Command Line:\n"; + inOut->logMain << "##### Initial USER parameters from Command Line:\n"; for (uint ii=0; iiinputLevel==1) { inOut->logMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; }; - }; - + }; + ///////// Parameters files - + if (parametersFiles.at(0) != "-") {//read parameters from a user-defined file for (uint ii=0; iilogMain << "##### USER parameters from user-defined parameters file " <logMain << "##### USER parameters from user-defined parameters file " <1) {//scan all parameters from command line and override previuos values - inOut->logMain << "###### All USER parameters from Command Line:\n" <logMain << "###### All USER parameters from Command Line:\n" <logMain << "##### Finished reading parameters from all sources\n\n" << flush; inOut->logMain << "##### Final user re-defined parameters-----------------:\n" << flush; @@ -371,21 +371,21 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters clFull << " --" << parArray[ii]->nameString << " " << *(parArray[ii]); }; }; - }; + }; commandLineFull=clFull.str(); inOut->logMain << "\n-------------------------------\n##### Final effective command line:\n" << clFull.str() << "\n"; - + // parOut.close(); - inOut->logMain << "\n##### Final parameters after user input--------------------------------:\n" << flush; + inOut->logMain << "\n##### Final parameters after user input--------------------------------:\n" << flush; // parOut.open("Parameters.all.out"); for (uint ii=0; iilogMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; - }; + }; // parOut.close(); - + inOut->logMain << "----------------------------------------\n\n" << flush; - - + + ///////////////////////////////////////// Old variables outputBED[0]=0; outputBED[1]=0; //controls the format of starBED output. Will be replaced with HDF5 output @@ -398,12 +398,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters maxNsplit=10; minLsplit=12; minLmap=5; - - - -////////////////////////////////////////////////////// Calculate and check parameters + + + +////////////////////////////////////////////////////// Calculate and check parameters iReadAll=0; - + if (runDirPermIn=="User_RWX") { runDirPerm=S_IRWXU; @@ -415,27 +415,27 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters { ostringstream errOut; errOut << "EXITING because of FATAL INPUT ERROR: unrecognized option in --runDirPerm=" << runDirPerm << "\n"; - errOut << "SOLUTION: use one of the allowed values of --runDirPerm : 'User_RWX' or 'All_RWX' \n"; + errOut << "SOLUTION: use one of the allowed values of --runDirPerm : 'User_RWX' or 'All_RWX' \n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (outTmpDir=="-") { outFileTmp=outFileNamePrefix +"_STARtmp/"; - sysRemoveDir (outFileTmp); + sysRemoveDir (outFileTmp); } else { outFileTmp=outTmpDir; }; - + if (mkdir (outFileTmp.c_str(),runDirPerm)!=0) { ostringstream errOut; errOut <<"EXITING because of fatal ERROR: could not make temporary directory: "<< outFileTmp<<"\n"; errOut <<"SOLUTION: (i) please check the path and writing permissions \n (ii) if you specified --outTmpDir, and this directory exists - please remove it before running STAR\n"<logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + //threaded or not g_threadChunks.threadBool=(runThreadN>1); - + //wigOut parameters if (outWigType.at(0)=="None") { outWigFlags.yes=false; @@ -448,7 +448,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { ostringstream errOut; errOut << "EXITING because of FATAL INPUT ERROR: unrecognized option in --outWigType=" << outWigType.at(0) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --outWigType : 'None' or 'bedGraph' \n"; + errOut << "SOLUTION: use one of the allowed values of --outWigType : 'None' or 'bedGraph' \n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; if (outWigStrand.at(0)=="Stranded") { @@ -458,10 +458,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { ostringstream errOut; errOut << "EXITING because of FATAL INPUT ERROR: unrecognized option in --outWigStrand=" << outWigStrand.at(0) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --outWigStrand : 'Stranded' or 'Unstranded' \n"; + errOut << "SOLUTION: use one of the allowed values of --outWigStrand : 'Stranded' or 'Unstranded' \n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (outWigType.size()==1) {//simple bedGraph outWigFlags.type=0; } else { @@ -472,11 +472,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { ostringstream errOut; errOut << "EXITING because of FATAL INPUT ERROR: unrecognized second option in --outWigType=" << outWigType.at(1) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --outWigType : 'read1_5p' \n"; + errOut << "SOLUTION: use one of the allowed values of --outWigType : 'read1_5p' \n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + //wigOut parameters if (outWigNorm.at(0)=="None") { outWigFlags.norm=0; @@ -485,10 +485,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { ostringstream errOut; errOut << "EXITING because of fatal parameter ERROR: unrecognized option in --outWigNorm=" << outWigNorm.at(0) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --outWigNorm : 'None' or 'RPM' \n"; + errOut << "SOLUTION: use one of the allowed values of --outWigNorm : 'None' or 'RPM' \n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - + }; + if (runMode=="alignReads") { inOut->logProgress.open((outFileNamePrefix + "Log.progress.out").c_str()); } else if (runMode=="inputAlignmentsFromBAM") { @@ -499,17 +499,17 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters string wigOutFileNamePrefix=outFileNamePrefix + "Signal"; signalFromBAM(inputBAMfile, wigOutFileNamePrefix, *this); *inOut->logStdOut << timeMonthDayTime() << " ..... Done\n" <logMain << timeMonthDayTime() << " ..... Done\n" <logMain << timeMonthDayTime() << " ..... Done\n" <logStdOut << timeMonthDayTime() << " ..... Reading from BAM, remove duplicates, output BAM\n" <logMain << timeMonthDayTime() << " ..... Reading from BAM, remove duplicates, output BAM\n" <logMain << timeMonthDayTime() << " ..... Reading from BAM, remove duplicates, output BAM\n" <logStdOut << timeMonthDayTime() << " ..... Done\n" <logMain << timeMonthDayTime() << " ..... Done\n" <logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; sysRemoveDir (outFileTmp); exit(0); @@ -524,7 +524,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut <<"EXITING because of fatal PARAMETER error: missing BAM option\n"; errOut <<"SOLUTION: re-run STAR with one of the allowed values of --outSAMtype BAM Unsorted OR SortedByCoordinate OR both\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; for (uint32 ii=1; iilogMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; //TODO check for conflicts @@ -552,27 +552,27 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outBAMfileCoordName="-"; } else { outBAMfileCoordName=outFileNamePrefix + "Aligned.sortedByCoord.out.bam"; - }; + }; inOut->outBAMfileCoord = bgzf_open(outBAMfileCoordName.c_str(),("w"+to_string((long long) outBAMcompression)).c_str()); if (outBAMsortingThreadN==0) { outBAMsortingThreadNactual=min(6, runThreadN); } else { outBAMsortingThreadNactual=outBAMsortingThreadN; - }; + }; outBAMcoordNbins=max(outBAMsortingThreadNactual*3,10); outBAMsortingBinStart= new uint64 [outBAMcoordNbins]; outBAMsortingBinStart[0]=1;//this initial value means that the bin sizes have not been determined yet - + outBAMsortTmpDir=outFileTmp+"/BAMsort/"; - mkdir(outBAMsortTmpDir.c_str(),runDirPerm); - }; + mkdir(outBAMsortTmpDir.c_str(),runDirPerm); + }; } else if (outSAMtype.at(0)=="SAM") { if (outSAMtype.size()>1) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETER error: --outSAMtype SAM can cannot be combined with "<logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; outSAMbool=true; if (outStd=="SAM") { @@ -582,12 +582,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters inOut->outSAM = & inOut->outSAMfile; }; } else if (outSAMtype.at(0)=="None") { - //nothing to do, all flags are already false + //nothing to do, all flags are already false } else { ostringstream errOut; errOut <<"EXITING because of fatal input ERROR: unknown value for the first word of outSAMtype: "<< outSAMtype.at(0) <<"\n"; errOut <<"SOLUTION: re-run STAR with one of the allowed values of outSAMtype: BAM or SAM \n"<logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; @@ -595,9 +595,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut <<"EXITING because of fatal PARAMETER error: generating signal with --outWigType requires sorted BAM\n"; errOut <<"SOLUTION: re-run STAR with with --outSAMtype BAM SortedByCoordinate, or, id you also need unsroted BAM, with --outSAMtype BAM SortedByCoordinate Unsorted\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + //versions for (uint ii=0;ii<2;ii++) { if (parArray[ii]->inputLevel>0) { @@ -607,20 +607,20 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + //run if (runThreadN<=0) { ostringstream errOut; errOut <<"EXITING: fatal input ERROR: runThreadN must be >0, user-defined runThreadN="<logMain, EXIT_CODE_PARAMETER, *this); }; - + // if (outFilterType=="BySJout" && outSAMorder=="PairedKeepInputOrder") { ostringstream errOut; errOut <<"EXITING: fatal input ERROR: --outFilterType=BySJout is not presently compatible with --outSAMorder=PairedKeepInputOrder\n"; errOut <<"SOLUTION: re-run STAR without setting one of those parameters. Send a feature request to the Authors\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; //SJ filtering for (int ii=0;ii<4;ii++) { @@ -628,10 +628,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (outSJfilterCountUniqueMin.at(ii)<0) outSJfilterCountUniqueMin.at(ii)=numeric_limits::max(); if (outSJfilterCountTotalMin.at(ii)<0) outSJfilterCountTotalMin.at(ii)=numeric_limits::max(); if (outSJfilterDistToOtherSJmin.at(ii)<0) outSJfilterDistToOtherSJmin.at(ii)=numeric_limits::max(); - + if (alignSJstitchMismatchNmax.at(ii)<0) alignSJstitchMismatchNmax.at(ii)=numeric_limits::max(); }; - + if (limitGenomeGenerateRAM==0) {//must be >0 inOut->logMain <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM=0\n"; inOut->logMain <<"SOLUTION: please specify a >0 value for limitGenomeGenerateRAM\n"<1000000000000) {// inOut->logMain <<"WARNING: specified limitGenomeGenerateRAM="<logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (outMultimapperOrder.mode=="Old_2.4") { - outMultimapperOrder.random=false; + outMultimapperOrder.random=false; } else if (outMultimapperOrder.mode=="Random") { outMultimapperOrder.random=true; @@ -687,15 +687,15 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --outMultimapperOrder: "<logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - + + readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files - + if (runMode=="alignReads" && genomeLoad!="Remove" && genomeLoad!="LoadAndExit") {//open reads files to check if they are present openReadsFiles(); - + //check sizes of the mate files, if not the same, assume mates are not the same length if (readNmates==1) { readMatesEqualLengths=true; @@ -703,7 +703,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut <<"EXITING: because of fatal input ERROR: number of read mates files > 2: " <logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); } else if (readMatesLengthsIn=="Equal") { readMatesEqualLengths=true; } else if (readMatesLengthsIn=="NotEqual") { @@ -712,7 +712,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut <<"EXITING because of FATAL input ERROR: the value of the parameter readMatesLengthsIn=" << readMatesLengthsIn <<" is not among the allowed values: Equal or NotEqual\n"; errOut <<"SOLUTION: specify one of the allowed values: Equal or NotEqual\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; if ( runMode=="alignReads" && outReadsUnmapped=="Fastx" ) {//open unmapped reads file @@ -721,9 +721,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ff << outFileNamePrefix << "Unmapped.out.mate" << imate+1; inOut->outUnmappedReadsStream[imate].open(ff.str().c_str()); }; - }; - - + }; + + if (outFilterType=="Normal") { outFilterBySJoutStage=0; } else if (outFilterType=="BySJout") { @@ -732,17 +732,17 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut <<"EXITING because of FATAL input ERROR: unknown value of parameter outFilterType: " << outFilterType <<"\n"; errOut <<"SOLUTION: specify one of the allowed values: Normal | BySJout\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + if (outSAMmapqUnique<0 || outSAMmapqUnique>255) { ostringstream errOut; errOut <<"EXITING because of FATAL input ERROR: out of range value for outSAMmapqUnique=" << outSAMmapqUnique <<"\n"; errOut <<"SOLUTION: specify outSAMmapqUnique within the range of 0 to 255\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + // in/out buffers #define BUFFER_InSizeFraction 0.5 if (limitIObufferSizelogMain, EXIT_CODE_PARAMETER, *this); - }; + }; chunkInSizeBytesArray=(uint) int((limitIObufferSize-limitOutSJcollapsed*Junction::dataSize)*BUFFER_InSizeFraction)/2; chunkOutBAMsizeBytes= (uint) int((1.0/BUFFER_InSizeFraction-1.0)*chunkInSizeBytesArray*2.0); chunkInSizeBytes=chunkInSizeBytesArray-2*(DEF_readSeqLengthMax+1)-2*DEF_readNameLengthMax;//to prevent overflow - + //basic trimming - if (clip5pNbases.size()==1 && readNmates==2) clip5pNbases.push_back(clip5pNbases[0]); - if (clip3pNbases.size()==1 && readNmates==2) clip3pNbases.push_back(clip3pNbases[0]); - if (clip3pAfterAdapterNbases.size()==1 && readNmates==2) clip3pAfterAdapterNbases.push_back(clip3pAfterAdapterNbases[0]); + if (clip5pNbases.size()==1 && readNmates==2) clip5pNbases.push_back(clip5pNbases[0]); + if (clip3pNbases.size()==1 && readNmates==2) clip3pNbases.push_back(clip3pNbases[0]); + if (clip3pAfterAdapterNbases.size()==1 && readNmates==2) clip3pAfterAdapterNbases.push_back(clip3pAfterAdapterNbases[0]); //adapter clipping - if (clip3pAdapterSeq.size()==1 && readNmates==2) clip3pAdapterSeq.push_back(clip3pAdapterSeq[0]); - if (clip3pAdapterMMp.size()==1 && readNmates==2) clip3pAdapterMMp.push_back(clip3pAdapterMMp[0]); + if (clip3pAdapterSeq.size()==1 && readNmates==2) clip3pAdapterSeq.push_back(clip3pAdapterSeq[0]); + if (clip3pAdapterMMp.size()==1 && readNmates==2) clip3pAdapterMMp.push_back(clip3pAdapterMMp[0]); for (uint imate=0;imatefastaOutSeqs.open("Seqs.out.fasta"); }; }; - + //outSAMattributes - - + + outSAMattrPresent.NH=false;//TODO re-write as class with constructor? outSAMattrPresent.HI=false; outSAMattrPresent.AS=false; @@ -786,58 +786,58 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.nM=false; outSAMattrPresent.jM=false; outSAMattrPresent.jI=false; - outSAMattrPresent.RG=false; + outSAMattrPresent.RG=false; outSAMattrPresent.XS=false; - + //for quant SAM output only NH and HI flags outSAMattrPresentQuant=outSAMattrPresent; outSAMattrPresent.NH=true; outSAMattrPresent.NH=true; outSAMattrOrderQuant.push_back(ATTR_NH); outSAMattrOrderQuant.push_back(ATTR_HI); - + vector vAttr1; if (outSAMattributes.at(0)=="None") { } else if (outSAMattributes.at(0)=="All"){ vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI"}; } else if (outSAMattributes.at(0)=="Standard"){ - vAttr1={"NH","HI","AS","nM"}; + vAttr1={"NH","HI","AS","nM"}; } else { vAttr1=outSAMattributes; }; - + for (uint ii=0;iilogMain << "WARNING --outSAMattributes contains XS, therefore STAR will use --outSAMstrandField intronMotif" <logMain, EXIT_CODE_PARAMETER, *this); }; }; - + if (outSAMattrRG.size()>0 && !outSAMattrPresent.RG) { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); @@ -858,13 +858,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: --outSAMattributes contains RG tag, but --outSAMattrRGline is not set\n"; errOut <<"SOLUTION: re-run STAR with a valid read group parameter --outSAMattrRGline\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (outSAMstrandField=="intronMotif" && !outSAMattrPresent.XS) { outSAMattrOrder.push_back(ATTR_XS); inOut->logMain << "WARNING --outSAMstrandField=intronMotif, therefore STAR will output XS attribute" <logMain, EXIT_CODE_PARAMETER, *this); }; - + // #ifdef COMPILE_NO_SHM // if (genomeLoad!="NoSharedMemory") { // ostringstream errOut; @@ -907,22 +907,22 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters // exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); // }; // #endif - + //open compilation-dependent streams #ifdef OUTPUT_localChains inOut->outLocalChains.open((outFileNamePrefix + "LocalChains.out.tab").c_str()); #endif - + // genomeNumToNT={'A','C','G','T','N'}; strcpy(genomeNumToNT,"ACGTN"); - + if (genomeLoad!="LoadAndKeep" && genomeLoad!="LoadAndRemove" && genomeLoad!="Remove" && genomeLoad!="LoadAndExit" && genomeLoad!="NoSharedMemory") {// find shared memory fragment ostringstream errOut; errOut << "EXITING because of FATAL INPUT ERROR: --genomeLoad=" << genomeLoad << "\n" <logMain, EXIT_CODE_PARAMETER, *this); }; - + //quantification parameters quant.yes=false; quant.geCount.yes=false; @@ -955,13 +955,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { ostringstream errOut; errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; + errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; }; - - + + //two-pass if (parArray.at(twoPass.pass1readsN_par)->inputLevel>0 && twoPass.mode=="None") { @@ -970,9 +970,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "SOLUTION: to activate the 2-pass mode, use --twopassMode Basic"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - - + + + twoPass.yes=false; if (twoPass.mode!="None") {//2-pass parameters if (runMode!="alignReads") @@ -982,7 +982,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "SOLUTION: remove --twopassMode option"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (twoPass.mode!="Basic") { ostringstream errOut; @@ -990,7 +990,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "SOLUTION: for the 2-pass mode, use allowed values --twopassMode: Basic"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (twoPass.pass1readsN==0) { ostringstream errOut; @@ -1004,10 +1004,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with genomeLoad<<"<logMain, EXIT_CODE_PARAMETER, *this); - }; + }; twoPass.yes=true; twoPass.dir=outFileNamePrefix+"_STARpass1/"; - sysRemoveDir (twoPass.dir); + sysRemoveDir (twoPass.dir); if (mkdir (twoPass.dir.c_str(),runDirPerm)!=0) { ostringstream errOut; errOut <<"EXITING because of fatal ERROR: could not make pass1 directory: "<< twoPass.dir<<"\n"; @@ -1015,7 +1015,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + //sjdb insert on the fly sjdbInsert.pass1=false; @@ -1026,41 +1026,41 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters sjdbInsert.pass1=true; sjdbInsert.yes=true; }; - if (twoPass.yes) + if (twoPass.yes) { sjdbInsert.pass2=true; sjdbInsert.yes=true; - }; - - if (genomeLoad!="NoSharedMemory" && sjdbInsert.yes ) + }; + + if (genomeLoad!="NoSharedMemory" && sjdbInsert.yes ) { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: on the fly junction insertion and 2-pass mappng cannot be used with shared memory genome \n" ; - errOut << "SOLUTION: run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_PARAMETER, *this); }; - - if (runMode=="alignReads" && sjdbInsert.yes ) + + if (runMode=="alignReads" && sjdbInsert.yes ) {//run-time genome directory, this is needed for genome files generated on the fly if (sjdbOverhang<=0) { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: sjdbOverhang <=0 while junctions are inserted on the fly with --sjdbFileChrStartEnd or/and --sjdbGTFfile\n"; errOut << "SOLUTION: specify sjdbOverhang>0, ideally readmateLength-1"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; + }; sjdbInsert.outDir=outFileNamePrefix+"_STARgenome/"; - sysRemoveDir (sjdbInsert.outDir); + sysRemoveDir (sjdbInsert.outDir); if (mkdir (sjdbInsert.outDir.c_str(),runDirPerm)!=0) { ostringstream errOut; errOut <<"EXITING because of fatal ERROR: could not make run-time genome directory directory: "<< sjdbInsert.outDir<<"\n"; errOut <<"SOLUTION: please check the path and writing permissions \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - + }; + }; + //final sjdbOverhang value has been determined sjdbLength = sjdbOverhang==0 ? 0 : sjdbOverhang*2+1; - + if (outBAMcoord && limitBAMsortRAM==0) {//check limitBAMsortRAM if (genomeLoad!="NoSharedMemory") { ostringstream errOut; @@ -1077,7 +1077,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + //chimeric chimPar.filter.genomicN=false; for (uint ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); }; }; - + for (uint ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); - }; + }; }; //genome parameters genomeChrBinNbases=1LLU<logMain, EXIT_CODE_PARAMETER, *this); }; - + for (uint ii=1;iilogMain, EXIT_CODE_PARAMETER, *this); - }; + }; }; - + //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" <> parIn; if (parIn=="" || parIn.substr(0,2)=="//" || parIn.substr(0,1)=="#") return 0; //this is a comment @@ -1188,13 +1188,13 @@ int Parameters::scanOneLine (string &lineIn, int inputLevel, int inputLevelReque for (iPar=0; iParnameString) {// if (inputLevelRequested < 0 || inputLevelRequested == parArray[iPar]->inputLevelAllowed) { - break;//will read this parameter values + break;//will read this parameter values } else { - return 1; //do not read inputs not requested at this level + return 1; //do not read inputs not requested at this level }; }; }; - + string parV(""); lineInStream >> parV; if (parV=="") {//parameter value cannot be empty @@ -1203,9 +1203,9 @@ int Parameters::scanOneLine (string &lineIn, int inputLevel, int inputLevelReque errOut << "SOLUTION: use non-empty value for this parameter\n"<logMain, EXIT_CODE_PARAMETER, *this); }; - + lineInStream.str(lineIn); lineInStream.clear(); lineInStream >> parIn; //get the correct state of stream, past reading parIn - + if (iPar==parArray.size()) {//string is not identified ostringstream errOut; errOut << "EXITING: FATAL INPUT ERROR: unrecoginzed parameter name \""<< parIn << "\" in input \"" << parameterInputName.at(inputLevel) <<"\"\n"; @@ -1226,12 +1226,12 @@ int Parameters::scanOneLine (string &lineIn, int inputLevel, int inputLevelReque errOut << "SOLUTION: keep only one definition of input parameters in each input source\n"<logMain, EXIT_CODE_PARAMETER, *this); } else {//read values - parArray[iPar]->inputValues(lineInStream); + parArray[iPar]->inputValues(lineInStream); parArray[iPar]->inputLevel=inputLevel; if ( inOut->logMain.good() ) { inOut->logMain << setiosflags(ios::left) << setw(PAR_NAME_PRINT_WIDTH) << parArray[iPar]->nameString << *(parArray[iPar]); if ( parArray[iPar]->inputLevel > 0 ) inOut->logMain <<" ~RE-DEFINED"; - inOut->logMain << endl; + inOut->logMain << endl; }; }; }; @@ -1240,60 +1240,60 @@ int Parameters::scanOneLine (string &lineIn, int inputLevel, int inputLevelReque ////////////////////////////////////////////////////////////////////////////////////////// void Parameters::chrInfoLoad() {//find chrStart,Length,nChr from Genome G - + //load chr names - ifstream chrStreamIn ( (genomeDir+"/chrName.txt").c_str() ); + ifstream chrStreamIn ( (genomeDir+"/chrName.txt").c_str() ); if (chrStreamIn.fail()) { - ostringstream errOut; + ostringstream errOut; errOut << "EXITING because of FATAL error, could not open file " << (genomeDir+"/chrName.txt") <<"\n"; errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_INPUT_FILES, *this); }; - + char chrInChar[1000]; - + while (chrStreamIn.good()) { string chrIn; chrStreamIn.getline(chrInChar,1000); chrIn=chrInChar; if (chrIn=="") break; chrName.push_back(chrIn); - }; + }; chrStreamIn.close(); nChrReal=chrName.size(); inOut->logMain << "Number of real (reference) chromosmes= " << nChrReal <<"\n"<logMain, EXIT_CODE_INPUT_FILES, *this); + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_INPUT_FILES, *this); }; - + for (uint ii=0;ii> chrLength[ii]; - }; - chrStreamIn.close(); - + }; + chrStreamIn.close(); + //load chr starts - chrStreamIn.open( (genomeDir+"/chrStart.txt").c_str() ); + chrStreamIn.open( (genomeDir+"/chrStart.txt").c_str() ); if (chrStreamIn.fail()) { - ostringstream errOut; + ostringstream errOut; errOut << "EXITING because of FATAL error, could not open file " << (genomeDir+"/chrStart.txt") <<"\n"; - errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; + errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_INPUT_FILES, *this); - }; - + }; + for (uint ii=0;ii<=nChrReal;ii++) { chrStreamIn >> chrStart[ii]; - }; - chrStreamIn.close(); - + }; + chrStreamIn.close(); + //log for (uint ii=0; iilogMain << ii+1 <<"\t"<< chrName[ii] <<"\t"<=chrStart[ichr]) ichr++; diff --git a/Parameters.h b/Parameters.h index f302ef5..05573f8 100644 --- a/Parameters.h +++ b/Parameters.h @@ -10,42 +10,42 @@ #include class Parameters { - + public: vector parArray, parArrayInitial; vector parameterInputName; - + string commandLine, commandLineFull; - + //version uint versionSTAR; vector versionGenome; - + //system parameters string sysShell; //shell for executing system commands - + // run parameters string runMode; int runThreadN; mode_t runDirPerm; string runDirPermIn; //permission for directores created at run-time int runRNGseed; //random number generator seed - + //parameters vector parametersFiles; - + //input string inputBAMfile; - + //genome, SA, ... vector chrStart, chrLength; string genomeDir,genomeLoad; - vector genomeFastaFiles; + vector genomeFastaFiles; uint genomeSAsparseD;//sparsity=distance between indices uint genomeInsertL; //total length of the sequence to be inserted on the fly uint genomeInsertChrIndFirst; //index of the first inserted chromosome uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length - + //binning,windows,anchors uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; @@ -53,7 +53,7 @@ class Parameters { uint genomeSAindexNbases; //length of the SA pre-index strings uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases - + char genomeNumToNT[6]; //read parameters uint readMapNumber; @@ -66,39 +66,39 @@ class Parameters { string readMatesLengthsIn; vector readFilesCommand; pid_t readFilesCommandPID[MAX_N_MATES]; - + vector readNameSeparator; vector readNameSeparatorChar; - + string outSAMreadID; - - vector clip5pNbases, clip3pNbases, clip3pAfterAdapterNbases; + + vector clip5pNbases, clip3pNbases, clip3pAfterAdapterNbases; vector clip3pAdapterMMp; vector clip3pAdapterSeq; char *clip3pAdapterSeqNum[MAX_N_MATES];//adapter sequence - numerical bool readMatesEqualLengths; //whether or not the read mates have the same length, true if onyl one mate - + //align parameters uint alignSJoverhangMin,alignSJDBoverhangMin,alignSplicedMateMapLmin; //min SJ donor/acceptor length double alignSplicedMateMapLminOverLmate; uint alignWindowsPerReadNmax; //max number of alignment windows per read uint alignTranscriptsPerWindowNmax; //maximum number of transcripts recorded per window - uint alignTranscriptsPerReadNmax; //max number of alignments per read + uint alignTranscriptsPerReadNmax; //max number of alignments per read uint alignIntronMin;//min length to call a gap an intron - uint alignIntronMax;//max length to call + uint alignIntronMax;//max length to call uint alignMatesGapMax;//max gap between the mates (if paired-end) string alignSoftClipAtReferenceEnds; vector alignSJstitchMismatchNmax; - - struct + + struct { string in; bool ext[2][2]; } alignEndsType; - - + + //seed parameters - uint seedMultimapNmax; //max number of multiple alignments per piece + uint seedMultimapNmax; //max number of multiple alignments per piece uint seedSearchLmax; //max length of the seed uint seedPerReadNmax; //max number of pieces per Read uint seedPerWindowNmax; //max number of aligns per window @@ -108,12 +108,12 @@ class Parameters { //chunk parameters uint chunkInSizeBytes,chunkInSizeBytesArray,chunkOutBAMsizeBytes; - + //output string outFileNamePrefix, outStd, outTmpDir; - + //SAM output - string outBAMfileCoordName, outBAMfileUnsortedName, outQuantBAMfileName; + string outBAMfileCoordName, outBAMfileUnsortedName, outQuantBAMfileName; string samHeader, samHeaderHD, samHeaderSortedCoord; string outSAMmode, outSAMstrandField, outSAMorder, outSAMprimaryFlag; vector outSAMattributes, outSAMheaderHD, outSAMheaderPG; @@ -133,7 +133,7 @@ class Parameters { int outBAMsortingThreadN, outBAMsortingThreadNactual; uint64 *outBAMsortingBinStart; //genomic starts for bins for sorting BAM files uint16 outSAMflagOR, outSAMflagAND; - + struct { vector mode; @@ -141,42 +141,42 @@ class Parameters { bool within;//output unmapped reads within SAM/BAM files bool keepPairs;//keep mates together } outSAMunmapped; - + struct { vector mode; bool yes; bool KeepOnlyAddedReferences; } outSAMfilter; - + struct { string mode; bool random; } outMultimapperOrder; - + string outReadsUnmapped; int outQSconversionAdd; string outFileTmp; - + //output filtering uint outFilterMismatchNmax; double outFilterMismatchNoverLmax, outFilterMismatchNoverReadLmax; //max proportion of all MM within all bases - + uint outFilterMatchNmin,outFilterMultimapNmax;//min number of matches double outFilterScoreMinOverLread, outFilterMatchNminOverLread;//normalzied to read length intScore outFilterScoreMin,outFilterMultimapScoreRange;//min score to output string outFilterIntronMotifs; - string outFilterType; //type of filtering - int outFilterBySJoutStage; //indicates the stage of filtering by SJout - + string outFilterType; //type of filtering + int outFilterBySJoutStage; //indicates the stage of filtering by SJout + //output filtering SJs string outSJfilterReads; vector outSJfilterCountUniqueMin, outSJfilterCountTotalMin; vector outSJfilterOverhangMin; vector outSJfilterDistToOtherSJmin; //min allowed distance to other SJ's donor/acceptor vector outSJfilterIntronMaxVsReadN; - + //wiggle output vector outWigType, outWigStrand, outWigNorm; string outWigReferencesPrefix; @@ -186,8 +186,8 @@ class Parameters { int type; int format; int norm; - } outWigFlags; - + } outWigFlags; + //2-pass // uint twoPass.pass1readsN, twoPass.sjLimit; // string twoPass.dir,twopassSJpass1file; @@ -200,7 +200,7 @@ class Parameters { string pass1sjFile; string mode; } twoPass; - + //inserting junctions on the fly struct { bool yes; //insert? @@ -209,7 +209,7 @@ class Parameters { string save; string outDir; } sjdbInsert; - + //storage limits uint limitGenomeGenerateRAM; uint limitIObufferSize; //max size of the in/out buffer, bytes @@ -217,49 +217,49 @@ class Parameters { uint limitOutSJoneRead, limitOutSJcollapsed; uint limitBAMsortRAM; uint limitSjdbInsertNsj; - + // penalties - intScore scoreGap, scoreGapNoncan, scoreGapGCAG, scoreGapATAC, scoreDelBase, scoreDelOpen, scoreInsBase, scoreInsOpen; + intScore scoreGap, scoreGapNoncan, scoreGapGCAG, scoreGapATAC, scoreDelBase, scoreDelOpen, scoreInsBase, scoreInsOpen; intScore scoreStitchSJshift;//Max negative score when - double scoreGenomicLengthLog2scale; + double scoreGenomicLengthLog2scale; //old variables: CLEAN-up needed char outputBED[MAX_OUTPUT_FLAG]; //output flags - + //SW search uint swMode, swWinCoverageMinP; //SW penalties uint swPeoutFilterMatchNmin, swPenMismatch, swPenGapOpen, swPenGapExtend; - uint swHsize; - + uint swHsize; + int annotScoreScale;//overall multiplication factor for the annotation string annotSignalFile;//binary file with annotation signal - + //SJ database parameters vector sjdbFileChrStartEnd; string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer int sjdbOverhang_par; - int sjdbScore; - + int sjdbScore; + uint sjChrStart,sjdbN; //first sj-db chr uint sjGstart; //start of the sj-db genome sequence uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci uint8 *sjdbMotif; //motifs of annotated junctions uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions uint8 *sjdbStrand; //junctions strand, not used yet - + uint sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered - + //quantification parameters //input - - struct + + struct { bool yes; //if any quantification is done vector mode; //quantification mode input string - - struct + + struct { bool yes; bool indel; @@ -268,42 +268,42 @@ class Parameters { int bamCompression; string ban; } trSAM; - - struct + + struct { bool yes; string outFile; } geCount; - + } quant; - + //chimeric uint chimSegmentMin, chimJunctionOverhangMin; //min chimeric donor/acceptor length uint chimSegmentReadGapMax; //max read gap for stitching chimeric windows int chimScoreMin,chimScoreDropMax,chimScoreSeparation, chimScoreJunctionNonGTAG; //min chimeric score string chimOutType; vector chimFilter; - - struct + + struct { struct { bool genomicN; } filter; } chimPar; - + //splitting char Qsplit; uint maxNsplit, minLsplit, minLmap; - + //limits - - + + ////////////////////// CLEAN-UP needed InOutStreams *inOut; //main input output streams uint Lread; - + //Genome parameters uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass @@ -312,8 +312,8 @@ class Parameters { map chrNameIndex; unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index - - + + Parameters(); void chrInfoLoad(); //find nChr and chrStart from genome @@ -322,7 +322,7 @@ class Parameters { int readPars(); // read parameters from all files int scanOneLine (string &lineIn, int inputLevel, int inputLevelRequested); void scanAllLines (istream &streamIn, int inputLevel, int inputLevelRequested); - void inputParameters (int argInN, char* argIn[]); //input parameters: default, from files, from command line + void inputParameters (int argInN, char* argIn[]); //input parameters: default, from files, from command line void openReadsFiles(); void closeReadsFiles(); diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index e1ae1d8..3729a4a 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -18,20 +18,20 @@ void Parameters::openReadsFiles() { if (inOut->readIn[ii].fail()) { ostringstream errOut; errOut <<"EXITING because of fatal input ERROR: could not open readFilesIn=" << readFilesIn.at(ii) <<"\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - }; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; } else {//create fifo files, execute pre-processing command vector readsCommandFileName; - readFilesNames.resize(readNmates); + readFilesNames.resize(readNmates); for (uint imate=0;imatelogMain << "\n Input read files for mate "<< imate+1 <<", from input string " << readFilesIn.at(imate) < \""< "+ outFileTmp+"/readFilesIn.info 2>&1").c_str()); ifstream readFilesIn_info((outFileTmp+"/readFilesIn.info").c_str()); inOut->logMain <logMain <<"\n readsCommandsFile:\n"<logMain, EXIT_CODE_PARAMETER, *this); break; - + case 0: //this is the child - execlp(readsCommandFileName.at(imate).c_str(), readsCommandFileName.at(imate).c_str(), (char*) NULL); + execlp(readsCommandFileName.at(imate).c_str(), readsCommandFileName.at(imate).c_str(), (char*) NULL); exit(0); - + default: //this is the father, record PID of the children readFilesCommandPID[imate]=PID; }; - + // system((("\""+readsCommandFileName.at(imate)+"\"") + " & ").c_str()); - inOut->readIn[imate].open(readFilesInTmp.at(imate).c_str()); + inOut->readIn[imate].open(readFilesInTmp.at(imate).c_str()); }; if (readNmates==2 && readFilesNames.at(0).size() != readFilesNames.at(1).size()) { ostringstream errOut; errOut <<"EXITING: because of fatal INPUT ERROR: number of input files for mate1: "<logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; if (outSAMattrRG.size()>1 && outSAMattrRG.size()!=readFilesN) { ostringstream errOut; errOut <<"EXITING: because of fatal INPUT ERROR: number of input read files: "<logMain, EXIT_CODE_PARAMETER, *this); - } else if (outSAMattrRG.size()==1) {//use the same read group for all files + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + } else if (outSAMattrRG.size()==1) {//use the same read group for all files for (uint32 ifile=1;ifilewinBinN]; - winBin[1] = new uintWinBin [P->winBinN]; + winBin[1] = new uintWinBin [P->winBinN]; memset(winBin[0],255,sizeof(winBin[0][0])*P->winBinN); memset(winBin[1],255,sizeof(winBin[0][0])*P->winBinN); - + //RNGs rngMultOrder.seed(P->runRNGseed*(iChunk+1)); - rngUniformReal0to1=std::uniform_real_distribution (0.0, 1.0); - + rngUniformReal0to1=std::uniform_real_distribution (0.0, 1.0); + //transcriptome if ( P->quant.trSAM.yes ) { alignTrAll=new Transcript [P->alignTranscriptsPerReadNmax]; }; - + // statsRA=new StatsAll; - + //split splitR=new uint*[3]; splitR[0]=new uint[P->maxNsplit]; splitR[1]=new uint[P->maxNsplit]; splitR[2]=new uint[P->maxNsplit]; - + //alignments PC=new uiPC[P->seedPerReadNmax]; WC=new uiWC[P->alignWindowsPerReadNmax]; - + nWA=new uint[P->alignWindowsPerReadNmax]; nWAP=new uint[P->alignWindowsPerReadNmax]; WALrec=new uint[P->alignWindowsPerReadNmax]; @@ -51,33 +51,33 @@ ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *Tr // P->swHsize=5000000000LLU; // swT = new char [P->swHsize]; // }; - + scoreSeedToSeed = new intScore [P->seedPerWindowNmax*(P->seedPerWindowNmax+1)/2]; scoreSeedBest = new intScore [P->seedPerWindowNmax]; scoreSeedBestInd = new uint [P->seedPerWindowNmax]; scoreSeedBestMM = new uint [P->seedPerWindowNmax]; seedChain = new uint [P->seedPerWindowNmax]; - + #endif - + WA=new uiWA*[P->alignWindowsPerReadNmax]; for (uint ii=0;iialignWindowsPerReadNmax;ii++) WA[ii]=new uiWA[P->seedPerWindowNmax]; - WAincl = new bool [P->seedPerWindowNmax]; - + WAincl = new bool [P->seedPerWindowNmax]; + trAll = new Transcript**[P->alignWindowsPerReadNmax+1]; nWinTr = new uint[P->alignWindowsPerReadNmax]; - + trArray = new Transcript[P->alignTranscriptsPerReadNmax]; trArrayPointer = new Transcript*[P->alignTranscriptsPerReadNmax]; for (uint ii=0;iialignTranscriptsPerReadNmax;ii++) trArrayPointer[ii]= &(trArray[ii]); - - + + trInit = new Transcript; - + //read - Read0 = new char*[2]; + Read0 = new char*[2]; Read0[0] = new char [DEF_readSeqLengthMax+1]; Read0[1] = new char [DEF_readSeqLengthMax+1]; @@ -90,7 +90,7 @@ ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *Tr readNameMates[ii]=new char [DEF_readNameLengthMax]; }; - + outBAMoneAlignNbytes = new uint [P->readNmates+2]; //extra piece for chimeric reads outBAMoneAlign = new char* [P->readNmates+2]; //extra piece for chimeric reads for (uint ii=0; iireadNmates+2; ii++) { @@ -98,15 +98,15 @@ ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *Tr }; - + readName = readNameMates[0]; Read1 = new char*[3]; - Read1[0]=new char[DEF_readSeqLengthMax+1]; Read1[1]=new char[DEF_readSeqLengthMax+1]; Read1[2]=new char[DEF_readSeqLengthMax+1]; + Read1[0]=new char[DEF_readSeqLengthMax+1]; Read1[1]=new char[DEF_readSeqLengthMax+1]; Read1[2]=new char[DEF_readSeqLengthMax+1]; Qual1=new char*[2]; //modified QSs for scoring Qual1[0]=new char[DEF_readSeqLengthMax+1]; Qual1[1]=new char[DEF_readSeqLengthMax+1]; - + resetN(); - + }; void ReadAlign::resetN () {//reset resets the counters to 0 for a new read @@ -116,21 +116,21 @@ void ReadAlign::resetN () {//reset resets the counters to 0 for a new read nUM[0]=0;nUM[1]=0; storedLmin=0; uniqLmax=0; uniqLmaxInd=0; multLmax=0; multLmaxN=0; multNminL=0; multNmin=0; multNmax=0; multNmaxL=0; chimN=0; - + for (uint ii=0; iireadNmates; ii++) { maxScoreMate[ii]=0; }; - + // for (uint ii=0;iialignTranscriptsPerReadNmax;ii++) trArrayPointer[ii]= &(trArray[ii]); - + }; void ReadAlign::outTxtMain(ofstream* outTxt, Transcript& t) { - + *outTxt << setw(10) << iRead+1 << setw(7) << nTr <<" "\ << setw(7) << t.roStart << setw(7) << t.rLength << setw(12) << nW << setw(10)<< mapMarker << "\t" << t.maxScore << setw(7) << nextWinScore << setw(7) << t.nextTrScore <<" " \ << setw(7) << t.nMatch << setw(7) << t.nMM <<" "\ << setw(7) << t.nGap << setw(10) << t.lGap << setw(7) << t.nDel << setw(7) << t.lDel; - - *outTxt << "\n"; + + *outTxt << "\n"; }; diff --git a/ReadAlign.h b/ReadAlign.h index aed1d97..1aa554b 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -13,24 +13,24 @@ #include "Quantifications.h" #include -class ReadAlign : public Genome +class ReadAlign : public Genome { public: Parameters* P; //pointer to the parameters, will be initialized on construction - + //mapping statistics Stats statsRA; - + //quantification Transcriptome *chunkTr; - + //mapping time time_t timeStart, timeFinish; - + //random number generators std::mt19937 rngMultOrder;//initialize in ReadAlign.cpp std::uniform_real_distribution rngUniformReal0to1;//initialize in ReadAlign.cpp - + //input,output istream* readInStream[MAX_N_MATES]; ostream* outSAMstream; @@ -43,21 +43,21 @@ class ReadAlign : public Genome // uint outBAMoneAlignNbytes[MAX_N_MATES];//number of bytes in the tmp BAM array char** outBAMoneAlign; uint* outBAMoneAlignNbytes; - + ostringstream samStreamCIGAR, samStreamSJmotif, samStreamSJintron,samStreamSJannot; - + intScore maxScoreMate[MAX_N_MATES]; intScore *scoreSeedToSeed, *scoreSeedBest; uint *scoreSeedBestInd, *seedChain, *scoreSeedBestMM; - + bool outFilterPassed; //true if alignment passed all filter and is output to SAM/BAM - + // StatsAll *statsRA; - + //transcript Transcript* trArray; //linear array of transcripts to store all of them from all windows - Transcript** trArrayPointer; //linear array of transcripts to store all of them from all windows - + Transcript** trArrayPointer; //linear array of transcripts to store all of them from all windows + //read uint iRead, iReadAll, iMate, readFilesIndex; char readFilter; //Illumina not passed Y/N @@ -66,7 +66,7 @@ class ReadAlign : public Genome uint clip3pNtotal[MAX_N_MATES], clip5pNtotal[MAX_N_MATES], clip3pAdapterN[MAX_N_MATES]; //total number of trimmed bases from 5p,3p int readFileType; //file type: 1=fasta; 2=fastq uint outFilterMismatchNmaxTotal; - + char dummyChar[4096]; char** Read0; char** Qual0; @@ -74,59 +74,59 @@ class ReadAlign : public Genome char* readName; char** Read1; char** Qual1; //modified QSs for scoring - - //split + + //split uint** splitR; uint Nsplit; - + // uint fragLength[MAX_N_FRAG], fragStart[MAX_N_FRAG]; //fragment Lengths and Starts in read space - + //binned alignments uintWinBin **winBin; //binned genome: window ID (number) per bin - + //alignments uiPC *PC; //pieces coordinates - uiWC *WC; //windows coordinates + uiWC *WC; //windows coordinates uiWA **WA; //aligments per window - + int unmapType; //marker for why a read is unmapped - + uint mapMarker; //alignment marker (typically, if there is something wrong) - uint nA, nP, nW, nWall, nUM[2]; //number of all alignments, pieces, windows, U/M, + uint nA, nP, nW, nWall, nUM[2]; //number of all alignments, pieces, windows, U/M, uint *nWA, *nWAP, *WALrec, *WlastAnchor; //number of alignments per window, per window per piece, min recordable length per window bool *WAincl; //alginment inclusion mask - + uint *swWinCov, *swWinGleft, *swWinGright, *swWinRleft, *swWinRright; //read coverage per window char *swT; - + uint storedLmin, uniqLmax, uniqLmaxInd, multLmax, multLmaxN, multNmin, multNminL, multNmax, multNmaxL; uint nTr, nTrMate; // number of transcripts called intScore maxScore, nextWinScore;//maximum alignment score, next best score - + uint chimN, chimRepeat, chimStr, chimMotif; Transcript trChim[MAX_N_CHIMERAS]; - + Transcript trA, trA1, *trBest, *trNext, *trInit; //transcript, best tr, next best tr, initialized tr Transcript ***trAll; //all transcripts for all windows uint *nWinTr; //number of recorded transcripts per window - + Transcript *alignC, *extendC, *polyAtailC; //alignment rules/conditions - + Transcript* trMult[MAX_N_MULTMAP];//multimapping transcripts - Transcript *alignTrAll;//alignments to transcriptome - + Transcript *alignTrAll;//alignments to transcriptome + ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk);//allocate arrays void resetN();//resets the counters to 0 void multMapSelect(); int mapOneRead(); uint maxMappableLength2strands(uint pieceStart, uint pieceLength, uint iDir, uint iSA1, uint iSA2, uint& maxL, uint iFrag); void storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indStartEnd[2], uint iFrag); - + bool outputTranscript(Transcript *trOut, uint nTrOut, ofstream *outBED); uint outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, ostream *outStream); int alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, vector outSAMattrOrder, char** outBAMarray, uint* outBAMarrayN); void samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uint &tagNM, string &tagMD); - + void outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ *outStream, uint sjReadStartN ); string outputTranscriptCIGARp(Transcript const &trOut); void outTxtMain(ofstream*,Transcript&); @@ -136,7 +136,7 @@ class ReadAlign : public Genome bool chimericDetection(); void outputAlignments(); void stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G);//stitches all seeds in one window: iW - + int oneRead(); uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); }; diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 26f4eea..3d9f61d 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -3,7 +3,7 @@ #include "ErrorWarning.h" ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin) {//initialize chunk - + iThread=iChunk; if ( P->quant.yes ) {//allocate transcriptome structures @@ -11,12 +11,12 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome chunkTr->quantsAllocate(); } else { chunkTr=NULL; - }; - + }; + RA = new ReadAlign(P, genomeIn, chunkTr, iChunk);//new local copy of RA for each chunk - + RA->iRead=0; - + chunkIn=new char* [P->readNmates]; readInStream=new istringstream* [P->readNmates]; // readInStream=new istringstream* [P->readNmates]; @@ -27,8 +27,8 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome readInStream[ii]->rdbuf()->pubsetbuf(chunkIn[ii],P->chunkInSizeBytesArray); RA->readInStream[ii]=readInStream[ii]; }; - - + + if (P->outSAMbool) { chunkOutBAM=new char [P->chunkOutBAMsizeBytes]; RA->outBAMarray=chunkOutBAM; @@ -38,7 +38,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome RA->outSAMstream->seekp(0,ios::beg); chunkOutBAMtotal=0; }; - + if (P->outBAMunsorted) { chunkOutBAMunsorted = new BAMoutput (P->inOut->outBAMfileUnsorted, P); RA->outBAMunsorted = chunkOutBAMunsorted; @@ -46,34 +46,34 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome chunkOutBAMunsorted=NULL; RA->outBAMunsorted=NULL; }; - + if (P->outBAMcoord) { chunkOutBAMcoord = new BAMoutput (iChunk, P->outBAMsortTmpDir, P); RA->outBAMcoord = chunkOutBAMcoord; } else { chunkOutBAMcoord=NULL; RA->outBAMcoord=NULL; - }; - + }; + if ( P->quant.trSAM.yes ) { chunkOutBAMquant = new BAMoutput (P->inOut->outQuantBAMfile,P); RA->outBAMquant = chunkOutBAMquant; } else { chunkOutBAMquant=NULL; RA->outBAMquant=NULL; - }; + }; chunkOutSJ=new OutSJ (P->limitOutSJcollapsed, P); chunkOutSJ1=new OutSJ (P->limitOutSJcollapsed, P); RA->chunkOutSJ=chunkOutSJ; RA->chunkOutSJ1=chunkOutSJ1; - + if (P->chimSegmentMin>0) { chunkFstreamOpen(P->outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); - chunkFstreamOpen(P->outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); + chunkFstreamOpen(P->outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); }; - if (P->outReadsUnmapped=="Fastx" ) { + if (P->outReadsUnmapped=="Fastx" ) { chunkFstreamOpen(P->outFileTmp + "/Unmapped.out.mate1.thread",iChunk, RA->chunkOutUnmappedReadsStream[0]); if (P->readNmates==2) chunkFstreamOpen(P->outFileTmp + "/Unmapped.out.mate2.thread",iChunk, RA->chunkOutUnmappedReadsStream[1]); }; @@ -89,7 +89,7 @@ void ReadAlignChunk::chunkFstreamOpen(string filePrefix, int iChunk, fstream &fs fNameStream1 << filePrefix << iChunk; string fName1=fNameStream1.str(); P->inOut->logMain << "Opening the file: " << fName1 << " ... " <inOut->logMain << "failed!\n"; ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not create output file "<< fName1 << "\n"; - errOut << "Solution: check that you have permission to write this file\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + errOut << "Solution: check that you have permission to write this file\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; P->inOut->logMain << "ok" <clear(); fileChunkIn.close(); fileChunkIn.clear(); - remove(name1.str().c_str()); + remove(name1.str().c_str()); iC++; } else { fileChunkIn.close(); diff --git a/ReadAlignChunk.h b/ReadAlignChunk.h index 5d68f06..eeef68b 100644 --- a/ReadAlignChunk.h +++ b/ReadAlignChunk.h @@ -15,25 +15,25 @@ class ReadAlignChunk {//chunk of reads and alignments ReadAlign* RA; Transcriptome *chunkTr; - + char **chunkIn; //space for the chunk of input reads char *chunkOutBAM, *chunkOutBAM1;//space for the chunk of output SAM OutSJ *chunkOutSJ, *chunkOutSJ1; BAMoutput *chunkOutBAMcoord, *chunkOutBAMunsorted, *chunkOutBAMquant; Quantifications *chunkQuants; - + istringstream** readInStream; ostringstream* chunkOutBAMstream; ofstream chunkOutBAMfile; string chunkOutBAMfileName; - + bool noReadsLeft; uint iChunkIn; //current chunk # as read from .fastq uint iChunkOutSAM; //current chunk # writtedn to Aligned.out.sam int iThread; //current thread uint chunkOutBAMtotal, chunkOutBAMtotal1; //total number of bytes in the write buffer - + ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk); void processChunks(); void mapChunk(); diff --git a/ReadAlignChunk_mapChunk.cpp b/ReadAlignChunk_mapChunk.cpp index 30dbca4..fdeef52 100644 --- a/ReadAlignChunk_mapChunk.cpp +++ b/ReadAlignChunk_mapChunk.cpp @@ -5,20 +5,20 @@ #include SAMTOOLS_BGZF_H void ReadAlignChunk::mapChunk() {//map one chunk. Input reads stream has to be setup in RA->readInStream[ii] - RA->statsRA.resetN(); - + RA->statsRA.resetN(); + for (uint ii=0;iireadNmates;ii++) {//clear eof and rewind the input streams RA->readInStream[ii]->clear(); RA->readInStream[ii]->seekg(0,ios::beg); }; - + if ( P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//open chunk file ostringstream name1(""); name1 << P->outFileTmp + "/Aligned.tmp.sam.chunk"<outSAMstream->tellp(); chunkOutBAMtotal+=RA->outBAMbytes; chunkOutBAMtotal1+=RA->outBAMbytes1; -// uint ddd=(uint) RA->outSAMstream->tellp(); +// uint ddd=(uint) RA->outSAMstream->tellp(); }; - //write SAM aligns to chunk buffer + //write SAM aligns to chunk buffer if (P->outSAMbool) { if ( chunkOutBAMtotal > P->chunkOutBAMsizeBytes ) {//this should not happen! ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SAM/BAM output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSAMoneReadBytes\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); } else if ( chunkOutBAMtotal + P->limitOutSAMoneReadBytes > P->chunkOutBAMsizeBytes || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped if ( P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//output chunks into separate files chunkOutBAMfile.write(chunkOutBAM,chunkOutBAMtotal); chunkOutBAMfile.clear(); //in case 0 bytes were written which could set fail bit } else {//standard way, directly into Aligned.out.sam file //SAM output - if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); + if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); P->inOut->outSAM->write(chunkOutBAM,chunkOutBAMtotal); P->inOut->outSAM->clear();//in case 0 bytes were written which could set fail bit if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); }; RA->outSAMstream->seekp(0,ios::beg); //rewind the chunk storage chunkOutBAMtotal=0; - }; + }; }; - + //collapse SJ buffer if needed if ( chunkOutSJ->N > P->limitOutSJcollapsed ) {//this means the number of collapsed junctions is larger than the chunks size ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJoneRead\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); } else if ( chunkOutSJ->N + P->limitOutSJoneRead > P->limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped chunkOutSJ->collapseSJ(); if ( chunkOutSJ->N + 2*P->limitOutSJoneRead > P->limitOutSJcollapsed ) { ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - }; + }; //collapse SJ1 buffer if needed if ( chunkOutSJ1->N > P->limitOutSJcollapsed ) {//this means the number of collapsed junctions is larger than the chunks size ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJoneRead\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); } else if ( chunkOutSJ1->N + P->limitOutSJoneRead > P->limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped chunkOutSJ1->collapseSJ(); if ( chunkOutSJ1->N + 2*P->limitOutSJoneRead > P->limitOutSJcollapsed ) { ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - }; + }; }; //reads cycle @@ -96,13 +96,13 @@ void ReadAlignChunk::mapChunk() {//map one chunk. Input reads stream has to be s RA->outSAMstream->seekp(0,ios::beg); //rewind the chunk storage chunkOutBAMtotal=0; ostringstream name2(""); - name2 << P->outFileTmp + "/Aligned.out.sam.chunk"<outFileTmp + "/Aligned.out.sam.chunk"<runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexStats); g_statsAll.addStats(RA->statsRA); g_statsAll.progressReport(P->inOut->logProgress); - if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexStats); -}; + if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexStats); +}; diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 3bdef50..f40f470 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -3,9 +3,9 @@ #include "ThreadControl.h" #include "ErrorWarning.h" -void ReadAlignChunk::processChunks() {//read-map-write chunks +void ReadAlignChunk::processChunks() {//read-map-write chunks noReadsLeft=false; //true if there no more reads left in the file - + while (!noReadsLeft) {//continue until the input EOF //////////////read a chunk from input files and store in memory if (P->outFilterBySJoutStage<2) {//read chunks from input file @@ -19,10 +19,10 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks break; } else if (nextChar=='@') {//fastq, not multi-line P->iReadAll++; //increment read number - for (uint imate=0; imatereadNmates; imate++) {//for all mates + for (uint imate=0; imatereadNmates; imate++) {//for all mates uint32 iline=0; - if (P->outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping - + if (P->outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping + //read or skip the 1st field of the read name line if (P->outSAMreadID=="Number") { chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], "@%llu", P->iReadAll); @@ -32,7 +32,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks P->inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); chunkInSizeBytesTotal[imate] += strlen(chunkIn[imate] + chunkInSizeBytesTotal[imate]); }; - + //read the second field of the read name line char passFilterIllumina='N'; if (P->inOut->readIn[imate].peek()!='\n') {//2nd field exists @@ -41,28 +41,28 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks passFilterIllumina='N'; if (field2.length()>=3 && field2.at(2)=='Y') passFilterIllumina='Y'; }; - + //ignore the rest of the read name P->inOut->readIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P->iReadAll, passFilterIllumina, P->readFilesIndex); - + iline=1; }; //do not need to worry about 2nd stage, that's read directly from the files // else {//2nd stage of 2-stage mapping // read index and file index are already recorded with the read name, simply copy it -// P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); +// P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); // }; for (;iline<4;iline++) {//TODO ignore the 3rd line of fastq P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount(); - chunkIn[imate][chunkInSizeBytesTotal[imate]-1]='\n'; + chunkIn[imate][chunkInSizeBytesTotal[imate]-1]='\n'; }; }; } else if (nextChar=='>') {//fasta, can be multiline, which is converted to single line for (uint imate=0; imatereadNmates; imate++) { - if (P->outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping + if (P->outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping if (P->outSAMreadID=="Number") { chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], ">%llu", P->iReadAll); @@ -70,29 +70,29 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks P->inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); chunkInSizeBytesTotal[imate] += strlen(chunkIn[imate] + chunkInSizeBytesTotal[imate]); }; - + P->inOut->readIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P->iReadAll, 'N', P->readFilesIndex); - - + + }; // else {//2nd stage of 2-stage mapping // read index and file index are already recorded with the read name, simply copy it -// P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); -// }; - nextChar=P->inOut->readIn[imate].peek(); +// P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); +// }; + nextChar=P->inOut->readIn[imate].peek(); while (nextChar!='@' && nextChar!='>' && nextChar!=' ' && nextChar!='\n' && P->inOut->readIn[imate].good()) {//read multi-line fasta P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readSeqLengthMax + 1 ); if (P->inOut->readIn[imate].gcount()<2) break; //no more input - chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount()-1; + chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount()-1; nextChar=P->inOut->readIn[imate].peek(); }; - chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n'; - chunkInSizeBytesTotal[imate] ++; - }; + chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n'; + chunkInSizeBytesTotal[imate] ++; + }; } else if (nextChar==' ' || nextChar=='\n' || !P->inOut->readIn[0].good()) {//end of stream - P->inOut->logMain << "Thread #" < \n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; }; @@ -121,9 +121,9 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks if (chunkInSizeBytesTotal[0]==0) { noReadsLeft=true; //true if there no more reads left in the file iChunkIn=g_threadChunks.chunkInN;//to keep things consistent - g_threadChunks.chunkInN++; + g_threadChunks.chunkInN++; } else { - noReadsLeft=false; + noReadsLeft=false; iChunkIn=g_threadChunks.chunkInN; g_threadChunks.chunkInN++; }; @@ -131,7 +131,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks for (uint imate=0; imatereadNmates; imate++) chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n';//extra empty line at the end of the chunks if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexInRead); - + } else {//read from one file per thread noReadsLeft=true; for (uint imate=0; imatereadNmates; imate++) { @@ -140,27 +140,27 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks RA->readInStream[imate]=& RA->chunkOutFilterBySJoutFiles[imate]; }; }; - + mapChunk(); - + if (iThread==0 && P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files chunkFilesCat(P->inOut->outSAM, P->outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); }; - + };//cycle over input chunks - - if (P->outFilterBySJoutStage!=1 && RA->iRead>0) {//not the first stage of the 2-stage mapping + + if (P->outFilterBySJoutStage!=1 && RA->iRead>0) {//not the first stage of the 2-stage mapping if (P->outBAMunsorted) chunkOutBAMunsorted->unsortedFlush(); if (P->outBAMcoord) chunkOutBAMcoord->coordFlush(); if (chunkOutBAMquant!=NULL) chunkOutBAMquant->unsortedFlush(); - + //the thread is finished mapping reads, concatenate the temp files into output files - if (P->chimSegmentMin>0) { + if (P->chimSegmentMin>0) { chunkFstreamCat (RA->chunkOutChimSAM, P->inOut->outChimSAM, P->runThreadN>1, g_threadChunks.mutexOutChimSAM); chunkFstreamCat (RA->chunkOutChimJunction, P->inOut->outChimJunction, P->runThreadN>1, g_threadChunks.mutexOutChimJunction); }; if (P->outReadsUnmapped=="Fastx" ) { - for (uint ii=0;iireadNmates;ii++) { + for (uint ii=0;iireadNmates;ii++) { chunkFstreamCat (RA->chunkOutUnmappedReadsStream[ii],P->inOut->outUnmappedReadsStream[ii], P->runThreadN>1, g_threadChunks.mutexOutUnmappedFastx); }; }; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index b7c1737..66d7abc 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -34,7 +34,7 @@ void ReadAlign::samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uin tagNM+=trOut.exons[iex+1][EX_R]-trOut.exons[iex][EX_R]-trOut.exons[iex][EX_L]; }; }; - }; + }; tagMD+=to_string(matchN); }; // calculate bin given an alignment covering [beg,end) (zero-based, half-close-half-open) @@ -56,19 +56,19 @@ int bamAttrArrayWrite(int32 attr, const char* tagName, char* attrArray ) { return 3+sizeof(int32); }; int bamAttrArrayWrite(char attr, const char* tagName, char* attrArray ) { - attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; attrArray[2]='A'; attrArray[3]=attr; return 3+sizeof(char); }; int bamAttrArrayWrite(string &attr, const char* tagName, char* attrArray ) { - attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; attrArray[2]='Z'; memcpy(attrArray+3,attr.c_str(),attr.size()+1);//copy string data including \0 return 3+attr.size()+1; }; int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray ) { - attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; attrArray[2]='B'; attrArray[3]='c'; *( (int32*) (attrArray+4))=attr.size(); @@ -76,7 +76,7 @@ int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray ) return 4+sizeof(int32)+attr.size(); }; int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray ) { - attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; attrArray[2]='B'; attrArray[3]='i'; *( (int32*) (attrArray+4))=attr.size(); @@ -86,7 +86,7 @@ int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray template int bamAttrArrayWriteInt(intType x, const char* tagName, char* attrArray, Parameters *P) {//adapted from samtools - attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; #define ATTR_RECORD_INT(_intChar,_intType,_intValue) attrArray[2] = _intChar; *(_intType*)(attrArray+3) = (_intType) _intValue; return 3+sizeof(_intType) if (x < 0) { if (x >= -127) { @@ -99,7 +99,7 @@ int bamAttrArrayWriteInt(intType x, const char* tagName, char* attrArray, Parame ostringstream errOut; errOut <<"EXITING because of FATAL BUG: integer out of range for BAM conversion: "<< x <<"\n"; errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; }; } else { @@ -113,26 +113,26 @@ int bamAttrArrayWriteInt(intType x, const char* tagName, char* attrArray, Parame ostringstream errOut; errOut <<"EXITING because of FATAL BUG: integer out of range for BAM conversion: "<< x <<"\n"; errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; }; - }; + }; }; - -int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int alignType, bool *mateMapped, vector outSAMattrOrder, char** outBAMarray, uint* outBAMarrayN) { - //return: number of lines (mates) - + +int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int alignType, bool *mateMapped, vector outSAMattrOrder, char** outBAMarray, uint* outBAMarrayN) { + //return: number of lines (mates) + //alignType>=0: unmapped reads // -1: normal mapped reads // -11: chimeric alignment, chimeric junction on the left // -12: chimeric alignment, chimeric junction on the right - - + + if (P->outSAMmode=="None") return 0; //no SAM/BAM output - + uint32 recSize=0; //record size - total for both mates outBAMarrayN[0]=0; outBAMarrayN[1]=0; @@ -141,11 +141,11 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint uint iExMate=0; //last exon of the first mate uint16 samFLAG=0; - uint leftMate=0; //the mate (0 or 1) which is on the left + uint leftMate=0; //the mate (0 or 1) which is on the left - bool flagPaired = P->readNmates==2; - - uint nMates=1; + bool flagPaired = P->readNmates==2; + + uint nMates=1; if (alignType<0) {//mapped reads: SAM for (iExMate=0;iExMatereadNmates);imate++) { - + uint iEx1=0; uint iEx2=0; - uint Mate=0; + uint Mate=0; uint Str=0; uint32 packedCIGAR[BAM_CIGAR_MaxSize]; uint32 nCIGAR=0; //number of CIGAR operations @@ -185,33 +185,33 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint mateStart=trOut.exons[0][EX_G] - trChrStart; mateStrand= trOut.Str == (1-imate) ? 0 : 1; - if (!trOut.primaryFlag) + if (!trOut.primaryFlag) {//mapped mate is not primary samFLAG+=0x100; - }; - + }; + } else {//mate unmapped samFLAG+=0x8; }; }; if (readFilter=='Y') samFLAG+=0x200; //not passing quality control - + if (mateMapped[1-imate]) {//mate is mapped, fill the infromation from trOut - + }; - + Mate=imate; Str=Mate; - + attrN=0; attrN+=bamAttrArrayWriteInt(0,"NH",attrOutArray+attrN,P); attrN+=bamAttrArrayWriteInt(0,"HI",attrOutArray+attrN,P); attrN+=bamAttrArrayWriteInt(trOut.maxScore,"AS",attrOutArray+attrN,P); attrN+=bamAttrArrayWriteInt(trOut.nMM,"nM",attrOutArray+attrN,P); attrN+=bamAttrArrayWrite((to_string((uint) alignType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers - if (!P->outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); + if (!P->outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); } else {//this mate is mapped if (flagPaired) {//paired reads @@ -220,13 +220,13 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (mateChr>P->nChrReal) samFLAG+=0x0008; //not mapped as pair } else {//properly paired samFLAG+=0x0002; //mapped as pair - }; + }; } else {//single end samFLAG=0; }; if (readFilter=='Y') samFLAG+=0x200; //not passing quality control - + if (alignType==-11 || alignType==-12) { samFLAG+=0x800; //mark chimeric alignments } else {//only non-chimeric alignments will be marked as non-primary, since chimeric are already marked with 0x800 @@ -235,7 +235,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint iEx1 = (imate==0 ? 0 : iExMate+1); iEx2 = (imate==0 ? iExMate : trOut.nExons-1); - Mate=trOut.exons[iEx1][EX_iFrag]; + Mate=trOut.exons[iEx1][EX_iFrag]; Str= trOut.Str;//note that Strand = the mate on the left if (Mate==0) { @@ -243,14 +243,14 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (nMates==2) samFLAG += (1-Str)*0x20; } else {//second mate strand need to be reverted samFLAG += (1-Str)*0x10; - if (nMates==2) samFLAG += Str*0x20; - }; + if (nMates==2) samFLAG += Str*0x20; + }; if (flagPaired) { leftMate=Str; samFLAG += (Mate==0 ? 0x0040 : 0x0080); if (flagPaired && nMates==1 && mateStrand==1) samFLAG +=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) - }; + }; uint trimL; @@ -268,8 +268,8 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trimL1 = trimL + trOut.exons[iEx1][EX_R] - (trOut.exons[iEx1][EX_R]0) { - packedCIGAR[nCIGAR++]=trimL1< SJintron; vector SJmotif; @@ -280,32 +280,32 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint uint gapR=trOut.exons[ii][EX_R]-trOut.exons[ii-1][EX_R]-trOut.exons[ii-1][EX_L]; //it's possible to have a D or N and I at the same time if (gapR>0){ - - packedCIGAR[nCIGAR++]=gapR<=0 || trOut.sjAnnot[ii-1]==1) {//junction: N - packedCIGAR[nCIGAR++]=gapG<0) {//deletion: N - packedCIGAR[nCIGAR++]=gapG< 0 ) { - packedCIGAR[nCIGAR++]=trimR1<outSAMmapqUnique; @@ -332,43 +332,43 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint break; case ATTR_AS: attrN+=bamAttrArrayWriteInt(trOut.maxScore,"AS",attrOutArray+attrN,P); - break; + break; case ATTR_nM: attrN+=bamAttrArrayWriteInt(trOut.nMM,"nM",attrOutArray+attrN,P); - break; + break; case ATTR_jM: - attrN+=bamAttrArrayWrite(SJmotif,"jM",attrOutArray+attrN); - break; + attrN+=bamAttrArrayWrite(SJmotif,"jM",attrOutArray+attrN); + break; case ATTR_jI: - attrN+=bamAttrArrayWrite(SJintron,"jI",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(SJintron,"jI",attrOutArray+attrN); break; case ATTR_XS: if (trOut.sjMotifStrand==1) { - attrN+=bamAttrArrayWrite('+',"XS",attrOutArray+attrN); + attrN+=bamAttrArrayWrite('+',"XS",attrOutArray+attrN); } else if (trOut.sjMotifStrand==2) { - attrN+=bamAttrArrayWrite('-',"XS",attrOutArray+attrN); - }; + attrN+=bamAttrArrayWrite('-',"XS",attrOutArray+attrN); + }; break; case ATTR_NM: - if ( tagNM == (uint) -1 ) samAttrNM_MD (trOut, iEx1, iEx2, tagNM, tagMD); + if ( tagNM == (uint) -1 ) samAttrNM_MD (trOut, iEx1, iEx2, tagNM, tagMD); attrN+=bamAttrArrayWriteInt(tagNM,"NM",attrOutArray+attrN,P); break; case ATTR_MD: - if ( tagMD.size()==0 ) samAttrNM_MD (trOut, iEx1, iEx2, tagNM, tagMD); - attrN+=bamAttrArrayWrite(tagMD,"MD",attrOutArray+attrN); + if ( tagMD.size()==0 ) samAttrNM_MD (trOut, iEx1, iEx2, tagNM, tagMD); + attrN+=bamAttrArrayWrite(tagMD,"MD",attrOutArray+attrN); break; case ATTR_RG: - attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); - break; + attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); + break; default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); }; }; }; -////////////////////////////// prepare sequence and qualities +////////////////////////////// prepare sequence and qualities char seqMate[DEF_readSeqLengthMax+1], qualMate[DEF_readSeqLengthMax+1]; char *seqOut=NULL, *qualOut=NULL; @@ -381,9 +381,9 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint for (uint ii=0;ii reg2bin() function in Section 4.3; l read name is the length> of read name below (= length(QNAME) + 1).> uint32 t if (alignType<0) { @@ -421,10 +421,10 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint |( MAPQ<<8 ) | ( strlen(readName) ) ); //note:read length includes 0-char } else { pBAM[3]=( reg2bin(-1,0) << 16 | strlen(readName) );//4680=reg2bin(-1,0) - }; - + }; + //4: FLAG<<16|n cigar op; n cigar op is the number of operations in CIGAR. - pBAM[4]=( ( ((samFLAG & P->outSAMflagAND) | P->outSAMflagOR) << 16 ) | (nCIGAR) ); + pBAM[4]=( ( ((samFLAG & P->outSAMflagAND) | P->outSAMflagOR) << 16 ) | (nCIGAR) ); //5: l seq Length of SEQ pBAM[5]=seqMateLength; @@ -454,22 +454,22 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint pBAM[8]=(uint32)tlen; } else { pBAM[8]=0; - }; + }; recSize+=9*sizeof(int32); //core record size - + //Read name1, NULL terminated (QNAME plus a tailing `\0') - strcpy(outBAMarray[imate]+recSize,readName+1); + strcpy(outBAMarray[imate]+recSize,readName+1); recSize+=strlen(readName); - + //CIGAR: op len<<4|op. `MIDNSHP=X'!`012345678' memcpy(outBAMarray[imate]+recSize,packedCIGAR, nCIGAR*sizeof(int32)); recSize+=nCIGAR*sizeof(int32); - + //4-bit encoded read: `=ACMGRSVTWYHKDBN'! [0; 15]; other characters mapped to `N'; high nybble rst (1st base in the highest 4-bit of the 1st byte) memcpy(outBAMarray[imate]+recSize,seqMate,(seqMateLength+1)/2); recSize+=(seqMateLength+1)/2; - + //Phred base quality (a sequence of 0xFF if absent) if (readFileType==2 && P->outSAMmode != "NoQS") {//output qualtiy for (uint32 ii=0; iiWA[iW][iA][WA_Length]) {//replace - + if (aLength>WA[iW][iA][WA_Length]) {//replace + uint iA0;//iA0 is where the align has to be inserted - for (iA0=0;iA0iA) {//true insertion place since iA will be removed --iA0; }; - + if (iA0iA0;iA1--) {//shift aligns to free up insertion point for (uint ii=0;iiseedPerWindowNmax) {//too many aligns per window, re-calcualte min-length, remove the shortest one, - WALrec[iW]=Lread+1; - for (uint iA=0; iA WALrec[iW] ) {//re-record the anchors and long aligns for (uint ii=0; ii WALrec[iW] ) { if (nWA[iW]>=P->seedPerWindowNmax) { - exitWithError("BUG: iA>=P->seedPerWindowNmax in stitchPieces, exiting",std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError("BUG: iA>=P->seedPerWindowNmax in stitchPieces, exiting",std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; - - uint iA; + + uint iA; for (iA=0;iAinOut->outLocalChains << trAll[iw][itr]->maxScore<<"\t"<< trAll[iw][itr]->Chr<<"\t"<Str<<"\t"<nExons; - for (uint ib=0;ibnExons;ib++) { + for (uint ib=0;ibnExons;ib++) { P->inOut->outLocalChains <<"\t"<< trAll[iw][itr]->exons[ib][EX_G]-P->chrStart[trAll[iw][itr]->Chr] \ <<"\t"<< trAll[iw][itr]->exons[ib][EX_R] <<"\t"<< trAll[iw][itr]->exons[ib][EX_L]; }; @@ -40,12 +40,12 @@ bool ReadAlign::chimericDetection() { if (P->chimSegmentMin>0 && trBest->rLength >= P->chimSegmentMin \ && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P->chimSegmentMin <= Lread \ || trBest->exons[0][EX_R] >= P->chimSegmentMin ) \ - && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { + && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif int chimScoreBest=0,chimScoreNext=0; trChim[0]=*trBest; - + uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; if (roStart1>readLength[0]) roStart1--; @@ -61,7 +61,7 @@ bool ReadAlign::chimericDetection() { }; for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) if (trBest==trAll[iW][0] && iWt==0) continue; // {//same window @@ -70,7 +70,7 @@ bool ReadAlign::chimericDetection() { // //start of the last Best exon is before end of the first Chim exon // if (trBest->exons[trBest->nExons-1][EX_G]exons[0][EX_G]+trAll[iW][iWt]->exons[0][EX_L]) continue; // } else { - // if (trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_G]exons[0][EX_G]+trBest->exons[0][EX_L]) continue; + // if (trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_G]exons[0][EX_G]+trBest->exons[0][EX_L]) continue; // }; // }; @@ -82,14 +82,14 @@ bool ReadAlign::chimericDetection() { chimStr1=1; } else {//strand opposite to RNA chimStr1=2; - }; + }; if (chimStr!=0 && chimStr1!=0 && chimStr!=chimStr1) continue; //chimeric segments have to have consitent strands uint roStart2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[0][EX_R] : Lread - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L]; uint roEnd2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] + trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L] - 1 : Lread - trAll[iW][iWt]->exons[0][EX_R] - 1; if (roStart2>readLength[0]) roStart2--; - if (roEnd2>readLength[0]) roEnd2--; + if (roEnd2>readLength[0]) roEnd2--; uint chimOverlap = roStart2>roStart1 ? (roStart2>roEnd1 ? 0 : roEnd1-roStart2+1) : (roEnd2= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); @@ -97,27 +97,27 @@ bool ReadAlign::chimericDetection() { //segment lengths && (different mates || small gap between segments) if (roEnd1 > P->chimSegmentMin + roStart1 + chimOverlap && roEnd2> P->chimSegmentMin + roStart2 + chimOverlap \ && ( diffMates || ( (roEnd1 + P->chimSegmentReadGapMax + 1) >= roStart2 && (roEnd2 + P->chimSegmentReadGapMax + 1) >= roStart1 ) ) ) { - + int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting - + uint overlap1=0; - if (iWt>0 && chimScoreBest>0) + if (iWt>0 && chimScoreBest>0) {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); }; if (chimScore > chimScoreBest && chimScore >= P->chimScoreMin && chimScore+P->chimScoreDropMax >= (int) (readLength[0]+readLength[1]) ) { - trChim[1]=*trAll[iW][iWt]; + trChim[1]=*trAll[iW][iWt]; if (overlap1==0) { chimScoreNext=chimScoreBest; }; chimScoreBest=chimScore; trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; - trChim[1].cStart = trChim[1].gStart - P->chrStart[trChim[1].Chr]; + trChim[1].cStart = trChim[1].gStart - P->chrStart[trChim[1].Chr]; chimStrBest=chimStr1; } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one - chimScoreNext=chimScore; + chimScoreNext=chimScore; }; }; };//cycle over window transcripts @@ -135,26 +135,26 @@ bool ReadAlign::chimericDetection() { uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; int chimMotif=0; - chimN=2; + chimN=2; if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one chimN=0;//reject such chimeras - //good test example: + //good test example: //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction chimN=2; chimRepeat=0; chimMotif=-1; - if (trChim[0].Str==1) {//negative strand + if (trChim[0].Str==1) {//negative strand chimJ0=trChim[0].exons[e0][EX_G]-1; } else { - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; - if (trChim[1].Str==0) {//positive strand + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + if (trChim[1].Str==0) {//positive strand chimJ1=trChim[1].exons[e1][EX_G]-1; } else { - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; - }; + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary if (trChim[0].exons[e0][EX_L]>=P->chimJunctionOverhangMin && trChim[1].exons[e1][EX_L]>=P->chimJunctionOverhangMin ) {//large enough overhang required uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; @@ -191,24 +191,24 @@ bool ReadAlign::chimericDetection() { char b01,b02,b11,b12; if (trChim[0].Str==0) { b01=G[trChim[0].exons[e0][EX_G]+jR+1]; - b02=G[trChim[0].exons[e0][EX_G]+jR+2]; + b02=G[trChim[0].exons[e0][EX_G]+jR+2]; } else { b01=G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; if (b01<4) b01=3-b01; b02=G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; - if (b02<4) b02=3-b02; - }; + if (b02<4) b02=3-b02; + }; if (trChim[1].Str==0) { b11=G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; - b12=G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + b12=G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; } else { b11=G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; if (b11<4) b11=3-b11; b12=G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; - if (b12<4) b12=3-b12; - }; + if (b12<4) b12=3-b12; + }; - jMotif=0; + jMotif=0; if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG if (chimStr!=2) { jMotif=1; @@ -216,8 +216,8 @@ bool ReadAlign::chimericDetection() { } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC if (chimStr!=1) { jMotif=2; - }; - }; + }; + }; if (bR==b0 && bR!=b1) { jScore++; @@ -239,21 +239,21 @@ bool ReadAlign::chimericDetection() { if (trChim[0].Str==1) { trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_L]=jRbest+1; + trChim[0].exons[e0][EX_L]=jRbest+1; chimJ0=trChim[0].exons[e0][EX_G]-1; } else { trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; if (trChim[1].Str==0) { trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; chimJ1=trChim[1].exons[e1][EX_G]-1; } else { - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; }; //find repeats char b0,b1; @@ -290,7 +290,7 @@ bool ReadAlign::chimericDetection() { if (b1<4) b1=3-b1; }; if (b0!=b1) break; - }; + }; chimRepeat0=jR; };//chimN>0 };//large enough overhang @@ -304,22 +304,22 @@ bool ReadAlign::chimericDetection() { && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P->alignIntronMax : P->alignMatesGapMax) ) ) {// - //&& (diff str || diff chr || + //&& (diff str || diff chr || //|| gap > (alignIntronMax,alignMatesGapMax) ) negative gap = very large # because of uint - + if (chimMotif>=0 && \ (trChim[0].exons[e0][EX_L]chimJunctionOverhangMin+chimRepeat0 || trChim[1].exons[e1][EX_L]chimJunctionOverhangMin+chimRepeat1) ) {//filter out linear junctions that are very close to chimeric junction return false; }; - + chimRecord=true; //chimeric alignment was recorded //re-calculate the score for chimeric transcripts trChim[0].alignScore(Read1, G, P); trChim[1].alignScore(Read1, G, P); - - int chimRepresent=-999, chimType=0; + + int chimRepresent=-999, chimType=0; if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) {//tr0 has both mates chimRepresent = 0; chimType = 1; @@ -329,8 +329,8 @@ bool ReadAlign::chimericDetection() { chimRepresent = 1; chimType = 1; trChim[1].primaryFlag=true;//paired portion is primary - trChim[0].primaryFlag=false; - } else if (trChim[0].exons[0][EX_iFrag]!=trChim[1].exons[0][EX_iFrag]) {//tr0 and tr1 are single different mates + trChim[0].primaryFlag=false; + } else if (trChim[0].exons[0][EX_iFrag]!=trChim[1].exons[0][EX_iFrag]) {//tr0 and tr1 are single different mates chimRepresent = -1; chimType = 2; trChim[0].primaryFlag=true; @@ -339,9 +339,9 @@ bool ReadAlign::chimericDetection() { chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; chimType = 3; trChim[chimRepresent].primaryFlag=true; - trChim[1-chimRepresent].primaryFlag=false; + trChim[1-chimRepresent].primaryFlag=false; }; - + if (P->chimOutType=="WithinBAM") {//BAM output int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering @@ -373,9 +373,9 @@ bool ReadAlign::chimericDetection() { mateStrand=(uint8_t) (trChim[chimRepresent].Str!=trChim[chimRepresent].exons[iex][EX_iFrag]); }; }; - - }; - + + }; + bamN+=alignBAM(trChim[itr], 1, 1, P->chrStart[trChim[itr].Chr], mateChr, mateStart, mateStrand, \ alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1];//outBAMoneAlignNbytes[1] = 0 if SE is recorded @@ -406,16 +406,16 @@ bool ReadAlign::chimericDetection() { if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); }; - }; - - + }; + + for (uint iTr=0;iTrreadNmates==2) { outputTranscriptSAM(trChim[iTr], chimN, iTr, trChim[1-iTr].Chr, trChim[1-iTr].exons[0][EX_G], (int) (trChim[1-iTr].Str!=trChim[1-iTr].exons[0][EX_iFrag]), -1, NULL, &chunkOutChimSAM); } else { outputTranscriptSAM(trChim[iTr], chimN, iTr, -1, -1, -1, -1, NULL, &chunkOutChimSAM); - }; - }; + }; + }; //junction + SAMp chunkOutChimJunction << P->chrName[trChim[0].Chr] <<"\t"<< chimJ0 - P->chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \ <<"\t"<< P->chrName[trChim[1].Chr] <<"\t"<< chimJ1 - P->chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \ diff --git a/ReadAlign_createExtendWindowsWithAlign.cpp b/ReadAlign_createExtendWindowsWithAlign.cpp index 27c9c48..d064707 100644 --- a/ReadAlign_createExtendWindowsWithAlign.cpp +++ b/ReadAlign_createExtendWindowsWithAlign.cpp @@ -5,17 +5,17 @@ #include "SequenceFuns.h" int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { - + uint aBin = (a1 >> P->winBinNbits); //align's bin uint iBinLeft=aBin, iBinRight=aBin; uintWinBin* wB=winBin[aStr]; uint iBin=-1, iWin=-1, iWinRight=-1; - - + + if (wB[aBin]==uintWinBinMax) {//proceed if there is no window at this bin //check neighboring bins - + bool flagMergeLeft=false; if (aBin>0) {//merge left only if there are bins on the left for (iBin=aBin-1; iBin >= ( aBin>P->winAnchorDistNbins ? aBin-P->winAnchorDistNbins : 0 ); --iBin) {//go left, find windows in Anchor range @@ -57,22 +57,22 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { for (uint ii=aBin; ii<=iBin; ii++) {//mark al bins with the existing windows ID wB[ii]=iWin; }; - }; + }; }; - + if (!flagMergeLeft && !flagMergeRight) {//no merging, a new window was added wB[aBin]=iWin=nW; //add new window ID for now, may change it later WC[iWin][WC_Chr]=P->chrBin[aBin >> P->winBinChrNbits]; WC[iWin][WC_Str]=aStr; WC[iWin][WC_gEnd]=WC[iWin][WC_gStart]=aBin; - ++nW; - if (nW>=P->alignWindowsPerReadNmax) { + ++nW; + if (nW>=P->alignWindowsPerReadNmax) { nW=P->alignWindowsPerReadNmax; return EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS; //too many windows, do not record TODO: record a marker - }; + }; } else {//record windows after merging - WC[iWin][WC_gStart]=iBinLeft; + WC[iWin][WC_gStart]=iBinLeft; WC[iWin][WC_gEnd]=iBinRight; if (flagMergeLeft && flagMergeRight) {//kill right window, it was merged with the left one WC[iWinRight][WC_gStart]=1; diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index e226fdd..fad2b83 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -3,49 +3,49 @@ #include "Stats.h" #include "serviceFuns.cpp" -int ReadAlign::mapOneRead() { - +int ReadAlign::mapOneRead() { + #ifdef OFF_BEFORE_SEEDING #warning OFF_BEFORE_SEEDING nW=0; return 0; - #endif - - revertStrand = false; //the 2nd read is awlays on opposite strand. 1st and 2nd reads have already been reversed. - + #endif + + revertStrand = false; //the 2nd read is awlays on opposite strand. 1st and 2nd reads have already been reversed. + if (Lread>0) { Nsplit=qualitySplit(Read1[0], Qual1[0], Lread, P->Qsplit, P->maxNsplit, P->minLsplit, splitR); } else { Nsplit=0; }; - + resetN(); //reset aligns counters to 0 - + //reset/initialize a transcript trInit->reset(); trInit->Chr=0; trInit->Str=0; trInit->roStr=0; trInit->cStart=0; trInit->gLength=0; //to generate nice output of 0 for non-mapped reads trInit->iRead=iRead; trInit->Lread=Lread; - trInit->readLengthPairOriginal=readLengthPairOriginal; + trInit->readLengthPairOriginal=readLengthPairOriginal; trInit->nExons=0; - + trNext=trBest=trInit; - + uint seedSearchStartLmax=min(P->seedSearchStartLmax,(uint) (P->seedSearchStartLmaxOverLread*(Lread-1))); // align all good pieces for (uint ip=0; ipseedSearchStartLmax>0 && seedSearchStartLmax0) {//check if the 1st piece in reveree direction does not need to be remapped Lmapped=0; @@ -60,33 +60,33 @@ int ReadAlign::mapOneRead() { if (iDir==0 && istart==0 && Lmapped==0 && Shift+L == splitR[1][ip] ) {//this piece maps full length and does not need to be mapped from the opposite direction flagDirMap=false; }; - Lmapped+=L; + Lmapped+=L; };//while ( istart*Lstart + Lmapped + P->minLmap < splitR[1][ip] ) };//if (flagDirMap || istart>0) - + if (P->seedSearchLmax>0) {//search fixed length. Not very efficient, need to improve uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart ) : \ ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1); //choose Shift for forward or reverse uint seedLength = min(P->seedSearchLmax, iDir==0 ? (splitR[0][ip] + splitR[1][ip]-Shift):(Shift+1) ); maxMappableLength2strands(Shift, seedLength, iDir, 0, P->nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple }; - - + + // #endif };//for (uint istart=0; istartoutFilterMatchNmin) {//read is too short (trimmed too much?) mapMarker=MARKER_READ_TOO_SHORT; trBest->rLength=0; //min good piece length - nW=0; + nW=0; } else if (Nsplit==0) {//no good pieces mapMarker=MARKER_NO_GOOD_PIECES; trBest->rLength=splitR[1][0]; //min good piece length @@ -94,12 +94,12 @@ int ReadAlign::mapOneRead() { } else if (Nsplit>0 && nA==0) { mapMarker=MARKER_ALL_PIECES_EXCEED_seedMultimapNmax; trBest->rLength=multNminL; - nW=0; + nW=0; } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length stitchPieces(Read1, Qual1, G, SA, Lread); if (nW>0) multMapSelect(); //check all the windows and transcripts for multiple mappers }; - + return 0; }; diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index 9db6618..d81defb 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -4,17 +4,17 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, uint iDir, uint iSA1, uint iSA2, uint& maxLbest, uint iFrag) { //returns number of mappings, maxMappedLength=mapped length - uint Nrep=0, indStartEnd[2], maxL; - + uint Nrep=0, indStartEnd[2], maxL; + uint NrepAll[P->genomeSAsparseD], indStartEndAll[P->genomeSAsparseD][2], maxLall[P->genomeSAsparseD]; maxLbest=0; - + bool dirR = iDir==0; - + for (uint iDist=0; iDistgenomeSAsparseD); iDist++) {//cycle through different distances - uint pieceStart; + uint pieceStart; uint pieceLength=pieceLengthIn-iDist; - + //calculate full index uint Lmax=min(P->genomeSAindexNbases,pieceLength); uint ind1=0; @@ -40,12 +40,12 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, break; } else {//this prefix does not exist, reduce Lind --Lind; - ind1 = ind1 >> 2; + ind1 = ind1 >> 2; }; }; if (P->genomeSAindexStart[Lind-1]+ind1+1 < P->genomeSAindexStart[Lind]) {//we are not at the end of the SA - iSA2=((SAi[P->genomeSAindexStart[Lind-1]+ind1+1] & P->SAiMarkNmask) & P->SAiMarkAbsentMask) - 1; + iSA2=((SAi[P->genomeSAindexStart[Lind-1]+ind1+1] & P->SAiMarkNmask) & P->SAiMarkAbsentMask) - 1; } else { iSA2=P->nSA-1; }; @@ -56,7 +56,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, #ifdef SA_SEARCH_FULL //full search of the array even if the index search gave maxL maxL=0; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G, SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G, SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); #else if (Lind < P->genomeSAindexNbases && (iSA1 & P->SAiMarkNmaskC)==0 ) {//no need for SA search indStartEnd[0]=iSA1; @@ -79,10 +79,10 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, } else { maxL=0; }; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G, SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G, SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); }; #endif - + if (maxL+iDist > maxLbest) {//this idist is better maxLbest=maxL+iDist; }; @@ -91,11 +91,11 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, indStartEndAll[iDist][1]=indStartEnd[1]; maxLall[iDist]=maxL; }; - + for (uint iDist=0; iDistgenomeSAsparseD); iDist++) {//cycle through different distances, store the ones with largest maxL if ( (maxLall[iDist]+iDist) == maxLbest) { - storeAligns(iDir, (dirR ? pieceStartIn+iDist : pieceStartIn-iDist), NrepAll[iDist], maxLall[iDist], indStartEndAll[iDist], iFrag); + storeAligns(iDir, (dirR ? pieceStartIn+iDist : pieceStartIn-iDist), NrepAll[iDist], maxLall[iDist], indStartEndAll[iDist], iFrag); }; }; - return Nrep; + return Nrep; }; diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index 5b6230d..3a0bf6c 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -6,18 +6,18 @@ #include void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts of all windows - + maxScore=0; for (uint iW=0; iWmaxScore) maxScore = trAll[iW][0]->maxScore; }; - + if (maxScore!=trBest->maxScore) { ostringstream errOut; errOut << "BUG: maxScore!=trBest->maxScore in multMapSelect"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; - + bool chimRecord = false; nTr=0; @@ -29,30 +29,30 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts if (nTr==MAX_N_MULTMAP) {//too many alignments for this read, do not record it ostringstream errOut; errOut << "EXITING: Fatal ERROR: number of alignments exceeds MAX_N_MULTMAP, increase it and re-compile STAR"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); }; - + trMult[nTr]=trAll[iW][iTr]; trMult[nTr]->Chr = trAll[iW][0]->Chr; - trMult[nTr]->Str = trAll[iW][0]->Str; - trMult[nTr]->roStr = trAll[iW][0]->roStr; - + trMult[nTr]->Str = trAll[iW][0]->Str; + trMult[nTr]->roStr = trAll[iW][0]->roStr; + if ( (trAll[iW][iTr]->maxScore + P->outFilterMultimapScoreRange) >= maxScore) nTrMate++; - - nTr++; + + nTr++; }; }; }; - + if (nTr > P->outFilterMultimapNmax) {//too multi, no need for further processing, isnce it will be considered unmapped return; }; - - for (uint iTr=0; iTrroStart = trMult[iTr]->roStr==0 ? trMult[iTr]->rStart : Lread - trMult[iTr]->rStart - trMult[iTr]->rLength; - trMult[iTr]->cStart=trMult[iTr]->gStart - P->chrStart[trMult[iTr]->Chr]; + trMult[iTr]->cStart=trMult[iTr]->gStart - P->chrStart[trMult[iTr]->Chr]; }; // if (P->outMultimapperOrder.sortCoord) @@ -70,9 +70,9 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts // { // trMult[itr]=t[s[itr*2+1]]; // }; -// delete [] s; +// delete [] s; // }; - + if (nTr==1) {//unique mappers trMult[0]->primaryFlag=true; @@ -83,7 +83,7 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts {//bring the best alignment to the top of the list. TODO sort alignments by the score? for (uint itr=0; itrmaxScore == maxScore ) + if ( trMult[itr]->maxScore == maxScore ) { swap(trMult[itr],trMult[nbest]); ++nbest; @@ -102,15 +102,15 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts int rand1=int (rngUniformReal0to1(rngMultOrder)*itr+0.5); swap(trMult[nbest+itr],trMult[nbest+rand1]); }; - }; + }; if ( P->outSAMprimaryFlag=="AllBestScore" ) { for (uint itr=0; itrmaxScore == maxScore ) trMult[itr]->primaryFlag=true; + if ( trMult[itr]->maxScore == maxScore ) trMult[itr]->primaryFlag=true; }; - } else if (P->outMultimapperOrder.random || P->outSAMmultNmax != (uint) -1) + } else if (P->outMultimapperOrder.random || P->outSAMmultNmax != (uint) -1) { trMult[0]->primaryFlag=true;//mark as primary the first one in the random ordered list: best scoring aligns are already in front of the list // for (uint itr=0; itrprimaryFlag=true; + trBest->primaryFlag=true; }; }; }; diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index f2468b7..6649702 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -7,36 +7,36 @@ int ReadAlign::oneRead() {//process one read: load, map, write //load read name, sequence, quality from the streams into internal arrays int readStatus[2]; - + readStatus[0]=readLoad(*(readInStream[0]), P, 0, readLength[0], readLengthOriginal[0], readNameMates[0], Read0[0], Read1[0], Qual0[0], Qual1[0], clip3pNtotal[0], clip5pNtotal[0], clip3pAdapterN[0], iReadAll, readFilesIndex, readFilter); if (P->readNmates==2) {//read the 2nd mate readStatus[1]=readLoad(*(readInStream[1]), P, 1, readLength[1], readLengthOriginal[1], readNameMates[1], Read0[1], Read1[0]+readLength[0]+1, Qual0[1], Qual1[0]+readLength[0]+1, clip3pNtotal[1], clip5pNtotal[1], clip3pAdapterN[1], iReadAll, readFilesIndex, readFilter); - + if (readStatus[0]!=readStatus[1]) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: Read1 and Read2 are not consistent, reached the end of the one before the other one\n"; errOut << "SOLUTION: Check you your input files: they may be corrupted\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); } else if (readStatus[0]==-1) {//finished with the stream return -1; }; - + //combine two reads together Lread=readLength[0]+readLength[1]+1; - readLengthPairOriginal=readLengthOriginal[0]+readLengthOriginal[1]+1; + readLengthPairOriginal=readLengthOriginal[0]+readLengthOriginal[1]+1; if (Lread>DEF_readSeqLengthMax) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in reads input: Lread of the pair = " << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + Read1[0][readLength[0]]=MARK_FRAG_SPACER_BASE; //marker for spacer base Qual1[0][readLength[0]]=0; complementSeqNumbers(Read1[0]+readLength[0]+1,Read1[0]+readLength[0]+1,readLength[1]); //returns complement of Reads[ii] for (uint ii=0;iioutFilterMismatchNmax, (uint) (P->outFilterMismatchNoverReadLmax*(readLength[0]+readLength[1]))); - + //map the read mapOneRead(); - + #ifdef OFF_BEFORE_OUTPUT #warning OFF_BEFORE_OUTPUT return 0; #endif //write out alignments outputAlignments(); - + //debug // cout <outFilterBySJoutStage<=1) {//no chimeric output for stage=2 if ( chimericDetection() ) { statsRA.chimericAll++; - if ( P->chimOutType=="WithinBAM" ) + if ( P->chimOutType=="WithinBAM" ) { //if chimeric alignment was recorded in main BAM files, it contains the representative portion, so non-chimeric aligmnent is not output - return; + return; }; }; }; - + if ( nW==0 ) {//no good windows statsRA.unmappedOther++; unmapType=0; @@ -37,7 +37,7 @@ void ReadAlign::outputAlignments() { } else {//output transcripts outFilterPassed=true; - + if (P->outFilterBySJoutStage==1) {//filtering by SJout for (uint iTr=0;iTrnExons-1;iex++) {//check all junctions @@ -52,7 +52,7 @@ void ReadAlign::outputAlignments() { unmapType=-3; //the read is not conisddred unmapped statsRA.readN--; statsRA.readBases -= readLength[0]+readLength[1]; - + // if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutFilterBySJout); for (uint im=0;imreadNmates;im++) { chunkOutFilterBySJoutFiles[im] << readNameMates[im] <<" "<< iReadAll <<" "<< readFilter <<" "<< readFilesIndex; @@ -63,16 +63,16 @@ void ReadAlign::outputAlignments() { chunkOutFilterBySJoutFiles[im] << Qual0[im] <<"\n"; }; }; -// if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutFilterBySJout); +// if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutFilterBySJout); }; }; if (P->outSJfilterReads=="All" || nTr==1) { - uint sjReadStartN=chunkOutSJ1->N; + uint sjReadStartN=chunkOutSJ1->N; for (uint iTr=0;iTroutSAMfilter.KeepOnlyAddedReferences) { - for (uint itr=0;itrChrgenomeInsertChrIndFirst) { @@ -89,7 +89,7 @@ void ReadAlign::outputAlignments() { }; }; }; - }; + }; if (nTr>1) {//multimappers statsRA.mappedReadsM++; unmapType=-1; @@ -100,78 +100,78 @@ void ReadAlign::outputAlignments() { } else {//cannot be ostringstream errOut; errOut << "EXITING because of a BUG: nTr=0 in outputAlignments.cpp"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); - }; - - uint nTrOut=min(P->outSAMmultNmax,nTr); //number of to write to SAM/BAM files - - for (uint iTr=0;iTrinOut->logMain, EXIT_CODE_BUG, *P); + }; + + uint nTrOut=min(P->outSAMmultNmax,nTr); //number of to write to SAM/BAM files + + for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; - mateMapped[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; - + mateMapped[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; + //mateMapped1 = true if a mate is present in this transcript bool mateMapped1[2]={false,false}; mateMapped1[trMult[iTr]->exons[0][EX_iFrag]]=true; - mateMapped1[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; - + mateMapped1[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; + if (P->outSAMbool && outSAMfilterYes) {//SAM output outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); if (P->outSAMunmapped.keepPairs && P->readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) - {//keep pairs && paired reads && one of the mates not mapped in this transcript - outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, outSAMstream); + {//keep pairs && paired reads && one of the mates not mapped in this transcript + outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, outSAMstream); }; }; - - if ((P->outBAMunsorted || P->outBAMcoord) && outSAMfilterYes) + + if ((P->outBAMunsorted || P->outBAMcoord) && outSAMfilterYes) {//BAM output alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); - + if (P->outBAMunsorted) {//unsorted - for (uint imate=0; imatereadNmates; imate++) + for (uint imate=0; imatereadNmates; imate++) {//output each mate outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; - if (P->outSAMunmapped.keepPairs && P->readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) - {//keep pairs && paired reads && one of the mates not mapped in this transcript + if (P->outSAMunmapped.keepPairs && P->readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) + {//keep pairs && paired reads && one of the mates not mapped in this transcript alignBAM(*trMult[iTr], 0, 0, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, 4, mateMapped1, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) + for (uint imate=0; imatereadNmates; imate++) {//output each mate outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); - }; + }; }; }; - + if (P->outBAMcoord) {//coordinate sorted - for (uint imate=0; imatereadNmates; imate++) + for (uint imate=0; imatereadNmates; imate++) {//output each mate - outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); + outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; }; - + }; }; - - if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) + + if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) { unmapType=4; }; - + if (unmapType==4 && P->outSAMunmapped.yes) {//output unmapped end for single-end alignments if (P->outSAMbool && !P->outSAMunmapped.keepPairs && outSAMfilterYes) { - outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); + outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); }; - - if ( (P->outBAMcoord || (P->outBAMunsorted && !P->outSAMunmapped.keepPairs) ) && outSAMfilterYes) + + if ( (P->outBAMcoord || (P->outBAMunsorted && !P->outSAMunmapped.keepPairs) ) && outSAMfilterYes) {//BAM output alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) + for (uint imate=0; imatereadNmates; imate++) {//alignBAM output is empty for mapped mate, but still need to scan through it if (P->outBAMunsorted && !P->outSAMunmapped.keepPairs) { @@ -179,43 +179,43 @@ void ReadAlign::outputAlignments() { }; if (P->outBAMcoord) {//KeepPairs option does not affect for sorted BAM since we do not want multiple entries for the same unmapped read - outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); + outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); }; }; }; }; - - if (P->outSJfilterReads=="All" || nTr==1) + + if (P->outSJfilterReads=="All" || nTr==1) { - uint sjReadStartN=chunkOutSJ->N; - for (uint iTr=0;iTrN; + for (uint iTr=0;iTrquant.geCount.yes ) + + if ( P->quant.geCount.yes ) { chunkTr->geneCountsAddAlign(nTr, trMult); - }; - - if ( P->quant.trSAM.yes ) + }; + + if ( P->quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused quantTranscriptome(chunkTr, nTr, trMult, alignTrAll); - }; + }; }; }; - + if (unmapType>=0) { statsRA.unmappedAll++; }; if ( P->outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped - if (P->outBAMcoord || P->outBAMunsorted || P->quant.trSAM.yes) + if (P->outBAMcoord || P->outBAMunsorted || P->quant.trSAM.yes) {//BAM output alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) + for (uint imate=0; imatereadNmates; imate++) {//output each mate if (P->outBAMunsorted) { @@ -227,15 +227,15 @@ void ReadAlign::outputAlignments() { }; if (P->outBAMcoord) { - outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); + outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); }; }; }; - - if (P->outSAMbool) + + if (P->outSAMbool) {//output SAM - outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); - }; + outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); + }; }; if (unmapType>=0 && P->outReadsUnmapped=="Fastx" ){//output to fasta/q files for (uint im=0;imreadNmates;im++) { @@ -248,7 +248,7 @@ void ReadAlign::outputAlignments() { chunkOutUnmappedReadsStream[im] << Qual0[im] <<"\n"; }; }; - }; + }; }; diff --git a/ReadAlign_outputTranscriptCIGARp.cpp b/ReadAlign_outputTranscriptCIGARp.cpp index d6ac47c..e9a464c 100644 --- a/ReadAlign_outputTranscriptCIGARp.cpp +++ b/ReadAlign_outputTranscriptCIGARp.cpp @@ -3,43 +3,43 @@ string ReadAlign::outputTranscriptCIGARp(Transcript const &trOut) {//generates CIGARp string for the transcript //p is a special CIGAR operation to encode gap between mates. This gap is negative for overlapping mates - + string CIGAR; samStreamCIGAR.str(std::string()); uint leftMate=0; if (P->readFilesIn.size()>1) leftMate=trOut.Str; - + uint trimL=trOut.exons[0][EX_R] - (trOut.exons[0][EX_R]0) { samStreamCIGAR << trimL << "S"; //initial trimming - }; - + }; + for (uint ii=0;ii0) {//record gaps - uint gapG=trOut.exons[ii][EX_G]-(trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]); - + uint gapG=trOut.exons[ii][EX_G]-(trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]); + if (trOut.exons[ii][EX_G] >= (trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]) ) {// if (trOut.canonSJ[ii-1]==-3) {//gap between mates //soft clipping of the second mate uint s1=readLengthOriginal[leftMate]-(trOut.exons[ii-1][EX_R]+trOut.exons[ii-1][EX_L]); uint s2=trOut.exons[ii][EX_R]-(readLengthOriginal[leftMate]+1); if (s1>0){ - samStreamCIGAR << s1 << "S"; - }; + samStreamCIGAR << s1 << "S"; + }; samStreamCIGAR << gapG << "p"; if (s2>0){ - samStreamCIGAR << s2 << "S"; - }; - + samStreamCIGAR << s2 << "S"; + }; + } else { //it's possible to have a D or N and I for at the same time - uint gapR=trOut.exons[ii][EX_R]-trOut.exons[ii-1][EX_R]-trOut.exons[ii-1][EX_L]; //gapR>0 always + uint gapR=trOut.exons[ii][EX_R]-trOut.exons[ii-1][EX_R]-trOut.exons[ii-1][EX_L]; //gapR>0 always if (gapR>0){ samStreamCIGAR << gapR << "I"; - }; + }; if (trOut.canonSJ[ii-1]>=0 || trOut.sjAnnot[ii-1]==1) {//junction: N - samStreamCIGAR << gapG << "N"; + samStreamCIGAR << gapG << "N"; } else if (gapG>0) {//deletion samStreamCIGAR << gapG << "D"; }; @@ -47,11 +47,11 @@ string ReadAlign::outputTranscriptCIGARp(Transcript const &trOut) {//generates C } else {//mates overlap samStreamCIGAR << "-" << (trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]) - trOut.exons[ii][EX_G] << "p"; }; - }; + }; samStreamCIGAR << trOut.exons[ii][EX_L] << "M"; }; - + trimL=(trOut.exons[trOut.nExons-1][EX_R] 0 ) { samStreamCIGAR << trimL << "S"; //final trimming diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 6f3f7c1..8e4af51 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -2,41 +2,41 @@ #include "SequenceFuns.h" #include "ErrorWarning.h" -uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, ostream *outStream) { - - if (P->outSAMmode=="None") return 0; //no SAM output - +uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, ostream *outStream) { + + if (P->outSAMmode=="None") return 0; //no SAM output + uint outStreamPos0=(uint)outStream->tellp(); - - if (unmapType>=0) + + if (unmapType>=0) {//unmapped reads: SAM for (uint imate=0;imatereadNmates;imate++) {//cycle over mates if (!mateMapped[imate]) { uint16 samFLAG=0x4; - if (P->readNmates==2) + if (P->readNmates==2) {//paired read samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); - if (mateMapped[1-imate]) + if (mateMapped[1-imate]) {//mate mapped - if ( trOut.Str != (1-imate) ) + if ( trOut.Str != (1-imate) ) { samFLAG+=0x20;//mate strand reverted }; - } else + } else {//mate unmapped samFLAG+=0x8; }; }; if (readFilter=='Y') samFLAG+=0x200; //not passing quality control - - if (mateMapped[1-imate] && !trOut.primaryFlag) + + if (mateMapped[1-imate] && !trOut.primaryFlag) {//mapped mate is not primary samFLAG+=0x100; }; - + *outStream << readName+1 <<"\t"<< samFLAG \ <<"\t"<< '*' <<"\t"<< '0' <<"\t"<< '0' <<"\t"<< '*'; @@ -48,15 +48,15 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i *outStream <<"\t"<< '0' <<"\t"<< Read0[imate] <<"\t"<< (readFileType==2 ? Qual0[imate]:"*") \ <<"\tNH:i:0" <<"\tHI:i:0" <<"\tAS:i:"<outSAMattrRG.empty()) *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); + if (!P->outSAMattrRG.empty()) *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); *outStream <<"\n"; - + }; }; return (uint)outStream->tellp()-outStreamPos0; };//if (unmapType>=0 && outStream != NULL) //unmapped reads: SAM - - + + bool flagPaired = P->readNmates==2; string CIGAR; @@ -79,7 +79,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i if (mateChr>P->nChrReal) samFLAG+=0x0008; //not mapped as pair } else {//properly paired samFLAG+=0x0002; //mapped as pair - }; + }; } else {//single end samFLAG=0; }; @@ -88,22 +88,22 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i uint iEx1 = (imate==0 ? 0 : iExMate+1); uint iEx2 = (imate==0 ? iExMate : trOut.nExons-1); - uint Mate=trOut.exons[iEx1][EX_iFrag]; + uint Mate=trOut.exons[iEx1][EX_iFrag]; uint Str= trOut.Str;//note that Strand = the mate on the left - + if (Mate==0) { samFLAG += Str*0x10; if (nMates==2) samFLAG += (1-Str)*0x20; } else {//second mate strand need to be reverted samFLAG += (1-Str)*0x10; - if (nMates==2) samFLAG += Str*0x20; - }; - + if (nMates==2) samFLAG += Str*0x20; + }; + if (flagPaired) { leftMate=Str; samFLAG += (Mate==0 ? 0x0040 : 0x0080); if (flagPaired && nMates==1 && mateStrand==1) samFLAG +=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) - }; + }; //not primary align? if (!trOut.primaryFlag) samFLAG +=0x100; @@ -124,12 +124,12 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i } else { trimL=clip5pNtotal[Mate]; }; - + uint trimL1 = trimL + trOut.exons[iEx1][EX_R] - (trOut.exons[iEx1][EX_R]0) { samStreamCIGAR << trimL1 << "S"; //initial trimming - }; - + }; + for (uint ii=iEx1;ii<=iEx2;ii++) { if (ii>iEx1) {//record gaps uint gapG=trOut.exons[ii][EX_G]-(trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]); @@ -137,33 +137,33 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i //it's possible to have a D or N and I at the same time if (gapR>0){ samStreamCIGAR << gapR; - samStreamCIGAR << "I"; - }; + samStreamCIGAR << "I"; + }; if (trOut.canonSJ[ii-1]>=0 || trOut.sjAnnot[ii-1]==1) {//junction: N - samStreamCIGAR << gapG; + samStreamCIGAR << gapG; samStreamCIGAR << "N"; samStreamSJmotif <<','<< trOut.canonSJ[ii-1] + (trOut.sjAnnot[ii-1]==0 ? 0 : SJ_SAM_AnnotatedMotifShift); //record junction type -// samStreamSJannot <<','<< (int) trOut.sjAnnot[ii-1]; //record annotation type +// samStreamSJannot <<','<< (int) trOut.sjAnnot[ii-1]; //record annotation type samStreamSJintron <<','<< trOut.exons[ii-1][EX_G] + trOut.exons[ii-1][EX_L] + 1 - P->chrStart[trOut.Chr] <<','\ << trOut.exons[ii][EX_G] - P->chrStart[trOut.Chr]; //record intron loci } else if (gapG>0) {//deletion: N samStreamCIGAR << gapG; samStreamCIGAR << "D"; }; - }; + }; samStreamCIGAR << trOut.exons[ii][EX_L] << "M"; }; string SJmotif = samStreamSJmotif.str(); string SJintron = samStreamSJintron.str(); // string SJannot = samStreamSJannot.str(); - + if (SJmotif.length()==0) {//no junctions recorded, mark with -1 - SJmotif=",-1"; + SJmotif=",-1"; SJintron=",-1"; // SJannot=",-1"; }; - + uint trimR1=(trOut.exons[iEx1][EX_R]outSAMmapqUnique; @@ -198,7 +198,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i } else if (nTrOut==2) { MAPQ=3; }; - + *outStream << readName+1 <<"\t"<< ((samFLAG & P->outSAMflagAND) | P->outSAMflagOR) <<"\t"<< P->chrName[trOut.Chr] <<"\t"<< trOut.exons[iEx1][EX_G] + 1 - P->chrStart[trOut.Chr] <<"\t"<< MAPQ <<"\t"<< CIGAR; @@ -211,17 +211,17 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i *outStream <<"\t"<< "*" <<"\t"<< 0 <<"\t"<< 0; }; - + *outStream <<"\t"<< seqOut; - + if (readFileType==2 && P->outSAMmode != "NoQS") {//fastq *outStream <<"\t"<< qualOut ; } else { *outStream <<"\t"<< "*"; - }; - + }; + // vector customAttr(outSAMattrN,""); - + uint tagNM=0; string tagMD(""); if (P->outSAMattrPresent.NM || P->outSAMattrPresent.MD) { @@ -254,7 +254,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i tagNM+=trOut.exons[iex+1][EX_R]-trOut.exons[iex][EX_R]-trOut.exons[iex][EX_L]; }; }; - }; + }; tagMD+=to_string(matchN); }; for (uint ii=0;iioutSAMattrOrder.size();ii++) { @@ -267,13 +267,13 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i break; case ATTR_AS: *outStream<<"\tAS:i:"<outSAMattrRG.at(readFilesIndex); + *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); break; default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<outSAMattrOrder[ii] <<"\n"; errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); }; }; - - + + // for (uint ii=0;iitellp()-outStreamPos0; }; diff --git a/ReadAlign_outputTranscriptSJ.cpp b/ReadAlign_outputTranscriptSJ.cpp index 26c0ef3..eac1f23 100644 --- a/ReadAlign_outputTranscriptSJ.cpp +++ b/ReadAlign_outputTranscriptSJ.cpp @@ -2,16 +2,16 @@ #include "OutSJ.h" void ReadAlign::outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ *chunkOutSJ, uint sjReadStartN ) {//record junctions in chunkOutSJ array - - //TODO: make sure that a junction is recorded onyl once from one read. + + //TODO: make sure that a junction is recorded onyl once from one read. //For a multimapper, several alignments may contain the same junctions - now it's recorded several time. // if (nTrOut>1) return; //junctions from multi-mappers are not recorded - + // if (P->outSAMmode=="None") return; //no SAM output - + for (uint iex=0;iex=0) {//only record junctions, not indels or mate gap - chunkOutSJ->oneSJ.junctionPointer(chunkOutSJ->data, chunkOutSJ->N);//get pointer to an empty junction in the data array + chunkOutSJ->oneSJ.junctionPointer(chunkOutSJ->data, chunkOutSJ->N);//get pointer to an empty junction in the data array *chunkOutSJ->oneSJ.start=trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L]; //start of the intron *chunkOutSJ->oneSJ.gap=trOut.exons[iex+1][EX_G]-*chunkOutSJ->oneSJ.start; //overhangs: basic method @@ -19,8 +19,8 @@ void ReadAlign::outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ * //*chunkOutSJ->oneSJ.overhangRight = (uint32) trOut.exons[iex+1][EX_L]; //overhangs: min method *chunkOutSJ->oneSJ.overhangLeft = min ( (uint32) trOut.exons[iex][EX_L],(uint32) trOut.exons[iex+1][EX_L] ); - *chunkOutSJ->oneSJ.overhangRight = *chunkOutSJ->oneSJ.overhangLeft; - + *chunkOutSJ->oneSJ.overhangRight = *chunkOutSJ->oneSJ.overhangLeft; + //check if this junction has been recorded from this read - this happens when the mates overlap and cross the same junctions bool duplicateSJ(false); for (uint ii=sjReadStartN; iiN; ii++) {//TODO if there are many junctions, need to make more efficient @@ -36,9 +36,9 @@ void ReadAlign::outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ * }; }; if (duplicateSJ) continue; //do not record this junctions - - *chunkOutSJ->oneSJ.motif=trOut.canonSJ[iex]; - *chunkOutSJ->oneSJ.strand=(char) (trOut.canonSJ[iex]==0 ? 0 : (trOut.canonSJ[iex]+1)%2+1); + + *chunkOutSJ->oneSJ.motif=trOut.canonSJ[iex]; + *chunkOutSJ->oneSJ.strand=(char) (trOut.canonSJ[iex]==0 ? 0 : (trOut.canonSJ[iex]+1)%2+1); *chunkOutSJ->oneSJ.annot=trOut.sjAnnot[iex]; if (nTrOut==1) { *chunkOutSJ->oneSJ.countUnique=1; @@ -47,7 +47,7 @@ void ReadAlign::outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ * *chunkOutSJ->oneSJ.countMultiple=1; //TODO: 1/nTrOut? *chunkOutSJ->oneSJ.countUnique=0; //TODO: 1/nTrOut? }; - + chunkOutSJ->N++;//increment the number of recorded junctions }; }; diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 5619b47..a1b1b5d 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -5,18 +5,18 @@ #include uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT) { - uint nAlignT=0; + uint nAlignT=0; for (uint iag=0; iagquant.trSAM.indel && (alignG[iag]->nDel>0 || alignG[iag]->nIns>0) ) {//prevent indels if requested continue; }; if (!P->quant.trSAM.singleEnd && (P->readNmates==2 && alignG[iag]->exons[0][EX_iFrag]==alignG[iag]->exons[alignG[iag]->nExons-1][EX_iFrag]) ) {//prevent single end alignments - continue; + continue; }; - + uint nMM1=0; char* R=Read1[alignG[iag]->roStr==0 ? 0:2]; if (!P->quant.trSAM.softClip) @@ -28,10 +28,10 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript } else if (alignG[iag]->canonSJ[iab-1]==-3) { left1=alignG[iag]->exons[iab][EX_R]-readLength[alignG[iag]->exons[iab-1][EX_iFrag]]-1; }; - if (iab==alignG[iag]->nExons-1) + if (iab==alignG[iag]->nExons-1) {//last block of left mates right1=Lread-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; - + } else if (alignG[iag]->canonSJ[iab]==-3) {//last block of the right mate (i.e. whole read) right1=readLength[alignG[iag]->exons[iab][EX_iFrag]]-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; @@ -46,35 +46,35 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript char r1=R[alignG[iag]->exons[iab][EX_R]+alignG[iag]->exons[iab][EX_L]+b]; char g1=G[alignG[iag]->exons[iab][EX_G]+alignG[iag]->exons[iab][EX_L]+b]; if ( r1!=g1 && r1<4 && g1<4) ++nMM1; - }; + }; alignG[iag]->exons[iab][EX_R] -= left1; alignG[iag]->exons[iab][EX_G] -= left1; alignG[iag]->exons[iab][EX_L] += left1+right1; }; - - if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P->outFilterMismatchNoverLmax*(Lread-1)) ) ) + + if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P->outFilterMismatchNoverLmax*(Lread-1)) ) ) {//extension of soft clips yielded too many mismatches, no output continue; }; }; - + // if (alignG[iag]->mappedLength==(readLength[0]+readLength[1]) && alignG[iag]->nDel==0) {//remove transcripts that contain indels of soft-clipping //TODO make this optional nAlignT += Tr->quantAlign(*alignG[iag],alignT+nAlignT); // }; }; - + alignT[int(rngUniformReal0to1(rngMultOrder)*nAlignT)].primaryFlag=true; - + for (uint iatr=0;iatroutSAMattrOrderQuant, outBAMoneAlign, outBAMoneAlignNbytes); + alignBAM(alignT[iatr], nAlignT, iatr, 0, (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrderQuant, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iatr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nAlignT); - }; + }; }; - + //not used anymore, at Colin Dewey's request // if (nAlignT==0 && P->outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped // uint unmapType=5; @@ -83,8 +83,8 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript // for (uint imate=0; imatereadNmates; imate++) {//output each mate // outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); // }; -// +// // }; - - return nAlignT; + + return nAlignT; }; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 25fa8c4..b0f4649 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -11,12 +11,12 @@ #include void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint Lread) { - + //zero-out winBin memset(winBin[0],255,sizeof(winBin[0][0])*P->winBinN); memset(winBin[1],255,sizeof(winBin[0][0])*P->winBinN); - + // for (uint iWin=0;iWinwinBinN;ii++){ // if (winBin[0][ii]!=uintWinBinMax || winBin[1][ii]!=uintWinBinMax) { @@ -36,21 +36,21 @@ void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint // exit(1); // }; // }; - - + + nW=0; //number of windows for (uint iP=0; iPwinAnchorMultimapNmax || PC[iP][PC_Length]>=readLength[PC[iP][PC_iFrag]] ) {//proceed if piece is an anchor, i.e. maps few times or is long enough if (PC[iP][PC_Nrep]<=P->winAnchorMultimapNmax ) {//proceed if piece is an anchor, i.e. maps few times - - uint aDir = PC[iP][PC_Dir]; - uint aLength= PC[iP][PC_Length]; + + uint aDir = PC[iP][PC_Dir]; + uint aLength= PC[iP][PC_Length]; for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) {//scan through all alignments of this piece uint a1 = SA[iSA]; - uint aStr = a1 >> P->GstrandBit; + uint aStr = a1 >> P->GstrandBit; a1 &= P->GstrandMask; //remove strand bit //convert to positive strand @@ -60,129 +60,129 @@ void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint a1 = P->nGenome - (aLength+a1); } else if (aDir==1 && aStr==1) { aStr=0; - a1 = P->nGenome - (aLength+a1); + a1 = P->nGenome - (aLength+a1); }; - //final strand + //final strand if (revertStrand) { //modified strand according to user input CHECK!!!! aStr=1-aStr; - }; + }; if (a1>=P->sjGstart) {//this is sj align - uint a1D, aLengthD, a1A, aLengthA, sj1; + uint a1D, aLengthD, a1A, aLengthA, sj1; if (sjAlignSplit(a1, aLength, P, a1D, aLengthD, a1A, aLengthA, sj1)) {//align crosses the junction int addStatus=createExtendWindowsWithAlign(a1D, aStr);//add donor piece if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows break; - }; + }; addStatus=createExtendWindowsWithAlign(a1A, aStr);//add acceptor piece if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows break; - }; + }; }; } else {//this is a normal genomic read int addStatus=createExtendWindowsWithAlign(a1, aStr); if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows break; - }; - }; + }; + }; }; //for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) //scan through all alignments of this piece };//if (PC[iP][PC_Nrep]<=P->winAnchorMultimapNmax) //proceed if anchor };//for (uint iP=0; iPwinFlankNbins && wb>0 && P->chrBin[(wb-1) >> P->winBinChrNbits]==WC[iWin][WC_Chr];ii++) { wb--; winBin[ WC[iWin][WC_Str] ][ wb ]=(uintWinBin) iWin; }; WC[iWin][WC_gStart] = wb; - + wb=WC[iWin][WC_gEnd]; for (uint ii=0; iiwinFlankNbins && wb+1winBinN && P->chrBin[(wb+1) >> P->winBinChrNbits]==WC[iWin][WC_Chr];ii++) { wb++; winBin[ WC[iWin][WC_Str] ][ wb ]=(uintWinBin) iWin; }; WC[iWin][WC_gEnd] = wb; - - + + }; nWA[iWin]=0; //initialize nWA - WALrec[iWin]=0; //initialize rec-length + WALrec[iWin]=0; //initialize rec-length WlastAnchor[iWin]=-1; }; - + nWall=nW; - + #ifdef OFF_BEFORE_SEEDdistribution #warning OFF_BEFORE_SEEDdistribution nW=0; nTr=0; return; #endif - + for (uint iP=0; iPwinAnchorMultimapNmax); //this align is an anchor or not + uint aFrag=PC[iP][PC_iFrag]; + uint aLength=PC[iP][PC_Length]; + uint aDir=PC[iP][PC_Dir]; + + bool aAnchor=(aNrep<=P->winAnchorMultimapNmax); //this align is an anchor or not for (uint ii=0;ii> P->GstrandBit; + uint aStr = a1 >> P->GstrandBit; a1 &= P->GstrandMask; //remove strand bit uint aRstart=PC[iP][PC_rStart]; //convert to positive strand if (aDir==1 && aStr==0) { aStr=1; - aRstart = Lread - (aLength+aRstart); + aRstart = Lread - (aLength+aRstart); } else if (aDir==0 && aStr==1) { - aRstart = Lread - (aLength+aRstart); + aRstart = Lread - (aLength+aRstart); a1 = P->nGenome - (aLength+a1); } else if (aDir==1 && aStr==1) { aStr=0; - a1 = P->nGenome - (aLength+a1); + a1 = P->nGenome - (aLength+a1); }; - - //final strand + + //final strand if (revertStrand) { //modified strand according to user input CHECK!!!! aStr=1-aStr; - }; + }; + - if (a1>=P->sjGstart) {//this is sj read - uint a1D, aLengthD, a1A, aLengthA, isj1; + uint a1D, aLengthD, a1A, aLengthA, isj1; if (sjAlignSplit(a1, aLength, P, a1D, aLengthD, a1A, aLengthA, isj1)) {//align crosses the junction assignAlignToWindow(a1D, aLengthD, aStr, aNrep, aFrag, aRstart, aAnchor, isj1); assignAlignToWindow(a1A, aLengthA, aStr, aNrep, aFrag, aRstart+aLengthD, aAnchor, isj1); - + } else {//align does not cross the junction continue; //do not check this align, continue to the next one }; - + } else {//this is a normal genomic read assignAlignToWindow(a1, aLength, aStr, aNrep, aFrag, aRstart, aAnchor, -1); }; }; - + // for (uint ii=0;iiP->seedNoneLociPerWindow) nWA[ii] -= nWAP[ii]; // }; }; - + //TODO remove windows that have too many alignments //aligns are still sorted by original read coordinates, change direction for negative strand // DOES NOT HELP!!! @@ -217,7 +217,7 @@ for (uint iW=0;iWswWinCovMax) swWinCovMax=swWinCov[iW]; @@ -232,11 +232,11 @@ for (uint iW=0;iWnWAmax=max(nWA[iW],trInit->nWAmax); + + trInit->nWAmax=max(nWA[iW],trInit->nWAmax); trA=*trInit; //that one is initialized trA.Chr = WC[iW][WC_Chr]; trA.Str = WC[iW][WC_Str]; trA.roStr = revertStrand ? 1-trA.Str : trA.Str; //original strand of the read trA.maxScore=0; - + trAll[iW1]=trArrayPointer+trNtotal; if (trNtotal+P->alignTranscriptsPerWindowNmax >= P->alignTranscriptsPerReadNmax) { P->inOut->logMain << "WARNING: not enough space allocated for transcript. Did not process all windows for read "<< readName+1 <nextTrScore= nWinTr[iW1]==1 ? 0 : trAll[iW1][1]->maxScore; - + trAll[iW1][0]->nextTrScore= nWinTr[iW1]==1 ? 0 : trAll[iW1][1]->maxScore; + if (trAll[iW1][0]->maxScore > trBest->maxScore || (trAll[iW1][0]->maxScore == trBest->maxScore && trAll[iW1][0]->gLength < trBest->gLength ) ) { trNext=trBest; trBest=trAll[iW1][0]; }; - trNtotal += nWinTr[iW1]; + trNtotal += nWinTr[iW1]; iW1++; }; - + nW=iW1;//only count windows that had alignments - + // {//debug // std::time(&timeFinish); // double timeDiff=difftime(timeFinish,timeStart); // cout << " "<< timeDiff << " "<maxScore*100/Lread<<" "<maxScore==0) {//no window was aligned (could happen if for all windows too many reads are multiples) mapMarker = MARKER_NO_GOOD_WINDOW; nW=0; nTr=0; return; }; - + nextWinScore=trNext->maxScore; - + };//end of function diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 43d20c2..9c22986 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -22,32 +22,32 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* trA1.nMM=scoreSeedBestMM[iS2]; trA1.exons[0][EX_R] = WA[iW][iS2][WA_rStart]; trA1.exons[0][EX_G] = WA[iW][iS2][WA_gStart]; - trA1.exons[0][EX_L] = WA[iW][iS2][WA_Length]; + trA1.exons[0][EX_L] = WA[iW][iS2][WA_Length]; trA1.exons[0][EX_iFrag]=WA[iW][iS2][WA_iFrag]; trA1.exons[0][EX_sjA]=WA[iW][iS2][WA_sjA]; score2=\ stitchAlignToTranscript(WA[iW][iS2][WA_rStart]+WA[iW][iS2][WA_Length]-1, WA[iW][iS2][WA_gStart]+WA[iW][iS2][WA_Length]-1,\ WA[iW][iS1][WA_rStart], WA[iW][iS1][WA_gStart], WA[iW][iS1][WA_Length], WA[iW][iS1][WA_iFrag], WA[iW][iS1][WA_sjA], \ - P, R, Q, G, &trA1, outFilterMismatchNmaxTotal); - - if (P->outFilterBySJoutStage==2 && trA1.nExons>1) + P, R, Q, G, &trA1, outFilterMismatchNmaxTotal); + + if (P->outFilterBySJoutStage==2 && trA1.nExons>1) {//junctions have to be present in the filtered set P->sjnovel uint iex=0; - if (trA1.canonSJ[iex]>=0 && trA1.sjAnnot[iex]==0) + if (trA1.canonSJ[iex]>=0 && trA1.sjAnnot[iex]==0) { uint jS=trA1.exons[iex][EX_G]+trA1.exons[iex][EX_L]; uint jE=trA1.exons[iex+1][EX_G]-1; if ( binarySearch2(jS,jE,P->sjNovelStart,P->sjNovelEnd,P->sjNovelN) < 0 ) return; }; - }; - + }; + if (score2>0 && score2+scoreSeedBest[iS2] > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2+scoreSeedBest[iS2]; scoreSeedBestMM[iS1]=trA1.nMM; scoreSeedBestInd[iS1]=iS2; - }; + }; } else {//extend to the left - score2=WA[iW][iS1][WA_Length]; + score2=WA[iW][iS1][WA_Length]; if ( WA[iW][iS1][WA_rStart]>0 \ && extendAlign(R, Q, G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend @@ -56,25 +56,25 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* if (score2 > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2; scoreSeedBestInd[iS1]=iS1; -// scoreSeedBestMM[iS1]=trA1.nMM; - }; +// scoreSeedBestMM[iS1]=trA1.nMM; + }; }; - - + + }; }; - + intScore scoreBest=0; uint scoreBestInd=0; - + for (uint iS1=0;iS1outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) + P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) {//extend to the right scoreSeedBest[iS1]+=trA1.maxScore; }; @@ -82,8 +82,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* scoreBest=scoreSeedBest[iS1]; scoreBestInd=iS1; }; - }; - + }; + uint seedN=0; while (true) {//construct the sequence of seeds seedChain[seedN++]=scoreBestInd; @@ -93,32 +93,32 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* break; }; }; - + int Score=0; - {//build final transcript form seedChain + {//build final transcript form seedChain {//initiate transcript - + uint iS1=seedChain[seedN-1]; Score= WA[iW][iS1][WA_Length]; trA.maxScore = Score; trA.nMatch = WA[iW][iS1][WA_Length]; //# of matches trA.nMM = 0; - + trA.exons[0][EX_R] = trA.rStart = WA[iW][iS1][WA_rStart]; trA.exons[0][EX_G] = trA.gStart = WA[iW][iS1][WA_gStart]; - trA.exons[0][EX_L] = WA[iW][iS1][WA_Length]; + trA.exons[0][EX_L] = WA[iW][iS1][WA_Length]; trA.exons[0][EX_iFrag]=WA[iW][iS1][WA_iFrag]; trA.exons[0][EX_sjA]=WA[iW][iS1][WA_sjA]; - + trA.nExons=1; - + }; - + for (uint iSc=seedN-1; iSc>0; iSc--) {//stitch seeds from the chain uint iS1=seedChain[iSc], iS2=seedChain[iSc-1]; int scoreStitch= stitchAlignToTranscript(WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]-1, WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]-1,\ WA[iW][iS2][WA_rStart], WA[iW][iS2][WA_gStart], WA[iW][iS2][WA_Length], WA[iW][iS2][WA_iFrag], WA[iW][iS2][WA_sjA], \ - P, R, Q, G, &trA, outFilterMismatchNmaxTotal); + P, R, Q, G, &trA, outFilterMismatchNmaxTotal); // if (scoreStitch>0) { Score+=scoreStitch; // } else { @@ -126,42 +126,42 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* // return;//this should not happen // }; }; - + trA.maxScore=Score; - + {//extend to the left trA1=*trInit; if ( trA.exons[0][EX_R]>0 \ - && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, + && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend trA.add(&trA1); trA.exons[0][EX_R] -= trA1.extendL; trA.exons[0][EX_G] -= trA1.extendL; - trA.exons[0][EX_L] += trA1.extendL; + trA.exons[0][EX_L] += trA1.extendL; trA.rStart = trA.exons[0][EX_R]; trA.gStart = trA.exons[0][EX_G]; }; - }; - + }; + {//extend to the right uint iS1=seedChain[0]; - trA1=*trInit;//initialize trA1 + trA1=*trInit;//initialize trA1 uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread \ && extendAlign(R, Q, G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend - trA.add(&trA1); + trA.add(&trA1); trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon }; }; - + }; - + //debug: recalculate the number of MM -// { +// { // uint nMM1=0; // for (uint iex=0;iex0) { ++trA.intronMotifs[2-trA.canonSJ[iex]%2]; }; @@ -205,8 +205,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* trA.maxScore += int(ceil( log2( (double) ( trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] - trA.exons[0][EX_G]) ) \ * P->scoreGenomicLengthLog2scale - 0.5)); trA.maxScore = max(0,trA.maxScore); - }; - + }; + //filter strand consistency trA.sjMotifStrand=0; uint sjN=0; @@ -217,14 +217,14 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* trA.sjMotifStrand=trA.sjStr[iex]; } else if (trA.sjMotifStrand != trA.sjStr[iex]) {//inconsistent strand return; //kill this transcript - }; + }; }; - }; + }; if (sjN>0 && trA.sjMotifStrand==0 && P->outSAMstrandField=="intronMotif") {//strand not defined for a junction return; - }; - + }; + if (P->outFilterIntronMotifs=="None") {//no filtering } else if (P->outFilterIntronMotifs=="RemoveNoncanonical") { @@ -239,27 +239,27 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* ostringstream errOut; errOut << "EXITING because of FATAL INPUT error: unrecognized value of --outFilterIntronMotifs=" <outFilterIntronMotifs <<"\n"; errOut << "SOLUTION: re-run STAR with --outFilterIntronMotifs = None -OR- RemoveNoncanonical -OR- RemoveNoncanonicalUnannotated\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + // if (P->outFilterIntronMotifs=="KeepCanonical" && (trA.intronMotifs[0]>0 || (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0) ) ) {//keep only conistent canonical introns // return; -// }; - - +// }; + + //check exons lenghts including repeats, do not report a transcript with short exons // for (uint isj=0;isj=0 && -// ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] -// || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1]) ) { +// ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] +// || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1]) ) { // return;//do not record this transcript in wTr // }; -// }; +// }; }; - + {//record the transcript TODO: allow for multiple transcripts in one window *(trAll[iWrec][0])=trA; nWinTr[iWrec]=1; }; - + }; diff --git a/ReadAlign_storeAligns.cpp b/ReadAlign_storeAligns.cpp index b090fef..ba7536e 100644 --- a/ReadAlign_storeAligns.cpp +++ b/ReadAlign_storeAligns.cpp @@ -12,18 +12,18 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS #ifdef OFF_BEFORE_STORE #warning OFF_BEFORE_STORE return; - #endif - + #endif + if ( Nrep > P->seedMultimapNmax ) {// if a piece maps too many times, do not store it if ( Nrep < multNmin || multNmin==0 ) {multNmin=Nrep; multNminL=L;}; - return; + return; }; nUM[ Nrep==1 ? 0:1] += Nrep; //add numbers of U/M aligns nA += Nrep; - + uint rStart=iDir==0 ? Shift : Shift+1-L;//alignment read-start - + #define OPTIM_STOREaligns_SIMPLE #ifdef OPTIM_STOREaligns_SIMPLE //find the place to insert the new entry to keep it sorted @@ -41,14 +41,14 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS for (int jj=0;jj P->seedPerReadNmax) { ostringstream errOut; errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_RUNTIME, *P); - }; + }; #else // int iP3; // for (iP3=nP-1; iP3>=0; iP3--) { @@ -58,7 +58,7 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS // break; // }; // }; - + int iP2=-1,iP1; int nRemove=0; for (iP1=0; iP1= PC[iP1][PC_rStart]+PC[iP1][PC_Length] ) {//old piece is within the new piece //decide whether to keep the new piece @@ -85,11 +85,11 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS }; }; }; - + if ( iP2==-1 && ( rStart < PC[iP1][PC_rStart] || (rStart == PC[iP1][PC_rStart] && L>PC[iP1][PC_Length]) ) ) { iP2=iP1; }; - + }; @@ -97,21 +97,21 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS if (iP2==-1) {//debug cout << "BUG: iP2=-1 iRead="<seedPerReadNmax) { ostringstream errOut; errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_RUNTIME, *P); - }; + }; for (int ii=nP-1;ii>=iP;ii--) {//move old entries to free space for the new one for (int jj=0;jj\n"); printf("\n"); - + exit(0); } @@ -55,37 +55,37 @@ int main(int argInN, char* argIn[]) { Parameters *P = new Parameters; //all parameters P->inputParameters(argInN, argIn); - - *(P->inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... Started STAR run\n" <inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... Started STAR run\n" <runMode=="genomeGenerate") { genomeGenerate(P); - (void) sysRemoveDir (P->outFileTmp); + (void) sysRemoveDir (P->outFileTmp); P->inOut->logMain << "DONE: Genome generation, EXITING\n" << flush; exit(0); } else if (P->runMode!="alignReads") { P->inOut->logMain << "EXITING because of INPUT ERROR: unknown value of input parameter runMode=" <runMode<genomeLoad=="LoadAndExit" || P->genomeLoad=="Remove") + if (P->genomeLoad=="LoadAndExit" || P->genomeLoad=="Remove") { return 0; }; - - P->twoPass.pass2=false; //this is the 1st pass + + P->twoPass.pass2=false; //this is the 1st pass if (P->genomeFastaFiles.at(0)!="-") {//insert sequences in the genome - + }; - + SjdbClass sjdbLoci; - if (P->sjdbInsert.pass1) + if (P->sjdbInsert.pass1) { Parameters *P1=new Parameters; *P1=*P; @@ -97,8 +97,8 @@ int main(int argInN, char* argIn[]) { //calculate genome-related parameters Transcriptome *mainTranscriptome=NULL; - - + + /////////////////////////////////////////////////////////////////////////////////////////////////START if (P->runThreadN>1) { g_threadChunks.threadArray=new pthread_t[P->runThreadN]; @@ -111,11 +111,11 @@ int main(int argInN, char* argIn[]) { pthread_mutex_init(&g_threadChunks.mutexBAMsortBins, NULL); }; - g_statsAll.progressReportHeader(P->inOut->logProgress); - + g_statsAll.progressReportHeader(P->inOut->logProgress); + if (P->twoPass.yes) {//2-pass //re-define P for the pass1 - + Parameters *P1=new Parameters; *P1=*P; //turn off unnecessary calculations @@ -123,17 +123,17 @@ int main(int argInN, char* argIn[]) { P1->outSAMbool=false; P1->outBAMunsorted=false; P1->outBAMcoord=false; - + P1->chimSegmentMin=0; - + P1->quant.yes=false; P1->quant.trSAM.yes=false; P1->quant.geCount.yes=false; - + P1->outFilterBySJoutStage=0; - + P1->outReadsUnmapped="None"; - + P1->outFileNamePrefix=P->twoPass.dir; P1->readMapNumber=P->twoPass.pass1readsN; @@ -145,16 +145,16 @@ int main(int argInN, char* argIn[]) { *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... Started 1st pass mapping\n" <runThreadN]; + ReadAlignChunk *RAchunk1[P->runThreadN]; for (int ii=0;iirunThreadN;ii++) { RAchunk1[ii]=new ReadAlignChunk(P1, mainGenome, mainTranscriptome, ii); - }; + }; mapThreadsSpawn(P1, RAchunk1); outputSJ(RAchunk1,P1); //collapse and output junctions // for (int ii=0;iirunThreadN;ii++) { // delete [] RAchunk[ii]; -// }; - +// }; + time_t rawtime; time (&rawtime); P->inOut->logProgress << timeMonthDayTime(rawtime) <<"\tFinished 1st pass mapping\n"; *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished 1st pass mapping\n" <twoPass.pass2=true;//starting the 2nd pass P->twoPass.pass1sjFile=P->twoPass.dir+"/SJ.out.tab"; - + sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); //reopen reads files @@ -172,22 +172,22 @@ int main(int argInN, char* argIn[]) { } else {//not 2-pass //nothing for now }; - + if ( P->quant.yes ) {//load transcriptome mainTranscriptome=new Transcriptome(P); - }; - + }; + //initialize Stats g_statsAll.resetN(); time(&g_statsAll.timeStartMap); *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... Started mapping\n" <outSAMmode != "None") {//open SAM file and write header ostringstream samHeaderStream; - + for (uint ii=0;iinChrReal;ii++) { samHeaderStream << "@SQ\tSN:"<< P->chrName.at(ii) <<"\tLN:"<chrLength[ii]<<"\n"; }; @@ -198,10 +198,10 @@ int main(int argInN, char* argIn[]) { samHeaderStream << "\t" << P->outSAMheaderPG.at(ii); }; samHeaderStream << "\n"; - }; - + }; + samHeaderStream << "@PG\tID:STAR\tPN:STAR\tVN:" << STAR_VERSION <<"\tCL:" << P->commandLineFull <<"\n"; - + if (P->outSAMheaderCommentFile!="-") { ifstream comstream (P->outSAMheaderCommentFile); while (comstream.good()) { @@ -211,15 +211,15 @@ int main(int argInN, char* argIn[]) { samHeaderStream << line1 <<"\n"; }; }; - }; - + }; + for (uint32 ii=0;iioutSAMattrRGlineSplit.size();ii++) {//@RG lines samHeaderStream << "@RG\t" << P->outSAMattrRGlineSplit.at(ii) <<"\n"; }; - + samHeaderStream << "@CO\t" <<"user command line: " << P->commandLine <<"\n"; - + if (P->outSAMheaderHD.at(0)!="-") { P->samHeaderHD = P->outSAMheaderHD.at(0); for (uint ii=1;iioutSAMheaderHD.size(); ii++) { @@ -227,13 +227,13 @@ int main(int argInN, char* argIn[]) { }; } else { P->samHeaderHD = "@HD\tVN:1.4"; - }; - - + }; + + P->samHeader=P->samHeaderHD+"\n"+samHeaderStream.str(); //for the sorted BAM, need to add SO:cooridnate to the header line P->samHeaderSortedCoord=P->samHeaderHD + (P->outSAMheaderHD.size()==0 ? "" : "\tSO:coordinate") + "\n" + samHeaderStream.str(); - + if (P->outSAMbool) {// *P->inOut->outSAM << P->samHeader; }; @@ -241,59 +241,59 @@ int main(int argInN, char* argIn[]) { outBAMwriteHeader(P->inOut->outBAMfileUnsorted,P->samHeader,P->chrName,P->chrLength); }; // if (P->outBAMcoord){ -// outBAMwriteHeader(P->inOut->outBAMfileCoord,P->samHeader,P->chrName,P->chrLength); +// outBAMwriteHeader(P->inOut->outBAMfileCoord,P->samHeader,P->chrName,P->chrLength); // }; - + if ( P->quant.trSAM.yes ) { samHeaderStream.str(""); vector trlength; for (uint32 ii=0;iitrID.size();ii++) { uint32 iex1=mainTranscriptome->trExI[ii]+mainTranscriptome->trExN[ii]-1; //last exon of the transcript - trlength.push_back(mainTranscriptome->exLenCum[iex1]+mainTranscriptome->exSE[2*iex1+1]-mainTranscriptome->exSE[2*iex1]+1); + trlength.push_back(mainTranscriptome->exLenCum[iex1]+mainTranscriptome->exSE[2*iex1+1]-mainTranscriptome->exSE[2*iex1]+1); samHeaderStream << "@SQ\tSN:"<< mainTranscriptome->trID.at(ii) <<"\tLN:"<outSAMattrRGlineSplit.size();ii++) {//@RG lines samHeaderStream << "@RG\t" << P->outSAMattrRGlineSplit.at(ii) <<"\n"; }; - outBAMwriteHeader(P->inOut->outQuantBAMfile,samHeaderStream.str(),mainTranscriptome->trID,trlength); + outBAMwriteHeader(P->inOut->outQuantBAMfile,samHeaderStream.str(),mainTranscriptome->trID,trlength); }; - + }; - + if (P->chimSegmentMin>0) { P->inOut->outChimJunction.open((P->outFileNamePrefix + "Chimeric.out.junction").c_str()); P->inOut->outChimSAM.open((P->outFileNamePrefix + "Chimeric.out.sam").c_str()); P->inOut->outChimSAM << P->samHeader; - pthread_mutex_init(&g_threadChunks.mutexOutChimSAM, NULL); + pthread_mutex_init(&g_threadChunks.mutexOutChimSAM, NULL); pthread_mutex_init(&g_threadChunks.mutexOutChimJunction, NULL); }; - + // P->inOut->logMain << "mlock value="<runThreadN]; for (int ii=0;iirunThreadN;ii++) { RAchunk[ii]=new ReadAlignChunk(P, mainGenome, mainTranscriptome, ii); - }; - + }; + mapThreadsSpawn(P, RAchunk); - + if (P->outFilterBySJoutStage==1) {//completed stage 1, go to stage 2 P->inOut->logMain << "Completed stage 1 mapping of outFilterBySJout mapping\n"<readFilesIndex=-1; - + P->outFilterBySJoutStage=2; if (P->outBAMcoord) { - for (int it=0; itrunThreadN; it++) {//prepare the unmapped bin + for (int it=0; itrunThreadN; it++) {//prepare the unmapped bin RAchunk[it]->chunkOutBAMcoord->coordUnmappedPrepareBySJout(); }; }; mapThreadsSpawn(P, RAchunk); }; - + //close some BAM files if (P->inOut->outBAMfileUnsorted!=NULL) { bgzf_flush(P->inOut->outBAMfileUnsorted); @@ -302,15 +302,15 @@ int main(int argInN, char* argIn[]) { if (P->inOut->outQuantBAMfile!=NULL) { bgzf_flush(P->inOut->outQuantBAMfile); bgzf_close(P->inOut->outQuantBAMfile); - }; - + }; + if (P->outBAMcoord && P->limitBAMsortRAM==0) {//make it equal ot the genome size P->limitBAMsortRAM=P->nGenome+mainGenome.SA.lengthByte+mainGenome.SAi.lengthByte; }; - + //no need for genome anymore, free the memory mainGenome.freeMemory(); - + if ( P->quant.geCount.yes ) {//output gene quantifications for (int ichunk=1; ichunkrunThreadN; ichunk++) @@ -319,24 +319,24 @@ int main(int argInN, char* argIn[]) { }; RAchunk[0]->chunkTr->quantsOutput(); }; - + if (P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files RAchunk[0]->chunkFilesCat(P->inOut->outSAM, P->outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); - }; + }; + - if (P->outBAMcoord) {//sort BAM if needed *P->inOut->logStdOut << timeMonthDayTime() << " ..... Started sorting BAM\n" <inOut->logMain << timeMonthDayTime() << " ..... Started sorting BAM\n" <outBAMcoordNbins; - + //check max size needed for sorting uint maxMem=0; for (uint32 ibin=0; ibinrunThreadN; it++) {//collect sizes from threads binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]+24*RAchunk[it]->chunkOutBAMcoord->binTotalN[ibin]; - }; + }; if (binS>maxMem) maxMem=binS; }; P->inOut->logMain << "Max memory needed for sorting = "<inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); }; - - + + uint totalMem=0; // P->inOut->logMain << "Started sorting BAM ..." <outBAMsortingThreadNactual) + #pragma omp parallel num_threads(P->outBAMsortingThreadNactual) #pragma omp for schedule (dynamic,1) for (uint32 ibin1=0; ibin1runThreadN; it++) {//collect sizes from threads binN += RAchunk[it]->chunkOutBAMcoord->binTotalN[ibin]; binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]; }; - + if (binS==0) continue; //empty bin - + if (ibin == nBins-1) {//last bin for unmapped reads BAMbinSortUnmapped(ibin,P->runThreadN,P->outBAMsortTmpDir,P->inOut->outBAMfileCoord, P); } else { @@ -385,8 +385,8 @@ int main(int argInN, char* argIn[]) { char **bamBinNames = new char* [nBins]; vector bamBinNamesV; for (uint32 ibin=0; ibinoutBAMsortTmpDir+"/b"+to_string((uint) ibin)); + + bamBinNamesV.push_back(P->outBAMsortTmpDir+"/b"+to_string((uint) ibin)); struct stat buffer; if (stat (bamBinNamesV.back().c_str(), &buffer) != 0) {//check if file exists bamBinNamesV.pop_back(); @@ -404,26 +404,26 @@ int main(int argInN, char* argIn[]) { string wigOutFileNamePrefix=P->outFileNamePrefix + "Signal"; signalFromBAM(P->outBAMfileCoordName, wigOutFileNamePrefix, *P); }; - + //aggregate output junctions //collapse splice junctions from different threads/chunks, and output them outputSJ(RAchunk,P); - + g_statsAll.progressReport(P->inOut->logProgress); P->inOut->logProgress << "ALL DONE!\n"<inOut->logFinal.open((P->outFileNamePrefix + "Log.final.out").c_str()); g_statsAll.reportFinal(P->inOut->logFinal); *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... Finished successfully\n" <inOut->logMain << "ALL DONE!\n"<outFileTmp); - + P->closeReadsFiles();//this will kill the readFilesCommand processes if necessary mainGenome.~Genome(); //need explicit call because of the 'delete P->inOut' below, which will destroy P->inOut->logStdOut - + ///@todo create Destructor to destroy P->inOut delete P->inOut; //to close files delete P; - - return 0; + + return 0; }; diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index 7e7d8a5..1adcfac 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -4,8 +4,8 @@ void complementSeqNumbers(char* ReadsIn, char* ReadsOut, uint Lread) {//compleme for (uint jj=0;jjnMatchBest || (nMatch==nMatchBest && nMM=Qsplit && r[iR]<=3 ) { iR++; - }; - + }; + if ( (iR-iR1)>LgoodMin ) LgoodMin=iR-iR1; if ( (iR-iR1) 0) { (*_err) << inUse << " other job(s) are attached to the shared memory segment, will not remove it." < -enum ErrorState { +enum ErrorState { ENONE, ENOTALLOCATED, ETRYAGAIN, @@ -94,7 +94,7 @@ class SharedMemory { if (!_needsAllocation) return *_length - sizeof(size_t); - + _exception.SetError(ENOTALLOCATED, 0); return -1; }; @@ -161,7 +161,7 @@ class SharedMemory key_t _counterKey; bool _unloadLast; std::ostream * _err; - + int SharedObjectsUseCount(); void OpenIfExists(); void CreateAndInitSharedObject(size_t shmSize); diff --git a/SjdbClass.h b/SjdbClass.h index bb2a687..08af8da 100644 --- a/SjdbClass.h +++ b/SjdbClass.h @@ -7,7 +7,7 @@ class SjdbClass { public: vector chr; - vector start,end; + vector start,end; vector str; vector priority; }; diff --git a/Stats.cpp b/Stats.cpp index bbbd51d..8b87ceb 100644 --- a/Stats.cpp +++ b/Stats.cpp @@ -21,12 +21,12 @@ Stats::Stats() {//constructor void Stats::addStats(Stats &S) {//add S to Stats readN += S.readN; readBases += S.readBases; - mappedMismatchesN += S.mappedMismatchesN; mappedInsN += S.mappedInsN; mappedDelN += S.mappedDelN; + mappedMismatchesN += S.mappedMismatchesN; mappedInsN += S.mappedInsN; mappedDelN += S.mappedDelN; mappedInsL += S.mappedInsL; mappedDelL += S.mappedDelL; mappedBases += S.mappedBases; mappedPortion += S.mappedPortion; mappedReadsU += S.mappedReadsU; mappedReadsM += S.mappedReadsM; unmappedOther += S.unmappedOther; unmappedShort += S.unmappedShort; unmappedMismatch += S.unmappedMismatch; unmappedMulti += S.unmappedMulti; unmappedAll += S.unmappedAll; chimericAll += S.chimericAll; - + splicesNsjdb += S.splicesNsjdb; for (uint ii=0; ii=0) splicesN[T.canonSJ[ii]]++; if (T.sjAnnot[ii]==1) splicesNsjdb++; }; - + mappedBases += mappedL; mappedPortion += double(mappedL)/double(Lread); }; @@ -65,14 +65,14 @@ void Stats::progressReportHeader(ofstream &progressStream) { progressStream <=60.0 && readN>0) {//make the report //progressStream.imbue(std::locale("")); progressStream <0 ? readBases/readN : 0) \ <0 ? double(mappedReadsU)/double(readN)*100 : 0) <<'%' \ - <0 ? double(mappedBases)/double(mappedReadsU) : 0) + <0 ? double(mappedBases)/double(mappedReadsU) : 0) <0 ? double(mappedMismatchesN)/double(mappedBases)*100 : 0) <<'%' \ <0 ? double(mappedReadsM)/double(readN)*100 : 0) <<'%'\ <0 ? double(unmappedMulti)/double(readN)*100 : 0) <<'%'\ @@ -90,14 +90,14 @@ void Stats::progressReport(ofstream &progressStream) { <0 ? double(unmappedOther)/double(readN)*100 : 0) <<'%'\ <<"\n"<0 ? double(mappedDelL)/double(mappedBases)*100 : 0) <<'%' <<"\n" \ <0 ? double(mappedDelL)/double(mappedDelN) : 0) <<"\n" \ diff --git a/Stats.h b/Stats.h index 0efe5f3..9c5f0f7 100644 --- a/Stats.h +++ b/Stats.h @@ -11,20 +11,20 @@ class Stats { uint readN;//number of reads from the file uint readBases;//number of input bases // uint mateLmax[2], mateLmin[2];//mates' max and min length - + uint mappedReadsU, mappedReadsM; uint mappedBases, mappedMismatchesN, mappedInsN, mappedDelN, mappedInsL, mappedDelL; double mappedPortion; //portion of the read length that has been mapped - + uint splicesN[SJ_MOTIF_SIZE];//non-can,3*can,annotated uint splicesNsjdb; - + uint unmappedOther, unmappedShort, unmappedMismatch, unmappedMulti, unmappedAll; - + uint chimericAll; - time_t timeStart, timeStartMap, timeLastReport, timeFinish; - + time_t timeStart, timeStartMap, timeLastReport, timeFinish; + Stats (); void resetN(); void printShort(ostream*); diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index c1ef95b..3d00efe 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -2,7 +2,7 @@ #include "PackedArray.h" inline uint medianUint2(uint a, uint b) { - // returns (a+b)/2 + // returns (a+b)/2 return a/2 + b/2 + (a%2 + b%2)/2; }; @@ -11,46 +11,46 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& // s2[0] read sequence; s2[1] complementary sequence // S position to start search from in s2[0],s2[1] //dirR forward or reverse direction search on read sequence - + register int64 ii; - + uint SAstr=SA[iSA]; bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome SAstr &= P->GstrandMask; - - + + if (dirR && dirG) {//forward on read, forward on genome char* s = s2[0] + S + L; g += SAstr + L; for (ii=0;(uint) ii < N-L; ii++) { - if (s[ii]!=g[ii]) + if (s[ii]!=g[ii]) { - if (s[ii]>g[ii]) + if (s[ii]>g[ii]) { compRes=true; return ii+L; - } else + } else { compRes=false; return ii+L; }; }; }; -// if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; +// if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; return N; //exact match } else if (dirR && !dirG) { char* s = s2[1] + S + L; g += P->nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { - if (s[ii]!=g[-ii]) + if (s[ii]!=g[-ii]) { - if (s[ii]>g[-ii] || g[-ii]>3) + if (s[ii]>g[-ii] || g[-ii]>3) { compRes=false; - return ii+L; - } else + return ii+L; + } else { compRes=true; return ii+L; @@ -79,15 +79,15 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& return N; } else {//if (!dirR && !dirG) char* s = s2[0] + S - L; - g += P->nGenome-1-SAstr - L; + g += P->nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { - if (s[-ii]!=g[-ii]) + if (s[-ii]!=g[-ii]) { if (s[-ii]>g[-ii] || g[-ii]>3) { compRes=false; - return ii+L; + return ii+L; } else { compRes=true; @@ -96,18 +96,18 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& }; }; return N; - }; + }; }; uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, char* g, PackedArray& SA, bool dirR, uint S, Parameters* P) { // given SA index i3 and identity length L3, return the index of the farthest element with the same length, starting from i1,L1 or i1a,L1a, or i1b,L1b - - bool compRes; - + + bool compRes; + if (L1i1a+1) ) { //L1a is the target length, i1a...i1b is the initial range, i1c,L1c is the value in the middle uint i1c=medianUint2(i1a,i1b); //uint L1c=identityLength(&g[SA[i3]+L1b],&g[SA[i1c]+L1b],L3-L1b)+L1b; - uint L1c=compareSeqToGenome(s,S,L3,L1b,g,SA,i1c,dirR,compRes, P); + uint L1c=compareSeqToGenome(s,S,L3,L1b,g,SA,i1c,dirR,compRes, P); if (L1c==L3) { i1a=i1c; } else { //L1c=i2 an not iteration of the loope below is ever made while (i1+1L1) { L1b=L1a; L1a=L1; i1b=i1a; i1a=i1; @@ -161,13 +161,13 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint else { if (L3>L2) { //move 2 to 3 L2b=L2a; L2a=L2; i2b=i2a; i2a=i2; - }; + }; i2=i3;L2=L3; - }; + }; L= min(L1,L2); }; - + if (L3L2) { i3=i1;L3=L1; @@ -175,14 +175,14 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i3=i2;L3=L2; }; }; - // now i3,L3 is the "best" alignment, i.e. longest length - + // now i3,L3 is the "best" alignment, i.e. longest length + // find the range of SA indices in which the identiyLength is the same i1=findMultRange(i3,L3,i1,L1,i1a,L1a,i1b,L1b,s,g,SA,dirR,S, P); i2=findMultRange(i3,L3,i2,L2,i2a,L2a,i2b,L2b,s,g,SA,dirR,S, P); L=L3; //output - indStartEnd[0]=i1; + indStartEnd[0]=i1; indStartEnd[1]=i2; return i2-i1+1; @@ -197,21 +197,21 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, uint // g - genome sequence // SA - suffix array ///@todo dirR - direction, true=froward, false=reverse!!!!!!!NOT WORKING - // i1,i2 = starting indices in SA + // i1,i2 = starting indices in SA // L - starting length // output: SA index < searched string, i.e. g[SA[index]]=i2 an not iteration of the loope below is ever made while (i1+1GstrandMask; - if (dirG) + if (dirG) {//forward on read, forward on genome char* s = s2[0] + S + L; char* g = G + SAstr + L; for (ii=0;(uint) ii < N-L; ii++) { - if (s[ii]!=g[ii]) + if (s[ii]!=g[ii]) { if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; break; }; }; L3=ii+L; - } else + } else { char* s = s2[1] + S + L; char* g = G + P->nGenome-1-SAstr - L; - for (ii=0; (uint) ii < N-L; ii++) + for (ii=0; (uint) ii < N-L; ii++) { - if (s[ii]!=g[-ii]) + if (s[ii]!=g[-ii]) { char s1=s[ii],g1=g[-ii]; if (s1<4) s1=3-s1; if (g1<4) g1=3-g1; - if (s1>g1) {compRes=true;} else {compRes=false;}; + if (s1>g1) {compRes=true;} else {compRes=false;}; break; }; }; @@ -259,15 +259,15 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, uint L=N; return i3; // cerr << "Bug L3==N"<>P->GstrandBit) == 0; //forward or reverse strand of the genome SAstr &= P->GstrandMask; - - + + if (dirG) {//forward on read, forward on genome char* s = s2[0] + S + L; g += SAstr + L; for (ii=0;(uint) ii < N-L; ii++) { - if (s[ii]!=g[ii]) + if (s[ii]!=g[ii]) { - if (s[ii]>g[ii]) + if (s[ii]>g[ii]) { compRes=1; return ii+L; - } else + } else { compRes=-1; return ii+L; @@ -328,7 +328,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray return ii+L; }; }; -// if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; +// if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; return N; //exact match } else @@ -337,7 +337,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray g += P->nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { - if (s[ii]!=g[-ii]) + if (s[ii]!=g[-ii]) { char s1=s[ii],g1=g[-ii]; if (s1<4) s1=3-s1; @@ -345,11 +345,11 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray if (s1>g1) { compRes=1; return ii+L; - } else + } else { compRes=-1; return ii+L; - }; + }; break; } else if (s[ii]==GENOME_spacingChar) {//this already implies the s[ii]==g[ii] @@ -358,11 +358,11 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray }; }; return N; - }; + }; }; -uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, PackedArray& SA, bool strR, uint i1, uint i2, uint L, Parameters* P) +uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, PackedArray& SA, bool strR, uint i1, uint i2, uint L, Parameters* P) { // binary search in SA space // s[0],s[1] - query sequence, complementary sequence @@ -372,12 +372,12 @@ uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, Packe // gInsert - index where the sequence insertion happened // SA - suffix array // strR - strand of the query sequence - // i1,i2 = starting indices in SA + // i1,i2 = starting indices in SA // L - starting length // output: first SA index > searched string, i.e. g[SA[index-1]]0) {//the sequence is bigger than the last SA index, return a huge number L=L2; return -2llu; }; - + L=min(L1,L2); - + uint i3=i1,L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+10) + + if (compRes>0) { //move 1 to 3 i1=i3;L1=L3; } else if (compRes<0) {//move 2 to 3 i2=i3;L2=L3; - } + } L= min(L1,L2); }; return i2; //index at i2 is always bigger than the sequence @@ -424,7 +424,7 @@ uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters* P, SAstr &= P->GstrandMask; iL4=-1; register uint saind=0; - if (dirG) + if (dirG) { register uint128 g1=*( (uint128*) (G+SAstr) ); for (int ii=0; iiprocessChunks(); pthread_exit(0); diff --git a/Transcript.cpp b/Transcript.cpp index c112259..bee27d9 100644 --- a/Transcript.cpp +++ b/Transcript.cpp @@ -8,21 +8,21 @@ void Transcript::reset() { extendL=0; // for (uint ii=0;ii<4;ii++) { -// polyXlength[ii]=0; -// polyXnMM[ii]=0; +// polyXlength[ii]=0; +// polyXnMM[ii]=0; // }; primaryFlag=false; - + nWAmax=0; - + rStart=0; roStart=0; rLength=0; gStart=0; gLength=0; //read and genomic coordinates - + maxScore=0;nextTrScore=0; nMatch=0; nMM=0; - - nGap=0; lGap=0; lDel=0; lIns=0; nDel=0; nIns=0; - + + nGap=0; lGap=0; lDel=0; lIns=0; nDel=0; nIns=0; + nUnique=nAnchor=0; }; @@ -30,7 +30,7 @@ void Transcript::add(Transcript *trIn) { maxScore+=trIn->maxScore; nMatch+=trIn->nMatch; nMM+=trIn->nMM; - nGap+=trIn->nGap; lGap+=trIn->lGap; + nGap+=trIn->nGap; lGap+=trIn->lGap; lDel+=trIn->lDel; nDel+=trIn->nDel; lIns+=trIn->lIns; nIns+=trIn->nIns; nUnique+=trIn->nUnique; diff --git a/Transcript.h b/Transcript.h index 7fe3d14..ecbf3f1 100644 --- a/Transcript.h +++ b/Transcript.h @@ -13,43 +13,43 @@ class Transcript { int canonSJ[MAX_N_EXONS]; //canonicity of each junction uint8 sjAnnot[MAX_N_EXONS]; //anotated or not uint8 sjStr[MAX_N_EXONS]; //anotated or not - + uint intronMotifs[3]; uint8 sjMotifStrand; - + uint nExons; //number of exons in the read transcript - + uint Lread, readLengthPairOriginal; uint iRead; //read identifier - + int iFrag; //frag number of the transcript, if the the transcript contains only one frag - + //loci uint rStart, roStart, rLength, gStart, gLength, cStart; //read, original read, and genomic start/length, chromosome start uint Chr,Str,roStr; //chromosome and strand and original read Strand - + bool primaryFlag; - + // uint polyXlength[4], polyXnMM[4] ; uint nWAmax; //number of genes, max number of alignments per gene, total number of alignments for this reads - - uint nMatch;//min number of matches - uint nMM;//max number of mismatches + + uint nMatch;//min number of matches + uint nMM;//max number of mismatches uint mappedLength; //total mapped length, sum of lengths of all blocks(exons) - - uint extendL; //extension length + + uint extendL; //extension length intScore maxScore; //maximum Score intScore nextTrScore; //next after maximum Tr Score - + uint nGap, lGap; //number of genomic gaps (>alignIntronMin) and their total length uint nDel; //number of genomic deletions (ie genomic gaps) - uint nIns; //number of (ie read gaps) + uint nIns; //number of (ie read gaps) uint lDel; //total genomic deletion length uint lIns; //total genomic insertion length - - uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment - + + uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment + Transcript(); //resets to 0 void reset(); //reset to 0 void resetMapG(); // reset map to 0 diff --git a/Transcript_alignScore.cpp b/Transcript_alignScore.cpp index fc1f255..68943b5 100644 --- a/Transcript_alignScore.cpp +++ b/Transcript_alignScore.cpp @@ -30,19 +30,19 @@ void Transcript::alignScore(char **Read1, char *G, Parameters *P) {//re-calculat break; case -1: //deletion maxScore += (exons[iex+1][EX_G]-exons[iex][EX_G]-exons[iex][EX_L])*P->scoreDelBase + P->scoreDelOpen; - break; + break; case 0: //non-canonical maxScore += P->scoreGapNoncan+P->scoreGap; break; case 1: case 2: //GTAG maxScore += P->scoreGap; - break; + break; case 3: case 4: //GCAG maxScore += P->scoreGapGCAG+P->scoreGap; - break; + break; case 5: case 6: //ATAC maxScore += P->scoreGapATAC+P->scoreGap; - break; + break; }; }; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index fddcd16..99b0779 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -3,7 +3,7 @@ #include "GlobalVariables.h" Transcriptome::Transcriptome (Parameters* Pin) { - + P=Pin; trInfoDir = P->sjdbGTFfile=="-" ? P->genomeDir : P->sjdbInsert.outDir; //if GTF file is given at the mapping stage, it's always used for transcript info @@ -46,7 +46,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { Ptr=Pin; }; - + if ( P->quant.geCount.yes ) {//load exon-gene structures ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> exG.nEx; @@ -58,7 +58,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { exG.g=new uint32[exG.nEx]; exG.t=new uint32[exG.nEx]; - + for (uint ii=0;ii> exG.s[ii] >> exG.e[ii] >> str1 >> exG.g[ii] >> exG.t[ii]; @@ -70,8 +70,8 @@ Transcriptome::Transcriptome (Parameters* Pin) { exG.eMax[0]=exG.e[0]; for (uint iex=1;iex> nGe; geID.resize(nGe); @@ -79,7 +79,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { geStream >> geID[ii]; }; geStream.close(); - + }; }; @@ -92,43 +92,43 @@ void Transcriptome::quantsAllocate() { void Transcriptome::quantsOutput() { ofstream qOut(P->quant.geCount.outFile); - + qOut << "N_unmapped"; for (int itype=0; itypegeneCounts.nType; itype++) { qOut << "\t" <geneCounts.nType; itype++) { qOut << "\t" <geneCounts.cMulti ; }; qOut << "\n"; - + qOut << "N_noFeature"; for (int itype=0; itypegeneCounts.nType; itype++) { qOut << "\t" <geneCounts.cNone[itype]; - }; + }; qOut << "\n"; - + qOut << "N_ambiguous"; for (int itype=0; itypegeneCounts.nType; itype++) { qOut << "\t" <geneCounts.cAmbig[itype]; }; - qOut << "\n"; - + qOut << "\n"; + for (uint32 ig=0; iggeneCounts.nType; itype++) + for (int itype=0; itypegeneCounts.nType; itype++) { qOut << "\t" <geneCounts.gCount[itype][ig]; }; qOut << "\n"; - }; + }; qOut.close(); }; diff --git a/Transcriptome.h b/Transcriptome.h index 0c5cc3f..389bc18 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -16,13 +16,13 @@ class Transcriptome { void quantsAllocate(); //allocate quants structure void quantsOutput(); //output quantification files string trInfoDir; - + Parameters* Ptr; //transcriptomic parameters (i.e. chrName,...), to be used with RAtr for output vector trID, geID; //transcript/gene IDs uint32 nTr, nGe; //number of transcript/genes - uint *trS, *trE, *trEmax; //transcripts start,end,end-max + uint *trS, *trE, *trEmax; //transcripts start,end,end-max uint32 nEx; //number of exons uint16 *trExN; //number of exons per transcript @@ -42,7 +42,7 @@ class Transcriptome { private: Parameters* P; //normal "genomic" parameters - + }; #endif diff --git a/Transcriptome_geneCountsAddAlign.cpp b/Transcriptome_geneCountsAddAlign.cpp index f0a415f..7f33818 100644 --- a/Transcriptome_geneCountsAddAlign.cpp +++ b/Transcriptome_geneCountsAddAlign.cpp @@ -11,23 +11,23 @@ void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignm int64 e1=-1; - for (int ib=a.nExons-1; ib>=0; ib--) + for (int ib=a.nExons-1; ib>=0; ib--) {//scan through all blocks of the alignments uint64 g1=a.exons[ib][EX_G]+a.exons[ib][EX_L]-1;//end of the block -// if ((uint)ib==a.nExons-1) +// if ((uint)ib==a.nExons-1) // {//binary search for the first time: end of the block among the starts of exons e1=binarySearch1a(g1, exG.s, (int32) exG.nEx); -// } else -// {//simple backwards scan -// while (e1>=0 && exG.s[e1]>g1) +// } else +// {//simple backwards scan +// while (e1>=0 && exG.s[e1]>g1) // {//stop when exon start is less than block end // --e1; // }; // }; - while (e1>=0 && exG.eMax[e1]>=a.exons[ib][EX_G]) + while (e1>=0 && exG.eMax[e1]>=a.exons[ib][EX_G]) {//these exons may overlap this block if (exG.e[e1]>=a.exons[ib][EX_G]) {//this exon overlaps the block @@ -38,10 +38,10 @@ void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignm if ( itype==1 && a.Str!=str1 && str1<2) continue; //same strand if ( itype==2 && a.Str==str1 && str1<2) continue; //reverse strand - if (gene1.at(itype)==-1) + if (gene1.at(itype)==-1) {//first gene overlapping this read gene1[itype]=exG.g[e1]; - } else if (gene1.at(itype)==-2) + } else if (gene1.at(itype)==-2) { continue;//this align was already founf to be ambig for this strand } else if (gene1.at(itype)!=(int32)exG.g[e1]) {//another gene overlaps this read @@ -49,24 +49,24 @@ void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignm };//otherwise it's the same gene }; }; - + --e1;// go to the previous exon }; }; - for (int itype=0; itypegeneCounts.nType; itype++) + for (int itype=0; itypegeneCounts.nType; itype++) { - if (gene1.at(itype)==-1) + if (gene1.at(itype)==-1) { quants->geneCounts.cNone[itype]++; - } else if (gene1.at(itype)==-2) + } else if (gene1.at(itype)==-2) { quants->geneCounts.cAmbig[itype]++; } else { quants->geneCounts.gCount[itype][gene1.at(itype)]++; }; - }; + }; }; }; diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 5db324c..92bc05e 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -9,7 +9,7 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui uint32 g1=aG.exons[0][EX_G]-trS1;//start of the transcript uint32 ex1=binarySearch1(g1, exSE1, 2*exN1); if (ex1>=2*exN1) return 0; //align start is to the right of all exons - + if (ex1%2==1) {//beginning of the read >=end of an exon if (exSE1[ex1]==g1) {//first base of the read is exactly the last base of the exon --ex1; @@ -18,18 +18,18 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui }; }; ex1=ex1/2; //this is the first exon of the alignment - + aT.nExons=0; aT.primaryFlag=false; - + aG.canonSJ[aG.nExons-1]=-999; //marks the last exons for (uint32 iab=0; iabexSE1[2*ex1+1]+trS1+1) {//block extends past exon end return 0; }; - + if (iab==0 || aG.canonSJ[iab-1]<0) { aT.exons[aT.nExons][EX_R]=aG.exons[iab][EX_R]; aT.exons[aT.nExons][EX_G]=aG.exons[iab][EX_G]-trS1-exSE1[2*ex1]+exLenCum1[ex1]; @@ -44,32 +44,32 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui case -999: //last exon if (trStr1==2) {//convert align coordinates if on the -strand uint32 trlength=exLenCum1[exN1-1]+exSE1[2*exN1-1]-exSE1[2*exN1-2]+1; //transcript length - for (uint32 iex=0; iex(aG.exons[0][EX_G], trS, nTr); if (tr1==(uint32) -1) return 0; //alignment outside of range of all transcripts - + uint aGend=aG.exons[aG.nExons-1][EX_G]; - + ++tr1; do {//cycle back through all the transcripts --tr1; @@ -117,6 +117,6 @@ uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall) { }; }; } while (trEmax[tr1]>=aGend && tr1>0); - + return nAtr; }; diff --git a/alignSmithWaterman.cpp b/alignSmithWaterman.cpp index e3857fe..e7b9673 100644 --- a/alignSmithWaterman.cpp +++ b/alignSmithWaterman.cpp @@ -4,39 +4,39 @@ intSWscore alignSmithWaterman(char *R, uint rL, char *G, uint gL, \ intSWscore pMatch, intSWscore pMismatch, intSWscore pGapOpen, intSWscore pGapExtend, \ char* T, uint Tsize, Transcript &trA) { - + intSWscore *H=new intSWscore[rL+1]; - + uint rL1=rL+1; if (rL1*(gL+1)>Tsize) return (intSWscore) 0; - + intSWscore *E=new intSWscore[rL1]; - + memset(H,0,sizeof(H[0])*(rL1)); memset(E,0,sizeof(E[0])*(rL1)); - - + + intSWscore maxH=0; uint maxHr=0, maxHg=0; - + for (uint ig=1;ig<=gL;ig++) {//cycle over colums intSWscore F=(intSWscore) 0; intSWscore HdiagPrev=0; for (uint ir=1;ir<=rL;ir++) {//cycle over rows - + E[ir]=max( E[ir]-pGapExtend, H[ir]-pGapOpen ); E[ir]=max( E[ir], (intSWscore) 0 ); - + F = max( F-pGapExtend, H[ir-1]-pGapOpen ); F = max( F, (intSWscore) 0); - + intSWscore Hdiag = G[ig-1]==R[ir-1] ? HdiagPrev+pMatch : HdiagPrev-pMismatch; - + // if (H[ir]>E[ir] & H[ir]>F) - - HdiagPrev=H[ir]; - + + HdiagPrev=H[ir]; + if (F>Hdiag && F>E[ir]) {//insertion (gap in read) H[ir]=F; T[ir+ig*rL1]=1; @@ -45,21 +45,21 @@ intSWscore alignSmithWaterman(char *R, uint rL, char *G, uint gL, \ T[ir+ig*rL1]=2; } else {//deletion (gap in genome) H[ir]=E[ir]; - T[ir+ig*rL1]=3; + T[ir+ig*rL1]=3; }; - + if (H[ir]<0) { H[ir]=0; }; - + if (H[ir]==0) { T[ir+ig*rL1]=0; }; - + // Hdiag=max(Hdiag,E[ir]); // Hdiag=max(Hdiag,F); // H[ir]=max(Hdiag,(intSWscore) 0); - + if (H[ir]>maxH) { maxH=H[ir]; maxHr=ir; @@ -71,7 +71,7 @@ intSWscore alignSmithWaterman(char *R, uint rL, char *G, uint gL, \ #endif }; }; - + //traceback the alignment //last operation should always be match if (T[maxHr+maxHg*rL1]!=2) { @@ -81,14 +81,14 @@ intSWscore alignSmithWaterman(char *R, uint rL, char *G, uint gL, \ trA.nExons=0; uint ig=maxHg, ir=maxHr; char prevOper=0; - + trA.nExons=-1; while (T[ir+ig*rL1]>0 && ir>0 && ig>0) { if (T[ir+ig*rL1]==2) { if (prevOper==2) {//increase length trA.exons[trA.nExons][EX_L]++; } else {//new exon - ++trA.nExons; + ++trA.nExons; trA.exons[trA.nExons][EX_L]=1; trA.exons[trA.nExons][EX_R]=ir; trA.exons[trA.nExons][EX_G]=ig; @@ -103,50 +103,50 @@ intSWscore alignSmithWaterman(char *R, uint rL, char *G, uint gL, \ --ig; prevOper=3; }; - }; - + }; + ++trA.nExons; for (uint ii=0;ii=1 && ig>=1) { -// +// // rMap[ir-1]=ig; -// +// // }; - return maxH; + return maxH; }; diff --git a/bamRemoveDuplicates.cpp b/bamRemoveDuplicates.cpp index fd5e733..53016c1 100644 --- a/bamRemoveDuplicates.cpp +++ b/bamRemoveDuplicates.cpp @@ -43,7 +43,7 @@ uint32 funStartExtendS(const uint32* const p) {//calculates align start extendin uint32 funCigarExtendS(const uint32* const p, uint32* cout) { uint32* cig=(uint32*) (((char*) p)+9*4+((p[3]<<24)>>24)); uint32 n=(p[4]<<16)>>16, n1=n; - + if (((cig[0]<<28)>>28) == 4) { --n1; memcpy((char*) cout, (char*) (cig+1), n1*sizeof(uint32));//copy CIGAR starting from the 2nd operation @@ -72,10 +72,10 @@ int funCompareCigarsExtendS(const uint32* const pa, const uint32* const pb){ int funCompareCoordFlagCigarSeq(const void *a, const void *b) { uint32* pa1=(uint32*) *(uint32**) a; uint32* pa2=(uint32*) *(uint32**) ((char*)a+8); - + uint32* pb1=(uint32*) *(uint32**) b; uint32* pb2=(uint32*) *(uint32**) ((char*)b+8); - + compareReturn(funStartExtendS(pa1),funStartExtendS(pb1));//position match compareReturn(funStartExtendS(pa2),funStartExtendS(pb2));//2nd mate position match compareReturn(pa1[4]>>16,pb1[4]>>16);//FLAG match @@ -102,7 +102,7 @@ int funCompareCoordFlagCigarSeq(const void *a, const void *b) { if (ii%2>0) { compareReturn((sa[ii/2]&15),(sb[ii/2]&15)); ++ii; - }; + }; for (; iioutBAMcompression)).c_str()); bam_hdr_write(bgzfOut, bamHeader); - + uint bamLengthMax=P->limitBAMsortRAM; //max length to load if (bamLengthMax==0) bamLengthMax=16000000000; uint grNmax=1000000;//max number of alignments char *bamRaw=new char[bamLengthMax]; uint *aD=new uint[grNmax*2]; - + uint bamLength=0; uint bamS=0, bamE=0, bamE1=1; //start/end/next-end position for read group search uint32 rightMax=0; @@ -145,12 +145,12 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, ostringstream errOut; errOut <<"EXITING because of fatal ERROR: not enough memory for marking duplicates \n"; errOut <<"SOLUTION: re-run STAR with at least --limitBAMsortRAM " <inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); }; //write out processed block bgzf_write(bgzfOut,bamRaw,bamS); - + bamLength-=bamS; memmove(bamRaw, bamRaw+bamS,bamLength); //move the non-processed part of the block to the beginning of bamRaw bamLength+=bgzf_read(bamIn, bamRaw+bamLength, bamLengthMax-bamLength);//marks the end of the BAM block that has been read @@ -162,22 +162,22 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, grN=0; }; }; - + uint32* bamP=(uint32*) (bamRaw+bamE);//pointer to the 1st mate of the pair - bamP[4] |= (0x400<<16);//mark all aligns as duplicate, will unmark + bamP[4] |= (0x400<<16);//mark all aligns as duplicate, will unmark uint32 chrE=bamP[1]; uint32 leftE=bamP[2]; uint32 rightE=bamP[7]; - + uint32 chrS=*(uint32*)(bamRaw+bamS+4*1); - + if ( chrE !=chrS || (rightMax>0 && leftE>rightMax) || bamFileEnd ) {//found new group of reads to be processed, start collapsing procedure qsort((void*) aD, grN, sizeof(uint), funCompareNames); qsort((void*) aD, grN/2, 2*sizeof(uint), funCompareCoordFlagCigarSeq); //go through the list and select non-duplicates int bScore=-999, bP=0; for (uint pp=0; ppdata=((uint8_t*) bamP1)+9*4+((bamP1[3]<<24)>>24)+((bamP1[4]<<16)>>16)*4+(bamP1[5]+1)/2+bamP1[5];//add length for: core, name, cigar, seq, qual bamA->l_data=((uint8_t*) bamP1)+bamP1[0]+1-bamA->data; int score1=bam_aux2i(bam_aux_get(bamA,"AS")); @@ -191,40 +191,40 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, uint32* bamPb=(uint32*) aD[bP*2+1];//pointer to the 2nd mate of the pair bamPb[4] ^= (0x400<<16); bamPb=(uint32*) aD[bP*2];//pointer to the 1st mate of the pair - bamPb[4] ^= (0x400<<16); + bamPb[4] ^= (0x400<<16); //cout << ((char*)(bamPb+9)) <<"\n"; bScore=-999;//reset best score - }; + }; }; - + //reset for the next group if (bamFileEnd) break; //exit the main cycle over blocks rightMax=0; bamS=bamE; grN=0; }; - + bamA->data=((uint8_t*) bamP)+9*4+((bamP[3]<<24)>>24)+((bamP[4]<<16)>>16)*4+(bamP[5]+1)/2+bamP[5];//add length for: core, name, cigar, seq, qual bamA->l_data=((uint8_t*) bamP)+bamP[0]+1-bamA->data; int nMult=bam_aux2i(bam_aux_get(bamA,"NH")); - - if (nMult==1) {//record this alignment in the current group, unique mappers only. Multi-mappers will not be considered for collapsing, and will remain marked as duplicates + + if (nMult==1) {//record this alignment in the current group, unique mappers only. Multi-mappers will not be considered for collapsing, and will remain marked as duplicates if (grN>=grNmax) {//reallocate grNmax=grN*2; - uint *aD1=new uint[grNmax]; + uint *aD1=new uint[grNmax]; memcpy((char*) aD1, (char*) aD, grN*sizeof(uint)); delete [] aD; aD=aD1; - cerr << "reallocated array "<leftE) {//left mate, record coordinate of its right mate - rightMax=max(rightMax, rightE); + rightMax=max(rightMax, rightE); }; }; - + bamE=bamE1;//shift to the next record bamE1=bamE+*(uint32*)(bamRaw+bamE)+4;//next alignment diff --git a/binarySearch2.cpp b/binarySearch2.cpp index 6e5afb3..9b48514 100644 --- a/binarySearch2.cpp +++ b/binarySearch2.cpp @@ -4,7 +4,7 @@ int binarySearch2(uint x, uint y, uint *X, uint *Y, int N) { //binary search in the sorted list to find the junction //check the boundaries first if (N==0 || x>X[N-1] || xi1+1) {//binary search i3=(i1+i2)/2; @@ -14,7 +14,7 @@ int binarySearch2(uint x, uint y, uint *X, uint *Y, int N) { i1=i3; }; }; - + if (x==X[i1]) { i3=i1; } else if (x==X[i2]) { @@ -37,7 +37,7 @@ int binarySearch2(uint x, uint y, uint *X, uint *Y, int N) { } else if (y==Y[jj]) { return jj; }; - }; - + }; + return -2; //this will happen if jj went past N }; diff --git a/blocksOverlap.cpp b/blocksOverlap.cpp index 881b5d5..7c6555b 100644 --- a/blocksOverlap.cpp +++ b/blocksOverlap.cpp @@ -1,7 +1,7 @@ #include "blocksOverlap.h" uint blocksOverlap(Transcript &t1, Transcript &t2) {//calculate overlap between blocks of two transcripts - + uint i1=0, i2=0, nOverlap=0; while (i1=re2) {//t1 block is on the right to t2, no hope of overlap i2++; } else if (rs2>=re1) {//t2 block is on the right to t1, no hope of overlap @@ -21,21 +21,21 @@ uint blocksOverlap(Transcript &t1, Transcript &t2) {//calculate overlap between } else {//overlap nOverlap += min(re1,re2) - max(rs1,rs2); if (re1>=re2) i2++;//1 is on the right of 2 - if (re2>=re1) i1++;//2 is on the right of 1 + if (re2>=re1) i1++;//2 is on the right of 1 }; }; - + //debug // uint nO1=0; // for (uint ir=0;ir0) nO1++; // }; -// +// // if (nOverlap!=nO1) { // exit(255); // }; -// - +// + return nOverlap; }; diff --git a/extendAlign.cpp b/extendAlign.cpp index 1dde38e..3848707 100644 --- a/extendAlign.cpp +++ b/extendAlign.cpp @@ -6,9 +6,9 @@ bool extendAlign( char* R, char* Q, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, bool extendToEnd, Transcript* trA ) { // find the maximum score - + int iS,iG; - + int Score=0, nMatch=0, nMM=0; trA->maxScore=0; @@ -27,8 +27,8 @@ if (extendToEnd) {//end to end extension trA->extendL=0; trA->maxScore=-999999999; trA->nMatch=0; - trA->nMM=nMMmax+1; - return true; + trA->nMM=nMMmax+1; + return true; // return false; }; if (R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through the spacer between fragments @@ -49,7 +49,7 @@ if (extendToEnd) {//end to end extension trA->maxScore=Score; trA->nMatch=nMatch; trA->nMM=nMM; - return true; + return true; } else { return false; }; @@ -60,12 +60,12 @@ if (extendToEnd) {//end to end extension for (int i=0;i<(int) L;i++) { iS=dR*i; iG=dG*i; - + if ((gStart+iG)==(uint)(-1) || G[iG]==5 || R[iS]==MARK_FRAG_SPACER_BASE) break; //no extension through chr boundary, or through the spacer between fragments if (R[iS]>3 || G[iG]>3) continue;//no penalties for Ns in reads or genome - + if (G[iG]==R[iS]) {//Match - nMatch++; + nMatch++; Score += int(Q[iS]); if (Score>trA->maxScore) {//record new maximum if (nMM+nMMprev <= min(pMMmax*double(Lprev+i+1), double(nMMmax)) ) {//check nMM, if too many mismatches - do not record this maximum. Do not break - there might be still hope to make a long extension @@ -73,20 +73,20 @@ for (int i=0;i<(int) L;i++) { trA->maxScore=Score; trA->nMatch=nMatch; trA->nMM=nMM; - }; - }; + }; + }; } else {//MM - if (nMM+nMMprev >= min(pMMmax*double(Lprev+L), double(nMMmax)) ) {//there is no hope to extend it further, break + if (nMM+nMMprev >= min(pMMmax*double(Lprev+L), double(nMMmax)) ) {//there is no hope to extend it further, break break; }; - - nMM++; + + nMM++; Score -= int(Q[iS]); }; }; // decide of the extension worked -bool extDone = trA->extendL > 0; +bool extDone = trA->extendL > 0; return extDone; diff --git a/funCompareUintAndSuffixes.cpp b/funCompareUintAndSuffixes.cpp index c62953c..989df7c 100644 --- a/funCompareUintAndSuffixes.cpp +++ b/funCompareUintAndSuffixes.cpp @@ -16,13 +16,13 @@ int funCompareUintAndSuffixes ( const void *a, const void *b){ char* gb=globalGenomeArray + *( ((uint64*) b)+1); int ig=0; while (true) { - if (ga[ig]>gb[ig]) + if (ga[ig]>gb[ig]) {// second condition: reached the end of ga, it's >= than any character, but = does not matter return 1; - } else if (ga[ig]vb[1]) { @@ -31,7 +31,7 @@ int funCompareUintAndSuffixes ( const void *a, const void *b){ {//va cannot be equal to vb return -1; }; - } else + } else {//continue ig++; }; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index acf9465..3d1b36e 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -22,7 +22,7 @@ uint globalL; inline int funCompareSuffixes ( const void *a, const void *b){ - + uint *ga=(uint*)((globalG-7LLU)+(*((uint*)a))); uint *gb=(uint*)((globalG-7LLU)+(*((uint*)b))); @@ -34,25 +34,25 @@ inline int funCompareSuffixes ( const void *a, const void *b){ while (jj < globalL) { va=*(ga-jj); vb=*(gb-jj); - - #define has5(v) ((((v)^0x0505050505050505) - 0x0101010101010101) & ~((v)^0x0505050505050505) & 0x8080808080808080) - + + #define has5(v) ((((v)^0x0505050505050505) - 0x0101010101010101) & ~((v)^0x0505050505050505) & 0x8080808080808080) + if (has5(va) && has5(vb)) {//there is 5 in the sequence - only compare bytes before 5 va1=(uint8*) &va; vb1=(uint8*) &vb; for (ii=7;ii>=0;ii--) { - if (va1[ii]>vb1[ii]) + if (va1[ii]>vb1[ii]) { return 1; - } else if (va1[ii] *((uint*)b) ) - {//anti-stable order,since indexes are sorted in the reverse order + {//anti-stable order,since indexes are sorted in the reverse order return -1; } else {//a cannot be equal to b @@ -62,20 +62,20 @@ inline int funCompareSuffixes ( const void *a, const void *b){ }; } else {//no 5, simple comparison - if (va>vb) + if (va>vb) { return 1; - } else if (va *((uint*)b) ) - {//anti-stable order,since indexes are sorted in the reverse order + {//anti-stable order,since indexes are sorted in the reverse order return -1; } else {//a cannot be equal to b @@ -83,20 +83,20 @@ inline int funCompareSuffixes ( const void *a, const void *b){ }; }; -// inline bool funCompareSuffixesBool ( const void *a, const void *b) +// inline bool funCompareSuffixesBool ( const void *a, const void *b) // { // uint jj=0LLU; -// +// // uint *ga=(uint*)((globalG-7LLU)+(*((uint*)a))); // uint *gb=(uint*)((globalG-7LLU)+(*((uint*)b))); // uint va=0,vb=0; -// +// // while (va==vb && jjsjdbOverhang<=0 && (P->sjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-")) + if (P->sjdbOverhang<=0 && (P->sjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-")) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; errOut << "you need to specify >0 --sjdbOverhang\n"; - errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; + errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - } - if (P->sjdbFileChrStartEnd.at(0)=="-" && P->sjdbGTFfile=="-") + } + if (P->sjdbFileChrStartEnd.at(0)=="-" && P->sjdbGTFfile=="-") { if (P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang>0) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; errOut << "do not specify >0 --sjdbOverhang\n"; - errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; + errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; P->sjdbOverhang=0; }; - + //time time_t rawTime; string timeString; - + time(&rawTime); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Starting to generate Genome files\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Starting to generate Genome files\n" <genomeChrBinNbases=1LLU << P->genomeChrBinNbits; //write genome parameters file genomeParametersWrite(P->genomeDir+("/genomeParameters.txt"), P, ERROR_OUT); - - char *G=NULL, *G1=NULL; - uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to find all the sizes + + char *G=NULL, *G1=NULL; + uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to find all the sizes P->chrBinFill(); - uint L=10000;//maximum length of genome suffix + uint L=10000;//maximum length of genome suffix uint nG1alloc=(nGenomeReal + L)*2; G1=new char[nG1alloc]; G=G1+L; - + memset(G1,GENOME_spacingChar,nG1alloc);//initialize to K-1 all bytes - - genomeScanFastaFiles(P,G,true); //load the genome sequence + + genomeScanFastaFiles(P,G,true); //load the genome sequence uint N = nGenomeReal; P->nGenome=N; - uint N2 = N*2; + uint N2 = N*2; ofstream & chrN = ofstrOpen(P->genomeDir+"/chrName.txt",ERROR_OUT, P); ofstream & chrS = ofstrOpen(P->genomeDir+"/chrStart.txt",ERROR_OUT, P); ofstream & chrL = ofstrOpen(P->genomeDir+"/chrLength.txt",ERROR_OUT, P); ofstream & chrNL = ofstrOpen(P->genomeDir+"/chrNameLength.txt",ERROR_OUT, P); - + for (uint ii=0;iinChrReal;ii++) {//output names, starts, lengths chrN<chrName[ii]<<"\n"; chrS<chrStart[ii]<<"\n"; chrL<chrLength.at(ii)<<"\n"; - chrNL<chrName[ii]<<"\t"<chrLength.at(ii)<<"\n"; + chrNL<chrName[ii]<<"\t"<chrLength.at(ii)<<"\n"; }; chrS<chrStart[P->nChrReal]<<"\n";//size of the genome - chrN.close();chrL.close();chrS.close(); chrNL.close(); - + chrN.close();chrL.close();chrS.close(); chrNL.close(); + if (P->limitGenomeGenerateRAM < (nG1alloc+nG1alloc/3)) {//allocate nG1alloc/3 for SA generation - ostringstream errOut; + ostringstream errOut; errOut <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM="<< (P->limitGenomeGenerateRAM) <<"is too small for your genome\n"; errOut <<"SOLUTION: please specify limitGenomeGenerateRAM not less than"<< nG1alloc+nG1alloc/3 <<" and make that much RAM available \n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - + }; + //preparing to generate SA for (uint ii=0;iinSA=0; for (uint ii=0;iigenomeSAsparseD) { if (G[ii]<4) { P->nSA++; }; - }; - - P->GstrandBit = (uint) floor(log(N)/log(2))+1; + }; + + P->GstrandBit = (uint) floor(log(N)/log(2))+1; if (P->GstrandBit<32) P->GstrandBit=32; //TODO: use simple access function for SA - + P->GstrandMask = ~(1LLU<GstrandBit); PackedArray SA1;//SA without sjdb SA1.defineBits(P->GstrandBit+1,P->nSA); @@ -213,21 +213,21 @@ void genomeGenerate(Parameters *P) { {//same as SA1 SA2.defineBits(P->GstrandBit+1,P->nSA); }; - - P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <genomeSuffixLengthMax/sizeof(uint); //count the number of indices with 4nt prefix @@ -244,7 +244,7 @@ void genomeGenerate(Parameters *P) { }; uint saChunkSize=(P->limitGenomeGenerateRAM-nG1alloc)/8/P->runThreadN; //number of SA indexes per chunk - saChunkSize=saChunkSize*6/10; //allow extra space for qsort + saChunkSize=saChunkSize*6/10; //allow extra space for qsort //uint saChunkN=((P->nSA/saChunkSize+1)/P->runThreadN+1)*P->runThreadN;//ensure saChunkN is divisible by P->runThreadN //saChunkSize=P->nSA/saChunkN+100000;//final chunk size if (P->runThreadN>1) saChunkSize=min(saChunkSize,P->nSA/(P->runThreadN-1)); @@ -260,7 +260,7 @@ void genomeGenerate(Parameters *P) { if (chunkSize1 > saChunkSize) { saChunkN++; indPrefStart[saChunkN]=ii; - indPrefChunkCount[saChunkN-1]=chunkSize1-indPrefCount[ii]; + indPrefChunkCount[saChunkN-1]=chunkSize1-indPrefCount[ii]; chunkSize1=indPrefCount[ii]; }; }; @@ -271,7 +271,7 @@ void genomeGenerate(Parameters *P) { P->inOut->logMain << "Number of chunks: " << saChunkN <<"; chunks size limit: " << saChunkSize*8 <<" bytes\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <runThreadN) ordered schedule(dynamic,1) @@ -291,12 +291,12 @@ void genomeGenerate(Parameters *P) { //sort the chunk qsort(saChunk,indPrefChunkCount[iChunk],sizeof(saChunk[0]),funCompareSuffixes); - for (uint ii=0;iigenomeDir+"/SA_"+to_string( (uint) iChunk); - ofstream & saChunkFile = ofstrOpen(chunkFileName,ERROR_OUT, P); + ofstream & saChunkFile = ofstrOpen(chunkFileName,ERROR_OUT, P); fstreamWriteBig(saChunkFile, (char*) saChunk, sizeof(saChunk[0])*indPrefChunkCount[iChunk],chunkFileName,ERROR_OUT,P); saChunkFile.close(); delete [] saChunk; @@ -304,18 +304,18 @@ void genomeGenerate(Parameters *P) { }; time ( &rawTime ); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <GstrandBit; + uint N2bit= 1LLU << P->GstrandBit; uint packedInd=0; #define SA_CHUNK_BLOCK_SIZE 10000000 uint* saIn=new uint[SA_CHUNK_BLOCK_SIZE]; //TODO make adjustable - + #ifdef genenomeGenerate_SA_textOutput ofstream SAtxtStream ((P->genomeDir + "/SAtxt").c_str()); #endif @@ -328,7 +328,7 @@ void genomeGenerate(Parameters *P) { uint chunkBytesN=fstreamReadBig(saChunkFile,(char*) saIn,SA_CHUNK_BLOCK_SIZE*sizeof(saIn[0])); for (uint ii=0;iinSA ) {// - ostringstream errOut; + ostringstream errOut; errOut << "EXITING because of FATAL problem while generating the suffix array\n"; errOut << "The number of indices read from chunks = "<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - + //DONE with suffix array generation - + for (uint ii=0;iiinOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <nSAbyte=(uint) oldSAin.tellg(); -// oldSAin.clear(); +// oldSAin.clear(); // oldSAin.seekg (0, ios::beg); -// +// // P->nSA=(P->nSAbyte*8)/(P->GstrandBit+1); -// SAold.defineBits(P->GstrandBit+1,P->nSA); +// SAold.defineBits(P->GstrandBit+1,P->nSA); // SAold.allocateArray(); -// +// // oldSAin.read(SAold.charArray,SAold.lengthByte); // oldSAin.close(); -// +// // SA1=SAold; // SA2=SAold; // }; - + PackedArray SAip; genomeSAindex(G,SA1,P,SAip); @@ -409,58 +409,58 @@ void genomeGenerate(Parameters *P) { P->sjdbInsert.outDir=P->genomeDir; P->sjdbN=0;//no junctions are loaded yet P->twoPass.pass2=false; - + Parameters *P1=new Parameters; - *P1=*P; - + *P1=*P; + sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); - + //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk //this is - to avoid valgrind complaints. Note that SA2 is allocated with plenty of space to spare. SA1=mainGenome.SA; SA1.writePacked(P->nSA,0); }; - + //write genome to disk time ( &rawTime ); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <genomeDir+"/Genome",ERROR_OUT, P); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <genomeDir+"/Genome",ERROR_OUT, P); fstreamWriteBig(genomeOut,G,P->nGenome,P->genomeDir+"/Genome",ERROR_OUT,P); - genomeOut.close(); + genomeOut.close(); - //write SA + //write SA time ( &rawTime ); P->inOut->logMain << "SA size in bytes: "<inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <genomeDir+"/SA",ERROR_OUT, P); + ofstream & SAout = ofstrOpen(P->genomeDir+"/SA",ERROR_OUT, P); fstreamWriteBig(SAout,(char*) SA1.charArray, (streamsize) SA1.lengthByte,P->genomeDir+"/SA",ERROR_OUT,P); - SAout.close(); - + SAout.close(); + //write SAi - time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <genomeDir+"/SAindex",ERROR_OUT, P); fstreamWriteBig(SAiOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->genomeDir+"/SAindex",ERROR_OUT,P); - fstreamWriteBig(SAiOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->genomeDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(SAiOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->genomeDir+"/SAindex",ERROR_OUT,P); fstreamWriteBig(SAiOut, SAip.charArray, SAip.lengthByte,P->genomeDir+"/SAindex",ERROR_OUT,P); - SAiOut.close(); + SAiOut.close(); SA2.deallocateArray(); time(&rawTime); timeString=asctime(localtime ( &rawTime )); timeString.erase(timeString.end()-1,timeString.end()); - - time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) << " ..... Finished successfully\n" <inOut->logMain << timeMonthDayTime(rawTime) << " ..... Finished successfully\n" <inOut->logStdOut << timeMonthDayTime(rawTime) << " ..... Finished successfully\n" <commandLineFull <<"\n"; - + genomePar << "versionGenome\t" << P->versionSTAR <<"\n"; genomePar << "genomeFastaFiles\t"; for (uint ii=0;iigenomeFastaFiles.size();ii++) genomePar << P->genomeFastaFiles.at(ii) << " "; @@ -19,13 +19,13 @@ void genomeParametersWrite(string fileName, Parameters* P, string errorOut) genomePar << "sjdbFileChrStartEnd\t"; for (uint ii=0;iisjdbFileChrStartEnd.size();ii++) genomePar<< P->sjdbFileChrStartEnd.at(ii) << " "; genomePar<<"\n"; - + genomePar << "sjdbGTFfile\t" << P->sjdbGTFfile <<"\n"; genomePar << "sjdbGTFchrPrefix\t" << P->sjdbGTFchrPrefix <<"\n"; genomePar << "sjdbGTFfeatureExon\t" << P->sjdbGTFfeatureExon <<"\n"; genomePar << "sjdbGTFtagExonParentTranscript\t" << P->sjdbGTFtagExonParentTranscript <<"\n"; genomePar << "sjdbGTFtagExonParentGene\t" << P->sjdbGTFtagExonParentGene <<"\n"; - + genomePar << "sjdbInsertSave\t" << P->sjdbInsert.save <<"\n"; - genomePar.close(); -}; + genomePar.close(); +}; diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 85349e3..6fda948 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -1,4 +1,4 @@ -#include "genomeSAindex.h" +#include "genomeSAindex.h" #include "TimeFunctions.h" #include "SuffixArrayFuns.h" #include "ErrorWarning.h" @@ -11,7 +11,7 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi P->genomeSAindexStart[ii] = P->genomeSAindexStart[ii-1] + ( 1LLU<<(2*ii) ); }; P->nSAi = P->genomeSAindexStart[P->genomeSAindexNbases]; - + /* testing // uint* SAi1=new uint[P->nSAi]; @@ -21,36 +21,36 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi ifstream oldSAiin("./DirTrue/SAindex"); oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes oldSAiin.read(SAio.charArray,SAio.lengthByte); - oldSAiin.close(); + oldSAiin.close(); */ - + P->SAiMarkNbit=P->GstrandBit+1; P->SAiMarkAbsentBit=P->GstrandBit+2; - + P->SAiMarkNmaskC=1LLU << P->SAiMarkNbit; P->SAiMarkNmask=~P->SAiMarkNmaskC; P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; - + SAi.defineBits(P->GstrandBit+3,P->nSAi); - SAi.allocateArray(); - + SAi.allocateArray(); + time_t rawTime; - time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <genomeSAindexNbases]; for (uint ii=0; iigenomeSAindexNbases; ii++) { ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths - }; + }; uint* SAi1=new uint[P->nSAi]; - + for (uint isa=0; isanSA; isa++) {//for all suffixes if (isa%100000000==0) P->inOut->logMain << isa*100/P->nSA << "% " << flush; @@ -90,14 +90,14 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi }; }; };//for (uint isa=0; isanSA; isa++) - */ - - genomeSAindexChunk(G, SA, P, SAi, 0, SA.length-1); - - time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <genomeSAindexNbases-1;ii++) {//L-mer indices starts // cout <genomeSAindexStart[ii-1]; jjgenomeSAindexStart[ii]; jj++) @@ -110,10 +110,10 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi // }; // }; - + }; - - + + void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi, uint iSA1, uint iSA2) { uint* ind0=new uint[P->genomeSAindexNbases]; @@ -122,15 +122,15 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray for (uint ii=0; iigenomeSAindexNbases; ii++) { ind0[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths ind0a[ii]=-1;//this is needed in case "AAA...AAA",i.e. indPref=0 is not present in the genome for some lengths - }; - + }; + PackedArray SAi1; SAi1=SAi; SAi1.allocateArray(); - + uint isaStep=P->nSA/(1llu<<(2*P->genomeSAindexNbases))+1; // isaStep=8; - + uint isa=iSA1; int iL4; uint indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); @@ -143,7 +143,7 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray if (!dirG) SAstr=P->nGenome-1-SAstr; uint indPref1=0; */ - + for (uint iL=0; iL < P->genomeSAindexNbases; iL++) {//calculate index /*{//testing: old way indPref1 <<= 2; @@ -163,7 +163,7 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray if ( indPref1 > ind0a[iL] || isa==0 ) {//new && good index, record it SAi1.writePacked(P->genomeSAindexStart[iL]+indPref1, isa); for (uint ii=ind0a[iL]+1; iigenomeSAindexStart[iL]+ii, isa | P->SAiMarkAbsentMaskC); + SAi1.writePacked(P->genomeSAindexStart[iL]+ii, isa | P->SAiMarkAbsentMaskC); }; ind0a[iL]=indPref1; } else if ( indPref1 < ind0a[iL] ) { @@ -174,18 +174,18 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray }; }; */ - + uint indPref = indFull >> (2*(P->genomeSAindexNbases-1-iL)); // if (indPref!=indPref1) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexNbases; iL1++) { SAi.writePacked(P->genomeSAindexStart[iL1]+ind0[iL1],SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] | P->SAiMarkNmaskC); // if (SAi[P->genomeSAindexStart[iL]+ind0[iL1]] != SAi1[P->genomeSAindexStart[iL]+ind0[iL1]]) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+indPref, isa); // if (SAi[P->genomeSAindexStart[iL]+indPref] != SAi1[P->genomeSAindexStart[iL]+indPref]) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+ii, isa | P->SAiMarkAbsentMaskC); + SAi.writePacked(P->genomeSAindexStart[iL]+ii, isa | P->SAiMarkAbsentMaskC); }; ind0[iL]=indPref; @@ -209,10 +209,10 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - - + + }; - + //find next index not equal to the current one funSAiFindNextIndex(P, G, SA, isaStep, isa, indFull, iL4);//indFull and iL4 have been already defined at the previous step // isa++; @@ -221,7 +221,7 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray delete [] ind0; }; - + void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4) { uint indFullPrev=indFull; @@ -257,7 +257,7 @@ void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaSte }; if (isa==i1) { - isa=i2; + isa=i2; indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); }; }; diff --git a/genomeScanFastaFiles.cpp b/genomeScanFastaFiles.cpp index 94f0fd8..2f0911e 100644 --- a/genomeScanFastaFiles.cpp +++ b/genomeScanFastaFiles.cpp @@ -5,35 +5,35 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta files. flagRun=false: check and find full size, flaRun=true: collect all the data uint N=0;//total number of bases in the genome, including chr "spacers" - if (!flagRun && P->chrLength.size()>0) + if (!flagRun && P->chrLength.size()>0) {//previous chr records exist P->chrStart.pop_back();//remove last record - N = P->chrStart.back()+P->chrLength.back(); + N = P->chrStart.back()+P->chrLength.back(); }; ifstream fileIn; for (uint ii=0;iigenomeFastaFiles.size();ii++) {//all the input files fileIn.open(P->genomeFastaFiles.at(ii).c_str()); - if ( !fileIn.good() ) + if ( !fileIn.good() ) {// ostringstream errOut; errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; char cc=fileIn.peek(); - if ( !fileIn.good() ) + if ( !fileIn.good() ) {// ostringstream errOut; errOut << "EXITING because of INPUT ERROR: could not read from genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; if (cc!='>') { ostringstream errOut; errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <genomeFastaFiles.at(ii) << "is not fasta:"; errOut << " the first character is " < .\n"; errOut << " Solution: check formatting of the fasta file. Make sure the file is uncompressed (unzipped).\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; while(!fileIn.eof()) {//read each file until eof string lineIn (4096,'.'); getline(fileIn,lineIn); @@ -45,15 +45,15 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta lineInStream >> chrName1; P->chrName.push_back(chrName1); }; - - if (!flagRun && P->chrStart.size()>0) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr - + + if (!flagRun && P->chrStart.size()>0) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr + if (N>0) {//pad the chromosomes to bins boudnaries N = ( (N+1)/P->genomeChrBinNbases+1 )*P->genomeChrBinNbases; }; if (!flagRun) { - P->chrStart.push_back(N); + P->chrStart.push_back(N); P->inOut->logMain << P->genomeFastaFiles.at(ii)<<" : chr # " << P->chrStart.size()-1 << " \""<chrName.at(P->chrStart.size()-1)<<"\" chrStart: "<chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr + + + if (!flagRun) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr N = ( (N+1)/P->genomeChrBinNbases+1)*P->genomeChrBinNbases; - - if (!flagRun) - { + + if (!flagRun) + { P->nChrReal=P->chrStart.size(); P->chrStart.push_back(N); //last chromosome end+1 for (uint ii=0;iinChrReal;ii++) { P->chrNameIndex[P->chrName[ii]]=ii; }; - } else + } else {//convert the genome to 0,1,2,3,4 for (uint jj=0;jjinOut->logMain << "Unexpected character: char="<< G[jj] << " int="< -#include "genomeSAindex.h" +#include "genomeSAindex.h" uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * G, char * G1, uint64 nG, uint64 nG1, uint64 nG2, Parameters * P) {//insert new sequences into the SA - + uint GstrandBit1 = (uint) floor(log(nG+nG1)/log(2))+1; if (GstrandBit1<32) GstrandBit1=32; //TODO: use simple access function for SA - if ( GstrandBit1+1 != SA.wordLength) + if ( GstrandBit1+1 != SA.wordLength) {//sequence is too long - GstrandBit changed ostringstream errOut; errOut << "EXITING because of FATAL ERROR: cannot insert sequence on the fly because of strand GstrandBit problem\n"; errOut << "SOLUTION: please contact STAR author at https://groups.google.com/forum/#!forum/rna-star\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; - + uint N2bit= 1LLU << (SA.wordLength-1); - uint strandMask=~N2bit; + uint strandMask=~N2bit; for (uint64 isa=0;isa0 ) + if ( (ind1 & N2bit)>0 ) {//- strand if ( (ind1 & strandMask)>=nG2 ) {//the first nG bases @@ -47,24 +47,24 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * }; }; }; - + char** seq1=new char*[2]; - - #define GENOME_endFillL 16 + + #define GENOME_endFillL 16 char* seqq=new char [4*nG1+3*GENOME_endFillL];//ends shouldbe filled with 5 to mark boundaries - + seq1[0]=seqq+GENOME_endFillL;//TODO: avoid defining an extra array, use reverse search seq1[1]=seqq+2*GENOME_endFillL+2*nG1; - + memset(seqq,GENOME_spacingChar,GENOME_endFillL); memset(seqq+2*nG1+GENOME_endFillL,GENOME_spacingChar,GENOME_endFillL); memset(seqq+4*nG1+2*GENOME_endFillL,GENOME_spacingChar,GENOME_endFillL); - + memcpy(seq1[0], G1, nG1); - for (uint ii=0; iiinOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search, number of new SA indices = "<GstrandBit+1,P->nSA+nInd); @@ -115,7 +115,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * oldSAin.read(SAo.charArray,SAo.lengthByte); oldSAin.close(); */ - + uint isa1=0, isa2=0; for (uint isa=0;isainOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <genomeSAindexNbases; iL++) { // uint iSeq=0; @@ -169,11 +169,11 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index // if (ii==798466) // cout <SAiMarkNmask & P->SAiMarkAbsentMask; -// -// if ( iSeqSAiMarkAbsentMaskC)>0 ) +// +// if ( iSeqSAiMarkAbsentMaskC)>0 ) // {//index missing from the old genome // uint iSeq1=iSeq; // int64 ind1=funCalcSAi(seq1[0]+indArray[2*iSeq+1],iL); @@ -191,31 +191,31 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // } else { // iSeq=iSeq1; // }; -// } else +// } else // {//index was present in the old genome // while (iSeq= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index // break; // }; // ++iSeq; -// }; -// +// }; +// // SAi.writePacked(ii,iSA1+iSeq); -// +// // for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); // }; // ind0=ii; // }; // }; -// +// // }; // // time ( &rawtime ); cout << timeMonthDayTime(rawtime) << "SAi first" <genomeSAindexNbases; iL++) { @@ -241,40 +241,40 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // }; // time ( &rawtime ); // P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <genomeSAindexNbases+2));//skip first bytes // oldSAiin.read(SAio.charArray,SAio.lengthByte); -// oldSAiin.close(); -// +// oldSAiin.close(); +// // for (uint iL=0; iL < P->genomeSAindexNbases; iL++) { // for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index // if ( SAio[ii]!=SAi[ii] ) { // cout <GstrandBit+1,SA.length+nInd);//same as SA2 SA.pointArray(SA1.charArray); P->nSA=SA.length; P->nSAbyte=SA.lengthByte; - + //generate SAi genomeSAindex(G,SA,P,SAi); - + time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <sjGstart=P->chrStart[P->nChrReal]; // memcpy(G+P->chrStart[P->nChrReal],seq1[0], nseq1[0]); - - + + return nInd; }; diff --git a/loadGTF.cpp b/loadGTF.cpp index 5428205..7e01ffd 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -34,37 +34,37 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file, add junctions to P->sjdb //returns number of added junctions - if (P->sjdbOverhang>0 && P->sjdbGTFfile!="-") { + if (P->sjdbOverhang>0 && P->sjdbGTFfile!="-") { time_t rawTime; time(&rawTime); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Processing annotations GTF\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Processing annotations GTF\n" <sjdbGTFfile.c_str() ); + *P->inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Processing annotations GTF\n" <sjdbGTFfile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; errOut << "FATAL error, could not open file sjdbGTFfile=" << P->sjdbGTFfile <<"\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - - if (P->chrNameIndex.size()==0) + }; + + if (P->chrNameIndex.size()==0) { for (uint ii=0;iinChrReal;ii++) { P->chrNameIndex[P->chrName[ii]]=ii; - }; + }; }; std::map transcriptIDnumber, geneIDnumber; uint exonN=0; while (sjdbStreamIn.good()) {//count the number of exons - string chr1,ddd2,featureType; + string chr1,ddd2,featureType; sjdbStreamIn >> chr1 >> ddd2 >> featureType; if (chr1.substr(0,1)!="#" && featureType==P->sjdbGTFfeatureExon) { exonN++; }; sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line }; - + if (exonN==0) { ostringstream errOut; @@ -74,7 +74,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - + uint* exonLoci=new uint [exonN*GTF_exonLoci_size]; char* transcriptStrand = new char [exonN]; vector transcriptID, geneID; @@ -87,18 +87,18 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file string oneLine,chr1,ddd2,featureType; getline(sjdbStreamIn,oneLine); istringstream oneLineStream (oneLine); - + oneLineStream >> chr1 >> ddd2 >> featureType; if (chr1.substr(0,1)!="#" && featureType==P->sjdbGTFfeatureExon) {//exonic line, process - + if (P->sjdbGTFchrPrefix!="-") chr1=P->sjdbGTFchrPrefix + chr1; - + if (P->chrNameIndex.count(chr1)==0) {//chr not in Genome P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": chromosome '"<inOut->logMain << oneLine <<"\n"<inOut->logMain << oneLine <<"\n"<> ex1 >> ex2 >> ddd2 >> str1 >> ddd2; //read all fields except the last @@ -137,7 +137,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file transcriptStrand[transcriptIDnumber[trID]]=0; }; }; - + if (gID=="") {//no gene ID P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": no gene_id for line:\n"; P->inOut->logMain << oneLine <<"\n"<chrStart[P->chrNameIndex[chr1]]-1; exonLoci[GTF_exonEnd(exonN)]=ex2+P->chrStart[P->chrNameIndex[chr1]]-1; exonLoci[GTF_exonGeID(exonN)]=geneIDnumber[gID]; - ++exonN; + ++exonN; };//if (chr1.substr(0,1)!="#" && featureType=="exon") };// - + if (exonN==0) { ostringstream errOut; errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << P->sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; + }; //sort exonLoci by transcript ID and exon coordinates qsort((void*) exonLoci, exonN, sizeof(uint)*GTF_exonLoci_size, funCompareUint2); @@ -195,11 +195,11 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file geOut.close(); }; - + {//exon-transcript data structures //re-sort transcripts by transcript start/end uint* extrLoci=new uint [exonN*GTF_extrLoci_size]; //this also contains transcripts start and end - + uint trex1=0; for (uint iex=0; iex<=exonN; iex++) { if (iex==exonN || exonLoci[GTF_exonTrID(iex)] != exonLoci[GTF_exonTrID(trex1)]) { @@ -214,14 +214,14 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file extrLoci[GTF_extrExStart(iex)]=exonLoci[GTF_exonStart(iex)]; extrLoci[GTF_extrExEnd(iex)]=exonLoci[GTF_exonEnd(iex)]; }; - + qsort((void*) extrLoci, exonN, sizeof(uint)*GTF_extrLoci_size, funCompareArrays); - + ofstream trOut ((dirOut+"/transcriptInfo.tab").c_str()); trOut<inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": overlapping or touching exons:\n"; P->inOut->logMain << P->chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-P->chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-P->chrStart[chr1] <<"\n"; - P->inOut->logMain << P->chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-P->chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-P->chrStart[chr1] <<"\n"; + P->inOut->logMain << P->chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-P->chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-P->chrStart[chr1] <<"\n"; } else { sjLoci[sjN*3]=exonLoci[GTF_exonEnd(exI-1)]+1; sjLoci[sjN*3+1]=exonLoci[GTF_exonStart(exI)]-1; @@ -268,10 +268,10 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file trIDn=exonLoci[GTF_exonTrID(exI)]; }; }; - + qsort((void*) sjLoci, sjN, sizeof(uint)*3, funCompareUint2); - - char strandChar[3]={'.','+','-'}; + + char strandChar[3]={'.','+','-'}; uint sjdbN1=sjdbLoci.chr.size(); for (uint ii=0;iiinOut->logMain << "Processing sjdbGTFfile=" << P->sjdbGTFfile <<", found:\n"; P->inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; time(&rawTime); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Finished GTF processing\n" <inOut->logMain << "Created thread # " <processChunks(); //start main thread - + for (int ithread=1;ithreadrunThreadN;ithread++) {//wait for all threads to complete int threadStatus = pthread_join(g_threadChunks.threadArray[ithread], NULL); if (threadStatus>0) {//something went wrong with one of threads @@ -26,8 +26,8 @@ void mapThreadsSpawn (Parameters *P, ReadAlignChunk** RAchunk) { exitWithError(errOut.str(),std::cerr, P->inOut->logMain, 1, *P); }; pthread_mutex_lock(&g_threadChunks.mutexLogMain); - P->inOut->logMain << "Joined thread # " <inOut->logMain << "Joined thread # " <s2) { return 1; } else if (s1> Log.timing.out"); - + Junction oneSJ; char** sjChunks = new char* [P->runThreadN+1]; #define OUTSJ_limitScale 5 OutSJ allSJ (P->limitOutSJcollapsed*OUTSJ_limitScale,P); - + if (P->outFilterBySJoutStage!=1) {//chunkOutSJ for (int ic=0;icrunThreadN;ic++) {//populate sjChunks with links to data sjChunks[ic]=RAchunk[ic]->chunkOutSJ->data; @@ -38,7 +38,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr memset(sjChunks[ic]+RAchunk[ic]->chunkOutSJ1->N*oneSJ.dataSize,255,oneSJ.dataSize);//mark the junction after last with big number }; }; - + while (true) { int icOut=-1;//chunk from which the junction is output for (int ic=0;icrunThreadN;ic++) {//scan through all chunks, find the "smallest" junction @@ -48,7 +48,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr }; if (icOut<0) break; //no more junctions to output - + for (int ic=0;icrunThreadN;ic++) {//scan through all chunks, find the junctions equal to icOut-junction if (ic!=icOut && compareSJ((void*) sjChunks[ic], (void*) sjChunks[icOut])==0) { oneSJ.collapseOneSJ(sjChunks[icOut],sjChunks[ic],P);//collapse ic-junction into icOut @@ -59,7 +59,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr //write out the junction oneSJ.junctionPointer(sjChunks[icOut],0);//point to the icOut junction //filter the junction - bool sjFilter; + bool sjFilter; sjFilter=*oneSJ.annot>0 \ || ( ( *oneSJ.countUnique>=(uint) P->outSJfilterCountUniqueMin[(*oneSJ.motif+1)/2] \ || (*oneSJ.countMultiple+*oneSJ.countUnique)>=(uint) P->outSJfilterCountTotalMin[(*oneSJ.motif+1)/2] )\ @@ -77,10 +77,10 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; - + sjChunks[icOut] += oneSJ.dataSize;//shift icOut-chunk by one junction }; - + bool* sjFilter=new bool[allSJ.N]; if (P->outFilterBySJoutStage!=2) { //filter non-canonical junctions that are close to canonical @@ -117,7 +117,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr }; }; }; - + //output junctions if (P->outFilterBySJoutStage!=1) {//output file ofstream outSJfileStream((P->outFileNamePrefix+"SJ.out.tab").c_str()); @@ -130,9 +130,9 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr outSJfileStream.close(); } else {//make sjNovel array in P P->sjNovelN=0; - for (uint ii=0;iisjNovelN++; @@ -141,7 +141,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr P->sjNovelStart = new uint [P->sjNovelN]; P->sjNovelEnd = new uint [P->sjNovelN]; P->inOut->logMain <<"Detected " <sjNovelN<<" novel junctions that passed filtering, will proceed to filter reads that contained unannotated junctions"<=0: maximum gap allowed for junctions supported by 1,2,3,,,N reads + N integers>=0: maximum gap allowed for junctions supported by 1,2,3,,,N reads i.e. by default junctions supported by 1 read can have gaps <=50000b, by 2 reads: <=100000b, by 3 reads: <=200000. by >=4 reads any gap <=alignIntronMax does not apply to annotated junctions @@ -438,7 +438,7 @@ seedPerReadNmax 1000 seedPerWindowNmax 50 int>0: max number of seeds per window -seedNoneLociPerWindow 10 +seedNoneLociPerWindow 10 int>0: max number of one seed loci per window alignIntronMin 21 @@ -454,7 +454,7 @@ alignSJoverhangMin 5 int>0: minimum overhang (i.e. block size) for spliced alignments alignSJstitchMismatchNmax 0 -1 0 0 - 4*int>=0: maximum number of mismatches for stitching of the splice junctions (-1: no limit). + 4*int>=0: maximum number of mismatches for stitching of the splice junctions (-1: no limit). (1) non-canonical motifs, (2) GT/AG and CT/AC motif, (3) GC/AG and CT/GC motif, (4) AT/AC and GT/AT motif. alignSJDBoverhangMin 3 @@ -465,12 +465,12 @@ alignSplicedMateMapLmin 0 alignSplicedMateMapLminOverLmate 0.66 float>0: alignSplicedMateMapLmin normalized to mate length - + alignWindowsPerReadNmax 10000 int>0: max number of windows per read alignTranscriptsPerWindowNmax 100 - int>0: max number of transcripts per window + int>0: max number of transcripts per window alignTranscriptsPerReadNmax 10000 int>0: max number of different alignments per read to consider @@ -492,7 +492,7 @@ winAnchorMultimapNmax 50 int>0: max number of loci anchors are allowed to map to winBinNbits 16 - int>0: =log2(winBin), where winBin is the size of the bin for the windows/clustering, each window will occupy an integer number of bins. + int>0: =log2(winBin), where winBin is the size of the bin for the windows/clustering, each window will occupy an integer number of bins. winAnchorDistNbins 9 int>0: max number of bins between two anchors that allows aggregation of anchors into one window diff --git a/readLoad.cpp b/readLoad.cpp index a86d4c1..40b92e1 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -4,11 +4,11 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& LreadOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter){ //load one read from a stream int readFileType=0; - + // readInStream.getline(readName,DEF_readNameLengthMax); //extract name if (readInStream.peek()!='@' && readInStream.peek()!='>') return -1; //end of the stream - + readName[0]=0;//clear char array readInStream >> readName; //TODO check that it does not overflow the array if (strlen(readName)>=DEF_readNameLengthMax-1) { @@ -17,13 +17,13 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + readInStream >> iReadAll >> readFilter >> readFilesIndex; //extract read number readInStream.ignore(DEF_readNameSeqLengthMax,'\n');//ignore the resit of the line - just in case - - readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence + + readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence Lread=(uint) readInStream.gcount(); if (Lread<=1) { @@ -37,39 +37,39 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint }; --Lread;//do not count /n in the read length LreadOriginal=Lread; - + if (Lread>DEF_readSeqLengthMax) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; // //was trying to read multi-line // char nextChar='A'; // Lread=0; // while (nextChar!='@' && nextChar!='>' && nextChar!='+' && nextChar!=' ' && nextChar!='\n' && !readInStream.eof()) {//read multi-line fasta -// readInStream.getline(Seq+Lread,DEF_readSeqLengthMax+1); //extract sequence -// Lread+=(uint) readInStream.gcount() - 1; //count chars in the sequence line, but do not read yet -// nextChar=readInStream.peek(); +// readInStream.getline(Seq+Lread,DEF_readSeqLengthMax+1); //extract sequence +// Lread+=(uint) readInStream.gcount() - 1; //count chars in the sequence line, but do not read yet +// nextChar=readInStream.peek(); // }; // if (Lread>DEF_readSeqLengthMax) { // ostringstream errOut; // errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; // errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); -// }; -// LreadOriginal=Lread; - +// exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); +// }; +// LreadOriginal=Lread; + if ( Lread>(P->clip5pNbases[iMate]+P->clip3pNbases[iMate]) ) { - Lread=Lread-(P->clip5pNbases[iMate]+P->clip3pNbases[iMate]); + Lread=Lread-(P->clip5pNbases[iMate]+P->clip3pNbases[iMate]); } else { Lread=0; }; convertNucleotidesToNumbers(Seq+P->clip5pNbases[iMate],SeqNum,Lread); - + //clip the adapter if (P->clip3pAdapterSeq.at(iMate).length()>0) { clip3pAdapterN = Lread-localSearch(SeqNum,Lread,P->clip3pAdapterSeqNum[iMate],P->clip3pAdapterSeq.at(iMate).length(),P->clip3pAdapterMMp[iMate]); @@ -79,27 +79,27 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint }; //final read length, trim 3p after the adapter was clipped - if (Lread>P->clip3pAfterAdapterNbases[iMate]) { + if (Lread>P->clip3pAfterAdapterNbases[iMate]) { Lread =Lread - P->clip3pAfterAdapterNbases[iMate]; } else { Lread=0; }; - + clip3pNtotal=P->clip3pNbases[iMate] + clip3pAdapterN + P->clip3pAfterAdapterNbases[iMate]; clip5pNtotal=P->clip5pNbases[iMate]; if (readName[0]=='@') {//fastq format, read qualities readFileType=2; - readInStream.ignore(DEF_readNameLengthMax,'\n'); //extract header line + readInStream.ignore(DEF_readNameLengthMax,'\n'); //extract header line readInStream.getline(Qual,DEF_readSeqLengthMax);//read qualities if ((uint) readInStream.gcount() != LreadOriginal+1) {//inconsistent read sequence and quality - ostringstream errOut; + ostringstream errOut; errOut << "EXITING because of FATAL ERROR in reads input: quality string length is not equal to sequence length\n"; errOut << readName<<"\n"; - errOut << Seq <<"\n"; + errOut << Seq <<"\n"; errOut << Qual <<"\n"; errOut << "SOLUTION: fix your fastq file\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; if (P->outQSconversionAdd!=0) { for (uint ii=0;ii') {//fasta format, assign Qtop to all qualities readFileType=1; for (uint ii=0;ii : "<< readName<<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - + for (uint ii=0;iiclip5pNbases[iMate]] > P->QasciiSubtract) ? (Qual[ii+P->clip5pNbases[iMate]] - P->QasciiSubtract) : 0; //substract QasciiSubtract // QualNum[ii]=P->QSconv[(int) QualNum[ii]]; // QualNum[ii]=min(QualNum[ii], P->Qtop);//cut QSs at the Qtop // // if (QualNum[ii]==2) QualNum[ii]=P->Qtop; // if (SeqNum[ii]>3) QualNum[ii]=0; //QS=0 for Ns -// Qual1[1][Lread-ii-1]=QualNum[ii]; //reverse +// Qual1[1][Lread-ii-1]=QualNum[ii]; //reverse // }; - + //trim read name for (uint ii=0; iireadNameSeparatorChar.size(); ii++) { char* pSlash=strchr(readName,P->readNameSeparatorChar.at(ii)); //trim everything after ' ' - if (pSlash!=NULL) *pSlash=0; + if (pSlash!=NULL) *pSlash=0; }; return readFileType; }; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 6e83e89..756dcbc 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -17,12 +17,12 @@ inline int funCompareUint1 (const void *a, const void *b) { if (va>vb) { return 1; } else if (va==vb) { - return 0; + return 0; } else { return -1; }; }; - + inline int funCompareUint2 (const void *a, const void *b) { uint va= *((uint*) a); uint vb= *((uint*) b); @@ -34,7 +34,7 @@ inline int funCompareUint2 (const void *a, const void *b) { } else if (va==vb && va1>vb1) { return 1; } else if (va==vb && va1==vb1) { - return 0; + return 0; } else { return -1; }; @@ -53,7 +53,7 @@ inline int funCompareArrays (const void *a, const void *b) { }; }; - return 0; + return 0; }; @@ -62,7 +62,7 @@ inline uint32 binarySearch1(argType x, argType *X, uint32 N) { //binary search in the sorted list //check the boundaries first if (x>X[N-1] || xi1+1) {//binary search i3=(i1+i2)/2; @@ -72,7 +72,7 @@ inline uint32 binarySearch1(argType x, argType *X, uint32 N) { i1=i3; }; }; - + while (i1 inline int32 binarySearch1a(argType x, argType *X, int32 N) { //binary search in the sorted list //check the boundaries first - + if (x>X[N-1]) { return N-1; } else if (xi1+1) {//binary search i3=(i1+i2)/2; @@ -97,7 +97,7 @@ inline int32 binarySearch1a(argType x, argType *X, int32 N) { i1=i3; }; }; - + while (i1core.tid<0) continue; //unmapped read // if ( !std::regex_match(chrName.at(bamA->core.tid),std::regex(P.outWigReferencesPrefix))) continue; //reference does not mathc required references if ( P.outWigReferencesPrefix!="-" && (P.outWigReferencesPrefix.compare(0,P.outWigReferencesPrefix.size(),bamHeader->target_name[bamA->core.tid],P.outWigReferencesPrefix.size())!=0) ) continue; //reference does not match required references - + uint8_t* aNHp=bam_aux_get(bamA,"NH"); if (aNHp!=NULL) { uint32_t aNH=bam_aux2i(aNHp); @@ -30,17 +30,17 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter }; }; bgzf_close(bamIn); - }; - + }; + BGZF *bamIn=bgzf_open(bamFileName.c_str(),"r"); bam_hdr_t *bamHeader=bam_hdr_read(bamIn); int sigN=P.outWigFlags.strand ? 4 : 2; - + double *normFactor=new double[sigN]; - + ofstream **sigOutAll=new ofstream* [sigN]; - + string* sigOutFileName=new string[sigN]; sigOutFileName[0]=sigFileName+".Unique.str1.out"; sigOutFileName[1]=sigFileName+".UniqueMultiple.str1.out"; @@ -48,33 +48,33 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter sigOutFileName[2]=sigFileName+".Unique.str2.out"; sigOutFileName[3]=sigFileName+".UniqueMultiple.str2.out"; }; - + for (int ii=0; iicore.tid!=iChr || bamBytes1<0) { //output to file if (iChr!=-999) {//iChr=-999 marks chromosomes that are not output, including unmapped reads @@ -83,7 +83,7 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter *sigOutAll[is] <<"variableStep chrom="<target_name[iChr] <<"\n"; }; double prevSig=0; - for (uint32_t ig=0;igcore.tid; if ( iChr==-1 || (P.outWigReferencesPrefix!="-" && (P.outWigReferencesPrefix.compare(0,P.outWigReferencesPrefix.size(),bamHeader->target_name[bamA->core.tid],P.outWigReferencesPrefix.size())!=0) ) ) { iChr=-999; continue; //reference does not match required references }; - - chrLen=bamHeader->target_len[iChr]+1;//one extra base at the end which sohuld always be 0 - delete [] sigAll; + + chrLen=bamHeader->target_len[iChr]+1;//one extra base at the end which sohuld always be 0 + delete [] sigAll; sigAll= new double[sigN*chrLen]; memset(sigAll, 0, sizeof(*sigAll)*sigN*chrLen); }; - + // uint32_t nCigar =(bamA->core.flag<<16)>>16; // uint32_t mapFlag=bamA->core.flag>>16; // uint32_t mapQ=(bamA->core.flag<<16)>>24; - + #define BAM_CIGAR_OperationShift 4 #define BAM_CIGAR_LengthBits 28 #define BAM_CIGAR_M 0 @@ -137,7 +137,7 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter //by default, alignments marked as duplicate are not processed if ( (bamA->core.flag & 0x400) > 0 ) continue; - + //NH attribute uint8_t* aNHp=bam_aux_get(bamA,"NH"); if (aNHp==NULL) continue; //do not process lines without NH field @@ -147,7 +147,7 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter uint32_t iStrand=0; if (P.outWigFlags.strand) {//strand for stranded data from SAM flag iStrand= ( (bamA->core.flag & 0x10) > 0 ) == ( (bamA->core.flag & 0x80) == 0 );//0/1 for +/- - }; + }; if (P.outWigFlags.type==1) {//5' of the1st read signal only, RAMPAGE/CAGE if ( (bamA->core.flag & 0x80)>0) continue; //skip if this the second mate if (iStrand==0) { @@ -158,9 +158,9 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter continue; //record only the first position }; }; - + uint32_t* cigar=(uint32_t*) (bamA->data+bamA->core.l_qname); - + for (uint32_t ic=0; iccore.n_cigar; ic++) { uint32_t cigOp=(cigar[ic]<>BAM_CIGAR_LengthBits; uint32_t cigL=cigar[ic]>>BAM_CIGAR_OperationShift; @@ -195,7 +195,7 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter sigAll[aG*sigN+1+2*iStrand]+=1.0/aNH;//U+M, normalized by the number of multi-mapping loci }; }; - delete [] sigAll; + delete [] sigAll; for (int is=0; isflush(); diff --git a/sjSplitAlign.cpp b/sjSplitAlign.cpp index 48a4fe5..1351aae 100644 --- a/sjSplitAlign.cpp +++ b/sjSplitAlign.cpp @@ -1,4 +1,4 @@ -#include "IncludeDefine.h" +#include "IncludeDefine.h" #include "Parameters.h" bool sjAlignSplit(uint a1,uint aLength,Parameters* P, uint &a1D, uint &aLengthD, uint &a1A, uint &aLengthA, uint &isj) { diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index c6c1266..9ee633b 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -14,21 +14,21 @@ #include "funCompareUintAndSuffixes.h" void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { - + #define SPACER_CHAR GENOME_spacingChar if (P->sjdbN==0) {//no junctions to insert return; }; - + time_t rawtime; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting junctions into the genome indices" <inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting junctions into the genome indices" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Inserting junctions into the genome indices" <sjdbLength*P->sjdbN; - for (uint ii=1; ii<=P->sjdbN; ii++) + for (uint ii=1; ii<=P->sjdbN; ii++) { Gsj[ii*P->sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char }; @@ -42,10 +42,10 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr complementSeqNumbers(Gsj, G1c, nGsj*2+1); uint32* oldSJind=new uint32[P1->sjdbN]; - + // uint nIndicesSJ1=P->sjdbOverhang; uint nIndicesSJ1=P->sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome - + uint64* indArray=new uint64[2*P->sjdbN*(nIndicesSJ1+1)*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndices per junction * 2 for reverse compl uint64 sjNew=0; #pragma omp parallel num_threads(P->runThreadN) @@ -55,26 +55,26 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr char** seq1=new char*[2]; seq1[0]=Gsj+isj*P->sjdbLength; seq1[1]=G1c+isj*P->sjdbLength; - + uint isj1=isjsjdbN ? isj : 2*P->sjdbN-1-isj; int sjdbInd = P1->sjdbN==0 ? -1 : binarySearch2(P->sjdbStart[isj1],P->sjdbEnd[isj1],P1->sjdbStart,P1->sjdbEnd,P1->sjdbN); - if (sjdbInd<0) + if (sjdbInd<0) {//count new junctions ++sjNew; - } else + } else {//record new index of the old junctions oldSJind[sjdbInd]=isj1; }; - + for (uint istart1=0; istart1sjdbN ? istart1 : istart1+1; //for rev-compl junction, shift by one base to start with the 1st non-spacer base uint ind1=2*(isj*nIndicesSJ1+istart1); - if (sjdbInd>=0 || seq1[0][istart]>3) + if (sjdbInd>=0 || seq1[0][istart]>3) {//no index for already included junctions, or suffices starting with N indArray[ind1]=-1; - } else + } else { //indArray[ind1] = suffixArraySearch(seq1, istart, P->sjdbLength-istart1, G, SA, true, 0, P->nSA-1, 0, P) ; indArray[ind1] = suffixArraySearch1(seq1, istart, 10000, G, -1LLU, SA, true, 0, P->nSA-1, 0, P) ; @@ -85,10 +85,10 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; }; sjNew = sjNew/2;//novel junctions were double counted on two strands - + time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search: number of new junctions=" << sjNew <<", old junctions="<sjdbN-sjNew<sjdbN*nIndicesSJ1; ii++) {//remove entries that cannot be inserted, this cannot be done in the parallel cycle above if (indArray[ii*2]!= (uint) -1) { @@ -105,26 +105,26 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr indArray[2*nInd]=-999; //mark the last junction indArray[2*nInd+1]=-999; //mark the last junction - - P->nGenome=P->chrStart[P->nChrReal]+nGsj; + + P->nGenome=P->chrStart[P->nChrReal]+nGsj; P->nSA+=nInd; - + uint GstrandBit1 = (uint) floor(log(P->nGenome)/log(2))+1; if (GstrandBit1<32) GstrandBit1=32; //TODO: use simple access function for SA - if ( GstrandBit1 != P->GstrandBit) + if ( GstrandBit1 != P->GstrandBit) {//too many junctions were added - GstrandBit changed ostringstream errOut; errOut << "EXITING because of FATAL ERROR: cannot insert junctions on the fly because of strand GstrandBit problem\n"; errOut << "SOLUTION: please contact STAR author at https://groups.google.com/forum/#!forum/rna-star\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; - + SA2.defineBits(P->GstrandBit+1,P->nSA); uint nGsjNew=sjNew*P->sjdbLength; //this is the actual number of bytes added to the genome, while nGsj is the total size of all junctions - + uint N2bit= 1LLU << P->GstrandBit; uint strandMask=~N2bit; - + /*testing PackedArray SAo; SAo.defineBits(P->GstrandBit+1,P->nSA); @@ -133,9 +133,9 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr oldSAin.read(SAo.charArray,SAo.lengthByte); oldSAin.close(); */ - + uint isj=0, isa2=0; - for (uint isa=0;isanSA;isa++) { + for (uint isa=0;isanSA;isa++) { while (isa==indArray[isj*2]) {//insert sj index before the existing index uint ind1=indArray[isj*2+1]; if (ind10 ) + + uint ind1=SA[isa]; + if ( (ind1 & N2bit)>0 ) {//- strand uint ind1s = P1->nGenome - (ind1 & strandMask); if (ind1s>P->chrStart[P->nChrReal]) @@ -174,17 +174,17 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr ind1 += (oldSJind[sj1]-sj1)*P->sjdbLength; }; }; - + SA2.writePacked(isa2,ind1); /*testing if (SA2[isa2]!=SAo[isa2]) { cout <inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" <genomeSAindexNbases; iL++) { uint iSJ=0; @@ -212,8 +212,8 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index uint iSA1=SAi[ii]; uint iSA2=iSA1 & P->SAiMarkNmask & P->SAiMarkAbsentMask; - - if ( iSJSAiMarkAbsentMaskC)>0 ) + + if ( iSJSAiMarkAbsentMaskC)>0 ) {//index missing from the old genome uint iSJ1=iSJ; int64 ind1=funCalcSAi(Gsj+indArray[2*iSJ+1],iL); @@ -231,21 +231,21 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr } else { iSJ=iSJ1; }; - } else + } else {//index was present in the old genome while (iSJ= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index break; }; ++iSJ; - }; - + }; + SAi.writePacked(ii,iSA1+iSJ); - + for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); }; @@ -280,22 +280,22 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <GstrandBit+1,P->nSA);//same as SA2 SA.pointArray(SA2.charArray); P->nSAbyte=SA.lengthByte; P->sjGstart=P->chrStart[P->nChrReal]; memcpy(G+P->chrStart[P->nChrReal],Gsj, nGsj); - + /* testing PackedArray SAio=SAi; SAio.allocateArray(); ifstream oldSAiin("./DirTrue/SAindex"); oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes oldSAiin.read(SAio.charArray,SAio.lengthByte); - oldSAiin.close(); - + oldSAiin.close(); + for (uint ii=0;iinSA;ii++) { if (SA2[ii]!=SAo[ii]) { @@ -310,20 +310,20 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr cout <nGenome+nGsj,"777","777",P); - genomeOut.close(); + genomeOut.close(); genomeOut.open("/home/dobin/SA"); fstreamWriteBig(genomeOut,SA2.charArray,SA2.lengthByte,"777","777",P); genomeOut.close(); */ - + delete [] indArray; delete [] G1c; - delete [] oldSJind; - + delete [] oldSJind; + }; diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 8ef7dc8..dda9008 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -8,7 +8,7 @@ #include "streamFuns.h" #include "genomeParametersWrite.h" -void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbClass & sjdbLoci) +void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbClass & sjdbLoci) { time_t rawtime; @@ -19,12 +19,12 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC sjdbLoci.priority.resize(sjdbLoci.chr.size(),30); time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P->genomeDir+"/sjdbList.out.tab" <<": "<twoPass.pass2) {//load 1st pass new junctions //sjdbLoci already contains the junctions from before 1st pass - ifstream sjdbStreamIn ( P->twoPass.pass1sjFile.c_str() ); + ifstream sjdbStreamIn ( P->twoPass.pass1sjFile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P->twoPass.pass1sjFile <<"\n"; @@ -34,16 +34,16 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC sjdbLoci.priority.resize(sjdbLoci.chr.size(),0); time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twoPass.pass1sjFile <<": "<sjdbFileChrStartEnd.at(0)!="-") {//load from junction files sjdbLoadFromFiles(P,sjdbLoci); sjdbLoci.priority.resize(sjdbLoci.chr.size(),10); - time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; }; if (P->sjdbGTFfile!="-") @@ -54,7 +54,7 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<sjdbLength*sjdbLoci.chr.size()+1];//array to store junction sequences, will be filled in sjdbPrepare sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome.G, Gsj);//P->nGenome - change when replacing junctions time ( &rawtime ); @@ -70,8 +70,8 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC //insert junctions into the genome and SA and SAi sjdbBuildIndex (P, P1, Gsj, genome.G, genome.SA, (P->twoPass.pass2 ? genome.SApass2 : genome.SApass1), genome.SAi); delete [] Gsj; //junction sequences have been added to G - time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Finished inserting junctions into genome" <inOut->logMain << timeMonthDayTime(rawtime) << " ..... Finished inserting junctions into genome" <sjdbInsert.save=="All") {//save and copy all genome files into sjdbInsert.outDir, except those created above @@ -82,9 +82,9 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC copyFile(P->genomeDir+"/chrNameLength.txt", P->sjdbInsert.outDir+"/chrNameLength.txt"); copyFile(P->genomeDir+"/chrLength.txt", P->sjdbInsert.outDir+"/chrLength.txt"); }; - + genomeParametersWrite(P->sjdbInsert.outDir+("/genomeParameters.txt"), P, ERROR_OUT); - + ofstream & genomeOut = ofstrOpen(P->sjdbInsert.outDir+"/Genome",ERROR_OUT, P); fstreamWriteBig(genomeOut,genome.G,P->nGenome,P->sjdbInsert.outDir+"/Genome",ERROR_OUT,P); genomeOut.close(); diff --git a/sjdbLoadFromFiles.cpp b/sjdbLoadFromFiles.cpp index f588262..271d75a 100644 --- a/sjdbLoadFromFiles.cpp +++ b/sjdbLoadFromFiles.cpp @@ -3,10 +3,10 @@ #include "ErrorWarning.h" void sjdbLoadFromFiles(Parameters *P, SjdbClass &sjdbLoci) { - - if (P->sjdbFileChrStartEnd.at(0)!="-") { + + if (P->sjdbFileChrStartEnd.at(0)!="-") { for (uint ifile=0;ifilesjdbFileChrStartEnd.size(); ifile++) { - ifstream sjdbStreamIn ( P->sjdbFileChrStartEnd.at(ifile).c_str() ); + ifstream sjdbStreamIn ( P->sjdbFileChrStartEnd.at(ifile).c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; errOut << "FATAL INPUT error, could not open input file sjdbFileChrStartEnd=" << P->sjdbFileChrStartEnd.at(ifile) <<"\n"; diff --git a/sjdbLoadFromStream.cpp b/sjdbLoadFromStream.cpp index 2290600..2421631 100644 --- a/sjdbLoadFromStream.cpp +++ b/sjdbLoadFromStream.cpp @@ -25,5 +25,5 @@ void sjdbLoadFromStream(ifstream &sjdbStreamIn, SjdbClass &sjdbLoci) { }; sjdbLoci.str.push_back(str1); }; - }; + }; }; \ No newline at end of file diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index 1661398..f0f75e4 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -8,7 +8,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o uint8 *sjdbMotif=new uint8 [sjdbLoci.chr.size()]; uint8 *sjdbShiftLeft=new uint8 [sjdbLoci.chr.size()]; - uint8 *sjdbShiftRight=new uint8 [sjdbLoci.chr.size()]; + uint8 *sjdbShiftRight=new uint8 [sjdbLoci.chr.size()]; string chrOld=""; @@ -19,7 +19,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o if (sjdbLoci.chr.at(ii)==P->chrName[iChr]) break; }; if (iChr>=P->nChrReal) { - ostringstream errOut; + ostringstream errOut; errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; errOut << "SOLUTION: fix your file(s) --sjdbFileChrStartEnd, offending junciton:" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); @@ -42,7 +42,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o } else if ( G[sjdbS[ii]]==0 && G[sjdbS[ii]+1]==3 && G[sjdbE[ii]-1]==0 && G[sjdbE[ii]]==1 ) {//ATAC sjdbMotif[ii]=5; } else if ( G[sjdbS[ii]]==2 && G[sjdbS[ii]+1]==3 && G[sjdbE[ii]-1]==0 && G[sjdbE[ii]]==3 ) {//GTAT - sjdbMotif[ii]=6; + sjdbMotif[ii]=6; } else { sjdbMotif[ii]=0; }; @@ -63,7 +63,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o P->inOut->logMain << "WARNING: long repeat for junction # " << ii+1 <<" : " \ << sjdbLoci.chr.at(ii) <<" "<chrStart[iChr] + 1 <<" "<< sjdbE[ii] - P->chrStart[iChr] + 1 \ << "; left shift = "<< (int) sjdbShiftLeft[ii] <<"; right shift = "<< (int) sjdbShiftRight[ii] <<"\n"; - }; + }; sjdbS[ii]-=sjdbShiftLeft[ii]; sjdbE[ii]-=sjdbShiftLeft[ii]; @@ -93,15 +93,15 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o uint *I=new uint [sjdbLoci.chr.size()]; uint nsj=0; for (uint ii=0;ii0) { isj0=I[nsj-1]; //index of the last recorded junctions }; - if (nsj==0 || sjdbS[isj]!=sjdbS[isj0] || sjdbE[isj]!=sjdbE[isj0]) + if (nsj==0 || sjdbS[isj]!=sjdbS[isj0] || sjdbE[isj]!=sjdbE[isj0]) {//different intron coordinates I[nsj++]=isj;// add new junction } else if (sjdbLoci.priority.at(isj)sjdbLoci.priority.at(isj0)) {//new junction has higher priority - I[nsj-1]=isj;//replace the old junction + I[nsj-1]=isj;//replace the old junction } else if ( (sjdbMotif[isj]>0 && sjdbMotif[isj0]==0) \ || ( ((sjdbMotif[isj]>0) == (sjdbMotif[isj0]>0)) && sjdbShiftLeft[isj]sjdbEnd=new uint [nsj]; P->sjdbMotif=new uint8 [nsj]; P->sjdbShiftLeft=new uint8 [nsj]; - P->sjdbShiftRight=new uint8 [nsj]; - P->sjdbStrand=new uint8 [nsj]; - + P->sjdbShiftRight=new uint8 [nsj]; + P->sjdbStrand=new uint8 [nsj]; + uint nsj1=0; for (uint ii=0;iisjdbLoci.priority.at(isj0)) {//new junction has higher priority nsj1--;//replace the old junction with the new one - } else if (P->sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') + } else if (P->sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') {//new junction strand is not defined continue; - } else if (P->sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') + } else if (P->sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') {//old junction strand is not defined nsj1--; //replace old with new - } else if (P->sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) + } else if (P->sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) {//both are non-canonical (on opposite strand) P->sjdbStrand[nsj1-1]=0;//do not record new junction, keep old with undefined strand continue; @@ -171,7 +171,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o P->sjdbStart[nsj1]=sjdbSort[ii*3]; P->sjdbEnd[nsj1]=sjdbSort[ii*3+1]; P->sjdbMotif[nsj1]=sjdbMotif[isj]; - P->sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; + P->sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; P->sjdbShiftRight[nsj1]=sjdbShiftRight[isj]; if (sjdbLoci.str.at(isj)=='+') { P->sjdbStrand[nsj1]=1; @@ -185,29 +185,29 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o }; }; nsj1++; - }; - P->sjdbN=nsj1; + }; + P->sjdbN=nsj1; P->sjDstart = new uint [P->sjdbN]; P->sjAstart = new uint [P->sjdbN]; ofstream sjdbInfo((outDir+"/sjdbInfo.txt").c_str()); ofstream sjdbList ((outDir+"/sjdbList.out.tab").c_str()); - char strandChar[3]={'.','+','-'}; + char strandChar[3]={'.','+','-'}; //first line is some general useful information sjdbInfo << P->sjdbN <<"\t"<< P->sjdbOverhang <<"\n"; uint sjGstart=0; - - for (uint ii=0;iisjdbN;ii++) - {//add sjdb sequence to genome - P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; - P->sjAstart[ii] = P->sjdbEnd[ii] + 1; + + for (uint ii=0;iisjdbN;ii++) + {//add sjdb sequence to genome + P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; + P->sjAstart[ii] = P->sjdbEnd[ii] + 1; if (P->sjdbMotif[ii]==0) {//shift non-canonical junctions back to their true coordinates P->sjDstart[ii] += P->sjdbShiftLeft[ii]; P->sjAstart[ii] += P->sjdbShiftLeft[ii]; - }; + }; memcpy(Gsj+sjGstart,G+P->sjDstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci memcpy(Gsj+sjGstart+P->sjdbOverhang,G+P->sjAstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci - sjGstart += P->sjdbLength; + sjGstart += P->sjdbLength; Gsj[sjGstart-1]=GENOME_spacingChar;//spacing char between the sjdb seqs sjdbInfo << P->sjdbStart[ii] <<"\t"<< P->sjdbEnd[ii] <<"\t"<<(int) P->sjdbMotif[ii] <<"\t"<<(int) P->sjdbShiftLeft[ii] <<"\t"<<(int) P->sjdbShiftRight[ii]<<"\t"<<(int) P->sjdbStrand[ii] <<"\n"; uint chr1=P->chrBin[ P->sjdbStart[ii] >> P->genomeChrBinNbits]; @@ -217,6 +217,6 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o }; sjdbInfo.close(); sjdbList.close(); - + }; - + diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 05c7c1a..c54c9bf 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -11,9 +11,9 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst int Score=0; // int score2; - + if (sjAB!=((uint) -1) && trA->exons[trA->nExons-1][EX_sjA]==sjAB \ - && trA->exons[trA->nExons-1][EX_iFrag]==iFragB && rBstart==rAend+1 && gAend+1exons[trA->nExons-1][EX_iFrag]==iFragB && rBstart==rAend+1 && gAend+1sjdbMotif[sjAB]==0 && (L<=P->sjdbShiftRight[sjAB] || trA->exons[trA->nExons-1][EX_L]<=P->sjdbShiftLeft[sjAB]) ) { return -1000006; //too large repeats around non-canonical junction }; @@ -25,19 +25,19 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->shiftSJ[trA->nExons-1][1]=P->sjdbShiftRight[sjAB]; trA->sjAnnot[trA->nExons-1]=1; trA->sjStr[trA->nExons-1]=P->sjdbStrand[sjAB];; - trA->nExons++; + trA->nExons++; trA->nMatch+=L; - for (uint ii=rBstart;iisjdbScore; - } else {//general stitching + } else {//general stitching trA->sjAnnot[trA->nExons-1]=0; trA->sjStr[trA->nExons-1]=0; - + if (trA->exons[trA->nExons-1][EX_iFrag]==iFragB) {//stitch aligns on the same fragment uint gBend=gBstart+L-1; - uint rBend=rBstart+L-1; + uint rBend=rBstart+L-1; -// {//debug +// {//debug // if (sjAB!=((uint) -1) && trA->exons[trA->nExons-1][EX_sjA]!=((uint) -1) && rBend<=rAend) {// // Score -= rAend-rBstart+1; // gAend -= rAend-rBstart+1; @@ -45,21 +45,21 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst // trA->exons[trA->nExons-1][EX_L] =rAend-trA->exons[trA->nExons-1][EX_R]+1; // }; // }; - + //check if r-overlapping fully and exit - if (rBend<=rAend) return -1000001; - if (gBend<=gAend && trA->exons[trA->nExons-1][EX_iFrag]==iFragB) return -1000002; + if (rBend<=rAend) return -1000001; + if (gBend<=gAend && trA->exons[trA->nExons-1][EX_iFrag]==iFragB) return -1000002; //shift the B 5' if overlaps A 3' if (rBstart<=rAend) { - gBstart+=rAend-rBstart+1; + gBstart+=rAend-rBstart+1; rBstart=rAend+1; L=rBend-rBstart+1; - }; + }; - for (uint ii=rBstart;ii<=rBend;ii++) Score+=int(Q[ii]); //add QS for mapped portions + for (uint ii=rBstart;ii<=rBend;ii++) Score+=int(Q[ii]); //add QS for mapped portions - int gGap=gBstart-gAend-1; //could be < 0 for insertions + int gGap=gBstart-gAend-1; //could be < 0 for insertions int rGap=rBstart-rAend-1;//>0 always since we removed overlap uint nMatch=L; @@ -69,7 +69,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst int jR=0; //junction location in R-space int jCan=999; //canonical junction type uint gBstart1=gBstart-rGap-1;//the last base of the intron if all read gap belongs to acceptor, i.e. jR=0 - + // check all the different combinations of gGap and rGap if ( gGap==0 && rGap==0 ) {//just joined the pieces, w/o stiching or gaps @@ -79,30 +79,30 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst for (int ii=1;ii<=rGap;ii++) { if (G[gAend+ii]<4 && R[rAend+ii]<4) {//only score genome bases that are not Ns - if ( R[rAend+ii]==G[gAend+ii] ) { + if ( R[rAend+ii]==G[gAend+ii] ) { Score+=int(Q[rAend+ii]); nMatch++; // if (Q[rAend+ii]>=P->Qgood) nMatchGood++; } else { Score-=int(Q[rAend+ii]); -// trA->rMM[trA->nMM + nMM] = rAend+ii; +// trA->rMM[trA->nMM + nMM] = rAend+ii; nMM++; - // if (Q[rAend+ii]>=P->Qgood) nMMgood++; + // if (Q[rAend+ii]>=P->Qgood) nMMgood++; }; }; - }; + }; } else if ( gGap>rGap ) {//genomic gap (Deletion) nDel=1; Del=gGap-rGap; //gGap>0 here - + if (Del>P->alignIntronMax && P->alignIntronMax>0) { return -1000003; //large gaps not allowed }; int Score1=0; - int jR1=1; //junction location in R-space + int jR1=1; //junction location in R-space do { // 1. move left, until the score for MM is less than canonical advantage jR1--; if ( R[rAend+jR1]!=G[gBstart1+jR1] && G[gBstart1+jR1]<4 && R[rAend+jR1]==G[gAend+jR1]) Score1 -= int(Q[rAend+jR1]); @@ -113,7 +113,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst int jPen=0; do { // 2. scan to the right to find the best junction locus // ?TODO? if genome base is N, how to score? - if ( R[rAend+jR1]==G[gAend+jR1] && R[rAend+jR1]!=G[gBstart1+jR1] ) Score1+=int(Q[rAend+jR1]); + if ( R[rAend+jR1]==G[gAend+jR1] && R[rAend+jR1]!=G[gBstart1+jR1] ) Score1+=int(Q[rAend+jR1]); if ( R[rAend+jR1]!=G[gAend+jR1] && R[rAend+jR1]==G[gBstart1+jR1] ) Score1-=int(Q[rAend+jR1]); int jCan1=-1; //this marks Deletion @@ -134,9 +134,9 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst jPen1=P->scoreGapGCAG; } else if ( G[gAend+jR1+1]==0 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==1 ) {//ATAC jCan1=5; - jPen1=P->scoreGapATAC; + jPen1=P->scoreGapATAC; } else if ( G[gAend+jR1+1]==2 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==3 ) {//GTAT - jCan1=6; + jCan1=6; jPen1=P->scoreGapATAC; } else { jCan1=0; @@ -151,7 +151,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst jR=jR1; //this is the last base of donor jCan=jCan1; jPen=jPen1; - }; + }; jR1++; } while ( jR1 < int(rBend) - int(rAend) );// - int(P->alignSJoverhangMin) );//TODO: do not need to search the full B-transcript, can stop as soon as Score goes down by more than @@ -172,7 +172,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst jjL=0; }; - //TODO check here if the internal exon length < minDa, if so exit w/o stitiching + //TODO check here if the internal exon length < minDa, if so exit w/o stitiching for (int ii=min(1,jR+1);ii<=max(rGap,jR);ii++) {//score donor and acceptor uint g1=(ii<=jR) ? (gAend+ii):(gBstart1+ii); @@ -183,16 +183,16 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst nMatch++; }; } else {//add -score and MM for all bases - Score-=int(Q[rAend+ii]); + Score-=int(Q[rAend+ii]); nMM++; if (ii<1 || ii>rGap) {//subtract previuosly presumed matches - Score-=int(Q[rAend+ii]); + Score-=int(Q[rAend+ii]); nMatch--; // if (ii<=jR) nMM--; }; }; }; - }; + }; //score the gap if (P->sjdbN>0) {//check if the junction is annotated @@ -200,7 +200,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst int sjdbInd=binarySearch2(jS,jE,P->sjdbStart,P->sjdbEnd,P->sjdbN); if (sjdbInd<0) { if (Del>=P->alignIntronMin) { - Score += P->scoreGap + jPen; //genome gap penalty + non-canonical penalty + Score += P->scoreGap + jPen; //genome gap penalty + non-canonical penalty } else {//deletion Score += Del*P->scoreDelBase + P->scoreDelOpen; jCan=-1; @@ -209,7 +209,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst // jR-=jjL; // jjL=0; // trA->shiftSJ[trA->nExons-1][0]=0; -// trA->shiftSJ[trA->nExons-1][1]=jjR; +// trA->shiftSJ[trA->nExons-1][1]=jjR; }; } else {//annotated jCan=P->sjdbMotif[sjdbInd]; @@ -223,21 +223,21 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; trA->sjAnnot[trA->nExons-1]=1; trA->sjStr[trA->nExons-1]=P->sjdbStrand[sjdbInd]; - Score += P->sjdbScore; - }; + Score += P->sjdbScore; + }; } else {//no annotation if (Del>=P->alignIntronMin) {//junction, not short deletion Score += P->scoreGap + jPen; } else { - Score += Del*P->scoreDelBase + P->scoreDelOpen; + Score += Del*P->scoreDelBase + P->scoreDelOpen; jCan=-1; trA->sjAnnot[trA->nExons-1]=0; }; }; - + trA->shiftSJ[trA->nExons-1][0]=jjL; - trA->shiftSJ[trA->nExons-1][1]=jjR; - trA->canonSJ[trA->nExons-1]=jCan; + trA->shiftSJ[trA->nExons-1][1]=jjR; + trA->canonSJ[trA->nExons-1]=jCan; if (trA->sjAnnot[trA->nExons-1]==0) {//strand for unannotated junctions if (jCan>0) { @@ -246,19 +246,19 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->sjStr[trA->nExons-1]=0; }; }; - - } else if ( rGap>gGap ) {//insertion: if also gGap>0, need to stitch + + } else if ( rGap>gGap ) {//insertion: if also gGap>0, need to stitch Ins=rGap-gGap; nIns=1; if (gGap==0) {//simple insertion, no need to stitch - jR=0; + jR=0; } else if (gGap<0) {//reduce the score jR=0; for (int ii=0; ii<-gGap; ii++) Score -= int(Q[rBstart+ii]); - } else {//stitch: define the exon boundary jR - int Score1=0; int maxScore1=0; + } else {//stitch: define the exon boundary jR + int Score1=0; int maxScore1=0; for (int jR1=1;jR1<=gGap;jR1++) {//scan to the right to find the best score if (G[gAend+jR1]<4) {//only penalize goog genome bases @@ -269,7 +269,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst if (Score1>maxScore1) { maxScore1=Score1; jR=jR1; - }; + }; }; @@ -280,10 +280,10 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst Score+=int(Q[r1]); nMatch++; } else {//add -score and MM for all bases - Score-=int(Q[r1]); + Score-=int(Q[r1]); nMM++; }; - }; + }; }; }; @@ -291,15 +291,15 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst jCan=-3; }; //different types of gaps selection - - + + #ifdef COMPILE_FOR_LONG_READS if ( (trA->nMM + nMM)<=outFilterMismatchNmaxTotal ) // if ( Score>0 && nMM<=200 ) - + #else if ( (trA->nMM + nMM)<=outFilterMismatchNmaxTotal \ - && ( jCan<0 || (jCan<7 && nMM<= (uint) P->alignSJstitchMismatchNmax[(jCan+1)/2]) ) ) + && ( jCan<0 || (jCan<7 && nMM<= (uint) P->alignSJstitchMismatchNmax[(jCan+1)/2]) ) ) #endif {//stitching worked only if there no mis-matches for non-GT/AG junctions trA->nMM += nMM; @@ -320,10 +320,10 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->exons[trA->nExons-1][EX_L] += jR; //correct the previous exon boundary trA->exons[trA->nExons][EX_L] = rBend-rAend-jR; //new exon length trA->exons[trA->nExons][EX_R] = rAend+jR+1; //new exon r-start - trA->exons[trA->nExons][EX_G] = gBstart1+jR+1; //new exon g-start + trA->exons[trA->nExons][EX_G] = gBstart1+jR+1; //new exon g-start trA->nExons++; } else if (Ins>0) { //Ins>0; - trA->nIns += nIns; + trA->nIns += nIns; trA->lIns += Ins; trA->exons[trA->nExons-1][EX_L] += jR; //correct the previous exon boundary trA->exons[trA->nExons][EX_L] = rBend-rAend-jR-Ins; //new exon length @@ -331,7 +331,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->exons[trA->nExons][EX_G] = gAend+1+jR; //new exon g-start trA->canonSJ[trA->nExons-1]=-2; //mark insertion trA->sjAnnot[trA->nExons-1]=0; - trA->nExons++; + trA->nExons++; }; } else {//stitching was not accepted return -1000007; @@ -344,8 +344,8 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst //extend the fragments inside //note, that this always works, i.e. Score>0 - for (uint ii=rBstart;ii1 //AATATTTGGAACACTTATGTGAAAAATGATTTGTTTTTCTGAAATTTACGTTTCTCTCTGAGTCCTGTAACTGTCC - + trExtend.reset(); if ( extendAlign(R, Q, G, rAend+1, gAend+1, 1, 1, DEF_readSeqLengthMax, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA->exons[trA->nExons-1][EX_iFrag]][1], &trExtend) ) { @@ -373,14 +373,14 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->nMatch += L; trExtend.reset(); - //if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, + //if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, //if end extension needs to be forced, use large length. Otherwise, only extend until the beginning of the transcript uint extlen=P->alignEndsType.ext[iFragB][1] ? DEF_readSeqLengthMax : gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R]; if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, extlen, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[iFragB][1], &trExtend) ) { trA->add(&trExtend); - Score += trExtend.maxScore; + Score += trExtend.maxScore; trA->exons[trA->nExons][EX_R] -= trExtend.extendL; trA->exons[trA->nExons][EX_G] -= trExtend.extendL; @@ -390,14 +390,14 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->canonSJ[trA->nExons-1]=-3; //mark different fragments junction trA->sjAnnot[trA->nExons-1]=0; - trA->nExons++; + trA->nExons++; } else {//no stitching possible return -1000008; }; }; - + trA->exons[trA->nExons-1][EX_iFrag]=iFragB; //the new exon belongs to fragment iFragB - trA->exons[trA->nExons-1][EX_sjA]=sjAB; + trA->exons[trA->nExons-1][EX_sjA]=sjAB; - return Score; + return Score; }; diff --git a/stitchGapIndel.cpp b/stitchGapIndel.cpp index 55aab06..ecfdf7e 100644 --- a/stitchGapIndel.cpp +++ b/stitchGapIndel.cpp @@ -1,48 +1,48 @@ -#include "IncludeDefine.h" +#include "IncludeDefine.h" #include "Parameters.h" int stitchGapIndel (uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint gapStart, uint gapEnd, char* R, char* G, Parameters* P,\ uint &iRbest, uint &nMM){//returns stitch score - + uint gapLength = gapEnd-gapStart+1; sint inDel= (sint) (gBstart-gAend-1) - (sint) gapLength - (sint) (rBstart-rAend-1); //>0: deletion; <0: insertion - + if (inDel==0) {//this should not happen, it should have been caught in the first stitching return -1; }; int score2best; int score2; - + if (inDel>0) {// - score2=0; - score2best=-1; + score2=0; + score2best=-1; iRbest=0; for (uint iR=1; iR=gapStart) iG1 += gapLength;//exclude gap if (iG2>=gapStart) iG2 += gapLength; - + if ( R[rAend+iR]==G[iG1] && R[rAend+iR]!=G[iG2] ) { score2++; } else if ( R[rAend+iR]!=G[iG1] && R[rAend+iR]==G[iG2] ) { score2--; }; - + if (score2>score2best) { score2best=score2; iRbest=iR; }; }; - + //score the alignment with inDel at iRbest nMM=0; score2= L - inDel*P->scoreDelBase - P->scoreDelOpen; //score B and deletion for (uint iR=1; iRiRbest) iG += (uint) inDel; + if (iR>iRbest) iG += (uint) inDel; if (iG>=gapStart) iG += gapLength;//exclude gap - + if ( R[rAend+iR]==G[iG] ) { score2++; } else if (R[rAend+iR]!=G[iG] && R[rAend+iR]<4 && G[iG]<4) {//only penalize mismatches for non-N bases @@ -50,10 +50,10 @@ int stitchGapIndel (uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, nMM++; }; }; - + } else { return -1; }; - + return score2; }; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 8aa282e..f336bf3 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -9,12 +9,12 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui uint Lread, uiWA* WA, char* R, char* Q, char* G, char* sigG,\ Parameters* P, Transcript** wTr, uint* nWinTr, ReadAlign *RA) { //recursively stitch aligns for one gene - //*nWinTr - number of transcripts for the current window - + //*nWinTr - number of transcripts for the current window + if (iA>=nA && tR2==0) return; //no aligns in the transcript if (iA>=nA) {//no more aligns to add, finalize the transcript - + //extend first Transcript trAstep1; @@ -31,66 +31,66 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui #else #error "EXTEND_ORDER value unrecognized" #endif - + for (int iOrd=0;iOrd<2;iOrd++) { - + switch (vOrder[iOrd]) { - + case 0: //extend at start - if (trA.rStart>0) {// if transcript does not start at base, extend to the read start + if (trA.rStart>0) {// if transcript does not start at base, extend to the read start trAstep1.reset(); if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, trA.rStart, tR2-trA.rStart+1, \ trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trAstep1) ) {//if could extend - + trA.add(&trAstep1); Score += trAstep1.maxScore; trA.exons[0][EX_R] = trA.rStart = trA.rStart - trAstep1.extendL; trA.exons[0][EX_G] = trA.gStart = trA.gStart - trAstep1.extendL; - trA.exons[0][EX_L] += trAstep1.extendL; - - }; - //TODO penalize the unmapped bases at the start - }; + trA.exons[0][EX_L] += trAstep1.extendL; + + }; + //TODO penalize the unmapped bases at the start + }; break; - + case 1: //extend at end if ( tR2outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trAstep1) ) {//if could extend - + trA.add(&trAstep1); Score += trAstep1.maxScore; tR2 += trAstep1.extendL; tG2 += trAstep1.extendL; - + trA.exons[trA.nExons-1][EX_L] += trAstep1.extendL;//extend the length of the last exon }; - //TODO penalize unmapped bases at the end + //TODO penalize unmapped bases at the end }; }; }; - + if (P->alignSoftClipAtReferenceEnds=="No" && \ ( (trA.exons[trA.nExons-1][EX_G] + Lread-trA.exons[trA.nExons-1][EX_R]) > (P->chrStart[trA.Chr]+P->chrLength[trA.Chr]) || \ trA.exons[0][EX_G]<(P->chrStart[trA.Chr]+trA.exons[0][EX_R]) ) ) { return; //no soft clipping past the ends of the chromosome }; - - + + trA.rLength = 0; for (uint isj=0;isj=0 ) {//junction @@ -102,13 +102,13 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1] ) return; }; }; - }; + }; if (trA.nExons>1 && trA.sjAnnot[trA.nExons-2]==1 && trA.exons[trA.nExons-1][EX_L] < P->alignSJDBoverhangMin) return; //this exon was not checkedin the cycle above - + trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex0) { ++trA.intronMotifs[2-trA.canonSJ[iex]%2]; }; @@ -124,7 +124,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui trA.sjMotifStrand=trA.sjStr[iex]; } else if (trA.sjMotifStrand != trA.sjStr[iex]) {//inconsistent strand return; //kill this transcript - }; + }; }; }; @@ -146,7 +146,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui ostringstream errOut; errOut << "EXITING because of FATAL INPUT error: unrecognized value of --outFilterIntronMotifs=" <outFilterIntronMotifs <<"\n"; errOut << "SOLUTION: re-run STAR with --outFilterIntronMotifs = None -OR- RemoveNoncanonical -OR- RemoveNoncanonicalUnannotated\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; {//check mapped length for each mate @@ -163,7 +163,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; }; }; - + if (P->outFilterBySJoutStage==2) {//junctions have to be present in the filtered set P->sjnovel for (uint iex=0;iex=0 && trA.sjAnnot[iex]==0) { @@ -172,23 +172,23 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( binarySearch2(jS,jE,P->sjNovelStart,P->sjNovelEnd,P->sjNovelN) < 0 ) return; }; }; - }; - + }; + if ( trA.exons[0][EX_iFrag]!=trA.exons[trA.nExons-1][EX_iFrag] ) {//check for correct overlap between mates if (trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] <= trA.exons[0][EX_G]) return; //to avoid negative insert size uint iexM2=trA.nExons; for (uint iex=0;iex trA.exons[iexM2][EX_G] ) {//mates overlap - check consistency of junctions - + if (trA.exons[0][EX_G] > trA.exons[iexM2][EX_G]+trA.exons[0][EX_R]) return; //LeftMateStart > RightMateStart if (trA.exons[iexM2-1][EX_G]+trA.exons[iexM2-1][EX_L] > trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]) return; //LeftMateEnd > RightMateEnd - + //check for junctions consistency uint iex1=1, iex2=iexM2+1; //last exons of the junction for (; iex1scoreGenomicLengthLog2scale!=0) {//add gap length score Score += int(ceil( log2( (double) ( trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] - trA.exons[0][EX_G]) ) \ * P->scoreGenomicLengthLog2scale - 0.5)); Score = max(0,Score); }; - + //calculate some final values for the transcript - trA.roStart = (trA.roStr == 0) ? trA.rStart : Lread - trA.rStart - trA.rLength; + trA.roStart = (trA.roStr == 0) ? trA.rStart : Lread - trA.rStart - trA.rLength; trA.maxScore=Score; - + if (trA.exons[0][EX_iFrag]==trA.exons[trA.nExons-1][EX_iFrag]) {//mark single fragment transcripts trA.iFrag=trA.exons[0][EX_iFrag]; RA->maxScoreMate[trA.iFrag] = max (RA->maxScoreMate[trA.iFrag] , Score); @@ -237,42 +237,42 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //only record the transcripts within the window that are in the Score range //OR within the score range of each mate //OR all transcript if chimeric detection is activated - + // if (P->alignEndsType.in=="EndToEnd") {//check that the alignment is end-to-end // uint rTotal=trA.rLength+trA.lIns; // // for (uint iex=1;iexreadLength[0]+RA->readLength[1])) || (trA.iFrag>=0 && rTotalreadLength[trA.iFrag])) return; // }; - + uint iTr=0; //transcript insertion/replacement place - + trA.mappedLength=0; for (uint iex=0;iexmappedLength-nOverlap; - + if (uNew==0 && Score < wTr[iTr]->maxScore) {//new transript is a subset of the old ones break; } else if (uOld==0) {//old transcript is a subset of the new one, remove old transcript Transcript *pTr=wTr[iTr]; - for (uint ii=iTr+1;ii<*nWinTr;ii++) wTr[ii-1]=wTr[ii]; //shift transcripts + for (uint ii=iTr+1;ii<*nWinTr;ii++) wTr[ii-1]=wTr[ii]; //shift transcripts (*nWinTr)--; wTr[*nWinTr]=pTr; } else if (uOld>0 && (uNew>0 || Score >= wTr[iTr]->maxScore) ) {//check next transcript iTr++; }; - + }; - + if (iTr==*nWinTr) {//insert the new transcript for (iTr=0;iTr<*nWinTr;iTr++) {//find inseriton location if (Score>wTr[iTr]->maxScore || (Score==wTr[iTr]->maxScore && trA.gLengthgLength) ) break; @@ -288,11 +288,11 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui (*nWinTr)++; //increment number of transcripts per window; } else { //"WARNING: too many recorded transcripts per window: iRead="<iRead<< "\n"; - }; + }; }; }; - + return; }; @@ -301,42 +301,42 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui Transcript trAi=trA; //trA copy with this align included, to be used in the 1st recursive call of StitchAlign if (trA.nExons>0) {//stitch, a transcript has already been originated - dScore=stitchAlignToTranscript(tR2, tG2, WA[iA][WA_rStart], WA[iA][WA_gStart], WA[iA][WA_Length], WA[iA][WA_iFrag], WA[iA][WA_sjA], P, R, Q, G, &trAi, RA->outFilterMismatchNmaxTotal); + dScore=stitchAlignToTranscript(tR2, tG2, WA[iA][WA_rStart], WA[iA][WA_gStart], WA[iA][WA_Length], WA[iA][WA_iFrag], WA[iA][WA_sjA], P, R, Q, G, &trAi, RA->outFilterMismatchNmaxTotal); //TODO check if the new stitching creates too many MM, quit this transcript if so - + } else { //this is the first align in the transcript trAi.exons[0][EX_R]=trAi.rStart=WA[iA][WA_rStart]; //transcript start/end trAi.exons[0][EX_G]=trAi.gStart=WA[iA][WA_gStart]; trAi.exons[0][EX_L]=WA[iA][WA_Length]; trAi.exons[0][EX_iFrag]=WA[iA][WA_iFrag]; trAi.exons[0][EX_sjA]=WA[iA][WA_sjA]; - + trAi.nExons=1; //recorded first exon - - for (uint ii=0;ii-1000000) {//include this align WAincl[iA]=true; if ( WA[iA][WA_Nrep]==1 ) trAi.nUnique++; //unique piece - if ( WA[iA][WA_Anchor]>0 ) trAi.nAnchor++; //anchor piece piece - + if ( WA[iA][WA_Anchor]>0 ) trAi.nAnchor++; //anchor piece piece + stitchWindowAligns(iA+1, nA, Score+dScore, WAincl, WA[iA][WA_rStart]+WA[iA][WA_Length]-1, WA[iA][WA_gStart]+WA[iA][WA_Length]-1, trAi, Lread, WA, R, Q, G, sigG, P, wTr, nWinTr, RA); } else { - }; - + }; + //also run a transcript w/o including this align if (WA[iA][WA_Anchor]!=2 || trA.nAnchor>0) {//only allow exclusion if this is not the last anchor, or other anchors have been used WAincl[iA]=false; - stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, G, sigG, P, wTr, nWinTr, RA); + stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, G, sigG, P, wTr, nWinTr, RA); }; return; }; diff --git a/streamFuns.cpp b/streamFuns.cpp index 0408971..f638f09 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -23,7 +23,7 @@ void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::strin struct statvfs statvfsBuf; statvfs(fileName.c_str(), &statvfsBuf); P->inOut->logMain << "Writing " << N << " bytes into " <genomeDir + " > "+ P->genomeDir +"/error.info 2>&1").c_str()); // ifstream error_info((P->genomeDir +"/error.info").c_str()); // P->inOut->logMain <inOut->logMain, EXIT_CODE_FILE_OPEN, *P); - }; + }; return ofStream; }; @@ -83,7 +83,7 @@ std::ifstream & ifstrOpen (std::string fileName, std::string errorID, std::strin errOut << " "<< solutionString <<"\n"; }; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_FILE_OPEN, *P); - }; + }; return ifStream; }; diff --git a/sysRemoveDir.cpp b/sysRemoveDir.cpp index c3de76c..2f8f553 100644 --- a/sysRemoveDir.cpp +++ b/sysRemoveDir.cpp @@ -17,6 +17,6 @@ int removeFileOrDir(const char *fpath,const struct stat *sb, int typeflag, struc void sysRemoveDir(std::string dirName) {//remove directory and all its contents - int nftwFlag=FTW_DEPTH; + int nftwFlag=FTW_DEPTH; nftw(dirName.c_str(), removeFileOrDir, 100, nftwFlag); }; From 93bce681c5473e61c0dd870abb1e6ad5c4ef09e9 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 23 Feb 2016 17:48:48 -0500 Subject: [PATCH 191/536] Increased maximum read length to 650. --- IncludeDefine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index f80b44b..9079b0b 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -108,7 +108,7 @@ typedef uint8_t uint8; #if defined COMPILE_FOR_LONG_READS #define DEF_readSeqLengthMax 500000 #else - #define DEF_readSeqLengthMax 500 + #define DEF_readSeqLengthMax 650 #endif #if (DEF_readNameLengthMax > DEF_readSeqLengthMax) From f26c0a18b4d1b149cfb1c4e026d3c4781d0e2505 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 24 Feb 2016 12:37:37 -0500 Subject: [PATCH 192/536] Eliminates compilation warnings in ReadAlign_alignBAM.cpp --- ReadAlign_alignBAM.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 66d7abc..28b1f9e 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -85,9 +85,10 @@ int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray }; template -int bamAttrArrayWriteInt(intType x, const char* tagName, char* attrArray, Parameters *P) {//adapted from samtools +int bamAttrArrayWriteInt(intType xIn, const char* tagName, char* attrArray, Parameters *P) {//adapted from samtools attrArray[0]=tagName[0];attrArray[1]=tagName[1]; #define ATTR_RECORD_INT(_intChar,_intType,_intValue) attrArray[2] = _intChar; *(_intType*)(attrArray+3) = (_intType) _intValue; return 3+sizeof(_intType) + int64 x = (int64) xIn; if (x < 0) { if (x >= -127) { ATTR_RECORD_INT('c',int8_t,x); From 819d55082a465bda8923ccb7174c7a35def6d561 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 24 Feb 2016 17:54:30 -0500 Subject: [PATCH 193/536] Implemented --alignEndsType Extend5pOfReads12 option for full extension of 5' ends of both mates. --- Parameters.cpp | 4 ++++ stitchWindowAligns.cpp | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index df2d051..59a54e8 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -885,6 +885,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (alignEndsType.in=="Extend5pOfRead1" ) { alignEndsType.ext[0][0]=true; + } else if (alignEndsType.in=="Extend5pOfReads12" ) + { + alignEndsType.ext[0][0]=true; + alignEndsType.ext[1][0]=true; } else if (alignEndsType.in=="Extend3pOfRead1" ) { alignEndsType.ext[0][1]=true; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index f336bf3..6a22197 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -40,9 +40,10 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if (trA.rStart>0) {// if transcript does not start at base, extend to the read start trAstep1.reset(); + uint imate=trA.exons[0][EX_iFrag]; if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, trA.rStart, tR2-trA.rStart+1, \ trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trAstep1) ) {//if could extend + P->alignEndsType.ext[imate][(int)(trA.Str!=imate)], &trAstep1) ) {//if could extend trA.add(&trAstep1); Score += trAstep1.maxScore; @@ -60,9 +61,10 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( tR2outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trAstep1) ) {//if could extend + P->alignEndsType.ext[imate][(int)(imate==trA.Str)], &trAstep1) ) {//if could extend trA.add(&trAstep1); Score += trAstep1.maxScore; From 3ef11d1a8990c7ddb7a6372970d68a16f52d02f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=B6ller?= Date: Thu, 25 Feb 2016 13:39:11 +0100 Subject: [PATCH 194/536] deciding for lower case for the sake of consistency --- STAR.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/STAR.cpp b/STAR.cpp index a833ed9..dd8c04e 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -56,7 +56,7 @@ int main(int argInN, char* argIn[]) { Parameters *P = new Parameters; //all parameters P->inputParameters(argInN, argIn); - *(P->inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... Started STAR run\n" <inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... started STAR run\n" <runMode=="genomeGenerate") { From c7f84b0adb66a4b83cbc24fe39a4bb5fe860d2a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=B6ller?= Date: Thu, 25 Feb 2016 13:42:38 +0100 Subject: [PATCH 195/536] deciding for lower case in status msg --- genomeGenerate.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 3d1b36e..c60fd0a 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -141,8 +141,8 @@ void genomeGenerate(Parameters *P) { string timeString; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Starting to generate Genome files\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Starting to generate Genome files\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to generate Genome files\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to generate Genome files\n" <genomeChrBinNbases=1LLU << P->genomeChrBinNbits; From 1bfae9baceafb47bf9e80083790c0e8c1e050019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=B6ller?= Date: Thu, 25 Feb 2016 20:20:49 +0100 Subject: [PATCH 196/536] More optical refinements more lower case status msgs, one blank eliminated --- genomeGenerate.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index c60fd0a..ee9404e 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -218,8 +218,8 @@ void genomeGenerate(Parameters *P) { //sort SA time ( &rawTime ); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... finished generating suffix array\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... finished generating suffix array\n" <inOut->logMain << timeMonthDayTime(rawTime) << " ..... Finished successfully\n" <inOut->logStdOut << timeMonthDayTime(rawTime) << " ..... Finished successfully\n" <inOut->logMain << timeMonthDayTime(rawTime) << " ..... finished successfully\n" <inOut->logStdOut << timeMonthDayTime(rawTime) << " ..... finished successfully\n" < Date: Thu, 25 Feb 2016 20:23:19 +0100 Subject: [PATCH 197/536] More optical refinements - now in loadGTF --- loadGTF.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/loadGTF.cpp b/loadGTF.cpp index 7e01ffd..76c236a 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -37,8 +37,8 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file if (P->sjdbOverhang>0 && P->sjdbGTFfile!="-") { time_t rawTime; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Processing annotations GTF\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Processing annotations GTF\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <sjdbGTFfile.c_str() ); if (sjdbStreamIn.fail()) { @@ -292,8 +292,8 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file P->inOut->logMain << "Processing sjdbGTFfile=" << P->sjdbGTFfile <<", found:\n"; P->inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Finished GTF processing\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" < Date: Thu, 25 Feb 2016 20:25:52 +0100 Subject: [PATCH 198/536] optics in Genome_insertSequences.cpp --- Genome_insertSequences.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Genome_insertSequences.cpp b/Genome_insertSequences.cpp index 24348ec..4164c25 100644 --- a/Genome_insertSequences.cpp +++ b/Genome_insertSequences.cpp @@ -12,7 +12,7 @@ if (P->genomeFastaFiles.at(0)!="-") { time_t rawtime; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting extra sequences into genome indexes" <inOut->logMain << timeMonthDayTime(rawtime) << " ..... inserting extra sequences into genome indexes" < Date: Thu, 25 Feb 2016 20:27:34 +0100 Subject: [PATCH 199/536] optics in sjdbInsertJunctions.cpp --- sjdbInsertJunctions.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index dda9008..3f68d14 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -71,7 +71,7 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC sjdbBuildIndex (P, P1, Gsj, genome.G, genome.SA, (P->twoPass.pass2 ? genome.SApass2 : genome.SApass1), genome.SAi); delete [] Gsj; //junction sequences have been added to G time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Finished inserting junctions into genome" <inOut->logMain << timeMonthDayTime(rawtime) << " ..... finished inserting junctions into genome" <sjdbInsert.save=="All") {//save and copy all genome files into sjdbInsert.outDir, except those created above From 56a1ecc63f1dee20e905800911bd15ecc5fa714a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=B6ller?= Date: Thu, 25 Feb 2016 20:29:00 +0100 Subject: [PATCH 200/536] Final optical treat in sjdbBuildIndex.cpp --- sjdbBuildIndex.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 9ee633b..f0beaf6 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -24,8 +24,8 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr time_t rawtime; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting junctions into the genome indices" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Inserting junctions into the genome indices" <inOut->logMain << timeMonthDayTime(rawtime) << " ..... inserting junctions into the genome indices" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... inserting junctions into the genome indices" <sjdbLength*P->sjdbN; for (uint ii=1; ii<=P->sjdbN; ii++) From 1207a5507e6cb666088c9a057780d48f7fa7a467 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 25 Feb 2016 14:56:30 -0500 Subject: [PATCH 201/536] Added Extend5pOfReads12 option to parametersDefault. --- parametersDefault | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/parametersDefault b/parametersDefault index 9bf2893..90e2017 100644 --- a/parametersDefault +++ b/parametersDefault @@ -477,9 +477,10 @@ alignTranscriptsPerReadNmax 10000 alignEndsType Local string: type of read ends alignment - Local ... standard local alignment with soft-clipping allowed - EndToEnd ... force end-to-end read alignment, do not soft-clip - Extend5pOfRead1 ... fully extend only the 5p of the read1, all other ends: local alignment + Local ... standard local alignment with soft-clipping allowed + EndToEnd ... force end-to-end read alignment, do not soft-clip + Extend5pOfRead1 ... fully extend only the 5p of the read1, all other ends: local alignment + Extend5pOfReads12 ... fully extend only the 5p of the both read1 and read2, all other ends: local alignment alignSoftClipAtReferenceEnds Yes string: allow the soft-clipping of the alignments past the end of the chromosomes From c6a5792091c1093cfb016220badd6413b311e65a Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 25 Feb 2016 15:31:09 -0500 Subject: [PATCH 202/536] Recompiled binaries. --- parametersDefault.xxd | 3893 +++++++++++++++++++++-------------------- 1 file changed, 1950 insertions(+), 1943 deletions(-) diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 4130ab1..5cbbdc6 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -42,1131 +42,1130 @@ unsigned char parametersDefault[] = { 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x61, 0x62, 0x6c, 0x79, 0x20, 0x62, 0x61, 0x73, 0x68, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2f, 0x62, 0x69, 0x6e, - 0x2f, 0x62, 0x61, 0x73, 0x68, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x73, 0x68, - 0x65, 0x6c, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x61, 0x69, - 0x6c, 0x20, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x55, 0x62, - 0x75, 0x6e, 0x74, 0x75, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, - 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20, - 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x79, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, - 0x75, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, - 0x6e, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2f, 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x73, 0x68, 0x65, + 0x6c, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x61, 0x69, 0x6c, + 0x20, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x55, 0x62, 0x75, + 0x6e, 0x74, 0x75, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, + 0x2d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, + 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x79, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x75, + 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x42, 0x41, - 0x4d, 0x2e, 0x20, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x2d, 0x2d, - 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x75, - 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x53, 0x54, 0x41, 0x52, 0x0a, 0x0a, - 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, - 0x5f, 0x52, 0x57, 0x58, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, - 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, - 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x5f, - 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x28, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, 0x68, 0x6d, 0x6f, 0x64, 0x20, 0x37, - 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x52, 0x4e, 0x47, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x21, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, - 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, + 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x2d, 0x2d, 0x62, 0x61, 0x6d, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x44, 0x69, + 0x72, 0x50, 0x65, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, + 0x58, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, + 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x20, 0x28, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, + 0x68, 0x6d, 0x6f, 0x64, 0x20, 0x37, 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, + 0x75, 0x6e, 0x52, 0x4e, 0x47, 0x73, 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, + 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x21, 0x3d, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, + 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, + 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x4b, 0x65, + 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, + 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, - 0x64, 0x41, 0x6e, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, - 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, - 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, - 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, - 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, - 0x68, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, - 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, + 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, + 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2c, 0x20, + 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x28, 0x73, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x73, + 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, + 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, + 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, + 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, + 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, - 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, - 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, - 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, - 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, - 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, - 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, - 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, - 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, - 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, - 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, - 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, - 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, - 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, - 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, + 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, + 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, + 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, + 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, + 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, + 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, + 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, + 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, + 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, + 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, + 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, + 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, - 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, - 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, + 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, + 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, - 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, - 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, - 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, - 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, - 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, - 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, - 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, - 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, - 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, - 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, - 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, - 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, - 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, - 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, - 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, - 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, - 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, - 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, - 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, - 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, - 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, - 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, - 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, - 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, - 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, - 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, - 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, - 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, + 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, - 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, - 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, + 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, + 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, + 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, + 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, + 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, + 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, + 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, + 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, + 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, + 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, + 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, + 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, + 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, + 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, + 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, + 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, + 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, - 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, - 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, - 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, - 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, - 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, - 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, + 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, + 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, + 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, + 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, + 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, + 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, + 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, + 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, + 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, + 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, + 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, + 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, + 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, + 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, - 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, + 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, - 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, - 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, - 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, - 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, - 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, - 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, - 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, + 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, + 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, + 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, + 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, + 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, + 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, + 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, - 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, - 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, - 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, - 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, - 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, - 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, + 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, - 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, - 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, - 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, - 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, - 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, + 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, + 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, + 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, + 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, + 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, + 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, + 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, + 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, - 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, + 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, + 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, - 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, + 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, + 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, + 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, - 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, - 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, - 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, + 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, - 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, + 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, - 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, - 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, - 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, - 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, - 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x75, 0x6e, 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, + 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, + 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, + 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, + 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, - 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, - 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, - 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, - 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, - 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, - 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, - 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, - 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, - 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, - 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, - 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, - 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, - 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, - 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, - 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, + 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, + 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, + 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, + 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, + 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, + 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, + 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, + 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, + 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, + 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, + 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, @@ -1348,315 +1347,313 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, - 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, - 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, + 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, + 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, + 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, + 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, - 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, - 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, - 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, + 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, + 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, + 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, - 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, @@ -1695,389 +1692,399 @@ unsigned char parametersDefault[] = { 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, - 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, - 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, - 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, - 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, - 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, - 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, - 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, - 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, - 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, - 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, + 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, - 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, - 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, - 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, - 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, - 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, + 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, + 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, + 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, - 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x29, 0x2e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, - 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, - 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, - 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, - 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x20, 0x20, - 0x20, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, - 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, + 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, + 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, + 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, + 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, + 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, - 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, - 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, + 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, + 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, @@ -2124,246 +2131,246 @@ unsigned char parametersDefault[] = { 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x2e, 0x20, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, - 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, - 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, - 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, - 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, + 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, - 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, - 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, - 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, - 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, - 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, - 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, - 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, + 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, + 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 28390; +unsigned int parametersDefault_len = 28473; From e27b926b5c72fae81442aad2fb7f48d0a134dffa Mon Sep 17 00:00:00 2001 From: Steffen Moeller Date: Thu, 3 Mar 2016 01:40:43 +0100 Subject: [PATCH 203/536] Presumably complete transition to lc after ... Checked with egrep -r "\.\. *[A-Z]" in source directory/. --- Genome.cpp | 2 +- Parameters.cpp | 16 ++++++++-------- STAR.cpp | 16 ++++++++-------- genomeSAindex.cpp | 10 +++++----- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 9739762..127a5ae 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -75,7 +75,7 @@ void Genome::genomeLoad(){//allocate and load Genome time_t rawtime; time ( &rawtime ); - *(P->inOut->logStdOut) << timeMonthDayTime(rawtime) << " ..... Loading genome\n" <inOut->logStdOut) << timeMonthDayTime(rawtime) << " ..... loading genome\n" <logStdOut << timeMonthDayTime() << " ..... Reading from BAM, output wiggle\n" <logMain << timeMonthDayTime() << " ..... Reading from BAM, output wiggle\n" <logStdOut << timeMonthDayTime() << " ..... reading from BAM, output wiggle\n" <logMain << timeMonthDayTime() << " ..... reading from BAM, output wiggle\n" <logStdOut << timeMonthDayTime() << " ..... Done\n" <logMain << timeMonthDayTime() << " ..... Done\n" <logStdOut << timeMonthDayTime() << " ..... done\n" <logMain << timeMonthDayTime() << " ..... done\n" <logStdOut << timeMonthDayTime() << " ..... Reading from BAM, remove duplicates, output BAM\n" <logMain << timeMonthDayTime() << " ..... Reading from BAM, remove duplicates, output BAM\n" <logStdOut << timeMonthDayTime() << " ..... reading from BAM, remove duplicates, output BAM\n" <logMain << timeMonthDayTime() << " ..... reading from BAM, remove duplicates, output BAM\n" <logStdOut << timeMonthDayTime() << " ..... Done\n" <logMain << timeMonthDayTime() << " ..... Done\n" <logStdOut << timeMonthDayTime() << " ..... done\n" <logMain << timeMonthDayTime() << " ..... done\n" <inOut->logProgress << timeMonthDayTime(g_statsAll.timeStartMap) <<"\tStarted 1st pass mapping\n" <inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... Started 1st pass mapping\n" <inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... started 1st pass mapping\n" <runThreadN]; @@ -157,7 +157,7 @@ int main(int argInN, char* argIn[]) { time_t rawtime; time (&rawtime); P->inOut->logProgress << timeMonthDayTime(rawtime) <<"\tFinished 1st pass mapping\n"; - *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished 1st pass mapping\n" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... finished 1st pass mapping\n" <twoPass.dir + "/Log.final.out").c_str()); g_statsAll.reportFinal(logFinal1); @@ -180,7 +180,7 @@ int main(int argInN, char* argIn[]) { //initialize Stats g_statsAll.resetN(); time(&g_statsAll.timeStartMap); - *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... Started mapping\n" <inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... started mapping\n" <outBAMcoord) {//sort BAM if needed - *P->inOut->logStdOut << timeMonthDayTime() << " ..... Started sorting BAM\n" <inOut->logMain << timeMonthDayTime() << " ..... Started sorting BAM\n" <inOut->logStdOut << timeMonthDayTime() << " ..... started sorting BAM\n" <inOut->logMain << timeMonthDayTime() << " ..... started sorting BAM\n" <outBAMcoordNbins; //check max size needed for sorting @@ -399,8 +399,8 @@ int main(int argInN, char* argIn[]) { }; //wiggle output if (P->outWigFlags.yes) { - *P->inOut->logStdOut << timeMonthDayTime() << " ..... Started wiggle output\n" <inOut->logMain << timeMonthDayTime() << " ..... Started wiggle output\n" <inOut->logStdOut << timeMonthDayTime() << " ..... started wiggle output\n" <inOut->logMain << timeMonthDayTime() << " ..... started wiggle output\n" <outFileNamePrefix + "Signal"; signalFromBAM(P->outBAMfileCoordName, wigOutFileNamePrefix, *P); }; @@ -413,7 +413,7 @@ int main(int argInN, char* argIn[]) { P->inOut->logProgress << "ALL DONE!\n"<inOut->logFinal.open((P->outFileNamePrefix + "Log.final.out").c_str()); g_statsAll.reportFinal(P->inOut->logFinal); - *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... Finished successfully\n" <inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... finished successfully\n" <inOut->logMain << "ALL DONE!\n"<outFileTmp); diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 6fda948..d4bf632 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -39,8 +39,8 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi time_t rawTime; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Generating Suffix Array index\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... generating Suffix Array index\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Completed Suffix Array index\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <genomeSAindexNbases-1;ii++) {//L-mer indices starts // cout <genomeSAindexNbases,P,iL4); }; }; -}; \ No newline at end of file +}; From 2117eb87001bb11e9ee7a5cf3177b009741ce455 Mon Sep 17 00:00:00 2001 From: Steffen Moeller Date: Thu, 3 Mar 2016 01:46:55 +0100 Subject: [PATCH 204/536] Fix compilation on MIPS - debian patch This patch was contributed by Author: Jurica Stanojkovic Last-Changed: Fri, 3 Apr 2015 14:04:58 +0000 to address this particular bug reported Bugs-Debian: http://bugs.debian.org/781828 to circumvent an issue in the glibc on the MIPSel platform. --- IncludeDefine.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/IncludeDefine.h b/IncludeDefine.h index 9079b0b..47a8d53 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -38,6 +38,10 @@ using namespace std; #define SHM_NORESERVE 0 #endif +#if defined(__mips__) && !defined(SHM_NORESERVE) +#define SHM_NORESERVE 010000 +#endif + typedef int8_t int8; typedef uint8_t uint8; From b8cfea01eb945c7f2436b331c805b6c435bfa69e Mon Sep 17 00:00:00 2001 From: Steffen Moeller Date: Thu, 3 Mar 2016 02:05:09 +0100 Subject: [PATCH 205/536] Avoiding issues with later compilers - debian patch Debian should not have patches to the original source tree. At least not for long :o/ --- Parameters.h | 2 +- STAR.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Parameters.h b/Parameters.h index 05573f8..2b8b340 100644 --- a/Parameters.h +++ b/Parameters.h @@ -61,7 +61,7 @@ class Parameters { int readFilesIndex; uint32 readFilesN; vector readFilesIn, readFilesInTmp; - vector > readFilesNames; + vector > readFilesNames; uint readNmates; string readMatesLengthsIn; vector readFilesCommand; diff --git a/STAR.cpp b/STAR.cpp index dd8c04e..9fa7750 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -386,7 +386,7 @@ int main(int argInN, char* argIn[]) { vector bamBinNamesV; for (uint32 ibin=0; ibinoutBAMsortTmpDir+"/b"+to_string((uint) ibin)); + bamBinNamesV.push_back(P->outBAMsortTmpDir+"/b"+std::to_string((uint) ibin)); struct stat buffer; if (stat (bamBinNamesV.back().c_str(), &buffer) != 0) {//check if file exists bamBinNamesV.pop_back(); From 3367cdf41611406bafdf223e0da476e2279b200d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 3 Mar 2016 17:59:10 -0500 Subject: [PATCH 206/536] Implemented --outTmpKeep All option to keep the temporary files. Implemented --alignEndsProtrude option to control output of alignments with protruding ends. --- Parameters.cpp | 20 + Parameters.h | 11 +- ReadAlign_outputTranscriptSAM.cpp | 36 +- STAR.cpp | 8 +- parametersDefault | 13 + parametersDefault.xxd | 3217 +++++++++++++++-------------- stitchWindowAligns.cpp | 8 +- 7 files changed, 1720 insertions(+), 1593 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 59a54e8..0832c0d 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -72,6 +72,7 @@ Parameters::Parameters() {//initalize parameters info //output parArray.push_back(new ParameterInfoScalar (-1, 2, "outFileNamePrefix", &outFileNamePrefix)); parArray.push_back(new ParameterInfoScalar (-1, 2, "outTmpDir", &outTmpDir)); + parArray.push_back(new ParameterInfoScalar (-1, 2, "outTmpKeep", &outTmpKeep)); parArray.push_back(new ParameterInfoScalar (-1, 2, "outStd", &outStd)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outReadsUnmapped", &outReadsUnmapped)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outQSconversionAdd", &outQSconversionAdd)); @@ -183,6 +184,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "alignEndsType", &alignEndsType.in)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSoftClipAtReferenceEnds", &alignSoftClipAtReferenceEnds)); + parArray.push_back(new ParameterInfoVector (-1, -1, "alignEndsProtrude", &alignEndsProtrude.in)); + //chimeric parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &chimSegmentMin)); @@ -1161,6 +1164,23 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; + alignEndsProtrude.nBasesMax=stoi(alignEndsProtrude.in.at(0),nullptr); + if (alignEndsProtrude.nBasesMax>0) + {//allow ends protrusion + if (alignEndsProtrude.in.at(1)=="ConcordantPair") + { + alignEndsProtrude.concordantPair=true; + } else if (alignEndsProtrude.in.at(1)=="DiscordantPair") + { + alignEndsProtrude.concordantPair=false; + } else + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --alignEndsProtrude="<logMain, EXIT_CODE_PARAMETER, *this); + }; + }; //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" < in; + int nBasesMax; + bool concordantPair; + } alignEndsProtrude; + //seed parameters uint seedMultimapNmax; //max number of multiple alignments per piece uint seedSearchLmax; //max length of the seed @@ -110,7 +116,8 @@ class Parameters { uint chunkInSizeBytes,chunkInSizeBytesArray,chunkOutBAMsizeBytes; //output - string outFileNamePrefix, outStd, outTmpDir; + string outFileNamePrefix, outStd; + string outTmpDir, outTmpKeep; //SAM output string outBAMfileCoordName, outBAMfileUnsortedName, outQuantBAMfileName; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 8e4af51..e2e14bf 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -70,21 +70,33 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i }; }; - uint samFLAG=0; - uint leftMate=0; //the mate (0 or 1) which is on the left - for (uint imate=0;imateP->nChrReal) samFLAG+=0x0008; //not mapped as pair - } else {//properly paired - samFLAG+=0x0002; //mapped as pair + uint samFlagCommon=0;//FLAG common for both mates + if (flagPaired) + {//paired reads + samFlagCommon=0x0001; + if (iExMate==trOut.nExons-1) + {//single mate + if (mateChr>P->nChrReal) samFlagCommon+=0x0008; //not mapped as pair + } else + {//paired align + if (P->alignEndsProtrude.concordantPair || \ + ( (trOut.exons[0][EX_G] <= trOut.exons[iExMate+1][EX_G]+trOut.exons[0][EX_R]) && \ + (trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L] <= trOut.exons[trOut.nExons-1][EX_G]+Lread-trOut.exons[trOut.nExons-1][EX_R]) ) ) + {//properly paired + samFlagCommon+=0x0002; }; - } else {//single end - samFLAG=0; }; + } else + {//single end + samFlagCommon=0; + }; - if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + if (readFilter=='Y') samFlagCommon+=0x200; //not passing quality control + + uint samFLAG; + uint leftMate=0; //the mate (0 or 1) which is on the left + for (uint imate=0;imateinOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... Finished successfully\n" <inOut->logMain << "ALL DONE!\n"<outFileTmp); + if (P->outTmpKeep=="None") + { + sysRemoveDir (P->outFileTmp); + } else + { + //nothing to do + }; P->closeReadsFiles();//this will kill the readFilesCommand processes if necessary mainGenome.~Genome(); //need explicit call because of the 'delete P->inOut' below, which will destroy P->inOut->logStdOut diff --git a/parametersDefault b/parametersDefault index 90e2017..314746d 100644 --- a/parametersDefault +++ b/parametersDefault @@ -165,6 +165,11 @@ outTmpDir - string: path to a directory that will be used as temporary by STAR. All contents of this directory will be removed! - the temp directory will default to outFileNamePrefix_STARtmp +outTmpKeep None + string: whether to keep the tempporary files after STAR runs is finished + None ... remove all temporary files + All .. keep all files + outStd Log string: which output will be directed to stdout (standard out) Log ... log messages @@ -482,6 +487,14 @@ alignEndsType Local Extend5pOfRead1 ... fully extend only the 5p of the read1, all other ends: local alignment Extend5pOfReads12 ... fully extend only the 5p of the both read1 and read2, all other ends: local alignment +alignEndsProtrude 0 ConcordantPair + int, string: allow protrusion of alignment ends, i.e. start (end) of the +strand mate downstream of the start (end) of the -strand mate + 1st word: int: maximum number of protrusion bases allowed + 2nd word: string: + ConcordantPair ... report alignments with non-zero protrusion as concordant pairs + DiscordantPair ... report alignments with non-zero protrusion as discordant pairs + + alignSoftClipAtReferenceEnds Yes string: allow the soft-clipping of the alignments past the end of the chromosomes Yes ... allow diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 5cbbdc6..33186f3 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -682,957 +682,1044 @@ unsigned char parametersDefault[] = { 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, - 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, + 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, - 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, + 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, - 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, - 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, - 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, - 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, - 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, - 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, - 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, - 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, - 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, + 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, + 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, - 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, - 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, - 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, + 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, + 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, + 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, + 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, - 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, + 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, + 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, + 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, - 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, - 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, - 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, + 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, - 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, - 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, - 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, - 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, - 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, - 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, - 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, - 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, + 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, - 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, - 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, + 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, + 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, + 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, + 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, + 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, + 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, + 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, + 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, + 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x75, 0x6e, 0x73, 0x72, 0x6f, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, + 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, - 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, - 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, - 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, - 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, - 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, - 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, - 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, - 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, - 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, - 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, - 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, - 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, - 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, - 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, - 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, - 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, - 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, - 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, - 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, + 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, - 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, - 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, + 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, + 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, + 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, + 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, + 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, + 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, + 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, + 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, + 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, + 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, + 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, + 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, + 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, + 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, + 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, + 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, + 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, + 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, + 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, + 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, + 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, - 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, - 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, - 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, - 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, - 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, - 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, - 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, - 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, - 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, - 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, + 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, + 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, + 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, + 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, + 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, + 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, + 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, - 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, - 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, - 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, - 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, 0x6d, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, + 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, + 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, + 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, + 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, + 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, + 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, - 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, - 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, + 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, + 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, - 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, + 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, + 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, + 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, + 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, + 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, + 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, @@ -1647,730 +1734,710 @@ unsigned char parametersDefault[] = { 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, - 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, + 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, - 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, - 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, - 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, - 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, - 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, + 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, + 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, - 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, - 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, - 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, - 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, - 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, + 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, + 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, + 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, + 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, + 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, + 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, - 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, - 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, - 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, - 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, + 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, + 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, + 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, - 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, + 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, + 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, - 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, - 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, - 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, + 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, + 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, + 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, + 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, + 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, + 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, + 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, + 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, + 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, + 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, + 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, + 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, - 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, - 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, - 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, - 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, + 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, - 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, + 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, + 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 28473; +unsigned int parametersDefault_len = 29280; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 6a22197..f6768bd 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -188,9 +188,11 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( trA.exons[iexM2-1][EX_G] + trA.exons[iexM2-1][EX_L] > trA.exons[iexM2][EX_G] ) {//mates overlap - check consistency of junctions - if (trA.exons[0][EX_G] > trA.exons[iexM2][EX_G]+trA.exons[0][EX_R]) return; //LeftMateStart > RightMateStart - if (trA.exons[iexM2-1][EX_G]+trA.exons[iexM2-1][EX_L] > trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]) return; //LeftMateEnd > RightMateEnd - + if (trA.exons[0][EX_G] > \ + trA.exons[iexM2][EX_G]+trA.exons[0][EX_R]+P->alignEndsProtrude.nBasesMax) return; //LeftMateStart > RightMateStart + allowance + if (trA.exons[iexM2-1][EX_G]+trA.exons[iexM2-1][EX_L] > \ + trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]+P->alignEndsProtrude.nBasesMax) return; //LeftMateEnd > RightMateEnd +allowance + //check for junctions consistency uint iex1=1, iex2=iexM2+1; //last exons of the junction for (; iex1 Date: Fri, 4 Mar 2016 15:29:27 -0500 Subject: [PATCH 207/536] More threads safe chunks concatenation for Unmapped Fastx option. --- ReadAlignChunk.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 3d9f61d..9288fa7 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -111,6 +111,8 @@ void ReadAlignChunk::chunkFstreamCat (fstream &chunkOut, ofstream &allOut, bool if (mutexFlag) pthread_mutex_lock(&mutexVal); allOut << chunkOut.rdbuf(); allOut.clear(); + allOut.flush(); + allOut.clear(); if (mutexFlag) pthread_mutex_unlock(&mutexVal); chunkOut.clear(); chunkOut.seekp(0,ios::beg); //set put pointer at the beginning From dc6659cc2782ff16a93585cd7d660bc25dd7cdc9 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 18 Apr 2016 16:03:00 -0400 Subject: [PATCH 208/536] Implemented --outSAMfilter KeepAllAddedReferences option which will keep all alignments to the added references. --- Parameters.cpp | 12 +- Parameters.h | 1 + ReadAlign_multMapSelect.cpp | 4 +- ReadAlign_outputAlignments.cpp | 38 +- parametersDefault | 4 +- parametersDefault.xxd | 2294 ++++++++++++++++---------------- 6 files changed, 1198 insertions(+), 1155 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index a48129c..4904603 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -665,13 +665,19 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; - outSAMfilter.yes=false; outSAMfilter.KeepOnlyAddedReferences=false; + outSAMfilter.KeepAllAddedReferences=false; + outSAMfilter.yes=true; if (outSAMfilter.mode.at(0)=="KeepOnlyAddedReferences") { - outSAMfilter.yes=true; outSAMfilter.KeepOnlyAddedReferences=true; - } else if (outSAMfilter.mode.at(0)!="None") + } else if (outSAMfilter.mode.at(0)=="KeepAllAddedReferences") + { + outSAMfilter.KeepAllAddedReferences=true; + } else if (outSAMfilter.mode.at(0)=="None") + { + outSAMfilter.yes=false; + } else { ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --outSAMfilter: "< mode; bool yes; bool KeepOnlyAddedReferences; + bool KeepAllAddedReferences; } outSAMfilter; struct diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index 3a0bf6c..4573cf0 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -44,8 +44,8 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts }; }; - if (nTr > P->outFilterMultimapNmax) - {//too multi, no need for further processing, isnce it will be considered unmapped + if (nTr > P->outFilterMultimapNmax || nTr==0) + {//too multi OR no alignments, no need for further processing, since it will be considered unmapped return; }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 29e68a2..cc98bf7 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -75,19 +75,39 @@ void ReadAlign::outputAlignments() { }; if (outFilterPassed) { + uint nTrOut=nTr; //number of aligns to output bool outSAMfilterYes=true; if (P->outSAMfilter.yes) { if (P->outSAMfilter.KeepOnlyAddedReferences) { - for (uint itr=0;itrChrgenomeInsertChrIndFirst) - { - outSAMfilterYes=false; - break; - }; - }; + for (uint itr=0;itrChrgenomeInsertChrIndFirst) + { + outSAMfilterYes=false; + break; + }; + }; + } else if (P->outSAMfilter.KeepAllAddedReferences) + { + nTrOut=0; + for (uint itr=0;itrChr>=P->genomeInsertChrIndFirst) + { + trMult[nTrOut]=trMult[itr]; + trMult[nTrOut]->primaryFlag=false; + ++nTrOut; + }; + }; + if (nTrOut==0) + { + outSAMfilterYes=false; + } else + { + trMult[0]->primaryFlag=true; + }; }; }; if (nTr>1) {//multimappers @@ -103,7 +123,7 @@ void ReadAlign::outputAlignments() { exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); }; - uint nTrOut=min(P->outSAMmultNmax,nTr); //number of to write to SAM/BAM files + nTrOut=min(P->outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files for (uint iTr=0;iTr Date: Fri, 29 Apr 2016 12:20:57 -0400 Subject: [PATCH 209/536] Implemented --winReadCoverageRelativeMin and --winReadCoverageBasesMin to control coverage of the alignment windows for STARlong. Fixed a bug that can cause STARlong seg-faults in rare cases. --- Parameters.cpp | 4 +- Parameters.h | 2 + ReadAlign_createExtendWindowsWithAlign.cpp | 2 +- ReadAlign_stitchPieces.cpp | 2 +- ReadAlign_stitchWindowSeeds.cpp | 41 +- parametersDefault | 6 +- parametersDefault.xxd | 467 +++++++++++---------- 7 files changed, 281 insertions(+), 243 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 4904603..ef7966a 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -144,6 +144,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "winAnchorDistNbins", &winAnchorDistNbins)); parArray.push_back(new ParameterInfoScalar (-1, -1, "winFlankNbins", &winFlankNbins)); parArray.push_back(new ParameterInfoScalar (-1, -1, "winAnchorMultimapNmax", &winAnchorMultimapNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "winReadCoverageRelativeMin", &winReadCoverageRelativeMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "winReadCoverageBasesMin", &winReadCoverageBasesMin)); //scoring parArray.push_back(new ParameterInfoScalar (-1, -1, "scoreGap", &scoreGap)); @@ -1292,7 +1294,7 @@ void Parameters::chrInfoLoad() {//find chrStart,Length,nChr from Genome G chrStreamIn.close(); nChrReal=chrName.size(); - inOut->logMain << "Number of real (reference) chromosmes= " << nChrReal <<"\n"<logMain << "Number of real (reference) chromosomes= " << nChrReal <<"\n"<=P->alignWindowsPerReadNmax) { - nW=P->alignWindowsPerReadNmax; + nW=P->alignWindowsPerReadNmax-1; return EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS; //too many windows, do not record TODO: record a marker }; } else {//record windows after merging diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index b0f4649..1e46bbd 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -224,7 +224,7 @@ for (uint iW=0;iW0) };//for (uint iW=0;iWwinReadCoverageRelativeMin || swWinCov[iW]winReadCoverageBasesMin) {//remove windows that are not good enough nWA[iW]=0; } else {//merge pieces that are adjacent in R- and G-spaces uint ia1=0; diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 9c22986..a3a19ea 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -41,7 +41,10 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* }; }; - if (score2>0 && score2+scoreSeedBest[iS2] > scoreSeedBest[iS1] ) { + //check the length of the iS2 exon. TODO: build the transcripts vs iS1, check the actual exon length + bool exonLongEnough = trA1.exons[0][EX_L] >= ( trA1.sjAnnot[0]==0 ? P->alignSJoverhangMin : P->alignSJDBoverhangMin ); + + if (exonLongEnough && score2>0 && score2+scoreSeedBest[iS2] > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2+scoreSeedBest[iS2]; scoreSeedBestMM[iS1]=trA1.nMM; scoreSeedBestInd[iS1]=iS2; @@ -53,35 +56,39 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; - if (score2 > scoreSeedBest[iS1] ) { + + bool exonLongEnough = (WA[iW][iS1][WA_Length]+trA1.extendL) >= P->alignSJoverhangMin; //TODO new parameter to control end exons length + + if (exonLongEnough && score2 > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2; scoreSeedBestInd[iS1]=iS1; // scoreSeedBestMM[iS1]=trA1.nMM; }; }; - - - }; }; intScore scoreBest=0; uint scoreBestInd=0; + for (uint iS1=0;iS1outFilterMismatchNoverLmax, \ P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) - {//extend to the right - scoreSeedBest[iS1]+=trA1.maxScore; - }; - if (scoreSeedBest[iS1]>scoreBest) {//record new best transcript - scoreBest=scoreSeedBest[iS1]; - scoreBestInd=iS1; - }; + {//extend to the right + scoreSeedBest[iS1]+=trA1.maxScore; + }; + + bool exonLongEnough = (WA[iW][iS1][WA_Length]+trA1.extendL) >= P->alignSJoverhangMin; //TODO new parameter to control end exons length + + if (exonLongEnough && scoreSeedBest[iS1]>scoreBest) {//record new best transcript + scoreBest=scoreSeedBest[iS1]; + scoreBestInd=iS1; + }; }; uint seedN=0; @@ -89,7 +96,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* seedChain[seedN++]=scoreBestInd; if (scoreBestInd>scoreSeedBestInd[scoreBestInd]){//keep going scoreBestInd=scoreSeedBestInd[scoreBestInd]; - } else {//this seed is hte first one + } else {//this seed is the first one break; }; }; diff --git a/parametersDefault b/parametersDefault index d8b884f..0c3eb4b 100644 --- a/parametersDefault +++ b/parametersDefault @@ -513,10 +513,14 @@ winBinNbits 16 winAnchorDistNbins 9 int>0: max number of bins between two anchors that allows aggregation of anchors into one window -winFlankNbins 4 +winFlankNbins 4 int>0: log2(winFlank), where win Flank is the size of the left and right flanking regions for each window +winReadCoverageRelativeMin 0.5 + float>=0: minimum relative coverage of the read sequence by the seeds in a window, for STARlong algorithm only. +winReadCoverageBasesMin 0 + int>0: minimum number of bases covered by the seeds in a window , for STARlong algorithm only. ### Chimeric Alignments chimOutType SeparateSAMold diff --git a/parametersDefault.xxd b/parametersDefault.xxd index ef7977c..2343e05 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2225,233 +2225,256 @@ unsigned char parametersDefault[] = { 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, - 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, - 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, + 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, + 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, - 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, + 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, + 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, - 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, - 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, - 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, - 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, - 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, + 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, - 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, - 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, - 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, - 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, - 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, + 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, + 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 29438; +unsigned int parametersDefault_len = 29724; From 76f46b586b536a8b2cff1a73f9bd0bb8bda78157 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 3 May 2016 17:02:53 -0400 Subject: [PATCH 210/536] Working on extending STARlong to generate 2nd best align in a window for chimeric detection. --- ReadAlign.h | 2 +- ReadAlign_stitchPieces.cpp | 21 ++++++++++++++++++++- ReadAlign_stitchWindowSeeds.cpp | 11 +++++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/ReadAlign.h b/ReadAlign.h index 1aa554b..a6a2e05 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -135,7 +135,7 @@ class ReadAlign : public Genome void stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint Lread); bool chimericDetection(); void outputAlignments(); - void stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G);//stitches all seeds in one window: iW + void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q, char *G);//stitches all seeds in one window: iW int oneRead(); uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 1e46bbd..3488490 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -298,7 +298,26 @@ std::time(&timeStart); #ifdef COMPILE_FOR_LONG_READS - stitchWindowSeeds(iW, iW1, R[trA.roStr==0 ? 0:2], Q[trA.roStr], G); + stitchWindowSeeds(iW, iW1, NULL, R[trA.roStr==0 ? 0:2], Q[trA.roStr], G); + if (P->chimSegmentMin>0) { + for (uint ia=0;ia trA.exons[iex][EX_R] && \ + WA[iW][ia][WA_gStart] < (trA.exons[iex][EX_G]+trA.exons[iex][EX_L]) && \ + (WA[iW][ia][WA_gStart]+WA[iW][ia][WA_Length]) > trA.exons[iex][EX_G] ) + { + WAincl[ia]=true; + break; + }; + + }; + }; + stitchWindowSeeds(iW, iW1, WAincl, R[trA.roStr==0 ? 0:2], Q[trA.roStr], G); + }; #else stitchWindowAligns(0, nWA[iW], 0, WAincl, 0, 0, trA, Lread, WA[iW], R[trA.roStr==0 ? 0:2], Q[trA.roStr], G, sigG, P, trAll[iW1], nWinTr+iW1, this); #endif diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index a3a19ea..35b53b6 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -8,14 +8,16 @@ #include "binarySearch2.h" #include "ErrorWarning.h" -void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G) {//stitches all seeds in one window: iW +void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q, char *G) {//stitches all seeds in one window: iW for (uint iS1=0;iS1scoreSeedBestInd[scoreBestInd]){//keep going scoreBestInd=scoreSeedBestInd[scoreBestInd]; } else {//this seed is the first one @@ -264,9 +267,13 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* // }; }; + if (WAexcl==NULL) {//record the transcript TODO: allow for multiple transcripts in one window *(trAll[iWrec][0])=trA; nWinTr[iWrec]=1; + } else + {//record 2nd best alignment in this window + *(trAll[iWrec][1])=trA; + nWinTr[iWrec]=2; }; - }; From e64d041431295002f09658c96571670543c61c58 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 5 May 2016 11:27:55 -0400 Subject: [PATCH 211/536] New sorting routine for inserting sequence into the genome - bucket sorting. Not fast enough. --- Makefile | 2 +- insertSeqSA.cpp | 31 ++++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9ac8a77..af603f1 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ - Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o \ + Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o sortSuffixesBucket.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ diff --git a/insertSeqSA.cpp b/insertSeqSA.cpp index 839d304..53a0950 100644 --- a/insertSeqSA.cpp +++ b/insertSeqSA.cpp @@ -12,6 +12,7 @@ #include "funCompareUintAndSuffixes.h" #include #include "genomeSAindex.h" +#include "sortSuffixesBucket.h" uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * G, char * G1, uint64 nG, uint64 nG1, uint64 nG2, Parameters * P) {//insert new sequences into the SA @@ -97,8 +98,36 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search, number of new SA indices = "<inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort - old "<inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort"<inOut->logMain << timeMonthDayTime(rawtime) << " Finished ordering suffixes"<inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indices"< Date: Fri, 6 May 2016 14:55:02 -0400 Subject: [PATCH 212/536] New sorting routine for inserting sequence into the genome - fixes the problem with sorting long repeat suffixes. --- Makefile | 2 +- funCompareUintAndSuffixes.cpp | 12 ++-- funCompareUintAndSuffixes.h | 6 +- funCompareUintAndSuffixesMemcmp.cpp | 33 +++++++++ funCompareUintAndSuffixesMemcmp.h | 10 +++ insertSeqSA.cpp | 18 +++-- sjdbBuildIndex.cpp | 2 +- sortSuffixesBucket.cpp | 100 ++++++++++++++++++++++++++++ sortSuffixesBucket.h | 3 + 9 files changed, 173 insertions(+), 13 deletions(-) create mode 100644 funCompareUintAndSuffixesMemcmp.cpp create mode 100644 funCompareUintAndSuffixesMemcmp.h create mode 100644 sortSuffixesBucket.cpp create mode 100644 sortSuffixesBucket.h diff --git a/Makefile b/Makefile index af603f1..435000b 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ - Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o sortSuffixesBucket.o \ + Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o sortSuffixesBucket.o funCompareUintAndSuffixesMemcmp.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ diff --git a/funCompareUintAndSuffixes.cpp b/funCompareUintAndSuffixes.cpp index 989df7c..e09ed31 100644 --- a/funCompareUintAndSuffixes.cpp +++ b/funCompareUintAndSuffixes.cpp @@ -1,19 +1,19 @@ #include "funCompareUintAndSuffixes.h" -#define uint64 unsigned long long -char* globalGenomeArray; +char* g_funCompareUintAndSuffixes_G; +uint64_t g_funCompareUintAndSuffixes_L; int funCompareUintAndSuffixes ( const void *a, const void *b){ - uint64* va= ((uint64*) a); - uint64* vb= ((uint64*) b); + uint64_t* va= ((uint64_t*) a); + uint64_t* vb= ((uint64_t*) b); if (va[0]>vb[0]) { return 1; } else if (va[0]gb[ig]) diff --git a/funCompareUintAndSuffixes.h b/funCompareUintAndSuffixes.h index db2a4b6..e5419c7 100644 --- a/funCompareUintAndSuffixes.h +++ b/funCompareUintAndSuffixes.h @@ -1,7 +1,11 @@ #ifndef CODE_funCompareUintAndSuffixes #define CODE_funCompareUintAndSuffixes -extern char* globalGenomeArray; +#include + +extern char* g_funCompareUintAndSuffixes_G; +extern uint64_t g_funCompareUintAndSuffixes_L; + int funCompareUintAndSuffixes ( const void *a, const void *b); #endif diff --git a/funCompareUintAndSuffixesMemcmp.cpp b/funCompareUintAndSuffixesMemcmp.cpp new file mode 100644 index 0000000..d925a99 --- /dev/null +++ b/funCompareUintAndSuffixesMemcmp.cpp @@ -0,0 +1,33 @@ +#include "funCompareUintAndSuffixesMemcmp.h" +#include //for memcmp + +char* g_funCompareUintAndSuffixesMemcmp_G; +uint64_t g_funCompareUintAndSuffixesMemcmp_L; + +int funCompareUintAndSuffixesMemcmp ( const void *a, const void *b) +{ + uint64_t* va= ((uint64_t*) a); + uint64_t* vb= ((uint64_t*) b); + + if (va[0]>vb[0]) + { + return 1; + } else if (va[0]vb[1] ? 1 : -1; + }; +// int comp=va[1]>vb[1] ? 1 : -1; + return comp; + }; +}; diff --git a/funCompareUintAndSuffixesMemcmp.h b/funCompareUintAndSuffixesMemcmp.h new file mode 100644 index 0000000..83c6f92 --- /dev/null +++ b/funCompareUintAndSuffixesMemcmp.h @@ -0,0 +1,10 @@ +#ifndef CODE_funCompareUintAndSuffixesMemcmp +#define CODE_funCompareUintAndSuffixesMemcmp + +#include + +extern char* g_funCompareUintAndSuffixesMemcmp_G; +extern uint64_t g_funCompareUintAndSuffixesMemcmp_L; +int funCompareUintAndSuffixesMemcmp ( const void *a, const void *b); + +#endif \ No newline at end of file diff --git a/insertSeqSA.cpp b/insertSeqSA.cpp index 53a0950..5b0508a 100644 --- a/insertSeqSA.cpp +++ b/insertSeqSA.cpp @@ -10,6 +10,7 @@ #include "streamFuns.h" #include "binarySearch2.h" #include "funCompareUintAndSuffixes.h" +#include "funCompareUintAndSuffixesMemcmp.h" #include #include "genomeSAindex.h" #include "sortSuffixesBucket.h" @@ -101,14 +102,23 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * /*//old-debug uint64* indArray1=new uint64[nG1*2*2+2]; memcpy((void*) indArray1, (void*) indArray, 8*(nG1*2*2+2)); - globalGenomeArray=seq1[0]; + g_funCompareUintAndSuffixes_G=seq1[0]; qsort((void*) indArray1, nInd, 2*sizeof(uint64), funCompareUintAndSuffixes); + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort - old " <genomeSuffixLengthMax/sizeof(uint64_t); + qsort((void*) indArray, nInd, 2*sizeof(uint64_t), funCompareUintAndSuffixesMemcmp); + +// qsort((void*) indArray, nInd, 2*sizeof(uint64), funCompareUint2); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort - old "<inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort" <inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort"<inOut->logMain << timeMonthDayTime(rawtime) << " Finished ordering suffixes"<inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indicesL nInd="< //for memset +#include //fro cout - debug + +#define GENOME_charN 6 +//max number of characters in the text (genome), presently 0-5 + +void sortSuffixesBucket(char *G, void *ind, int indN, int indSkip) +{ + + //boundaries of unsorted intervals + int *uB1=new int[indN/2]; + int *uB2=new int[indN/2]; + int *uuB1=new int[indN/2]; + int *uuB2=new int[indN/2]; + + int uN; + + if (false) //TODO implement flag to switch this option + {//no initial bucketing + uB1[0]=0; + uB2[0]=indN; + uN=1;//number of unsorted intervals + } else + {//initial bucketing according to the ind + uN=0; + uint64_t iprev=*(uint64_t*)(ind+0*indSkip); + int un=1; + for (int id=1; id1) + { + uB1[uN]=id-un; + uB2[uN]=id; + uN++; + un=1; + }; + iprev=*(uint64_t*)(ind+id*indSkip); + }; + }; + }; + + char *ind1=new char[indN*indSkip];//array to store sorted indices + int charShift=0;//character position to be sorted + int charStart[GENOME_charN]; + int charCount[GENOME_charN]; + + while (uN>0) + { + int uuN=0; + for (int iu=0; iu0 && charCount[ic]<(uB2[iu]-uB1[iu]) ) needToSort=true; //need to sort only if at least one char > 0 and more than one chars in this bucket + if (charCount[ic]>1) + { + uuB1[uuN]=charStart[ic]; + uuB2[uuN]=charStart[ic+1]; + uuN++; + }; + }; + + if (needToSort) + {//otherwise it's either all sorted or all unsorted, no need to move indexes in either case + for (int id=uB1[iu]; id + +void sortSuffixesBucket(char *G, void *ind, int indN, int indSkip); \ No newline at end of file From 6f7b01d2ef034bce16652ed29729231a37d155ed Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 10 May 2016 17:41:15 -0400 Subject: [PATCH 213/536] 2.5.2a : Fixed the GstrandBit problem. Fixed a bug introduced in 2.5.1a that caused problems with single-end alignments output in some cases. --- ReadAlign_alignBAM.cpp | 2 +- ReadAlign_outputAlignments.cpp | 7 +++++-- VERSION | 2 +- genomeGenerate.cpp | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 28b1f9e..ad6e644 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -443,7 +443,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (nMates>1) { pBAM[7]=trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G] - trChrStart; } else if (mateChrnChrReal){ - pBAM[7]=mateStart-P->chrStart[mateChr]; + pBAM[7]=mateStart; } else { pBAM[7]=-1; }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index cc98bf7..60c7832 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -128,8 +128,8 @@ void ReadAlign::outputAlignments() { for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; - mateMapped[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; + //mateMapped[trMult[iTr]->exons[0][EX_iFrag]]=true; + //mateMapped[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; //mateMapped1 = true if a mate is present in this transcript bool mateMapped1[2]={false,false}; @@ -176,6 +176,9 @@ void ReadAlign::outputAlignments() { }; }; + mateMapped[trBest->exons[0][EX_iFrag]]=true; + mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; + if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) { unmapType=4; diff --git a/VERSION b/VERSION index 019e9d7..db1d5a3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.1b_modified" +#define STAR_VERSION "STAR_2.5.2a" diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index ee9404e..00e4b3a 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -199,7 +199,7 @@ void genomeGenerate(Parameters *P) { }; }; - P->GstrandBit = (uint) floor(log(N)/log(2))+1; + P->GstrandBit = (uint) floor(log(N+P->limitSjdbInsertNsj*P->sjdbLength)/log(2))+1; if (P->GstrandBit<32) P->GstrandBit=32; //TODO: use simple access function for SA P->GstrandMask = ~(1LLU<GstrandBit); From 0fcac62a13589800831f85146003920fc69dbc0f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 24 May 2016 17:13:06 -0400 Subject: [PATCH 214/536] Fixed a problem with SAM header in cases where reference sequences are added at the mapping stage. --- genomeScanFastaFiles.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/genomeScanFastaFiles.cpp b/genomeScanFastaFiles.cpp index 2f0911e..1f8caec 100644 --- a/genomeScanFastaFiles.cpp +++ b/genomeScanFastaFiles.cpp @@ -7,8 +7,9 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta uint N=0;//total number of bases in the genome, including chr "spacers" if (!flagRun && P->chrLength.size()>0) {//previous chr records exist - P->chrStart.pop_back();//remove last record + P->chrStart.pop_back();//remove last record, it will be recorded again N = P->chrStart.back()+P->chrLength.back(); + P->chrLength.pop_back();//remove last record, it will be recorded again }; ifstream fileIn; @@ -65,7 +66,7 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta }; - if (!flagRun) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr + if (!flagRun) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the last chr N = ( (N+1)/P->genomeChrBinNbases+1)*P->genomeChrBinNbases; From 65fa3c375a54f264055d07dea715926674958a36 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 25 May 2016 16:32:35 -0400 Subject: [PATCH 215/536] Fixed a bug with causing seg-faults when combining --twopassMode Basic --outSAMorder PairedKeepInputOrder . --- Parameters.cpp | 8 +++++++- ReadAlignChunk_mapChunk.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index ef7966a..db3da87 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -624,9 +624,15 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (outFilterType=="BySJout" && outSAMorder=="PairedKeepInputOrder") { ostringstream errOut; errOut <<"EXITING: fatal input ERROR: --outFilterType=BySJout is not presently compatible with --outSAMorder=PairedKeepInputOrder\n"; - errOut <<"SOLUTION: re-run STAR without setting one of those parameters. Send a feature request to the Authors\n"; + errOut <<"SOLUTION: re-run STAR without setting one of those parameters.\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + if (!outSAMbool && outSAMorder=="PairedKeepInputOrder") { + ostringstream errOut; + errOut <<"EXITING: fatal input ERROR: --outSAMorder=PairedKeepInputOrder is presently only compatible with SAM output, i.e. default --outSMAtype SAM\n"; + errOut <<"SOLUTION: re-run STAR without --outSAMorder=PairedKeepInputOrder, or with --outSAMorder=PairedKeepInputOrder --outSMAtype SAM .\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; //SJ filtering for (int ii=0;ii<4;ii++) { if (outSJfilterOverhangMin.at(ii)<0) outSJfilterOverhangMin.at(ii)=numeric_limits::max(); diff --git a/ReadAlignChunk_mapChunk.cpp b/ReadAlignChunk_mapChunk.cpp index fdeef52..3ebd4d4 100644 --- a/ReadAlignChunk_mapChunk.cpp +++ b/ReadAlignChunk_mapChunk.cpp @@ -89,7 +89,7 @@ void ReadAlignChunk::mapChunk() {//map one chunk. Input reads stream has to be s }; //reads cycle - if ( P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//write the remaining part of the buffer, close and rename chunk files + if ( P->outSAMbool && P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//write the remaining part of the buffer, close and rename chunk files chunkOutBAMfile.write(chunkOutBAM,chunkOutBAMtotal); chunkOutBAMfile.clear(); //in case 0 bytes were written which could set fail bit chunkOutBAMfile.close(); From 5a5747c6d7730c9714b0e8fcce5e16a2437f92a0 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 26 May 2016 12:42:11 -0400 Subject: [PATCH 216/536] Fixed small merge issues. --- BAMbinSortByCoordinate.cpp | 2 +- BAMoutput.cpp | 2 +- ReadAlign_mapOneRead.cpp | 2 +- STAR.cpp | 3 - Transcript_variationAdjust.cpp | 2 +- Transcriptome_geneCountsAddAlign.cpp | 2 +- Transcriptome_quantAlign.cpp | 2 +- Variation.cpp | 2 +- genomeGenerate.cpp | 2 +- insertSeqSA.cpp | 2 +- loadGTF.cpp | 2 +- parametersDefault.xxd | 3869 +++++++++++++------------- serviceFuns.cpp | 30 +- sjdbBuildIndex.cpp | 2 +- sjdbPrepare.cpp | 2 +- 15 files changed, 1981 insertions(+), 1945 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index e99d229..c312c88 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -1,6 +1,6 @@ #include "BAMbinSortByCoordinate.h" #include "ErrorWarning.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" #include "BAMfunctions.h" void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, Parameters *P) { diff --git a/BAMoutput.cpp b/BAMoutput.cpp index 0b10327..13f64fb 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -2,7 +2,7 @@ #include #include "GlobalVariables.h" #include -#include "serviceFuns.h" +#include "serviceFuns.cpp" #include "ThreadControl.h" BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate bam array diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index f238a13..fad2b83 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -1,7 +1,7 @@ #include "ReadAlign.h" #include "SequenceFuns.h" #include "Stats.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" int ReadAlign::mapOneRead() { diff --git a/STAR.cpp b/STAR.cpp index f8b5120..3018c78 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -99,9 +99,6 @@ int main(int argInN, char* argIn[]) { sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); }; - //calculate genome-related parameters - Transcriptome *mainTranscriptome=NULL; - /////////////////////////////////////////////////////////////////////////////////////////////////START if (P->runThreadN>1) { g_threadChunks.threadArray=new pthread_t[P->runThreadN]; diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index ad5870a..3cd0a97 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -1,5 +1,5 @@ #include "Transcript.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters *P) { diff --git a/Transcriptome_geneCountsAddAlign.cpp b/Transcriptome_geneCountsAddAlign.cpp index d8ee9ac..7f33818 100644 --- a/Transcriptome_geneCountsAddAlign.cpp +++ b/Transcriptome_geneCountsAddAlign.cpp @@ -1,5 +1,5 @@ #include "Transcriptome.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignments from one read to gene counts if (nA>1) { diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 74934cb..92bc05e 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -1,6 +1,6 @@ #include "Transcriptome.h" #include "ReadAlign.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, uint32 *exLenCum1, uint16 exN1, Transcript &aT) { diff --git a/Variation.cpp b/Variation.cpp index d5e4e92..4f856f5 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -2,7 +2,7 @@ #include "streamFuns.h" #include "SequenceFuns.h" #include "TimeFunctions.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" Variation::Variation (Parameters* Pin) { diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 688d20a..00e4b3a 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -14,7 +14,7 @@ #include "genomeScanFastaFiles.h" #include "genomeSAindex.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" #include "streamFuns.h" char* globalG; diff --git a/insertSeqSA.cpp b/insertSeqSA.cpp index 9818677..5b0508a 100644 --- a/insertSeqSA.cpp +++ b/insertSeqSA.cpp @@ -6,7 +6,7 @@ #include "ErrorWarning.h" #include "SuffixArrayFuns.h" #include "SequenceFuns.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" #include "streamFuns.h" #include "binarySearch2.h" #include "funCompareUintAndSuffixes.h" diff --git a/loadGTF.cpp b/loadGTF.cpp index 12713ef..588196a 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -1,7 +1,7 @@ #include "IncludeDefine.h" #include "Parameters.h" #include "ErrorWarning.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" #include "SjdbClass.h" #include "streamFuns.h" #include "TimeFunctions.h" diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 2343e05..f6ed792 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -402,1335 +402,1306 @@ unsigned char parametersDefault[] = { 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, - 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, - 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, - 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, - 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, - 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, - 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, - 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, - 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, + 0x23, 0x23, 0x20, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, + 0x76, 0x61, 0x72, 0x56, 0x43, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, + 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, + 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, + 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, + 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, + 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, + 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, + 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, + 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, + 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, + 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, - 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, - 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, - 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, - 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, - 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, - 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, - 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, + 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, + 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, + 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, + 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, + 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, - 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, - 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, - 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, - 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, - 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, - 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, - 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, - 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, - 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, - 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, - 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, - 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, - 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, - 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, - 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, + 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, + 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, + 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, + 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, + 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, + 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, + 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, - 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, + 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, - 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, - 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, - 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, - 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, - 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, - 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, + 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, + 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, + 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, + 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, + 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, + 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, - 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, - 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, + 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, + 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, - 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, - 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, - 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, - 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, - 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, - 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, - 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, - 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, + 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, + 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, + 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, + 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, - 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, + 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, + 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, - 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, - 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, + 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, + 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, - 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, - 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, - 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, - 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, - 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, - 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, - 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, - 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, - 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, - 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, + 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, + 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, + 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, + 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, + 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, + 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, + 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, + 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, + 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, + 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, + 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, + 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, + 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, + 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, + 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, + 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, + 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, + 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, - 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, - 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, - 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, - 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, - 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, - 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, - 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, - 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, - 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, - 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, + 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, - 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, - 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, - 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, + 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, + 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, + 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, - 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, - 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, + 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, + 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, + 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, + 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, + 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, 0x61, + 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, + 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, + 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, - 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, - 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, - 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, - 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, - 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, - 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, - 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, - 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, - 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, - 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, + 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, + 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, + 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, - 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, - 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, + 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, + 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, + 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, + 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, + 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, + 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, - 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, + 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, + 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, + 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, @@ -1763,718 +1734,758 @@ unsigned char parametersDefault[] = { 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, - 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, - 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, - 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, + 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, - 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, + 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, + 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, - 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, - 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, + 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, + 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, - 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, - 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, - 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, + 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, + 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, + 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, + 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, - 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, - 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, - 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, + 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, + 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, - 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, + 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, + 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, + 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, + 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, + 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, + 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, - 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, + 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, + 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, + 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, + 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, + 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, + 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, + 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, + 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, + 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, + 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, - 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, + 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, + 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, - 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, + 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, + 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, - 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, + 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, + 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, + 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, - 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, + 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, + 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 29724; +unsigned int parametersDefault_len = 29855; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 2a7c59f..ac73834 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -42,7 +42,7 @@ inline int funCompareUint2 (const void *a, const void *b) { -int splitString(const std::string &s, char delim, std::vector &elems) { +inline int splitString(const std::string &s, char delim, std::vector &elems) { std::stringstream ss(s); std::string item; int maxL=0; @@ -116,4 +116,32 @@ inline int32 binarySearch1a(argType x, argType *X, int32 N) { return i1; }; +template +inline int32 binarySearch1b(argType x, argType *X, int32 N) +{ + //binary search in the sorted list + //check the boundaries first + //1b returns the first X element that is >= x + //X are all distinct + //if x>X[N-1], -1 is returned + + if (x>X[N-1]) { + return -1; + } else if (x<=X[0]) { + return 0; + }; + + int32 i1=0, i2=N-1, i3=N/2; + while (i2>i1+1) {//binary search + i3=(i1+i2)/2; + if (X[i3]>=x) { + i2=i3; + } else { + i1=i3; + }; + }; + + return i2; +}; + #endif diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 4628750..8d4539b 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -4,7 +4,7 @@ #include "ErrorWarning.h" #include "SuffixArrayFuns.h" #include "SequenceFuns.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" #include "IncludeDefine.h" #include "streamFuns.h" #include "binarySearch2.h" diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index a830ca8..cd8f90e 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -1,6 +1,6 @@ #include "sjdbPrepare.h" #include "ErrorWarning.h" -#include "serviceFuns.h" +#include "serviceFuns.cpp" void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string outDir, Genome & genome, char *Gsj) { uint *sjdbS=new uint [sjdbLoci.chr.size()]; From 202b5e86adb778b7823e49175c928ed37057074e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=B6ller?= Date: Wed, 8 Jun 2016 14:42:00 +0200 Subject: [PATCH 217/536] improved optics and clarity of error message --- genomeScanFastaFiles.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/genomeScanFastaFiles.cpp b/genomeScanFastaFiles.cpp index 1f8caec..1ba2a1b 100644 --- a/genomeScanFastaFiles.cpp +++ b/genomeScanFastaFiles.cpp @@ -31,8 +31,8 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta if (cc!='>') { ostringstream errOut; - errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <genomeFastaFiles.at(ii) << "is not fasta:"; - errOut << " the first character is " < .\n"; + errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <genomeFastaFiles.at(ii) << " is not fasta:"; + errOut << " the first character is '" <'.\n"; errOut << " Solution: check formatting of the fasta file. Make sure the file is uncompressed (unzipped).\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; while(!fileIn.eof()) {//read each file until eof From 4437809c267eab52288c892b8065ce3525787614 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 9 Jun 2016 13:06:01 -0400 Subject: [PATCH 218/536] Fixed a bug that could cause non-stable BAM sorting if the gcc qsort is unstable. --- BAMbinSortByCoordinate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index c312c88..0092b69 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -45,7 +45,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st }; //sort - qsort((void*) startPos, binN, sizeof(uint)*3, funCompareUint2); + qsort((void*) startPos, binN, sizeof(uint)*3, funCompareArrays); BGZF *bgzfBin; bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P->outBAMcompression)).c_str()); From e26c8e2651e947298c6c855a6295e37c4f67e292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=B6ller?= Date: Fri, 10 Jun 2016 17:26:01 +0200 Subject: [PATCH 219/536] Typo in loadGTF --- loadGTF.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loadGTF.cpp b/loadGTF.cpp index 76c236a..1f1a668 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -69,7 +69,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file { ostringstream errOut; errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << P->sjdbGTFfile <<"\n"; - errOut << "Solution: check the formatting of the GTF file, it must contain some lines woth ""exon"" in the 3rd column.\n"; + errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; errOut << " Make sure the GTF file is unzipped.\n"; errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); From 77f2b7f11b55880d6ab6813c74aed78289f47e3c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 15 Jun 2016 16:03:28 -0400 Subject: [PATCH 220/536] Fixed a bug with chimeric BAM output for --chimOutType WithinBAM option. --- ReadAlign_chimericDetection.cpp | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index b6e78b4..4d7c958 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -376,7 +376,7 @@ bool ReadAlign::chimericDetection() { }; - bamN+=alignBAM(trChim[itr], 1, 1, P->chrStart[trChim[itr].Chr], mateChr, mateStart, mateStrand, \ + bamN+=alignBAM(trChim[itr], 1, 1, P->chrStart[trChim[itr].Chr], mateChr, mateStart-P->chrStart[mateChr], mateStrand, \ alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1];//outBAMoneAlignNbytes[1] = 0 if SE is recorded }; diff --git a/VERSION b/VERSION index db1d5a3..855d9e2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.2a" +#define STAR_VERSION "STAR_2.5.2a_modified" From 1f0a95ff4b3bfd0132458ac27c82ea5616a32da4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 18 Aug 2016 17:13:03 -0400 Subject: [PATCH 221/536] Fixed a problem with --outSAMmultNmax 1 not working for transcriptomic output. --- ReadAlign_outputAlignments.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 60c7832..a6c507a 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -224,7 +224,7 @@ void ReadAlign::outputAlignments() { if ( P->quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused - quantTranscriptome(chunkTr, nTr, trMult, alignTrAll); + quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll); }; }; }; From 6d27bedba141995ba4ff1dbccd92b6c94c469a2d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 18 Aug 2016 17:32:05 -0400 Subject: [PATCH 222/536] Getting ready for 2.5.2b --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 855d9e2..641fb03 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.2a_modified" +#define STAR_VERSION "STAR_2.5.2b" From a8c111b63e9f48739f08bbd918209529c225e870 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 19 Aug 2016 17:24:18 -0400 Subject: [PATCH 223/536] Merged 2.5.2b master into var --- IncludeDefine.h | 1 - Parameters.cpp | 4 ++-- ReadAlign_alignBAM.cpp | 2 +- Transcript_variationAdjust.cpp | 8 ++++++-- sjdbInsertJunctions.cpp | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index bd9aab1..1bcdf16 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -72,7 +72,6 @@ typedef uint8_t uint8; //SAM attributes -#define ATTR_Nmax 9 #define ATTR_NH 1 #define ATTR_HI 2 #define ATTR_AS 3 diff --git a/Parameters.cpp b/Parameters.cpp index 83ddaae..41d6c03 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -860,10 +860,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.jI=true; } else if (vAttr1.at(ii)== "vT") { outSAMattrOrder.push_back(ATTR_vT); - outSAMattrPresent.jI=true; + outSAMattrPresent.vT=true; } else if (vAttr1.at(ii)== "vL") { outSAMattrOrder.push_back(ATTR_vL); - outSAMattrPresent.jI=true; + outSAMattrPresent.vL=true; } else if (vAttr1.at(ii)== "RG") { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 89dc68e..0e1fd73 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -376,7 +376,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint default: ostringstream errOut; - errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<inOut->logMain, EXIT_CODE_PARAMETER, *P); }; diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index 3cd0a97..f356250 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -16,7 +16,7 @@ int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, { //binary search to find nearest SNP int32 isnp=binarySearch1b (exons[ie][EX_G], Var.snp.loci, Var.snp.N); - if (isnp>0) + if (isnp>=0) { while (isnpVar.snp.loci[isnp]) {//these SNPs overlap the block @@ -48,6 +48,7 @@ int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, }; }; + #ifndef VAR_noScoreCorrection if (nMM1>0) {//one or more mismtaches need to be corrected uint nMMold=nMM; @@ -56,6 +57,9 @@ int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, nMatch+=nMM1; dScore=2*(nMMold-nMM);//score only changes if the number of mismatches is reduced after SNP adjustment }; - + #else + #warning VAR_noScoreCorrection set: no variation scroe correction + #endif + return dScore; }; diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 39bea37..201a0f2 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -55,7 +55,7 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC }; }; - char *Gsj=new char [2*P->sjdbLength*sjdbLoci.chr.size()+1];//array to store junction sequences, will be filled in sjdbPrepare + char *Gsj=new char [2*P->sjdbLength*sjdbLoci.chr.size()*(P->var.yes ? 2:1)+1];//array to store junction sequences, will be filled in sjdbPrepare sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome, Gsj);//P->nGenome - change when replacing junctions time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" < Date: Thu, 25 Aug 2016 18:02:20 -0400 Subject: [PATCH 224/536] Implemented --bamRemoveDuplicatesType UniqueIdenticalNotMulti option, which (unlike the UniqueIdentical optipon) will NOT mark multi-mappers as duplicates. For --bamRemoveDuplicatesType UniqueIdentical, the unmmapped reads are no longer marked as duplicates. --- Parameters.cpp | 25 +- Parameters.h | 13 +- bamRemoveDuplicates.cpp | 37 +- parametersDefault | 5 +- parametersDefault.xxd | 2165 ++++++++++++++++++++------------------- 5 files changed, 1150 insertions(+), 1095 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index db3da87..38634be 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -56,8 +56,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "inputBAMfile", &inputBAMfile)); //BAM processing - parArray.push_back(new ParameterInfoScalar (-1, -1, "bamRemoveDuplicatesType", &bamRemoveDuplicatesType)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "bamRemoveDuplicatesMate2basesN", &bamRemoveDuplicatesMate2basesN)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "bamRemoveDuplicatesType", &removeDuplicates.mode)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "bamRemoveDuplicatesMate2basesN", &removeDuplicates.mate2basesN)); //limits parArray.push_back(new ParameterInfoScalar (-1, -1, "limitGenomeGenerateRAM", &limitGenomeGenerateRAM)); @@ -494,6 +494,24 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + + //remove duplicates parameters + if (removeDuplicates.mode=="UniqueIdentical") + { + removeDuplicates.yes=true; + removeDuplicates.markMulti=true; + } else if (removeDuplicates.mode=="UniqueIdenticalNotMulti") + { + removeDuplicates.yes=true; + removeDuplicates.markMulti=false; + } else if (removeDuplicates.mode!="-") + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --bamRemoveDuplicatesType="<logMain, EXIT_CODE_PARAMETER, *this); + }; + if (runMode=="alignReads") { inOut->logProgress.open((outFileNamePrefix + "Log.progress.out").c_str()); } else if (runMode=="inputAlignmentsFromBAM") { @@ -505,7 +523,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters signalFromBAM(inputBAMfile, wigOutFileNamePrefix, *this); *inOut->logStdOut << timeMonthDayTime() << " ..... done\n" <logMain << timeMonthDayTime() << " ..... done\n" <logStdOut << timeMonthDayTime() << " ..... reading from BAM, remove duplicates, output BAM\n" <logMain << timeMonthDayTime() << " ..... reading from BAM, remove duplicates, output BAM\n" <logMain, EXIT_CODE_PARAMETER, *this); }; }; + //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" <bamRemoveDuplicatesMate2basesN; + g_bamRemoveDuplicatesMate2basesN=P->removeDuplicates.mate2basesN; bam1_t *bamA; bamA=bam_init1(); @@ -163,13 +163,32 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, }; }; - uint32* bamP=(uint32*) (bamRaw+bamE);//pointer to the 1st mate of the pair - bamP[4] |= (0x400<<16);//mark all aligns as duplicate, will unmark - uint32 chrE=bamP[1]; - uint32 leftE=bamP[2]; - uint32 rightE=bamP[7]; + int nMult=0; + uint32 chrE=0; + uint32 leftE=0; + uint32 rightE=0; + uint32 chrS=0; + + if (!bamFileEnd) + { + uint32* bamP=(uint32*) (bamRaw+bamE);//pointer to the 1st mate of the pair + + bamA->data=((uint8_t*) bamP)+9*4+((bamP[3]<<24)>>24)+((bamP[4]<<16)>>16)*4+(bamP[5]+1)/2+bamP[5];//add length for: core, name, cigar, seq, qual + bamA->l_data=((uint8_t*) bamP)+bamP[0]+1-bamA->data; + + nMult=bam_aux2i(bam_aux_get(bamA,"NH")); + + if (nMult==1 || (nMult>1 && P->removeDuplicates.markMulti)) + { + bamP[4] |= (0x400<<16);//mark all aligns as duplicate, will unmark. If multimappers, onyl mark if markMult=true + }; + + chrE=bamP[1]; + leftE=bamP[2]; + rightE=bamP[7]; - uint32 chrS=*(uint32*)(bamRaw+bamS+4*1); + chrS=*(uint32*)(bamRaw+bamS+4*1); + }; if ( chrE !=chrS || (rightMax>0 && leftE>rightMax) || bamFileEnd ) {//found new group of reads to be processed, start collapsing procedure qsort((void*) aD, grN, sizeof(uint), funCompareNames); @@ -205,10 +224,6 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, grN=0; }; - bamA->data=((uint8_t*) bamP)+9*4+((bamP[3]<<24)>>24)+((bamP[4]<<16)>>16)*4+(bamP[5]+1)/2+bamP[5];//add length for: core, name, cigar, seq, qual - bamA->l_data=((uint8_t*) bamP)+bamP[0]+1-bamA->data; - int nMult=bam_aux2i(bam_aux_get(bamA,"NH")); - if (nMult==1) {//record this alignment in the current group, unique mappers only. Multi-mappers will not be considered for collapsing, and will remain marked as duplicates if (grN>=grNmax) {//reallocate grNmax=grN*2; diff --git a/parametersDefault b/parametersDefault index 0c3eb4b..e109e41 100644 --- a/parametersDefault +++ b/parametersDefault @@ -291,8 +291,9 @@ outBAMsortingThreadN 0 bamRemoveDuplicatesType - string: mark duplicates in the BAM file, for now only works with sorted BAM feeded with inputBAMfile - - ... no duplicate removal/marking - UniqueIdentical ... mark all multimappers, and duplicate unique mappers. The coordinates, FLAG, CIGAR must be identical + - ... no duplicate removal/marking + UniqueIdentical ... mark all multimappers, and duplicate unique mappers. The coordinates, FLAG, CIGAR must be identical + UniqueIdenticalNotMulti ... mark duplicate unique mappers but not multimappers. bamRemoveDuplicatesMate2basesN 0 int>0: number of bases from the 5' of mate 2 to use in collapsing (e.g. for RAMPAGE) diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 2343e05..54d6c11 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1329,368 +1329,418 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x0a, 0x62, - 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, - 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, - 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, - 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, + 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, + 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, + 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, + 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, + 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, - 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, - 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, + 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, + 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, + 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, + 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, - 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, - 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, - 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, + 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, + 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, + 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, - 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, + 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, @@ -1723,758 +1773,719 @@ unsigned char parametersDefault[] = { 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, - 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, - 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, - 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, - 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, - 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, - 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, + 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, - 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, - 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, + 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, + 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, - 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, - 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, + 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, + 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, - 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, + 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, - 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, + 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, + 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, + 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, + 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, - 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, + 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, + 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, - 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, + 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, + 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, + 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, + 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, + 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, - 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, + 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, - 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, - 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, + 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, + 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, + 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, - 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, + 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, + 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, + 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, - 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, - 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, + 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, + 0x0a }; -unsigned int parametersDefault_len = 29724; +unsigned int parametersDefault_len = 29845; From b913fbe4263734eacc4613817f590ff28f337606 Mon Sep 17 00:00:00 2001 From: Dmitry Bolotin Date: Thu, 6 Oct 2016 18:52:42 +0300 Subject: [PATCH 225/536] Update genomeGenerate.cpp --- genomeGenerate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 00e4b3a..9c43c62 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -183,7 +183,7 @@ void genomeGenerate(Parameters *P) { if (P->limitGenomeGenerateRAM < (nG1alloc+nG1alloc/3)) {//allocate nG1alloc/3 for SA generation ostringstream errOut; errOut <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM="<< (P->limitGenomeGenerateRAM) <<"is too small for your genome\n"; - errOut <<"SOLUTION: please specify limitGenomeGenerateRAM not less than"<< nG1alloc+nG1alloc/3 <<" and make that much RAM available \n"; + errOut <<"SOLUTION: please specify --limitGenomeGenerateRAM not less than "<< nG1alloc+nG1alloc/3 <<" and make that much RAM available \n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; From 9bc40a4b8f317a8dc23914c06af4fa711da5cd5d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 28 Oct 2016 16:45:49 -0400 Subject: [PATCH 226/536] Fixed a problem with RNEXT field in the Chimeric.out.sam file: RNEXT now always points to the other mate start. --- ReadAlign_chimericDetection.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 4d7c958..d190023 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -409,10 +409,26 @@ bool ReadAlign::chimericDetection() { }; - for (uint iTr=0;iTrreadNmates==2) { - outputTranscriptSAM(trChim[iTr], chimN, iTr, trChim[1-iTr].Chr, trChim[1-iTr].exons[0][EX_G], (int) (trChim[1-iTr].Str!=trChim[1-iTr].exons[0][EX_iFrag]), -1, NULL, &chunkOutChimSAM); - } else { + for (uint iTr=0;iTrreadNmates==2) {//PE: need mate info + uint iex=0; + if ( trChim[1-iTr].exons[0][EX_iFrag] != trChim[1-iTr].exons[trChim[1-iTr].nExons][EX_iFrag] ) + {//the other segment has 2 mates, need to find the opposite mate + for (;iex Date: Wed, 16 Nov 2016 18:12:51 -0500 Subject: [PATCH 227/536] Implemented --chimMainSegmentMultNmax parameters, which may be used to prohibit chimeric alignments with multimapping main segments to reduce false positive chimeras. Implemented new SAM attribute 'ch' to mark chimeric aligmments in the BAM file for --chimOutType WithinBAM option. --- IncludeDefine.h | 3 +- Parameters.cpp | 14 +- Parameters.h | 3 +- ReadAlign_alignBAM.cpp | 6 + ReadAlign_chimericDetection.cpp | 56 +- ReadAlign_multMapSelect.cpp | 5 +- ReadAlign_outputTranscriptSAM.cpp | 3 + parametersDefault | 7 +- parametersDefault.xxd | 2925 +++++++++++++++-------------- 9 files changed, 1544 insertions(+), 1478 deletions(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index 47a8d53..3835e7b 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -72,7 +72,6 @@ typedef uint8_t uint8; //SAM attributes -#define ATTR_Nmax 9 #define ATTR_NH 1 #define ATTR_HI 2 #define ATTR_AS 3 @@ -83,7 +82,7 @@ typedef uint8_t uint8; #define ATTR_jI 8 #define ATTR_XS 9 #define ATTR_RG 10 - +#define ATTR_ch 11 //BAM definitions #define BAM_CIGAR_MaxSize 10000 diff --git a/Parameters.cpp b/Parameters.cpp index 38634be..90eb2bf 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -195,6 +195,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreDropMax", &chimScoreDropMax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreSeparation", &chimScoreSeparation)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMainSegmentMultNmax", &chimMainSegmentMultNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimOutType", &chimOutType)); parArray.push_back(new ParameterInfoVector (-1, -1, "chimFilter", &chimFilter)); @@ -811,8 +812,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //outSAMattributes - - outSAMattrPresent.NH=false;//TODO re-write as class with constructor? outSAMattrPresent.HI=false; outSAMattrPresent.AS=false; @@ -823,18 +822,19 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.jI=false; outSAMattrPresent.RG=false; outSAMattrPresent.XS=false; + outSAMattrPresent.ch=false; //for quant SAM output only NH and HI flags outSAMattrPresentQuant=outSAMattrPresent; - outSAMattrPresent.NH=true; - outSAMattrPresent.NH=true; + outSAMattrPresentQuant.NH=true; + outSAMattrPresentQuant.HI=true; outSAMattrOrderQuant.push_back(ATTR_NH); outSAMattrOrderQuant.push_back(ATTR_HI); vector vAttr1; if (outSAMattributes.at(0)=="None") { } else if (outSAMattributes.at(0)=="All"){ - vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI"}; + vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI","ch"}; } else if (outSAMattributes.at(0)=="Standard"){ vAttr1={"NH","HI","AS","nM"}; } else { @@ -870,6 +870,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); outSAMattrPresent.RG=true; + } else if (vAttr1.at(ii)== "ch") { + outSAMattrOrder.push_back(ATTR_ch); + outSAMattrOrderQuant.push_back(ATTR_ch); + outSAMattrPresent.ch=true; } else if (vAttr1.at(ii)== "XS") { outSAMattrOrder.push_back(ATTR_XS); outSAMattrPresent.XS=true; diff --git a/Parameters.h b/Parameters.h index a60c7db..42ec267 100644 --- a/Parameters.h +++ b/Parameters.h @@ -130,7 +130,7 @@ class Parameters { uint outSAMmultNmax,outSAMattrIHstart; string outSAMheaderCommentFile; int outSAMmapqUnique; - struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS;} outSAMattrPresent, outSAMattrPresentQuant; + struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS,ch;} outSAMattrPresent, outSAMattrPresentQuant; vector outSAMattrOrder, outSAMattrOrderQuant; int outBAMcompression; vector outSAMtype; @@ -300,6 +300,7 @@ class Parameters { uint chimSegmentMin, chimJunctionOverhangMin; //min chimeric donor/acceptor length uint chimSegmentReadGapMax; //max read gap for stitching chimeric windows int chimScoreMin,chimScoreDropMax,chimScoreSeparation, chimScoreJunctionNonGTAG; //min chimeric score + uint chimMainSegmentMultNmax; string chimOutType; vector chimFilter; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index ad6e644..c82d63b 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -361,6 +361,12 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint case ATTR_RG: attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); break; + case ATTR_ch: + if (alignType<=-10) + {//chimeric alignment + attrN+=bamAttrArrayWrite('1',"ch",attrOutArray+attrN); + }; + break; default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<chimMainSegmentMultNmax) +// {//check main segment for multi-aligns +// if (nTr!=2) +// { +// return chimRecord;//false +// }; +// //special degenerate case: nTr=2 +// if (P->readNmates==2) +// {//PE +// uint f00=trMult[0]->exons[0][EX_iFrag]; +// uint f01=trMult[0]->exons[trMult[0]->nExons][EX_iFrag]; +// uint f10=trMult[1]->exons[0][EX_iFrag]; +// uint f11=trMult[1]->exons[trMult[1]->nExons][EX_iFrag]; +// +// if (f00==f10 || f00==f11 || f01==f10 || f01==f11) +// {//only allow this case if the two alignments reside on different mates +// return chimRecord; +// }; +// } else +// {//SE +// +// }; +// }; + + if (nTr>P->chimMainSegmentMultNmax && nTr!=2) + {//multimapping main segment, nTr==2 is a secial case to be checked later + return chimRecord; + }; + if (P->chimSegmentMin>0 && trBest->rLength >= P->chimSegmentMin \ && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P->chimSegmentMin <= Lread \ || trBest->exons[0][EX_R] >= P->chimSegmentMin ) \ @@ -44,7 +73,7 @@ bool ReadAlign::chimericDetection() { //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif int chimScoreBest=0,chimScoreNext=0; trChim[0]=*trBest; - + Transcript* trChim1=NULL; uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; @@ -108,6 +137,7 @@ bool ReadAlign::chimericDetection() { if (chimScore > chimScoreBest && chimScore >= P->chimScoreMin && chimScore+P->chimScoreDropMax >= (int) (readLength[0]+readLength[1]) ) { trChim[1]=*trAll[iW][iWt]; + trChim1=trAll[iW][iWt]; if (overlap1==0) { chimScoreNext=chimScoreBest; @@ -121,13 +151,23 @@ bool ReadAlign::chimericDetection() { }; }; };//cycle over window transcripts - };//cyecl over windows + };//cycle over windows + + if (nTr>P->chimMainSegmentMultNmax) + {//check main segment for multi-aligns + //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment + if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) + { + return chimRecord; + }; + }; + if (chimStr==0) chimStr=chimStrBest; chimN=0; if (chimScoreNext + P->chimScoreSeparation < chimScoreBest) {//report only if chimera is unique - + if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; @@ -352,11 +392,11 @@ bool ReadAlign::chimericDetection() { mateChr=trChim[1-itr].Chr; mateStart=trChim[1-itr].exons[0][EX_G]; mateStrand=(uint8_t) (trChim[1-itr].Str!=trChim[1-itr].exons[0][EX_iFrag]); - alignType=-1; + alignType=-10; } else {//spanning chimeric alignment, could be PE or SE mateChr=-1;mateStart=-1;mateStrand=0;//no need fot mate info unless this is the supplementary alignment if (chimRepresent==(int)itr) { - alignType=-1; //this is representative part of chimeric alignment, record is as normal; if encompassing chimeric junction, both are recorded as normal + alignType=-10; //this is representative part of chimeric alignment, record is as normal; if encompassing chimeric junction, both are recorded as normal bamIrepr=( (itr%2)==(trChim[itr].Str) && chimType!=3) ? bamN+1 : bamN;//this is the mate that is chimerically split } else {//"supplementary" chimeric segment alignType=( (itr%2)==(trChim[itr].Str) ) ? -12 : -11; //right:left chimeric junction @@ -376,7 +416,7 @@ bool ReadAlign::chimericDetection() { }; - bamN+=alignBAM(trChim[itr], 1, 1, P->chrStart[trChim[itr].Chr], mateChr, mateStart-P->chrStart[mateChr], mateStrand, \ + bamN+=alignBAM(trChim[itr], 1, 0, P->chrStart[trChim[itr].Chr], mateChr, mateStart-P->chrStart[mateChr], mateStrand, \ alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1];//outBAMoneAlignNbytes[1] = 0 if SE is recorded }; @@ -413,9 +453,9 @@ bool ReadAlign::chimericDetection() { {//write all chimeric pieces to Chimeric.out.sam/junction if (P->readNmates==2) {//PE: need mate info uint iex=0; - if ( trChim[1-iTr].exons[0][EX_iFrag] != trChim[1-iTr].exons[trChim[1-iTr].nExons][EX_iFrag] ) + if ( trChim[1-iTr].exons[0][EX_iFrag] != trChim[1-iTr].exons[trChim[1-iTr].nExons-1][EX_iFrag] ) {//the other segment has 2 mates, need to find the opposite mate - for (;iexinOut->logMain, EXIT_CODE_BUG, *P); }; - bool chimRecord = false; - nTr=0; for (uint iW=0; iWmaxScore + P->outFilterMultimapScoreRange) >= maxScore ) || \ - ( chimRecord && trAll[iW][iTr]->iFrag>=0 && (trAll[iW][iTr]->maxScore + P->outFilterMultimapScoreRange) >=maxScoreMate[trAll[iW][iTr]->iFrag] ) ) {//record this alignment + if ( (trAll[iW][iTr]->maxScore + P->outFilterMultimapScoreRange) >= maxScore ) {//record this alignment // if paired-end, record alignments from ALL windows if (nTr==MAX_N_MULTMAP) {//too many alignments for this read, do not record it ostringstream errOut; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index e2e14bf..180b29d 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -305,6 +305,9 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i case ATTR_RG: *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); break; + case ATTR_ch: + //do nothing - this attribute only worlks for BAM output + break; default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<outSAMattrOrder[ii] <<"\n"; diff --git a/parametersDefault b/parametersDefault index e109e41..47ee012 100644 --- a/parametersDefault +++ b/parametersDefault @@ -215,9 +215,9 @@ outSAMstrandField None outSAMattributes Standard string: a string of desired SAM attributes, in the order desired for the output SAM - NH HI AS nM NM MD jM jI XS ... any combination in any order + NH HI AS nM NM MD jM jI XS ch ... any combination in any order Standard ... NH HI AS nM - All ... NH HI AS nM NM MD jM jI + All ... NH HI AS nM NM MD jM jI ch None ... no attributes outSAMattrIHstart 1 @@ -555,6 +555,9 @@ chimFilter banGenomicN None ... no filtering banGenomicN ... Ns are not allowed in the genome sequence around the chimeric junction +chimMainSegmentMultNmax 10 + int>=1: maximum number of multi-alignments for the main chimeric segment. =1 will prohibit multimapping main segments. + ### Quantification of Annotations quantMode - string(s): types of quantification requested diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 54d6c11..3182cab 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -956,1078 +956,794 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, - 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, + 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, + 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, - 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, + 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, - 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, - 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, + 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, - 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, - 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, - 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, + 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, + 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, + 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, + 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, - 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, - 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, - 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, - 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, - 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, - 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, - 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, - 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, - 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, - 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, - 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, - 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, - 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, - 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, - 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, - 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, - 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, - 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, - 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, - 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, - 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, - 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, - 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, - 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, - 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, + 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, + 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, + 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, + 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, - 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, - 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, - 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, - 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, + 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, + 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, + 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, + 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, + 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, + 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, + 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, + 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, + 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, + 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, + 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, + 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, + 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, + 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, + 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, + 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, + 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, - 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, + 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, + 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, + 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, + 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, + 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, - 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, - 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, + 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, - 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, - 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, - 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, - 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, - 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, - 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, - 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, - 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, - 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, + 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, + 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, + 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, + 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, + 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, + 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, + 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, + 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, + 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, - 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, - 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, - 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, + 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, + 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, + 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, + 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, + 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, - 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, - 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, - 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, - 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, - 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, - 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, - 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, - 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, - 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, - 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, - 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, - 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, - 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, - 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, @@ -2036,456 +1752,753 @@ unsigned char parametersDefault[] = { 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, - 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, - 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, + 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, + 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, + 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, + 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, + 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, + 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, + 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, + 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, - 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, - 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, - 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, + 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, + 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, + 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, + 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, + 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, + 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, + 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, + 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, + 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, + 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, + 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, + 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, - 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, - 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, - 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, - 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, - 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, - 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, - 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, - 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, - 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, - 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, - 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, - 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, + 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, + 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, + 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, + 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, + 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, + 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, + 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, + 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, + 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, + 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, + 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, + 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, - 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, - 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, - 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, - 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, + 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, + 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, - 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, - 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, - 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, - 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, - 0x0a + 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 29845; +unsigned int parametersDefault_len = 30009; From f0d12f0f5295263b5d0bb459416d5cd11f368451 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 23 Nov 2016 16:04:47 -0500 Subject: [PATCH 228/536] Implemented --chimOutType HardClip OR SoftClip options to output hard (default) / soft clipping in the BAM CIGAR for supplementary chimeric alignments. Implemented extra references input in the SAM/AM header from user-created extraReferences.txt file in the genome directory. --- BAMbinSortByCoordinate.cpp | 2 +- BAMbinSortUnmapped.cpp | 2 +- Parameters.cpp | 93 +++++-- Parameters.h | 13 +- ReadAlign_alignBAM.cpp | 8 +- ReadAlign_chimericDetection.cpp | 6 +- ReadAlign_outputAlignments.cpp | 2 +- STAR.cpp | 26 +- parametersDefault | 6 +- parametersDefault.xxd | 461 +++++++++++++++++--------------- 10 files changed, 359 insertions(+), 260 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index 0092b69..a617064 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -49,7 +49,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st BGZF *bgzfBin; bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P->outBAMcompression)).c_str()); - outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrName,P->chrLength); + outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrNameAll,P->chrLengthAll); //send ordered aligns to bgzf one-by-one for (uint ia=0;iaoutBAMcompression)).c_str()); - outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrName,P->chrLength); + outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrNameAll,P->chrLengthAll); vector bamInFile; diff --git a/Parameters.cpp b/Parameters.cpp index 90eb2bf..d04ee10 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -197,7 +197,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMainSegmentMultNmax", &chimMainSegmentMultNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimOutType", &chimOutType)); + parArray.push_back(new ParameterInfoVector (-1, -1, "chimOutType", &chim.out.type)); parArray.push_back(new ParameterInfoVector (-1, -1, "chimFilter", &chimFilter)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentReadGapMax", &chimSegmentReadGapMax)); @@ -905,10 +905,72 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters inOut->logMain << "WARNING --outSAMstrandField=intronMotif, therefore STAR will output XS attribute" <logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (chim.out.bam && !outBAMunsorted && !outBAMcoord) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; + errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (chim.out.bam && !outSAMattrPresent.NM) { outSAMattrOrder.push_back(ATTR_NM); inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <1) + { + if (chim.out.type.at(1)=="HardClip") + { + chim.out.bamHardClip=true; + } else if (chim.out.type.at(1)=="SoftClip") + { + chim.out.bamHardClip=false; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for the 2nd word of --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + }; + + chim.filter.genomicN=false; + for (uint ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); + }; + }; + alignEndsType.ext[0][0]=false; alignEndsType.ext[0][1]=false; @@ -1114,33 +1176,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters inOut->logMain<<"WARNING: --limitBAMsortRAM=0, will use genome size as RAM limit for BAM sorting\n"; }; - if (chimOutType=="WithinBAM" && !outBAMunsorted && !outBAMcoord) { - ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; - errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - - //chimeric - chimPar.filter.genomicN=false; - for (uint ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); - }; - }; - for (uint ii=0; ii chrStart, chrLength; + vector chrStart, chrLength, chrLengthAll; string genomeDir,genomeLoad; vector genomeFastaFiles; uint genomeSAsparseD;//sparsity=distance between indices @@ -301,7 +301,6 @@ class Parameters { uint chimSegmentReadGapMax; //max read gap for stitching chimeric windows int chimScoreMin,chimScoreDropMax,chimScoreSeparation, chimScoreJunctionNonGTAG; //min chimeric score uint chimMainSegmentMultNmax; - string chimOutType; vector chimFilter; struct @@ -310,7 +309,13 @@ class Parameters { { bool genomicN; } filter; - } chimPar; + struct + { + vector type; + bool bam; + bool bamHardClip; + } out; + } chim; //splitting char Qsplit; @@ -328,7 +333,7 @@ class Parameters { uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass uint nSAi; //size of the SAindex - vector chrName; + vector chrName, chrNameAll; map chrNameIndex; unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index c82d63b..13208ef 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -128,8 +128,10 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint //alignType>=0: unmapped reads // -1: normal mapped reads - // -11: chimeric alignment, chimeric junction on the left - // -12: chimeric alignment, chimeric junction on the right + // -10: chimeric alignment, not supplemental (like -11,-12,-13) + // -11: chimeric alignment, supplemental, hard-clipping, chimeric junction on the left + // -12: chimeric alignment, supplemental, hard-clipping, chimeric junction on the right + // -13: chimeric alignment, supplemental, soft-clipping if (P->outSAMmode=="None") return 0; //no SAM/BAM output @@ -228,7 +230,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (readFilter=='Y') samFLAG+=0x200; //not passing quality control - if (alignType==-11 || alignType==-12) { + if (alignType==-11 || alignType==-12 || alignType==-13) { samFLAG+=0x800; //mark chimeric alignments } else {//only non-chimeric alignments will be marked as non-primary, since chimeric are already marked with 0x800 if (!trOut.primaryFlag) samFLAG +=0x100;//mark not primary align diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index a61e485..8864aed 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -223,7 +223,7 @@ bool ReadAlign::chimericDetection() { if (b1<4) b1=3-b1; }; - if ( ( P->chimPar.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read + if ( ( P->chim.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read chimN=0; break; }; @@ -382,7 +382,7 @@ bool ReadAlign::chimericDetection() { trChim[1-chimRepresent].primaryFlag=false; }; - if (P->chimOutType=="WithinBAM") {//BAM output + if (P->chim.out.bam) {//BAM output int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering uint mateChr,mateStart; @@ -399,7 +399,7 @@ bool ReadAlign::chimericDetection() { alignType=-10; //this is representative part of chimeric alignment, record is as normal; if encompassing chimeric junction, both are recorded as normal bamIrepr=( (itr%2)==(trChim[itr].Str) && chimType!=3) ? bamN+1 : bamN;//this is the mate that is chimerically split } else {//"supplementary" chimeric segment - alignType=( (itr%2)==(trChim[itr].Str) ) ? -12 : -11; //right:left chimeric junction + alignType=P->chim.out.bamHardClip ? ( ( itr%2==trChim[itr].Str ) ? -12 : -11) : -13 ; //right:left chimeric junction bamIsuppl=bamN; if (chimType==1) {//PE alignment, need mate info for the suppl uint iex=0; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index a6c507a..8c0e8a9 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -13,7 +13,7 @@ void ReadAlign::outputAlignments() { if ( chimericDetection() ) { statsRA.chimericAll++; - if ( P->chimOutType=="WithinBAM" ) + if ( P->chim.out.bam) { //if chimeric alignment was recorded in main BAM files, it contains the representative portion, so non-chimeric aligmnent is not output return; diff --git a/STAR.cpp b/STAR.cpp index 32edc46..3167cee 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -192,6 +192,29 @@ int main(int argInN, char* argIn[]) { samHeaderStream << "@SQ\tSN:"<< P->chrName.at(ii) <<"\tLN:"<chrLength[ii]<<"\n"; }; + P->chrNameAll=P->chrName; + P->chrLengthAll=P->chrLength; + {//add exra references + ifstream extrastream (P->genomeDir + "/extraReferences.txt"); + while (extrastream.good()) { + string line1; + getline(extrastream,line1); + istringstream stream1 (line1); + string field1; + stream1 >> field1;//should check for @SQ + + if (field1!="") {//skip blank lines + samHeaderStream << line1 <<"\n"; + + stream1 >> field1; + P->chrNameAll.push_back(field1.substr(3)); + stream1 >> field1; + P->chrLengthAll.push_back((uint) stoll(field1.substr(3))); + }; + }; + extrastream.close(); + }; + if (P->outSAMheaderPG.at(0)!="-") { samHeaderStream << P->outSAMheaderPG.at(0); for (uint ii=1;iioutSAMheaderPG.size(); ii++) { @@ -211,6 +234,7 @@ int main(int argInN, char* argIn[]) { samHeaderStream << line1 <<"\n"; }; }; + comstream.close(); }; @@ -238,7 +262,7 @@ int main(int argInN, char* argIn[]) { *P->inOut->outSAM << P->samHeader; }; if (P->outBAMunsorted){ - outBAMwriteHeader(P->inOut->outBAMfileUnsorted,P->samHeader,P->chrName,P->chrLength); + outBAMwriteHeader(P->inOut->outBAMfileUnsorted,P->samHeader,P->chrNameAll,P->chrLengthAll); }; // if (P->outBAMcoord){ // outBAMwriteHeader(P->inOut->outBAMfileCoord,P->samHeader,P->chrName,P->chrLength); diff --git a/parametersDefault b/parametersDefault index 47ee012..811cb34 100644 --- a/parametersDefault +++ b/parametersDefault @@ -525,9 +525,13 @@ winReadCoverageBasesMin 0 ### Chimeric Alignments chimOutType SeparateSAMold - string: type of chimeric output + string(s): type of chimeric output + 1st word: SeparateSAMold ... output old SAM into separate Chimeric.out.sam file WithinBAM ... output into main aligned BAM files (Aligned.*.bam) + 2nd word: + WithinBAM HardClip ... hard-clipping in the CIGAR for supplemental chimeric alignments (defaultif no 2nd word is present) + WithinBAM SoftClip ... soft-clipping in the CIGAR for supplemental chimeric alignments chimSegmentMin 0 int>=0: minimum length of chimeric segment length, if ==0, no chimeric output diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 3182cab..caa8fba 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2275,230 +2275,259 @@ unsigned char parametersDefault[] = { 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, - 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, - 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, - 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, - 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, - 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, - 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, + 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, + 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, + 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, + 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, + 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, - 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, - 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, - 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, - 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, + 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, + 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, + 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, + 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, - 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, + 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, + 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, + 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 30009; +unsigned int parametersDefault_len = 30355; From 8982921210ae25cc01f04a102aa0e8a2ca030516 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 21 Dec 2016 16:18:15 -0500 Subject: [PATCH 229/536] Implemented --alignReads liftOver and --genomeChainFiles options for lifting over annotatins GTF using chainf files. --- Makefile | 2 +- Parameters.cpp | 1 + Parameters.h | 2 +- STAR.cpp | 21 +- parametersDefault | 4 + parametersDefault.xxd | 4570 +++++++++++++++++++++-------------------- 6 files changed, 2320 insertions(+), 2280 deletions(-) diff --git a/Makefile b/Makefile index 435000b..1de3982 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS) ########################################################################################################## -OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ +OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Chain.o Stats.o \ Transcript.o Transcript_alignScore.o \ ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ ReadAlignChunk.o ReadAlignChunk_processChunks.o ReadAlignChunk_mapChunk.o \ diff --git a/Parameters.cpp b/Parameters.cpp index d04ee10..1265620 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -39,6 +39,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeDir", &genomeDir)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeLoad", &genomeLoad)); parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFastaFiles", &genomeFastaFiles)); + parArray.push_back(new ParameterInfoVector (-1, -1, "genomeChainFiles", &genomeChainFiles)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAindexNbases", &genomeSAindexNbases)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeChrBinNbits", &genomeChrBinNbits)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &genomeSAsparseD)); diff --git a/Parameters.h b/Parameters.h index e4dd92d..afaed83 100644 --- a/Parameters.h +++ b/Parameters.h @@ -40,7 +40,7 @@ class Parameters { //genome, SA, ... vector chrStart, chrLength, chrLengthAll; string genomeDir,genomeLoad; - vector genomeFastaFiles; + vector genomeFastaFiles, genomeChainFiles; uint genomeSAsparseD;//sparsity=distance between indices uint genomeInsertL; //total length of the sequence to be inserted on the fly uint genomeInsertChrIndFirst; //index of the first inserted chromosome diff --git a/STAR.cpp b/STAR.cpp index 3167cee..7a8712c 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -5,6 +5,7 @@ #include "Parameters.h" #include "SequenceFuns.h" #include "Genome.h" +#include "Chain.h" #include "ReadAlignChunk.h" #include "ReadAlign.h" #include "Stats.h" @@ -59,18 +60,32 @@ int main(int argInN, char* argIn[]) { *(P->inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... started STAR run\n" <runMode=="genomeGenerate") { + if (P->runMode=="alignReads") + {//continue + } else if (P->runMode=="genomeGenerate") + { genomeGenerate(P); (void) sysRemoveDir (P->outFileTmp); P->inOut->logMain << "DONE: Genome generation, EXITING\n" << flush; exit(0); - } else if (P->runMode!="alignReads") { + } else if (P->runMode=="liftOver") + { + for (uint ii=0; iigenomeChainFiles.size();ii++) + { + Chain chain(P,P->genomeChainFiles.at(ii)); + chain.liftOverGTF(P->sjdbGTFfile,P->outFileNamePrefix+"GTFliftOver_"+to_string(ii+1)+".gtf"); + P->inOut->logMain << "DONE: lift-over of GTF file, EXITING\n" << flush; + exit(0); + }; + } else { P->inOut->logMain << "EXITING because of INPUT ERROR: unknown value of input parameter runMode=" <runMode<genomeLoad=="LoadAndExit" || P->genomeLoad=="Remove") { return 0; diff --git a/parametersDefault b/parametersDefault index 811cb34..eda79ae 100644 --- a/parametersDefault +++ b/parametersDefault @@ -20,6 +20,7 @@ runMode alignReads alignReads ... map reads genomeGenerate ... generate genome files inputAlignmentsFromBAM ... input alignments from BAM. Presently only works with --outWigType and --bamRemoveDuplicates. + liftOver ... lift-over of GTF files (--sjdbGTFfile) between genome assemblies using chain file(s) from --genomeChainFiles. runThreadN 1 int: number of threads to run STAR @@ -64,6 +65,9 @@ genomeSAsparseD 1 genomeSuffixLengthMax -1 int: maximum length of the suffixes, has to be longer than read length. -1 = infinite. +genomeChainFiles - + string: chain files for genomic liftover + ### Splice Junctions Database sjdbFileChrStartEnd - string(s): path to the files with genomic coordinates (chr start end strand) for the splice junction introns. Multiple files can be supplied wand will be concatenated. diff --git a/parametersDefault.xxd b/parametersDefault.xxd index caa8fba..79dd163 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -89,2445 +89,2465 @@ unsigned char parametersDefault[] = { 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x2d, 0x2d, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x44, 0x69, - 0x72, 0x50, 0x65, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, - 0x58, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, - 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x20, 0x28, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, - 0x68, 0x6d, 0x6f, 0x64, 0x20, 0x37, 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, - 0x75, 0x6e, 0x52, 0x4e, 0x47, 0x73, 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, - 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x21, 0x3d, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, - 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x69, 0x66, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x2d, 0x6f, 0x76, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x28, 0x2d, 0x2d, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, + 0x66, 0x69, 0x6c, 0x65, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x65, 0x6d, 0x62, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x28, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x2d, 0x2d, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, + 0x6e, 0x20, 0x53, 0x54, 0x41, 0x52, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x44, + 0x69, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x4b, 0x65, - 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, - 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, - 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, - 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, - 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2c, 0x20, - 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x20, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, + 0x57, 0x58, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, + 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x2d, 0x72, 0x65, 0x61, 0x64, + 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x20, 0x28, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, + 0x63, 0x68, 0x6d, 0x6f, 0x64, 0x20, 0x37, 0x37, 0x37, 0x29, 0x0a, 0x0a, + 0x72, 0x75, 0x6e, 0x52, 0x4e, 0x47, 0x73, 0x65, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x37, 0x37, 0x37, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, + 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x21, + 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, + 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x4b, + 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, + 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, + 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x28, + 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, + 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, + 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x2a, 0x63, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, 0x7a, 0x69, + 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3d, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x29, + 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x72, 0x42, + 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, + 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, + 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, + 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, + 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, + 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, + 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, + 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, + 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x6f, 0x76, 0x65, + 0x72, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x28, 0x73, - 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x73, - 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, - 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, - 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, - 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, - 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, - 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, - 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, - 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, - 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, - 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, - 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, - 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, - 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, - 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, - 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, - 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, - 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, - 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, - 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, - 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, + 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, + 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, - 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, + 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, + 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, + 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, + 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, + 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, + 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, + 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, + 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, + 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, + 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, + 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, + 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, + 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, - 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, - 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, - 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, - 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, - 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, - 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, - 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, - 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, - 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, - 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, - 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, + 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, + 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, + 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, - 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, - 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, - 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, - 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, - 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, - 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, - 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, - 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, + 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, + 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, + 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, + 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, + 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, + 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, + 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, + 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, + 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, + 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, - 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, - 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, - 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, - 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, - 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, - 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, - 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, - 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, - 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, - 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, - 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, - 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, - 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, - 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, - 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, + 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, + 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, + 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, + 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, + 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, + 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, + 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, - 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, - 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, - 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, - 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, - 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, - 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, - 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, - 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, - 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, + 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, + 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, + 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, + 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, + 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, + 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, + 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, + 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, + 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, + 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, + 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, + 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, + 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, + 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, + 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, - 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, + 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, - 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, - 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, - 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, - 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, + 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, + 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, + 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, + 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, + 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, + 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, + 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, + 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, - 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, - 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, + 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, - 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, + 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, + 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, + 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, + 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, - 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, + 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, + 0x20, 0x58, 0x53, 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, + 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, + 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, + 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, + 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, - 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, - 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, - 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, - 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, - 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, + 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, + 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, - 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, - 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, - 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, - 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, + 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, + 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, - 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, - 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, - 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, - 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, - 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, + 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, + 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, + 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, - 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, + 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, + 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, + 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, + 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, + 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, - 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, - 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, - 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, - 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, - 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, - 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, - 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, - 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, - 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, - 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, - 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, - 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, - 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, - 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, - 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, - 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, + 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, + 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, + 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, + 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, - 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, - 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, + 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, + 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, + 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, + 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, + 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, + 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, + 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, + 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, + 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, - 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, - 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, - 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, - 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, - 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, - 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, - 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, - 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, - 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, - 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, + 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, + 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, + 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, + 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, + 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, + 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, - 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, + 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, + 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, - 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, - 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, - 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, - 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, - 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, - 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, + 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, + 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, + 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, + 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, - 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, - 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, - 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, - 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, - 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, - 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, - 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, + 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, + 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, + 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, + 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, + 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, + 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, - 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, - 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, + 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, + 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, - 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, - 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, + 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, + 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, - 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, + 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, + 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, + 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, - 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, - 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, - 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, - 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, - 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, - 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, - 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, + 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, + 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, + 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, + 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, + 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, + 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, - 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, - 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, - 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, - 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, + 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, + 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, + 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, + 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, - 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, - 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, - 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, - 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, - 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, - 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, - 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, + 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, - 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, - 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, + 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, - 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, + 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, + 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, + 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, + 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, + 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, - 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, - 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, - 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, + 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, + 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, + 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, + 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, - 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, - 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, - 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, - 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, - 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, - 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, - 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, - 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, + 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, + 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, + 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, + 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, - 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, + 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, - 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, - 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, - 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, - 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, + 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, + 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, + 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, - 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, - 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, - 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, - 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, + 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, - 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, - 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, - 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, + 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, + 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 30355; +unsigned int parametersDefault_len = 30600; From aaaaa2d0eed8708b8586889c2d168063cdda0604 Mon Sep 17 00:00:00 2001 From: Denis Loginov Date: Fri, 23 Dec 2016 07:38:47 +0000 Subject: [PATCH 230/536] Fix memory corruption in GetPosixObjectKey() This patch fixes a bug in GetPosixObjectKey() that returned a pointer to a c_str() for a string that went out of scope, resulting in corruption of shm_() calls. The new version of GetPosixObjectKey() returns the string itself, and safely creates c_str() for in-scope calls. --- SharedMemory.cpp | 10 +++++----- SharedMemory.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index ff5c67c..2602167 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -83,11 +83,11 @@ void SharedMemory::Allocate(size_t shmSize) _isAllocator = true; } -const char * SharedMemory::GetPosixObjectKey() +string SharedMemory::GetPosixObjectKey() { ostringstream key; key << "/" << _key; - return key.str().c_str(); + return key.str(); } string SharedMemory::CounterName() @@ -103,7 +103,7 @@ void SharedMemory::CreateAndInitSharedObject(size_t shmSize) unsigned long long toReserve = (unsigned long long) shmSize + sizeof(unsigned long long); #ifdef POSIX_SHARED_MEM - _shmID=shm_open(GetPosixObjectKey(), O_CREAT | O_RDWR | O_EXCL, 0666); + _shmID=shm_open(GetPosixObjectKey().c_str(), O_CREAT | O_RDWR | O_EXCL, 0666); #else _shmID=shmget(_key, toReserve, IPC_CREAT | IPC_EXCL | SHM_NORESERVE | 0666); // _shmID = shmget(shmKey, shmSize, IPC_CREAT | SHM_NORESERVE | SHM_HUGETLB | 0666); #endif @@ -135,7 +135,7 @@ void SharedMemory::OpenIfExists() errno=0; if (_shmID < 0){ #ifdef POSIX_SHARED_MEM - _shmID=shm_open(SharedMemory::GetPosixObjectKey(), O_RDWR, 0); + _shmID=shm_open(GetPosixObjectKey().c_str(), O_RDWR, 0); #else _shmID=shmget(_key,0,0); #endif @@ -221,7 +221,7 @@ void SharedMemory::Unlink() { int shmStatus=-1; #ifdef POSIX_SHARED_MEM - shmStatus = shm_unlink(SharedMemory::GetPosixObjectKey()); + shmStatus = shm_unlink(GetPosixObjectKey().c_str()); #else struct shmid_ds buf; shmStatus=shmctl(_shmID,IPC_RMID,&buf); diff --git a/SharedMemory.h b/SharedMemory.h index 629a1bd..13a3e77 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -166,7 +166,7 @@ class SharedMemory void OpenIfExists(); void CreateAndInitSharedObject(size_t shmSize); void MapSharedObjectToMemory(); - const char * GetPosixObjectKey(); + std::string GetPosixObjectKey(); struct stat GetSharedObjectInfo(); void Close(); void Unlink(); From 6bc14b92a276f1f385dcded6123d1c063576fafd Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 10 Feb 2017 16:22:12 -0500 Subject: [PATCH 231/536] Implemented --genomeFileSizes option to supply STAR with genome indexes file sizes. --- Parameters.cpp | 1 + Parameters.h | 3 ++- genomeGenerate.cpp | 8 ++++++-- genomeParametersWrite.cpp | 6 ++++++ parametersDefault | 5 ++++- parametersDefault.xxd | 15 +++++++++++++-- 6 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 1265620..e728af3 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -44,6 +44,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeChrBinNbits", &genomeChrBinNbits)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &genomeSAsparseD)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSuffixLengthMax", &genomeSuffixLengthMax)); + parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFileSizes", &genomeFileSizes)); //read parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesIn", &readFilesIn)); diff --git a/Parameters.h b/Parameters.h index afaed83..d45058f 100644 --- a/Parameters.h +++ b/Parameters.h @@ -45,7 +45,8 @@ class Parameters { uint genomeInsertL; //total length of the sequence to be inserted on the fly uint genomeInsertChrIndFirst; //index of the first inserted chromosome uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length - + vector genomeFileSizes; //size of the genome files + //binning,windows,anchors uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 00e4b3a..e5cf761 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -146,8 +146,6 @@ void genomeGenerate(Parameters *P) { //define some parameters from input parameters P->genomeChrBinNbases=1LLU << P->genomeChrBinNbits; - //write genome parameters file - genomeParametersWrite(P->genomeDir+("/genomeParameters.txt"), P, ERROR_OUT); char *G=NULL, *G1=NULL; uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to find all the sizes @@ -421,6 +419,12 @@ void genomeGenerate(Parameters *P) { SA1.writePacked(P->nSA,0); }; + P->genomeFileSizes.push_back(P->nGenome); + P->genomeFileSizes.push_back(SA1.lengthByte); + + //write genome parameters file + genomeParametersWrite(P->genomeDir+("/genomeParameters.txt"), P, ERROR_OUT); + //write genome to disk time ( &rawTime ); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <sjdbGTFtagExonParentGene <<"\n"; genomePar << "sjdbInsertSave\t" << P->sjdbInsert.save <<"\n"; + + genomePar << "genomeFileSizes\t" << P->genomeFileSizes.at(0); + for (uint ii=1;iigenomeFileSizes.size();ii++) + genomePar << " " << P->genomeFileSizes.at(ii) ; + genomePar << "\n"; + genomePar.close(); }; diff --git a/parametersDefault b/parametersDefault index eda79ae..f6d9273 100644 --- a/parametersDefault +++ b/parametersDefault @@ -68,6 +68,9 @@ genomeSuffixLengthMax -1 genomeChainFiles - string: chain files for genomic liftover +genomeFileSizes 0 + uint(s)>0: genome files exact sizes in bytes. Typically, this should not be defined by the user. + ### Splice Junctions Database sjdbFileChrStartEnd - string(s): path to the files with genomic coordinates (chr start end strand) for the splice junction introns. Multiple files can be supplied wand will be concatenated. @@ -294,7 +297,7 @@ outBAMsortingThreadN 0 ### BAM processing bamRemoveDuplicatesType - - string: mark duplicates in the BAM file, for now only works with sorted BAM feeded with inputBAMfile + string: mark duplicates in the BAM file, for now only works with (i) sorted BAM feeded with inputBAMfile, and (ii) for paired-end alignments only - ... no duplicate removal/marking UniqueIdentical ... mark all multimappers, and duplicate unique mappers. The coordinates, FLAG, CIGAR must be identical UniqueIdenticalNotMulti ... mark duplicate unique mappers but not multimappers. diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 79dd163..74aa99e 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -295,7 +295,18 @@ unsigned char parametersDefault[] = { 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x6f, 0x76, 0x65, - 0x72, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x72, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x69, 0x6c, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3e, 0x30, 0x3a, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x20, 0x54, + 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, @@ -2550,4 +2561,4 @@ unsigned char parametersDefault[] = { 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 30600; +unsigned int parametersDefault_len = 30732; From a53bea8e98e0ec12eb4f6f94c0a716cab7db2dce Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 10 Feb 2017 16:23:34 -0500 Subject: [PATCH 232/536] Added Chain.cpp Chain.h files that were omitted in the previous commit for GTF lift-over. --- Chain.cpp | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Chain.h | 30 +++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 Chain.cpp create mode 100644 Chain.h diff --git a/Chain.cpp b/Chain.cpp new file mode 100644 index 0000000..80024a5 --- /dev/null +++ b/Chain.cpp @@ -0,0 +1,126 @@ +#include "Chain.h" +#include "streamFuns.h" +#include "serviceFuns.cpp" + +Chain::Chain(Parameters *Pin, string chainFileNameIn) : P(Pin), chainFileName(chainFileNameIn) +{ + chainLoad(); +}; + +void Chain::chainLoad() +{ + ifstream &streamIn = ifstrOpen(chainFileName, ERROR_OUT, "SOLUTION: check path and permission for the chain file" + chainFileName, P); + + string chr1;//current chromsome 1 (old) + + while (streamIn.good()) + { + string line1; + getline(streamIn,line1); + istringstream line1str(line1); + + vector fields(13); + + for (int ii=0;ii<4;ii++) + line1str >> fields[ii]; + if (fields[0]=="") + {//empty line, continue + } else if (fields[1]=="") + {//end of chain + chrChains[chr1].bLen.push_back(std::stoi(fields[0]));//read the last block length + chrChains[chr1].bN=chrChains[chr1].bLen.size(); + } else if (fields[3]=="") + {//normal chain block + chrChains[chr1].bLen.push_back(std::stoi(fields[0])); + + uint s=chrChains[chr1].bStart1.back() + chrChains[chr1].bLen.back() + std::stoi(fields[1]);//prev start + length + shift + chrChains[chr1].bStart1.push_back(s); + + s=chrChains[chr1].bStart2.back() + chrChains[chr1].bLen.back() + std::stoi(fields[2]);//prev start + length + shift + chrChains[chr1].bStart2.push_back(s); + } else + {//chain header + //chain score tName tSize tStrand tStart tEnd qName qSize qStrand qStart qEnd id + // 0 1 2 3 4 5 6 7 8 9 10 11 12 + + for (int ii=4;ii<13;ii++) + line1str >> fields[ii]; //read all the fields + + chr1=fields[2]; + chrChains[chr1].chr1=chr1; + chrChains[chr1].chr2=fields[7];//NOTE: the whole procedure (for now) only works for single chain per chromosome + chrChains[chr1].bStart1.push_back(std::stoi(fields[5])); + chrChains[chr1].bStart2.push_back(std::stoi(fields[10])); + }; + }; +}; + +void Chain::liftOverGTF(string gtfFileName, string outFileName) +{//simple arithmetic lift-over of the GTF file + ifstream &streamIn = ifstrOpen(gtfFileName, ERROR_OUT, "SOLUTION: check path and permission for the GTF file" + gtfFileName, P); + ofstream &streamOut = ofstrOpen(outFileName, ERROR_OUT, P); + ofstream &streamOutUnlifted = ofstrOpen(outFileName+".unlifted", ERROR_OUT, P); + + while (streamIn.good()) + { + string line1; + getline(streamIn,line1); + istringstream line1str(line1); + + string chr1; + line1str >> chr1; + + if (chr1=="" || chr1.substr(0,1)=="#") + continue;//empty or comment line + + if (chrChains.count(chr1)==0) + exitWithError("GTF contains chromosome " + chr1 + " not present in the chain file " + chainFileName,std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + + OneChain *ch1 = & chrChains[chr1];//the chain for the chr1 + + string str1,str2; + line1str >> str1 >> str2;//fields 2,3 + + uint c1, c2[2]; //coordinates: 1/2 (old/new) + + for (int ii=0;ii<2;ii++) + {//read and transform the two coordinates + line1str >> c1; + int32 i1 = binarySearch1a (c1, ch1->bStart1.data(), ch1->bN); + + c2[ii]=-1;//-1 means impossible to lift this end + + if (i1>=0 && c1 < ch1->bStart1[i1]+ch1->bLen[i1]) + {//c1 is inside the block, simple transformation + c2[ii]=ch1->bStart2[i1] + c1 - ch1->bStart1[i1]; + } else + {//c1 is outside of the block + if (ii==0 && i1 < (int32) ch1->bN-1) + {//left end => c2 will be at the start of the next block + c2[ii]=ch1->bStart2[i1+1]; //if i1=-1, it will work = start of the 0-tn blocl + } else if (ii==1 && i1 >= 0) + { + c2[ii]=ch1->bStart2[i1]+ch1->bLen[i1]-1; + }; + }; + }; + if (c2[0]!=-1llu && c2[1]!=-1llu && c2[1]>=c2[0]) + {//good conversion + streamOut << ch1->chr2 <<"\t"<< str1 <<"\t"<< str2 <<"\t"<chrNameIndex.count(oldname)) +// { +// ostringstream errOut; +// errOut << "EXITING because of fatal INPUT file error: chain file contains chromosome (scaffold) not present in the genome " << oldname <<"\n"; +// errOut << ERROR_OUT << "\n"; +// exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); +// }; +// uint ichr=P->chrNameIndex[oldname];//chr index in the genome list +// bStart1[bN] += P->chrLength[ichr];//whole genome chain - shift by chr start diff --git a/Chain.h b/Chain.h new file mode 100644 index 0000000..a7079c2 --- /dev/null +++ b/Chain.h @@ -0,0 +1,30 @@ +#ifndef DEF_Chain +#define DEF_Chain + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "ErrorWarning.h" + +class OneChain +{ + public: + uint bN; + string chr1,chr2;//1/2 (old/new) chr names + vector bStart1, bStart2, bLen; //blocks starts in 1/2, lengths +}; + +class Chain { + public: +// // uint bN;//number of blocks +// // vector bStart1, bStart2, bLen; //blocks starts in 1/2, lengths + + Chain(Parameters *Pin, string chainFileNameIn); + void liftOverGTF(string gtfFileName, string outFileName); + private: + Parameters *P; + string chainFileName; + void chainLoad(); + std::map chrChains; +}; + +#endif \ No newline at end of file From d23aa1fae90715a5098d8cb70ff9df1e72c941d0 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 13 Mar 2017 17:00:55 -0400 Subject: [PATCH 233/536] Implemented --genomeFileSizes option to supply sizes of the genome index files. This allows for streaming of index files. Fixed occasional seg-faults after the completion of the mapping runs with shared memory. --- Genome.cpp | 42 +- Genome.h | 2 +- STAR.cpp | 2 +- genomeGenerate.cpp | 1 + parametersDefault.xxd | 2284 +++++++++++++++++++++-------------------- 5 files changed, 1176 insertions(+), 1155 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 127a5ae..dce526a 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -47,7 +47,7 @@ void Genome::freeMemory(){//free big chunks of memory used by genome and suffix }; }; -uint Genome::OpenStream(string name, ifstream & stream) +uint Genome::OpenStream(string name, ifstream & stream, uint size) { stream.open((P->genomeDir+ "/" +name).c_str(), ios::binary); if (!stream.good()) { @@ -57,18 +57,23 @@ uint Genome::OpenStream(string name, ifstream & stream) exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; - uint size = 0; - P->inOut->logMain << "checking " << name << " size"; - stream.seekg (0, ios::end); - size=(uint) stream.tellg(); - stream.clear(); - stream.seekg (0, ios::beg); - P->inOut->logMain << "file size: "<< size <<" bytes; state: good=" <0) + { + P->inOut->logMain << name << ": size given as a parameter = " << size <<"\n"; + } else + { + P->inOut->logMain << "Checking " << name << " size"; + stream.seekg (0, ios::end); + size=(uint) stream.tellg(); + stream.clear(); + stream.seekg (0, ios::beg); + P->inOut->logMain << "file size: "<< size <<" bytes; state: good=" <genomeChrBinNbits=P1->genomeChrBinNbits; P->genomeChrBinNbases=1LLU<genomeChrBinNbits; P->genomeSAsparseD=P1->genomeSAsparseD; + + if (P1->genomeFileSizes.size()>0) + {//genomeFileSize was recorded in the genomeParameters file, copy the values to P + P->genomeFileSizes = P1->genomeFileSizes; + }; + if (P->parArray.at(P->sjdbOverhang_par)->inputLevel==0 && P1->sjdbOverhang>0) {//if --sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use sjdbOverhang from the genome generation step P->sjdbOverhang=P1->sjdbOverhang; @@ -157,9 +168,14 @@ void Genome::genomeLoad(){//allocate and load Genome ifstream GenomeIn, SAin, SAiIn; - P->nGenome = OpenStream("Genome",GenomeIn); - P->nSAbyte = OpenStream("SA",SAin); - OpenStream("/SAindex",SAiIn); + if (P->genomeFileSizes.size() < 2) + {//no size info available + P->genomeFileSizes.push_back(0); + P->genomeFileSizes.push_back(0); + }; + P->nGenome = OpenStream("Genome",GenomeIn,P->genomeFileSizes.at(0)); + P->nSAbyte = OpenStream("SA",SAin,P->genomeFileSizes.at(1)); + OpenStream("/SAindex",SAiIn,1); //we do not need SAiIn siz, using a dummy value here to prevent from reading its size from the disk uint SAiInBytes=0; SAiInBytes += fstreamReadBig(SAiIn,(char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases)); diff --git a/Genome.h b/Genome.h index c564be6..464f836 100644 --- a/Genome.h +++ b/Genome.h @@ -30,7 +30,7 @@ class Genome { char *shmStart; char *G1; //pointer -200 of G SharedMemory * sharedMemory; - uint OpenStream(string name, ifstream & stream); + uint OpenStream(string name, ifstream & stream, uint size); void HandleSharedMemoryException(const SharedMemoryException & exc, uint64 shmSize); }; diff --git a/STAR.cpp b/STAR.cpp index 7a8712c..1eb0bab 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -464,7 +464,7 @@ int main(int argInN, char* argIn[]) { }; P->closeReadsFiles();//this will kill the readFilesCommand processes if necessary - mainGenome.~Genome(); //need explicit call because of the 'delete P->inOut' below, which will destroy P->inOut->logStdOut + //mainGenome.~Genome(); //need explicit call because of the 'delete P->inOut' below, which will destroy P->inOut->logStdOut ///@todo create Destructor to destroy P->inOut delete P->inOut; //to close files diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index e5cf761..fa320c3 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -419,6 +419,7 @@ void genomeGenerate(Parameters *P) { SA1.writePacked(P->nSA,0); }; + P->genomeFileSizes.clear(); P->genomeFileSizes.push_back(P->nGenome); P->genomeFileSizes.push_back(SA1.lengthByte); diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 74aa99e..e6b63c4 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1354,359 +1354,430 @@ unsigned char parametersDefault[] = { 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, - 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, - 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, - 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, - 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, - 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, - 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, - 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, + 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, + 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, - 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, - 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, + 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, + 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, + 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, + 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, + 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, - 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, - 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, + 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, + 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, + 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, - 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, + 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, - 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, @@ -1721,844 +1792,777 @@ unsigned char parametersDefault[] = { 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, - 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, - 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, - 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, - 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, - 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, - 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, - 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, + 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, + 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, - 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, - 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, - 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, + 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, - 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, + 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, + 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, + 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, + 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, - 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, - 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, + 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, + 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, - 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, - 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, - 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, + 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, + 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, + 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, + 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, + 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, + 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, - 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, + 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, - 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, - 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, - 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, - 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, - 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, - 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, - 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, - 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, - 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, + 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, + 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, + 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, + 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, + 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, + 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, - 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, - 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, - 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, + 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, + 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 30732; +unsigned int parametersDefault_len = 30777; From cbe8091188469c5829f1234ebedfc0528254b18a Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 17 Mar 2017 15:44:45 -0400 Subject: [PATCH 234/536] Ready for 2.5.3a --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 641fb03..52cb0b1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.2b" +#define STAR_VERSION "STAR_2.5.3a" From e66e67890fb54fc240ecdad0927c666a9bfa1cb4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 31 Mar 2017 16:06:45 -0400 Subject: [PATCH 235/536] Fixed a problem that can arise for very small genomes while using --alignIntronMax 1. --- Genome.cpp | 4 +- parametersDefault | 4 +- parametersDefault.xxd | 4371 +++++++++++++++++++++-------------------- 3 files changed, 2201 insertions(+), 2178 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index dce526a..6ef3930 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -513,7 +513,9 @@ void Genome::genomeLoad(){//allocate and load Genome << (1LLU<winBinNbits)*P->winAnchorDistNbins <winBinNbits=max( (uint) floor(log2(P->nGenome/40000)+0.5), (uint) floor(log2(max(max(4LLU,P->alignIntronMax),P->alignMatesGapMax)/4)+0.5) ); + P->winBinNbits = (uint) floor( log2( max(max(4LLU,P->alignIntronMax), max(1000LLU, P->alignMatesGapMax))/4 ) + 0.5); + P->winBinNbits = max( P->winBinNbits, (uint) floor(log2(P->nGenome/40000+1)+0.5) ); + //ISSUE - to be fixed in STAR3: if alignIntronMax>0 but alignMatesGapMax==0, winBinNbits will be defined by alignIntronMax P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" redefined winBinNbits="<< P->winBinNbits <0: suffux array sparsity, i.e. distance between indices: use bigger numbers to decrease needed RAM at the cost of mapping speed reduction diff --git a/parametersDefault.xxd b/parametersDefault.xxd index e6b63c4..565ee0b 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -248,1481 +248,1541 @@ unsigned char parametersDefault[] = { 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, - 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, - 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, - 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, - 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, - 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, - 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, - 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, - 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x6f, 0x76, 0x65, - 0x72, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3e, 0x30, 0x3a, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x20, 0x54, - 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x73, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x69, + 0x6e, 0x28, 0x31, 0x38, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x29, 0x29, 0x2e, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, + 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, + 0x28, 0x31, 0x34, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2f, + 0x32, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, + 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, + 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, - 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, - 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, - 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x6f, 0x76, 0x65, 0x72, 0x0a, + 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, + 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3e, 0x30, 0x3a, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x65, + 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x79, 0x70, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, + 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, + 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, + 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, + 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, - 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, - 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, - 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, - 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, - 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, - 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, - 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, - 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, - 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, - 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, - 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, - 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, - 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, - 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, - 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, - 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, - 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, - 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, - 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, - 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, - 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, - 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, - 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, - 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, - 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, - 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, - 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, - 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, - 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, - 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, - 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, - 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, - 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, - 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, + 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, + 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, + 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, + 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, + 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, + 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, + 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, + 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, + 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, + 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, + 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, + 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, + 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, + 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, + 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, + 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, + 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, + 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, + 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, + 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, + 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, + 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, + 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, + 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, - 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, - 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, - 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, - 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, + 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, + 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, + 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, + 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, + 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, + 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, + 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, - 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, - 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, + 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, + 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, + 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, + 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, - 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, - 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, - 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, + 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, + 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, + 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, - 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, + 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, - 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, - 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, - 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, - 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, - 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, + 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, + 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, + 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, + 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, - 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, - 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, - 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, + 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, - 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, - 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, - 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, - 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, - 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, - 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, - 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, - 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, - 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, - 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, - 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, + 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, + 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, + 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, + 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, + 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, + 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, + 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, + 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, - 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, - 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, - 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, - 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, + 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, - 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, - 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, - 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, - 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, - 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, - 0x20, 0x58, 0x53, 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, - 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, + 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, - 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, - 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, - 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, - 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, - 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, + 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, + 0x53, 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, + 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, + 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, + 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, + 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, + 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, - 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, - 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, + 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, + 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, + 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, - 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, - 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, - 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, - 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, - 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, - 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, - 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, - 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, - 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, - 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, - 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, + 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, + 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, + 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, + 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, + 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, + 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, + 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, + 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, + 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, - 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, - 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, - 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, - 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, + 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, + 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, - 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, - 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, - 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, - 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, - 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, - 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, - 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, - 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, - 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, - 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, - 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, - 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, - 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, - 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, - 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, - 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, + 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, + 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, + 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, + 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, + 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, + 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, + 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, + 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, + 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, + 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, + 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, + 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, - 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, - 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, - 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, - 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, + 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, + 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, + 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, + 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, + 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, + 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, + 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, - 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, - 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, - 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, + 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, + 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, + 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, + 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, + 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, - 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, - 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, - 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, + 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, @@ -1730,839 +1790,800 @@ unsigned char parametersDefault[] = { 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, + 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, + 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, + 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, + 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, + 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, + 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, + 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, + 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, - 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, - 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, - 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, + 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, - 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, - 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, - 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, - 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, - 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, - 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, - 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, - 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, + 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, + 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, + 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, + 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, + 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, + 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, + 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, + 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, - 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, - 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, - 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, - 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, + 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, + 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, + 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, - 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, - 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, - 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, - 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, - 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, - 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, - 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, + 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, + 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, + 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, + 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, + 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, + 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, + 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, + 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, + 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, + 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, - 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, + 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, - 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, - 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, - 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, - 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, - 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, - 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, - 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, - 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, + 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, + 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, + 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, + 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, - 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, + 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, + 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, + 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 30777; +unsigned int parametersDefault_len = 31027; From 1c1f02f5f49a59abb09f8566b1454165ff3df592 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 31 Mar 2017 16:35:31 -0400 Subject: [PATCH 236/536] Fixed a problem that can arise for very small genomes while using --alignIntronMax 1. --- Genome.cpp | 2 +- parametersDefault.xxd | 4371 +++++++++++++++++++++-------------------- 2 files changed, 2187 insertions(+), 2186 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 6ef3930..d17a56c 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -513,7 +513,7 @@ void Genome::genomeLoad(){//allocate and load Genome << (1LLU<winBinNbits)*P->winAnchorDistNbins <winBinNbits = (uint) floor( log2( max(max(4LLU,P->alignIntronMax), max(1000LLU, P->alignMatesGapMax))/4 ) + 0.5); + P->winBinNbits = (uint) floor( log2( max( max(4LLU,P->alignIntronMax), (P->alignMatesGapMax==0 ? 1000LLU : P->alignMatesGapMax) ) /4 ) + 0.5); P->winBinNbits = max( P->winBinNbits, (uint) floor(log2(P->nGenome/40000+1)+0.5) ); //ISSUE - to be fixed in STAR3: if alignIntronMax>0 but alignMatesGapMax==0, winBinNbits will be defined by alignIntronMax P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" redefined winBinNbits="<< P->winBinNbits < Date: Wed, 5 Apr 2017 12:31:20 -0400 Subject: [PATCH 237/536] Code overhaul: introduced separate genome structure G with all the information about the genome. --- Genome.cpp | 1 - ReadAlign.cpp | 6 +-- ReadAlign.h | 51 +++++++++++++++---------- ReadAlignChunk.h | 2 +- ReadAlignChunk_mapChunk.cpp | 1 - ReadAlign_alignBAM.cpp | 4 +- ReadAlign_chimericDetection.cpp | 44 ++++++++++----------- ReadAlign_mapOneRead.cpp | 2 +- ReadAlign_maxMappableLength2strands.cpp | 10 ++--- ReadAlign_outputAlignments.cpp | 1 - ReadAlign_outputTranscriptSAM.cpp | 4 +- ReadAlign_quantTranscriptome.cpp | 4 +- ReadAlign_stitchPieces.cpp | 2 +- stitchWindowAligns.cpp | 8 ++-- stitchWindowAligns.h | 2 +- 15 files changed, 73 insertions(+), 69 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index d17a56c..22bf361 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -298,7 +298,6 @@ void Genome::genomeLoad(){//allocate and load Genome // exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_SHM, *P); // }; if (P->annotScoreScale>0) {//optional allocation - sigG = shmNext; shmNext += P->nGenome; } } diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 7462904..6a59cb0 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -5,11 +5,7 @@ ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin), chunkTr(TrIn) {//allocate arrays - G=genomeIn.G; - SA=genomeIn.SA; - SAi=genomeIn.SAi; - sigG=genomeIn.sigG; - Var=genomeIn.Var; + G=genomeIn; winBin = new uintWinBin* [2]; diff --git a/ReadAlign.h b/ReadAlign.h index a6a2e05..f68b03a 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -13,13 +13,38 @@ #include "Quantifications.h" #include -class ReadAlign : public Genome +class ReadAlign { public: - Parameters* P; //pointer to the parameters, will be initialized on construction + //methods + ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk);//allocate arrays + int oneRead(); + + //vars + + Genome G; //genome structure + + uint iRead; + char** Read1; + + Stats statsRA; //mapping statistics + + istream* readInStream[MAX_N_MATES]; + BAMoutput *outBAMcoord, *outBAMunsorted, *outBAMquant;//sorted by coordinate, unsorted, transcriptomic BAM structure + fstream chunkOutChimSAM, chunkOutChimJunction, chunkOutUnmappedReadsStream[MAX_N_MATES], chunkOutFilterBySJoutFiles[MAX_N_MATES]; + OutSJ *chunkOutSJ, *chunkOutSJ1; + + ostream* outSAMstream; + uint outBAMbytes; //number of bytes output to SAM/BAM with oneRead + char *outBAMarray;//pointer to the (last+1) position of the SAM/BAM output array + + uint outFilterMismatchNmaxTotal; + uint Lread, readLength[MAX_N_MATES], readLengthOriginal[MAX_N_MATES], readLengthPair, readLengthPairOriginal; + intScore maxScoreMate[MAX_N_MATES]; - //mapping statistics - Stats statsRA; + + private: + Parameters* P; //pointer to the parameters, will be initialized on construction //quantification Transcriptome *chunkTr; @@ -32,21 +57,12 @@ class ReadAlign : public Genome std::uniform_real_distribution rngUniformReal0to1;//initialize in ReadAlign.cpp //input,output - istream* readInStream[MAX_N_MATES]; - ostream* outSAMstream; - OutSJ *chunkOutSJ, *chunkOutSJ1; - fstream chunkOutChimSAM, chunkOutChimJunction, chunkOutUnmappedReadsStream[MAX_N_MATES], chunkOutFilterBySJoutFiles[MAX_N_MATES]; - uint outBAMbytes, outBAMbytes1; //number of bytes output to SAM/BAM with oneRead - char *outBAMarray, *outBAMarray1;//pointer to the (last+1) position of the SAM/BAM output array - BAMoutput *outBAMcoord, *outBAMunsorted, *outBAMquant;//sorted by coordinate, unsorted, transcriptomic BAM structure -// char outBAMoneAlign[MAX_N_MATES][BAMoutput_oneAlignMaxBytes];//tmp array to store BAM alignmnent -// uint outBAMoneAlignNbytes[MAX_N_MATES];//number of bytes in the tmp BAM array + char** outBAMoneAlign; uint* outBAMoneAlignNbytes; ostringstream samStreamCIGAR, samStreamSJmotif, samStreamSJintron,samStreamSJannot; - intScore maxScoreMate[MAX_N_MATES]; intScore *scoreSeedToSeed, *scoreSeedBest; uint *scoreSeedBestInd, *seedChain, *scoreSeedBestMM; @@ -59,20 +75,17 @@ class ReadAlign : public Genome Transcript** trArrayPointer; //linear array of transcripts to store all of them from all windows //read - uint iRead, iReadAll, iMate, readFilesIndex; + uint iReadAll, iMate, readFilesIndex; char readFilter; //Illumina not passed Y/N bool revertStrand; //what to do with the strand, according to strandType and iMate - uint Lread, readLength[MAX_N_MATES], readLengthOriginal[MAX_N_MATES], readLengthPair, readLengthPairOriginal; uint clip3pNtotal[MAX_N_MATES], clip5pNtotal[MAX_N_MATES], clip3pAdapterN[MAX_N_MATES]; //total number of trimmed bases from 5p,3p int readFileType; //file type: 1=fasta; 2=fastq - uint outFilterMismatchNmaxTotal; char dummyChar[4096]; char** Read0; char** Qual0; char** readNameMates; char* readName; - char** Read1; char** Qual1; //modified QSs for scoring //split @@ -115,7 +128,6 @@ class ReadAlign : public Genome Transcript* trMult[MAX_N_MULTMAP];//multimapping transcripts Transcript *alignTrAll;//alignments to transcriptome - ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk);//allocate arrays void resetN();//resets the counters to 0 void multMapSelect(); int mapOneRead(); @@ -137,7 +149,6 @@ class ReadAlign : public Genome void outputAlignments(); void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q, char *G);//stitches all seeds in one window: iW - int oneRead(); uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); }; diff --git a/ReadAlignChunk.h b/ReadAlignChunk.h index eeef68b..bb530e4 100644 --- a/ReadAlignChunk.h +++ b/ReadAlignChunk.h @@ -32,7 +32,7 @@ class ReadAlignChunk {//chunk of reads and alignments uint iChunkIn; //current chunk # as read from .fastq uint iChunkOutSAM; //current chunk # writtedn to Aligned.out.sam int iThread; //current thread - uint chunkOutBAMtotal, chunkOutBAMtotal1; //total number of bytes in the write buffer + uint chunkOutBAMtotal; //total number of bytes in the write buffer ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk); void processChunks(); diff --git a/ReadAlignChunk_mapChunk.cpp b/ReadAlignChunk_mapChunk.cpp index 3ebd4d4..ba6faf5 100644 --- a/ReadAlignChunk_mapChunk.cpp +++ b/ReadAlignChunk_mapChunk.cpp @@ -28,7 +28,6 @@ void ReadAlignChunk::mapChunk() {//map one chunk. Input reads stream has to be s RA->iRead++; // chunkOutBAMtotal=(uint) RA->outSAMstream->tellp(); chunkOutBAMtotal+=RA->outBAMbytes; - chunkOutBAMtotal1+=RA->outBAMbytes1; // uint ddd=(uint) RA->outSAMstream->tellp(); }; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index a14132c..e3a87c8 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -12,7 +12,7 @@ void ReadAlign::samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uin for (uint iex=iEx1;iex<=iEx2;iex++) { for (uint ii=0;iigenomeNumToNT[(uint8) G[ii]]; + tagMD+=P->genomeNumToNT[(uint8) G.G[ii]]; }; matchN=0; } else if (trOut.canonSJ[iex]==-2) {//insertion diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 8864aed..ebc88e5 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -210,16 +210,16 @@ bool ReadAlign::chimericDetection() { char b0,b1; if (trChim[0].Str==0) { - b0=G[trChim[0].exons[e0][EX_G]+jR]; + b0=G.G[trChim[0].exons[e0][EX_G]+jR]; } else { - b0=G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR]; + b0=G.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR]; if (b0<4) b0=3-b0; }; if (trChim[1].Str==0) { - b1=G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + b1=G.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; } else { - b1=G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + b1=G.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; if (b1<4) b1=3-b1; }; @@ -230,21 +230,21 @@ bool ReadAlign::chimericDetection() { char b01,b02,b11,b12; if (trChim[0].Str==0) { - b01=G[trChim[0].exons[e0][EX_G]+jR+1]; - b02=G[trChim[0].exons[e0][EX_G]+jR+2]; + b01=G.G[trChim[0].exons[e0][EX_G]+jR+1]; + b02=G.G[trChim[0].exons[e0][EX_G]+jR+2]; } else { - b01=G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; + b01=G.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; if (b01<4) b01=3-b01; - b02=G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; + b02=G.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; if (b02<4) b02=3-b02; }; if (trChim[1].Str==0) { - b11=G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; - b12=G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + b11=G.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; + b12=G.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; } else { - b11=G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; + b11=G.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; if (b11<4) b11=3-b11; - b12=G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + b12=G.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; if (b12<4) b12=3-b12; }; @@ -300,16 +300,16 @@ bool ReadAlign::chimericDetection() { uint jR; for (jR=0;jR<100;jR++) {//forward check if (trChim[0].Str==0) { - b0=G[chimJ0+jR]; + b0=G.G[chimJ0+jR]; } else { - b0=G[chimJ0-jR]; + b0=G.G[chimJ0-jR]; if (b0<4) b0=3-b0; }; if (trChim[1].Str==0) { - b1=G[chimJ1+1+jR]; + b1=G.G[chimJ1+1+jR]; } else { - b1=G[chimJ1-1-jR]; + b1=G.G[chimJ1-1-jR]; if (b1<4) b1=3-b1; }; if (b0!=b1) break; @@ -317,16 +317,16 @@ bool ReadAlign::chimericDetection() { chimRepeat1=jR; for (jR=0;jR<100;jR++) {//reverse check if (trChim[0].Str==0) { - b0=G[chimJ0-1-jR]; + b0=G.G[chimJ0-1-jR]; } else { - b0=G[chimJ0+1+jR]; + b0=G.G[chimJ0+1+jR]; if (b0<4) b0=3-b0; }; if (trChim[1].Str==0) { - b1=G[chimJ1-jR]; + b1=G.G[chimJ1-jR]; } else { - b1=G[chimJ1+jR]; + b1=G.G[chimJ1+jR]; if (b1<4) b1=3-b1; }; if (b0!=b1) break; @@ -356,8 +356,8 @@ bool ReadAlign::chimericDetection() { chimRecord=true; //chimeric alignment was recorded //re-calculate the score for chimeric transcripts - trChim[0].alignScore(Read1, G, P); - trChim[1].alignScore(Read1, G, P); + trChim[0].alignScore(Read1, G.G, P); + trChim[1].alignScore(Read1, G.G, P); int chimRepresent=-999, chimType=0; if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) {//tr0 has both mates diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index fad2b83..89cb1a3 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -97,7 +97,7 @@ int ReadAlign::mapOneRead() { nW=0; } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length - stitchPieces(Read1, Qual1, G, SA, Lread); + stitchPieces(Read1, Qual1, G.G, G.SA, Lread); if (nW>0) multMapSelect(); //check all the windows and transcripts for multiple mappers }; diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index d81defb..43ad14f 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -35,7 +35,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, //find SA boundaries uint Lind=Lmax; while (Lind>0) {//check the precense of the prefix for Lind - iSA1=SAi[P->genomeSAindexStart[Lind-1]+ind1]; + iSA1=G.SAi[P->genomeSAindexStart[Lind-1]+ind1]; if ((iSA1 & P->SAiMarkAbsentMaskC) == 0) {//prefix exists break; } else {//this prefix does not exist, reduce Lind @@ -45,7 +45,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, }; if (P->genomeSAindexStart[Lind-1]+ind1+1 < P->genomeSAindexStart[Lind]) {//we are not at the end of the SA - iSA2=((SAi[P->genomeSAindexStart[Lind-1]+ind1+1] & P->SAiMarkNmask) & P->SAiMarkAbsentMask) - 1; + iSA2=((G.SAi[P->genomeSAindexStart[Lind-1]+ind1+1] & P->SAiMarkNmask) & P->SAiMarkAbsentMask) - 1; } else { iSA2=P->nSA-1; }; @@ -56,7 +56,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, #ifdef SA_SEARCH_FULL //full search of the array even if the index search gave maxL maxL=0; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G, SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G.G, G.SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); #else if (Lind < P->genomeSAindexNbases && (iSA1 & P->SAiMarkNmaskC)==0 ) {//no need for SA search indStartEnd[0]=iSA1; @@ -72,14 +72,14 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, indStartEnd[0]=indStartEnd[1]=iSA1; Nrep=1; bool comparRes; - maxL=compareSeqToGenome(Read1,pieceStart, pieceLength, Lind, G, SA, iSA1, dirR, comparRes, P); + maxL=compareSeqToGenome(Read1,pieceStart, pieceLength, Lind, G.G, G.SA, iSA1, dirR, comparRes, P); } else {//SA search, pieceLength>maxL if ( (iSA1 & P->SAiMarkNmaskC)==0 ) {//no N in the prefix maxL=Lind; } else { maxL=0; }; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G, SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G.G, G.SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); }; #endif diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 8c0e8a9..b1da036 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -5,7 +5,6 @@ void ReadAlign::outputAlignments() { outBAMbytes=0; - outBAMbytes1=0; bool mateMapped[2]={false,false}; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 180b29d..ea8a720 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -242,7 +242,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i for (uint iex=iEx1;iex<=iEx2;iex++) { for (uint ii=0;ii0 || (ii==0 && iex>0 && trOut.canonSJ[iex]==-1) ) { @@ -259,7 +259,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i tagNM+=trOut.exons[iex+1][EX_G]-(trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L]); tagMD+=to_string(matchN) + "^"; for (uint ii=trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L];iigenomeNumToNT[(uint8) G[ii]]; + tagMD+=P->genomeNumToNT[(uint8) G.G[ii]]; }; matchN=0; } else if (trOut.canonSJ[iex]==-2) {//insertion diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index a1b1b5d..9470835 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -39,12 +39,12 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript for (uint b=1; b<=left1 ; b++) {//extend to the left char r1=R[alignG[iag]->exons[iab][EX_R]-b]; - char g1=G[alignG[iag]->exons[iab][EX_G]-b]; + char g1=G.G[alignG[iag]->exons[iab][EX_G]-b]; if ( r1!=g1 && r1<4 && g1<4) ++nMM1; }; for (uint b=0; bexons[iab][EX_R]+alignG[iag]->exons[iab][EX_L]+b]; - char g1=G[alignG[iag]->exons[iab][EX_G]+alignG[iag]->exons[iab][EX_L]+b]; + char g1=G.G[alignG[iag]->exons[iab][EX_G]+alignG[iag]->exons[iab][EX_L]+b]; if ( r1!=g1 && r1<4 && g1<4) ++nMM1; }; alignG[iag]->exons[iab][EX_R] -= left1; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 3488490..43993b7 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -319,7 +319,7 @@ std::time(&timeStart); stitchWindowSeeds(iW, iW1, WAincl, R[trA.roStr==0 ? 0:2], Q[trA.roStr], G); }; #else - stitchWindowAligns(0, nWA[iW], 0, WAincl, 0, 0, trA, Lread, WA[iW], R[trA.roStr==0 ? 0:2], Q[trA.roStr], G, sigG, P, trAll[iW1], nWinTr+iW1, this); + stitchWindowAligns(0, nWA[iW], 0, WAincl, 0, 0, trA, Lread, WA[iW], R[trA.roStr==0 ? 0:2], Q[trA.roStr], G, P, trAll[iW1], nWinTr+iW1, this); #endif trAll[iW1][0]->nextTrScore= nWinTr[iW1]==1 ? 0 : trAll[iW1][1]->maxScore; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 79919e6..cc05e6d 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -6,7 +6,7 @@ #include "binarySearch2.h" void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ - uint Lread, uiWA* WA, char* R, char* Q, char* G, char* sigG,\ + uint Lread, uiWA* WA, char* R, char* Q, char* G, \ Parameters* P, Transcript** wTr, uint* nWinTr, ReadAlign *RA) { //recursively stitch aligns for one gene //*nWinTr - number of transcripts for the current window @@ -237,7 +237,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; //Variation - Score+=trA.variationAdjust(*RA->Var, R, RA->Read1, G, P); + Score+=trA.variationAdjust(*RA->G.Var, R, RA->Read1, G, P); trA.maxScore=Score; @@ -339,7 +339,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( WA[iA][WA_Nrep]==1 ) trAi.nUnique++; //unique piece if ( WA[iA][WA_Anchor]>0 ) trAi.nAnchor++; //anchor piece piece - stitchWindowAligns(iA+1, nA, Score+dScore, WAincl, WA[iA][WA_rStart]+WA[iA][WA_Length]-1, WA[iA][WA_gStart]+WA[iA][WA_Length]-1, trAi, Lread, WA, R, Q, G, sigG, P, wTr, nWinTr, RA); + stitchWindowAligns(iA+1, nA, Score+dScore, WAincl, WA[iA][WA_rStart]+WA[iA][WA_Length]-1, WA[iA][WA_gStart]+WA[iA][WA_Length]-1, trAi, Lread, WA, R, Q, G, P, wTr, nWinTr, RA); } else { }; @@ -347,7 +347,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //also run a transcript w/o including this align if (WA[iA][WA_Anchor]!=2 || trA.nAnchor>0) {//only allow exclusion if this is not the last anchor, or other anchors have been used WAincl[iA]=false; - stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, G, sigG, P, wTr, nWinTr, RA); + stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, G, P, wTr, nWinTr, RA); }; return; }; diff --git a/stitchWindowAligns.h b/stitchWindowAligns.h index 9195912..6cd20fa 100644 --- a/stitchWindowAligns.h +++ b/stitchWindowAligns.h @@ -6,7 +6,7 @@ #include "ReadAlign.h" void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ - uint Lread, uiWA* WA, char* R, char* Q, char* G, char* sigG,\ + uint Lread, uiWA* WA, char* R, char* Q, char* G, \ Parameters* P, Transcript** wTr, uint* nWinTr, ReadAlign *RA); //recursively stitch aligns for one gene //*nWinTr - number of transcripts for the current window From 80909e5fedb2eb033e74aed2f15cd2936d8a58a2 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 25 Apr 2017 17:01:33 -0400 Subject: [PATCH 238/536] Renamed genome structure as mapGen (map-to-genome) for convenience. Compiles OK --- ReadAlign.cpp | 5 ++- ReadAlign.h | 7 ++-- ReadAlign_alignBAM.cpp | 4 +-- ReadAlign_chimericDetection.cpp | 44 ++++++++++++------------- ReadAlign_mapOneRead.cpp | 2 +- ReadAlign_maxMappableLength2strands.cpp | 10 +++--- ReadAlign_outputTranscriptSAM.cpp | 6 ++-- ReadAlign_quantTranscriptome.cpp | 4 +-- ReadAlign_stitchPieces.cpp | 12 +++---- ReadAlign_stitchWindowSeeds.cpp | 16 ++++----- stitchWindowAligns.cpp | 2 +- 11 files changed, 56 insertions(+), 56 deletions(-) diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 6a59cb0..14de109 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -3,9 +3,8 @@ #include "Transcript.h" #include "ReadAlign.h" -ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin), chunkTr(TrIn) {//allocate arrays - - G=genomeIn; +ReadAlign::ReadAlign (Parameters* Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk) + : P(Pin), mapGen(genomeIn), chunkTr(TrIn) {//allocate arrays winBin = new uintWinBin* [2]; diff --git a/ReadAlign.h b/ReadAlign.h index f68b03a..26ddad6 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -22,7 +22,7 @@ class ReadAlign //vars - Genome G; //genome structure + Genome mapGen; //mapped-to-genome structure uint iRead; char** Read1; @@ -144,10 +144,11 @@ class ReadAlign void outTxtMain(ofstream*,Transcript&); int createExtendWindowsWithAlign(uint a1, uint aStr); //extends and windows with one alignment void assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep, uint aFrag, uint aRstart,bool aAnchor, uint sjA); //assigns one alignment to a window - void stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint Lread); bool chimericDetection(); void outputAlignments(); - void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q, char *G);//stitches all seeds in one window: iW + + void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q);//stitches all seeds in one window: iW + void stitchPieces(char **R, char **Q, uint Lread); uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); }; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index e3a87c8..1a7da5e 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -12,7 +12,7 @@ void ReadAlign::samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uin for (uint iex=iEx1;iex<=iEx2;iex++) { for (uint ii=0;iigenomeNumToNT[(uint8) G.G[ii]]; + tagMD+=P->genomeNumToNT[(uint8) mapGen.G[ii]]; }; matchN=0; } else if (trOut.canonSJ[iex]==-2) {//insertion diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index ebc88e5..83e5e79 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -210,16 +210,16 @@ bool ReadAlign::chimericDetection() { char b0,b1; if (trChim[0].Str==0) { - b0=G.G[trChim[0].exons[e0][EX_G]+jR]; + b0=mapGen.G[trChim[0].exons[e0][EX_G]+jR]; } else { - b0=G.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR]; + b0=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR]; if (b0<4) b0=3-b0; }; if (trChim[1].Str==0) { - b1=G.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + b1=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; } else { - b1=G.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + b1=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; if (b1<4) b1=3-b1; }; @@ -230,21 +230,21 @@ bool ReadAlign::chimericDetection() { char b01,b02,b11,b12; if (trChim[0].Str==0) { - b01=G.G[trChim[0].exons[e0][EX_G]+jR+1]; - b02=G.G[trChim[0].exons[e0][EX_G]+jR+2]; + b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; } else { - b01=G.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; + b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; if (b01<4) b01=3-b01; - b02=G.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; if (b02<4) b02=3-b02; }; if (trChim[1].Str==0) { - b11=G.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; - b12=G.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; + b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; } else { - b11=G.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; + b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; if (b11<4) b11=3-b11; - b12=G.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; if (b12<4) b12=3-b12; }; @@ -300,16 +300,16 @@ bool ReadAlign::chimericDetection() { uint jR; for (jR=0;jR<100;jR++) {//forward check if (trChim[0].Str==0) { - b0=G.G[chimJ0+jR]; + b0=mapGen.G[chimJ0+jR]; } else { - b0=G.G[chimJ0-jR]; + b0=mapGen.G[chimJ0-jR]; if (b0<4) b0=3-b0; }; if (trChim[1].Str==0) { - b1=G.G[chimJ1+1+jR]; + b1=mapGen.G[chimJ1+1+jR]; } else { - b1=G.G[chimJ1-1-jR]; + b1=mapGen.G[chimJ1-1-jR]; if (b1<4) b1=3-b1; }; if (b0!=b1) break; @@ -317,16 +317,16 @@ bool ReadAlign::chimericDetection() { chimRepeat1=jR; for (jR=0;jR<100;jR++) {//reverse check if (trChim[0].Str==0) { - b0=G.G[chimJ0-1-jR]; + b0=mapGen.G[chimJ0-1-jR]; } else { - b0=G.G[chimJ0+1+jR]; + b0=mapGen.G[chimJ0+1+jR]; if (b0<4) b0=3-b0; }; if (trChim[1].Str==0) { - b1=G.G[chimJ1-jR]; + b1=mapGen.G[chimJ1-jR]; } else { - b1=G.G[chimJ1+jR]; + b1=mapGen.G[chimJ1+jR]; if (b1<4) b1=3-b1; }; if (b0!=b1) break; @@ -356,8 +356,8 @@ bool ReadAlign::chimericDetection() { chimRecord=true; //chimeric alignment was recorded //re-calculate the score for chimeric transcripts - trChim[0].alignScore(Read1, G.G, P); - trChim[1].alignScore(Read1, G.G, P); + trChim[0].alignScore(Read1, mapGen.G, P); + trChim[1].alignScore(Read1, mapGen.G, P); int chimRepresent=-999, chimType=0; if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) {//tr0 has both mates diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 89cb1a3..8a30bdd 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -97,7 +97,7 @@ int ReadAlign::mapOneRead() { nW=0; } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length - stitchPieces(Read1, Qual1, G.G, G.SA, Lread); + stitchPieces(Read1, Qual1, Lread); if (nW>0) multMapSelect(); //check all the windows and transcripts for multiple mappers }; diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index 43ad14f..426b2f9 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -35,7 +35,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, //find SA boundaries uint Lind=Lmax; while (Lind>0) {//check the precense of the prefix for Lind - iSA1=G.SAi[P->genomeSAindexStart[Lind-1]+ind1]; + iSA1=mapGen.SAi[P->genomeSAindexStart[Lind-1]+ind1]; if ((iSA1 & P->SAiMarkAbsentMaskC) == 0) {//prefix exists break; } else {//this prefix does not exist, reduce Lind @@ -45,7 +45,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, }; if (P->genomeSAindexStart[Lind-1]+ind1+1 < P->genomeSAindexStart[Lind]) {//we are not at the end of the SA - iSA2=((G.SAi[P->genomeSAindexStart[Lind-1]+ind1+1] & P->SAiMarkNmask) & P->SAiMarkAbsentMask) - 1; + iSA2=((mapGen.SAi[P->genomeSAindexStart[Lind-1]+ind1+1] & P->SAiMarkNmask) & P->SAiMarkAbsentMask) - 1; } else { iSA2=P->nSA-1; }; @@ -56,7 +56,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, #ifdef SA_SEARCH_FULL //full search of the array even if the index search gave maxL maxL=0; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G.G, G.SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, mapGen.G, mapGen.SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); #else if (Lind < P->genomeSAindexNbases && (iSA1 & P->SAiMarkNmaskC)==0 ) {//no need for SA search indStartEnd[0]=iSA1; @@ -72,14 +72,14 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, indStartEnd[0]=indStartEnd[1]=iSA1; Nrep=1; bool comparRes; - maxL=compareSeqToGenome(Read1,pieceStart, pieceLength, Lind, G.G, G.SA, iSA1, dirR, comparRes, P); + maxL=compareSeqToGenome(Read1, pieceStart, pieceLength, Lind, mapGen.G, mapGen.SA, iSA1, dirR, comparRes, P); } else {//SA search, pieceLength>maxL if ( (iSA1 & P->SAiMarkNmaskC)==0 ) {//no N in the prefix maxL=Lind; } else { maxL=0; }; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, G.G, G.SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, mapGen.G, mapGen.SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); }; #endif diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index ea8a720..130a2cb 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -241,8 +241,8 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i uint matchN=0; for (uint iex=iEx1;iex<=iEx2;iex++) { for (uint ii=0;ii0 || (ii==0 && iex>0 && trOut.canonSJ[iex]==-1) ) { @@ -259,7 +259,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i tagNM+=trOut.exons[iex+1][EX_G]-(trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L]); tagMD+=to_string(matchN) + "^"; for (uint ii=trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L];iigenomeNumToNT[(uint8) G.G[ii]]; + tagMD+=P->genomeNumToNT[(uint8) mapGen.G[ii]]; }; matchN=0; } else if (trOut.canonSJ[iex]==-2) {//insertion diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 9470835..5a691df 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -39,12 +39,12 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript for (uint b=1; b<=left1 ; b++) {//extend to the left char r1=R[alignG[iag]->exons[iab][EX_R]-b]; - char g1=G.G[alignG[iag]->exons[iab][EX_G]-b]; + char g1=mapGen.G[alignG[iag]->exons[iab][EX_G]-b]; if ( r1!=g1 && r1<4 && g1<4) ++nMM1; }; for (uint b=0; bexons[iab][EX_R]+alignG[iag]->exons[iab][EX_L]+b]; - char g1=G.G[alignG[iag]->exons[iab][EX_G]+alignG[iag]->exons[iab][EX_L]+b]; + char g1=mapGen.G[alignG[iag]->exons[iab][EX_G]+alignG[iag]->exons[iab][EX_L]+b]; if ( r1!=g1 && r1<4 && g1<4) ++nMM1; }; alignG[iag]->exons[iab][EX_R] -= left1; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 43993b7..7e4c1c4 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -10,7 +10,7 @@ #include "GlobalVariables.h" #include -void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint Lread) { +void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { //zero-out winBin memset(winBin[0],255,sizeof(winBin[0][0])*P->winBinN); @@ -49,7 +49,7 @@ void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) {//scan through all alignments of this piece - uint a1 = SA[iSA]; + uint a1 = mapGen.SA[iSA]; uint aStr = a1 >> P->GstrandBit; a1 &= P->GstrandMask; //remove strand bit @@ -139,7 +139,7 @@ void ReadAlign::stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) {//scan through all alignments - uint a1 = SA[iSA]; + uint a1 = mapGen.SA[iSA]; uint aStr = a1 >> P->GstrandBit; a1 &= P->GstrandMask; //remove strand bit uint aRstart=PC[iP][PC_rStart]; @@ -298,7 +298,7 @@ std::time(&timeStart); #ifdef COMPILE_FOR_LONG_READS - stitchWindowSeeds(iW, iW1, NULL, R[trA.roStr==0 ? 0:2], Q[trA.roStr], G); + stitchWindowSeeds(iW, iW1, NULL, R[trA.roStr==0 ? 0:2], Q[trA.roStr], mapGen.G); if (P->chimSegmentMin>0) { for (uint ia=0;ianextTrScore= nWinTr[iW1]==1 ? 0 : trAll[iW1][1]->maxScore; diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 35b53b6..eee8104 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -8,7 +8,7 @@ #include "binarySearch2.h" #include "ErrorWarning.h" -void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q, char *G) {//stitches all seeds in one window: iW +void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q) {//stitches all seeds in one window: iW for (uint iS1=0;iS1outFilterBySJoutStage==2 && trA1.nExons>1) {//junctions have to be present in the filtered set P->sjnovel @@ -54,7 +54,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c } else {//extend to the left score2=WA[iW][iS1][WA_Length]; if ( WA[iW][iS1][WA_rStart]>0 \ - && extendAlign(R, Q, G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + && extendAlign(R, Q, mapGen.G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; @@ -79,7 +79,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread-1 \ - && extendAlign(R, Q, G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + && extendAlign(R, Q, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) {//extend to the right scoreSeedBest[iS1]+=trA1.maxScore; @@ -128,7 +128,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint iS1=seedChain[iSc], iS2=seedChain[iSc-1]; int scoreStitch= stitchAlignToTranscript(WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]-1, WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]-1,\ WA[iW][iS2][WA_rStart], WA[iW][iS2][WA_gStart], WA[iW][iS2][WA_Length], WA[iW][iS2][WA_iFrag], WA[iW][iS2][WA_sjA], \ - P, R, Q, G, &trA, outFilterMismatchNmaxTotal); + P, R, Q, mapGen.G, &trA, outFilterMismatchNmaxTotal); // if (scoreStitch>0) { Score+=scoreStitch; // } else { @@ -142,7 +142,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c {//extend to the left trA1=*trInit; if ( trA.exons[0][EX_R]>0 \ - && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, + && extendAlign(R, Q, mapGen.G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend trA.add(&trA1); @@ -161,7 +161,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread \ - && extendAlign(R, Q, G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ + && extendAlign(R, Q, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ P->alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend trA.add(&trA1); trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon @@ -175,7 +175,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c // uint nMM1=0; // for (uint iex=0;iexG.Var, R, RA->Read1, G, P); + Score+=trA.variationAdjust(*RA->mapGen.Var, R, RA->Read1, G, P); trA.maxScore=Score; From 14a3102c4caf31f680309332ff3233b092c6434f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 26 Apr 2017 16:50:28 -0400 Subject: [PATCH 239/536] Replacing P-> with P. Save before replacing *P) with P) --- BAMbinSortByCoordinate.cpp | 8 +- BAMbinSortByCoordinate.h | 2 +- BAMbinSortUnmapped.cpp | 6 +- BAMbinSortUnmapped.h | 2 +- BAMoutput.cpp | 38 +-- BAMoutput.h | 6 +- Chain.cpp | 12 +- Chain.h | 4 +- Genome.cpp | 376 ++++++++++----------- Genome.h | 5 +- Genome_insertSequences.cpp | 18 +- OutSJ.cpp | 14 +- OutSJ.h | 8 +- Parameters.cpp | 2 +- ReadAlign.cpp | 88 ++--- ReadAlign.h | 4 +- ReadAlignChunk.cpp | 66 ++-- ReadAlignChunk.h | 4 +- ReadAlignChunk_mapChunk.cpp | 54 +-- ReadAlignChunk_processChunks.cpp | 126 +++---- ReadAlign_alignBAM.cpp | 40 +-- ReadAlign_assignAlignToWindow.cpp | 8 +- ReadAlign_chimericDetection.cpp | 66 ++-- ReadAlign_createExtendWindowsWithAlign.cpp | 18 +- ReadAlign_mapOneRead.cpp | 22 +- ReadAlign_maxMappableLength2strands.cpp | 30 +- ReadAlign_multMapSelect.cpp | 22 +- ReadAlign_oneRead.cpp | 8 +- ReadAlign_outputAlignments.cpp | 102 +++--- ReadAlign_outputTranscriptCIGARp.cpp | 2 +- ReadAlign_outputTranscriptSAM.cpp | 50 +-- ReadAlign_outputTranscriptSJ.cpp | 2 +- ReadAlign_quantTranscriptome.cpp | 18 +- ReadAlign_stitchPieces.cpp | 50 +-- ReadAlign_stitchWindowSeeds.cpp | 50 +-- ReadAlign_storeAligns.cpp | 10 +- STAR.cpp | 289 ++++++++-------- SuffixArrayFuns.cpp | 44 +-- SuffixArrayFuns.h | 10 +- Transcript.h | 4 +- Transcript_alignScore.cpp | 20 +- Transcript_variationAdjust.cpp | 4 +- Transcriptome.cpp | 16 +- Transcriptome.h | 6 +- Variation.cpp | 27 +- Variation.h | 6 +- bamRemoveDuplicates.cpp | 12 +- bamRemoveDuplicates.h | 2 +- genomeGenerate.cpp | 186 +++++----- genomeGenerate.h | 2 +- genomeParametersWrite.cpp | 36 +- genomeParametersWrite.h | 2 +- genomeSAindex.cpp | 140 ++++---- genomeSAindex.h | 6 +- genomeScanFastaFiles.cpp | 50 +-- genomeScanFastaFiles.h | 2 +- insertSeqSA.cpp | 74 ++-- insertSeqSA.h | 2 +- loadGTF.cpp | 80 ++--- loadGTF.h | 2 +- mapThreadsSpawn.cpp | 14 +- mapThreadsSpawn.h | 2 +- outputSJ.cpp | 56 +-- outputSJ.h | 2 +- readLoad.cpp | 48 +-- readLoad.h | 2 +- sjSplitAlign.cpp | 14 +- sjdbBuildIndex.cpp | 140 ++++---- sjdbBuildIndex.h | 2 +- sjdbInsertJunctions.cpp | 78 ++--- sjdbInsertJunctions.h | 2 +- sjdbLoadFromFiles.cpp | 16 +- sjdbLoadFromFiles.h | 2 +- sjdbPrepare.cpp | 100 +++--- sjdbPrepare.h | 2 +- stitchAlignToTranscript.cpp | 90 ++--- stitchAlignToTranscript.h | 2 +- stitchGapIndel.cpp | 4 +- stitchWindowAligns.cpp | 62 ++-- stitchWindowAligns.h | 2 +- streamFuns.cpp | 26 +- streamFuns.h | 8 +- 82 files changed, 1516 insertions(+), 1521 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index a617064..b821e68 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -3,7 +3,7 @@ #include "serviceFuns.cpp" #include "BAMfunctions.h" -void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, Parameters *P) { +void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, Parameters &P) { if (binS==0) return; //nothing to do for empty bins //allocate arrays @@ -30,7 +30,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st ostringstream errOut; errOut << "EXITING because of FATAL ERROR: number of bytes expected from the BAM bin does not agree with the actual size on disk: "; errOut << binS <<" "<< bamInBytes <<" "<< iBin <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, 1, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, *P); }; //extract coordinates @@ -48,8 +48,8 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st qsort((void*) startPos, binN, sizeof(uint)*3, funCompareArrays); BGZF *bgzfBin; - bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P->outBAMcompression)).c_str()); - outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrNameAll,P->chrLengthAll); + bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P.outBAMcompression)).c_str()); + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,P.chrNameAll,P.chrLengthAll); //send ordered aligns to bgzf one-by-one for (uint ia=0;iaoutBAMcompression)).c_str()); - outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrNameAll,P->chrLengthAll); + bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P.outBAMcompression)).c_str()); + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,P.chrNameAll,P.chrLengthAll); vector bamInFile; diff --git a/BAMbinSortUnmapped.h b/BAMbinSortUnmapped.h index 070352a..cffbb4a 100644 --- a/BAMbinSortUnmapped.h +++ b/BAMbinSortUnmapped.h @@ -4,6 +4,6 @@ #include "Parameters.h" #include SAMTOOLS_BGZF_H -void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters *P); +void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters &P); #endif diff --git a/BAMoutput.cpp b/BAMoutput.cpp index 13f64fb..78bc149 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -5,18 +5,18 @@ #include "serviceFuns.cpp" #include "ThreadControl.h" -BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate bam array +BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters &Pin) {//allocate bam array P=Pin; - nBins=P->outBAMcoordNbins; - binSize=P->chunkOutBAMsizeBytes/nBins; + nBins=P.outBAMcoordNbins; + binSize=P.chunkOutBAMsizeBytes/nBins; bamArraySize=binSize*nBins; bamArray = new char [bamArraySize]; bamDir=tmpDir+to_string((uint) iChunk);//local directory for this thread (iChunk) - mkdir(bamDir.c_str(),P->runDirPerm); + mkdir(bamDir.c_str(),P.runDirPerm); binStart=new char* [nBins]; binBytes=new uint64 [nBins]; binStream=new ofstream* [nBins]; @@ -34,11 +34,11 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate ba nBins=1;//start with one bin to estimate genomic bin sizes }; -BAMoutput::BAMoutput (BGZF *bgzfBAMin, Parameters *Pin) {//allocate BAM array with one bin, streamed directly into bgzf file +BAMoutput::BAMoutput (BGZF *bgzfBAMin, Parameters &Pin) {//allocate BAM array with one bin, streamed directly into bgzf file P=Pin; - bamArraySize=P->chunkOutBAMsizeBytes; + bamArraySize=P.chunkOutBAMsizeBytes; bamArray = new char [bamArraySize]; binBytes1=0; bgzfBAM=bgzfBAMin; @@ -90,9 +90,9 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint iRead) { bamIn32=(uint32*) bamIn; alignG=( ((uint) bamIn32[1]) << 32 ) | ( (uint)bamIn32[2] ); if (bamIn32[1] == ((uint32) -1) ) {//unmapped - iBin=P->outBAMcoordNbins-1; + iBin=P.outBAMcoordNbins-1; } else if (nBins>1) {//bin starts have already been determined - iBin=binarySearch1a (alignG, P->outBAMsortingBinStart, (int32) (nBins-1)); + iBin=binarySearch1a (alignG, P.outBAMsortingBinStart, (int32) (nBins-1)); }; }; @@ -104,7 +104,7 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint iRead) { //write buffer is filled if (binBytes[iBin]+bamSize+sizeof(uint) > ( (iBin>0 || nBins>1) ? binSize : binSize1) ) {//write out this buffer - if ( nBins>1 || iBin==(P->outBAMcoordNbins-1) ) {//normal writing, bins have already been determined + if ( nBins>1 || iBin==(P.outBAMcoordNbins-1) ) {//normal writing, bins have already been determined binStream[iBin]->write(binStart[iBin],binBytes[iBin]); binBytes[iBin]=0;//rewind the buffer } else {//the first chunk of reads was written in one bin, need to determine bin sizes, and re-distribute reads into bins @@ -125,11 +125,11 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint iRead) { }; void BAMoutput::coordBins() {//define genomic starts for bins - nBins=P->outBAMcoordNbins;//this is the true number of bins + nBins=P.outBAMcoordNbins;//this is the true number of bins //mutex here - if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexBAMsortBins); - if (P->outBAMsortingBinStart[0]!=0) {//it's set to 0 only after the bin sizes are determined + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexBAMsortBins); + if (P.outBAMsortingBinStart[0]!=0) {//it's set to 0 only after the bin sizes are determined //extract coordinates and sort uint *startPos = new uint [binTotalN[0]];//array of aligns start positions for (uint ib=0,ia=0;iainOut->logMain << "BAM sorting: "<inOut->logMain << "BAM sorting bins genomic start loci:\n"; + P.inOut->logMain << "BAM sorting: "<logMain << "BAM sorting bins genomic start loci:\n"; - P->outBAMsortingBinStart[0]=0; + P.outBAMsortingBinStart[0]=0; for (uint32 ib=1; ib<(nBins-1); ib++) { - P->outBAMsortingBinStart[ib]=startPos[binTotalN[0]/(nBins-1)*ib]; - P->inOut->logMain << ib <<"\t"<< (P->outBAMsortingBinStart[ib]>>32) << "\t" << ((P->outBAMsortingBinStart[ib]<<32)>>32) <logMain << ib <<"\t"<< (P.outBAMsortingBinStart[ib]>>32) << "\t" << ((P.outBAMsortingBinStart[ib]<<32)>>32) <runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexBAMsortBins); + if (P.runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexBAMsortBins); //re-allocate binStart uint binTotalNold=binTotalN[0]; @@ -186,7 +186,7 @@ void BAMoutput::coordFlush () {//flush all alignments }; void BAMoutput::coordUnmappedPrepareBySJout () {//flush all alignments - uint iBin=P->outBAMcoordNbins-1; + uint iBin=P.outBAMcoordNbins-1; binStream[iBin]->write(binStart[iBin],binBytes[iBin]); binStream[iBin]->flush(); binBytes[iBin]=0;//rewind the buffer diff --git a/BAMoutput.h b/BAMoutput.h index 3228a8e..bc939ea 100644 --- a/BAMoutput.h +++ b/BAMoutput.h @@ -8,12 +8,12 @@ class BAMoutput {// public: //sorted output - BAMoutput (int iChunk, string tmpDir, Parameters *Pin); + BAMoutput (int iChunk, string tmpDir, Parameters &Pin); void coordOneAlign (char *bamIn, uint bamSize, uint iRead); void coordBins (); void coordFlush (); //unsorted output - BAMoutput (BGZF *bgzfBAMin, Parameters *Pin); + BAMoutput (BGZF *bgzfBAMin, Parameters &Pin); void unsortedOneAlign (char *bamIn, uint bamSize, uint bamSize2); void unsortedFlush (); void coordUnmappedPrepareBySJout(); @@ -30,7 +30,7 @@ class BAMoutput {// uint64 *binBytes, binBytes1;//number of bytes currently written to each bin ofstream **binStream;//output streams for each bin BGZF *bgzfBAM; - Parameters *P; + Parameters &P; string bamDir; }; diff --git a/Chain.cpp b/Chain.cpp index 80024a5..1d40a9b 100644 --- a/Chain.cpp +++ b/Chain.cpp @@ -2,7 +2,7 @@ #include "streamFuns.h" #include "serviceFuns.cpp" -Chain::Chain(Parameters *Pin, string chainFileNameIn) : P(Pin), chainFileName(chainFileNameIn) +Chain::Chain(Parameters &Pin, string chainFileNameIn) : P(Pin), chainFileName(chainFileNameIn) { chainLoad(); }; @@ -74,7 +74,7 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) continue;//empty or comment line if (chrChains.count(chr1)==0) - exitWithError("GTF contains chromosome " + chr1 + " not present in the chain file " + chainFileName,std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError("GTF contains chromosome " + chr1 + " not present in the chain file " + chainFileName,std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); OneChain *ch1 = & chrChains[chr1];//the chain for the chr1 @@ -115,12 +115,12 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) streamOut.close(); }; -// if (P->chrNameIndex.count(oldname)) +// if (P.chrNameIndex.count(oldname)) // { // ostringstream errOut; // errOut << "EXITING because of fatal INPUT file error: chain file contains chromosome (scaffold) not present in the genome " << oldname <<"\n"; // errOut << ERROR_OUT << "\n"; -// exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); +// exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); // }; -// uint ichr=P->chrNameIndex[oldname];//chr index in the genome list -// bStart1[bN] += P->chrLength[ichr];//whole genome chain - shift by chr start +// uint ichr=P.chrNameIndex[oldname];//chr index in the genome list +// bStart1[bN] += P.chrLength[ichr];//whole genome chain - shift by chr start diff --git a/Chain.h b/Chain.h index a7079c2..d5f70b8 100644 --- a/Chain.h +++ b/Chain.h @@ -18,10 +18,10 @@ class Chain { // // uint bN;//number of blocks // // vector bStart1, bStart2, bLen; //blocks starts in 1/2, lengths - Chain(Parameters *Pin, string chainFileNameIn); + Chain(Parameters &Pin, string chainFileNameIn); void liftOverGTF(string gtfFileName, string outFileName); private: - Parameters *P; + Parameters &P; string chainFileName; void chainLoad(); std::map chrChains; diff --git a/Genome.cpp b/Genome.cpp index 22bf361..54f348d 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -25,8 +25,8 @@ //arbitrary number for ftok function #define SHM_projectID 23 -Genome::Genome (Parameters* Pin ): P(Pin), shmStart(NULL), sharedMemory(NULL) { - shmKey=ftok(P->genomeDir.c_str(),SHM_projectID); +Genome::Genome (Parameters& Pin ): P(Pin), shmStart(NULL), sharedMemory(NULL) { + shmKey=ftok(P.genomeDir.c_str(),SHM_projectID); }; Genome::~Genome() @@ -38,7 +38,7 @@ Genome::~Genome() void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array - if (P->genomeLoad=="NoSharedMemory") {//can deallocate only for non-shared memory + if (P.genomeLoad=="NoSharedMemory") {//can deallocate only for non-shared memory delete[] G1; G1=NULL; SA.deallocateArray(); @@ -49,26 +49,26 @@ void Genome::freeMemory(){//free big chunks of memory used by genome and suffix uint Genome::OpenStream(string name, ifstream & stream, uint size) { - stream.open((P->genomeDir+ "/" +name).c_str(), ios::binary); + stream.open((P.genomeDir+ "/" +name).c_str(), ios::binary); if (!stream.good()) { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir << "/" << name <<"\n" << endl; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P.genomeDir << "/" << name <<"\n" << endl; errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; if (size>0) { - P->inOut->logMain << name << ": size given as a parameter = " << size <<"\n"; + P.inOut->logMain << name << ": size given as a parameter = " << size <<"\n"; } else { - P->inOut->logMain << "Checking " << name << " size"; + P.inOut->logMain << "Checking " << name << " size"; stream.seekg (0, ios::end); size=(uint) stream.tellg(); stream.clear(); stream.seekg (0, ios::beg); - P->inOut->logMain << "file size: "<< size <<" bytes; state: good=" <logMain << "file size: "<< size <<" bytes; state: good=" <inOut->logStdOut) << timeMonthDayTime(rawtime) << " ..... loading genome\n" <logStdOut) << timeMonthDayTime(rawtime) << " ..... loading genome\n" <genomeDir+("/genomeParameters.txt")).c_str()); + ifstream parFile((P.genomeDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { - P->inOut->logMain << "Reading genome generation parameters:\n"; - P1->inOut = P->inOut; - P1->scanAllLines(parFile,3,-1); + P.inOut->logMain << "Reading genome generation parameters:\n"; + P1.inOut = P.inOut; + P1.scanAllLines(parFile,3,-1); parFile.close(); } else { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir+("/genomeParameters.txt") << endl; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P.genomeDir+("/genomeParameters.txt") << endl; errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; //check genome version - if (P1->versionGenome.size()==0 || P1->versionGenome[0]==0) {// + if (P1.versionGenome.size()==0 || P1.versionGenome[0]==0) {// ostringstream errOut; errOut << "EXITING because of FATAL ERROR: read no value for the versionGenome parameter from genomeParameters.txt file\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - } else if (P->sjdbFileChrStartEnd.at(0)=="-" && P1->versionGenome.at(0) >= P->versionGenome.at(0)) {// - P->inOut->logMain << "Genome version is compatible with current STAR version\n"; - } else if (P->sjdbFileChrStartEnd.at(0)!="-" && P1->versionGenome.at(0) >= P->versionGenome.at(1)) {// - P->inOut->logMain << "Genome version is compatible with current STAR version\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); + } else if (P.sjdbFileChrStartEnd.at(0)=="-" && P1.versionGenome.at(0) >= P.versionGenome.at(0)) {// + P.inOut->logMain << "Genome version is compatible with current STAR version\n"; + } else if (P.sjdbFileChrStartEnd.at(0)!="-" && P1.versionGenome.at(0) >= P.versionGenome.at(1)) {// + P.inOut->logMain << "Genome version is compatible with current STAR version\n"; } else { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: Genome version is INCOMPATIBLE with current STAR version\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; //find chr starts from files - P->chrInfoLoad(); + P.chrInfoLoad(); //check if sjdbInfo.txt exists => genome was generated with junctions bool sjdbInfoExists=false; struct stat sjdb1; - if ( stat( (P->genomeDir+"/sjdbInfo.txt").c_str(), &sjdb1) == 0 ) + if ( stat( (P.genomeDir+"/sjdbInfo.txt").c_str(), &sjdb1) == 0 ) {//file exists sjdbInfoExists=true; }; - if ( P->sjdbInsert.yes && sjdbInfoExists && P1->sjdbInsert.save=="") + if ( P.sjdbInsert.yes && sjdbInfoExists && P1.sjdbInsert.save=="") {//if sjdbInsert, and genome had junctions, and genome is old - it should be re-generated with new STAR ostringstream errOut; errOut << "EXITING because of FATAL ERROR: old Genome is INCOMPATIBLE with on the fly junction insertion\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; //record required genome parameters in P - P->genomeSAindexNbases=P1->genomeSAindexNbases; - P->genomeChrBinNbits=P1->genomeChrBinNbits; - P->genomeChrBinNbases=1LLU<genomeChrBinNbits; - P->genomeSAsparseD=P1->genomeSAsparseD; + P.genomeSAindexNbases=P1.genomeSAindexNbases; + P.genomeChrBinNbits=P1.genomeChrBinNbits; + P.genomeChrBinNbases=1LLU<genomeFileSizes.size()>0) + if (P1.genomeFileSizes.size()>0) {//genomeFileSize was recorded in the genomeParameters file, copy the values to P - P->genomeFileSizes = P1->genomeFileSizes; + P.genomeFileSizes = P1.genomeFileSizes; }; - if (P->parArray.at(P->sjdbOverhang_par)->inputLevel==0 && P1->sjdbOverhang>0) + if (P.parArray.at(P.sjdbOverhang_par)->inputLevel==0 && P1.sjdbOverhang>0) {//if --sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use sjdbOverhang from the genome generation step - P->sjdbOverhang=P1->sjdbOverhang; - P->inOut->logMain << "--sjdbOverhang = " << P->sjdbOverhang << " taken from the generated genome\n"; - } else if (sjdbInfoExists && P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang!=P1->sjdbOverhang) + P.sjdbOverhang=P1.sjdbOverhang; + P.inOut->logMain << "--sjdbOverhang = " << P.sjdbOverhang << " taken from the generated genome\n"; + } else if (sjdbInfoExists && P.parArray.at(P.sjdbOverhang_par)->inputLevel>0 && P.sjdbOverhang!=P1.sjdbOverhang) {//if sjdbOverhang was defined at the genome generation step,the mapping step value has to agree with it ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: present --sjdbOverhang="<sjdbOverhang << " is not equal to the value at the genome generation step ="<< P1->sjdbOverhang << "\n"; + errOut << "EXITING because of fatal PARAMETERS error: present --sjdbOverhang="<inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; - P->sjdbLength = P->sjdbOverhang==0 ? 0 : P->sjdbOverhang*2+1; + P.sjdbLength = P.sjdbOverhang==0 ? 0 : P.sjdbOverhang*2+1; - P->inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<genomeFileSizes.size() < 2) + if (P.genomeFileSizes.size() < 2) {//no size info available - P->genomeFileSizes.push_back(0); - P->genomeFileSizes.push_back(0); + P.genomeFileSizes.push_back(0); + P.genomeFileSizes.push_back(0); }; - P->nGenome = OpenStream("Genome",GenomeIn,P->genomeFileSizes.at(0)); - P->nSAbyte = OpenStream("SA",SAin,P->genomeFileSizes.at(1)); + P.nGenome = OpenStream("Genome",GenomeIn,P.genomeFileSizes.at(0)); + P.nSAbyte = OpenStream("SA",SAin,P.genomeFileSizes.at(1)); OpenStream("/SAindex",SAiIn,1); //we do not need SAiIn siz, using a dummy value here to prevent from reading its size from the disk uint SAiInBytes=0; - SAiInBytes += fstreamReadBig(SAiIn,(char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases)); - P->genomeSAindexStart = new uint[P->genomeSAindexNbases+1]; - SAiInBytes += fstreamReadBig(SAiIn,(char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1)); - P->nSAi=P->genomeSAindexStart[P->genomeSAindexNbases]; - P->inOut->logMain << "Read from SAindex: genomeSAindexNbases=" << P->genomeSAindexNbases <<" nSAi="<< P->nSAi <logMain << "Read from SAindex: genomeSAindexNbases=" << P.genomeSAindexNbases <<" nSAi="<< P.nSAi <GstrandBit = (uint) floor(log(P->nGenome)/log(2))+1; - if (P->GstrandBit<32) P->GstrandBit=32; //TODO: use simple access function for SA + P.GstrandBit = (uint) floor(log(P.nGenome)/log(2))+1; + if (P.GstrandBit<32) P.GstrandBit=32; //TODO: use simple access function for SA - P->GstrandMask = ~(1LLU<GstrandBit); - P->nSA=(P->nSAbyte*8)/(P->GstrandBit+1); - SA.defineBits(P->GstrandBit+1,P->nSA); + P.GstrandMask = ~(1LLU<SAiMarkNbit=P->GstrandBit+1; - P->SAiMarkAbsentBit=P->GstrandBit+2; + P.SAiMarkNbit=P.GstrandBit+1; + P.SAiMarkAbsentBit=P.GstrandBit+2; - P->SAiMarkNmaskC=1LLU << P->SAiMarkNbit; - P->SAiMarkNmask=~P->SAiMarkNmaskC; - P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; - P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; + P.SAiMarkNmaskC=1LLU << P.SAiMarkNbit; + P.SAiMarkNmask=~P.SAiMarkNmaskC; + P.SAiMarkAbsentMaskC=1LLU << P.SAiMarkAbsentBit; + P.SAiMarkAbsentMask=~P.SAiMarkAbsentMaskC; - SAi.defineBits(P->GstrandBit+3,P->nSAi); + SAi.defineBits(P.GstrandBit+3,P.nSAi); - P->inOut->logMain << "nGenome=" << P->nGenome << "; nSAbyte=" << P->nSAbyte <inOut->logMain <<"GstrandBit="<GstrandBit)<<" SA number of indices="<nSA<logMain << "nGenome=" << P.nGenome << "; nSAbyte=" << P.nSAbyte <logMain <<"GstrandBit="<genomeLoad=="LoadAndRemove" || - P->genomeLoad=="LoadAndExit" || - P->genomeLoad=="Remove") && sharedMemory == NULL) + if ((P.genomeLoad=="LoadAndKeep" || + P.genomeLoad=="LoadAndRemove" || + P.genomeLoad=="LoadAndExit" || + P.genomeLoad=="Remove") && sharedMemory == NULL) { - bool unloadLast = P->genomeLoad=="LoadAndRemove"; + bool unloadLast = P.genomeLoad=="LoadAndRemove"; try { sharedMemory = new SharedMemory(shmKey, unloadLast); - sharedMemory->SetErrorStream(P->inOut->logStdOut); + sharedMemory->SetErrorStream(P.inOut->logStdOut); if (!sharedMemory->NeedsAllocation()) - P->inOut->logMain <<"Found genome in shared memory\n"<logMain <<"Found genome in shared memory\n"<genomeLoad=="Remove") {//kill the genome and exit + if (P.genomeLoad=="Remove") {//kill the genome and exit if (sharedMemory->NeedsAllocation()) {//did not find genome in shared memory, nothing to kill ostringstream errOut; errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); } else { sharedMemory->Clean(); - P->inOut->logMain <<"DONE: removed the genome from shared memory\n"<logMain <<"DONE: removed the genome from shared memory\n"<NeedsAllocation()){ - P->inOut->logMain <<"Allocating shared memory for genome\n"<logMain <<"Allocating shared memory for genome\n"<Allocate(shmSize); } } @@ -258,32 +258,32 @@ void Genome::genomeLoad(){//allocate and load Genome // and record the sizes uint iwait=0; - while (*shmNG != P->nGenome) { + while (*shmNG != P.nGenome) { iwait++; - P->inOut->logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <inOut->logMain, EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG, P); }; }; - if (P->nSAbyte!=*shmNSA) + if (P.nSAbyte!=*shmNSA) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: the SA file size did not match what we found in shared memory" << "\n" << flush; errOut << "SOLUTION: remove the shared memory chunk by running STAR with --genomeLoad Remove, and restart STAR" << flush; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INCONSISTENT_DATA, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INCONSISTENT_DATA, P); } - P->inOut->logMain << "Using shared memory for genome. key=0x" <inOut->logMain, EXIT_CODE_SHM, *P); +// exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_SHM, P); // }; - if (P->annotScoreScale>0) {//optional allocation - shmNext += P->nGenome; + if (P.annotScoreScale>0) {//optional allocation + shmNext += P.nGenome; } } - else if (P->genomeLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory + else if (P.genomeLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory { - P->genomeInsertL=0; - if (P->genomeFastaFiles.at(0)!="-") + P.genomeInsertL=0; + if (P.genomeFastaFiles.at(0)!="-") {//will insert sequences in the genome, now estimate the extra size - uint oldlen=P->chrStart.back();//record the old length - P->genomeInsertChrIndFirst=P->nChrReal; - P->genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; + uint oldlen=P.chrStart.back();//record the old length + P.genomeInsertChrIndFirst=P.nChrReal; + P.genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; }; try { - if (P->sjdbInsert.pass1 || P->sjdbInsert.pass2) + if (P.sjdbInsert.pass1 || P.sjdbInsert.pass2) {//reserve extra memory for insertion at the 1st and/or 2nd step - nGenomeInsert=P->nGenome+P->genomeInsertL; - nSAinsert=P->nSA+2*P->genomeInsertL; + nGenomeInsert=P.nGenome+P.genomeInsertL; + nSAinsert=P.nSA+2*P.genomeInsertL; nGenomePass1=nGenomeInsert; nSApass1=nSAinsert; - if (P->sjdbInsert.pass1) + if (P.sjdbInsert.pass1) { - nGenomePass1+=P->limitSjdbInsertNsj*P->sjdbLength; - nSApass1+=2*P->limitSjdbInsertNsj*P->sjdbLength; + nGenomePass1+=P.limitSjdbInsertNsj*P.sjdbLength; + nSApass1+=2*P.limitSjdbInsertNsj*P.sjdbLength; }; nGenomePass2=nGenomePass1; nSApass2=nSApass1; - if (P->sjdbInsert.pass2) + if (P.sjdbInsert.pass2) { - nGenomePass2+=P->limitSjdbInsertNsj*P->sjdbLength; - nSApass2+=2*P->limitSjdbInsertNsj*P->sjdbLength; + nGenomePass2+=P.limitSjdbInsertNsj*P.sjdbLength; + nSApass2+=2*P.limitSjdbInsertNsj*P.sjdbLength; }; G1=new char[nGenomePass2+L+L]; - SApass2.defineBits(P->GstrandBit+1,nSApass2); + SApass2.defineBits(P.GstrandBit+1,nSApass2); SApass2.allocateArray(); - SApass1.defineBits(P->GstrandBit+1,nSApass1); + SApass1.defineBits(P.GstrandBit+1,nSApass1); SApass1.pointArray(SApass2.charArray+SApass2.lengthByte-SApass1.lengthByte); - SAinsert.defineBits(P->GstrandBit+1,nSAinsert); + SAinsert.defineBits(P.GstrandBit+1,nSAinsert); SAinsert.pointArray(SApass1.charArray+SApass1.lengthByte-SAinsert.lengthByte); SA.pointArray(SAinsert.charArray+SAinsert.lengthByte-SA.lengthByte); } else {//no sjdb insertions - if (P->genomeInsertL==0) + if (P.genomeInsertL==0) {// no sequence insertion, simple allocation - G1=new char[P->nGenome+L+L]; + G1=new char[P.nGenome+L+L]; SA.allocateArray(); } else { - G1=new char[P->nGenome+L+L+P->genomeInsertL]; - SAinsert.defineBits(P->GstrandBit+1,P->nSA+2*P->genomeInsertL);//TODO: re-define GstrandBit if necessary + G1=new char[P.nGenome+L+L+P.genomeInsertL]; + SAinsert.defineBits(P.GstrandBit+1,P.nSA+2*P.genomeInsertL);//TODO: re-define GstrandBit if necessary SAinsert.allocateArray(); SA.pointArray(SAinsert.charArray+SAinsert.lengthByte-SA.lengthByte); }; }; SAi.allocateArray(); - P->inOut->logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000 << " bytes\n"; - errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << P->nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000<inOut->logMain, EXIT_CODE_MEMORY_ALLOCATION, *P); + errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM " << P.nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000 << " bytes\n"; + errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << P.nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000<logMain, EXIT_CODE_MEMORY_ALLOCATION, P); }; } @@ -380,7 +380,7 @@ void Genome::genomeLoad(){//allocate and load Genome // ostringstream errOut; // errOut << "EXITING because of FATAL ERROR: 2-pass procedure cannot be used with genome already loaded im memory' "\n" ; // errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <inOut->logMain, EXIT_CODE_SHM, *P); +// exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_SHM, P); // }; @@ -388,154 +388,154 @@ void Genome::genomeLoad(){//allocate and load Genome bool isAllocatorProcess = sharedMemory != NULL && sharedMemory->IsAllocator(); - if (P->genomeLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files + if (P.genomeLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files //load genome - P->inOut->logMain <<"Genome file size: "<nGenome <<" bytes; state: good=" <logMain <<"Genome file size: "<inOut->logMain <<"Loading Genome ... " << flush; - uint genomeReadBytesN=fstreamReadBig(GenomeIn,G,P->nGenome); - P->inOut->logMain <<"done! state: good=" <logMain <<"Loading Genome ... " << flush; + uint genomeReadBytesN=fstreamReadBig(GenomeIn,G,P.nGenome); + P.inOut->logMain <<"done! state: good=" <nGenome+ii]=K-1; + G[P.nGenome+ii]=K-1; }; //load SAs - P->inOut->logMain <<"SA file size: "<inOut->logMain <<"Loading SA ... " << flush; + P.inOut->logMain <<"Loading SA ... " << flush; genomeReadBytesN=fstreamReadBig(SAin,SA.charArray, SA.lengthByte); - P->inOut->logMain <<"done! state: good=" <logMain <<"done! state: good=" <inOut->logMain <<"Loading SAindex ... " << flush; + P.inOut->logMain <<"Loading SAindex ... " << flush; SAiInBytes +=fstreamReadBig(SAiIn,SAi.charArray, SAi.lengthByte); - P->inOut->logMain <<"done: "<logMain <<"done: "<genomeLoad=="LoadAndKeep" || - P->genomeLoad=="LoadAndRemove" || - P->genomeLoad=="LoadAndExit") && isAllocatorProcess ) + if ((P.genomeLoad=="LoadAndKeep" || + P.genomeLoad=="LoadAndRemove" || + P.genomeLoad=="LoadAndExit") && isAllocatorProcess ) { //record sizes. This marks the end of genome loading - *shmNG=P->nGenome; - *shmNSA=P->nSAbyte; + *shmNG=P.nGenome; + *shmNSA=P.nSAbyte; }; time ( &rawtime ); - P->inOut->logMain << "Finished loading the genome: " << asctime (localtime ( &rawtime )) <<"\n"<logMain << "Finished loading the genome: " << asctime (localtime ( &rawtime )) <<"\n"<nGenome; ii++) sum1 += (uint) (unsigned char) G[ii]; - P->inOut->logMain << "Sum of all Genome bytes: " <logMain << "Sum of all Genome bytes: " <inOut->logMain << "Sum of all SA bytes: " <logMain << "Sum of all SA bytes: " <inOut->logMain << "Sum of all SAi bytes: " <logMain << "Sum of all SAi bytes: " <genomeLoad=="LoadAndExit") { + if (P.genomeLoad=="LoadAndExit") { uint shmSum=0; for (uint ii=0;iiinOut->logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<chrBinFill(); + P.chrBinFill(); //splice junctions database - if (P->nGenome==P->chrStart[P->nChrReal]) {//no sjdb - P->sjdbN=0; - P->sjGstart=P->chrStart[P->nChrReal]+1; //not sure why I need that + if (P.nGenome==P.chrStart[P.nChrReal]) {//no sjdb + P.sjdbN=0; + P.sjGstart=P.chrStart[P.nChrReal]+1; //not sure why I need that } else {//there are sjdb chromosomes - ifstream sjdbInfo((P->genomeDir+"/sjdbInfo.txt").c_str()); + ifstream sjdbInfo((P.genomeDir+"/sjdbInfo.txt").c_str()); if (sjdbInfo.fail()) { ostringstream errOut; - errOut << "EXITING because of FATAL error, could not open file " << (P->genomeDir+"/sjdbInfo.txt") <<"\n"; + errOut << "EXITING because of FATAL error, could not open file " << (P.genomeDir+"/sjdbInfo.txt") <<"\n"; errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; - sjdbInfo >> P->sjdbN >> P->sjdbOverhang; - P->inOut->logMain << "Processing splice junctions database sjdbN=" <sjdbN<<", sjdbOverhang=" <sjdbOverhang <<" \n"; + sjdbInfo >> P.sjdbN >> P.sjdbOverhang; + P.inOut->logMain << "Processing splice junctions database sjdbN=" <sjChrStart=P->nChrReal; - P->sjGstart=P->chrStart[P->sjChrStart]; + P.sjChrStart=P.nChrReal; + P.sjGstart=P.chrStart[P.sjChrStart]; //fill the sj-db to genome translation array - P->sjDstart=new uint [P->sjdbN]; - P->sjAstart=new uint [P->sjdbN]; - P->sjdbStart=new uint [P->sjdbN]; - P->sjdbEnd=new uint [P->sjdbN]; + P.sjDstart=new uint [P.sjdbN]; + P.sjAstart=new uint [P.sjdbN]; + P.sjdbStart=new uint [P.sjdbN]; + P.sjdbEnd=new uint [P.sjdbN]; - P->sjdbMotif=new uint8 [P->sjdbN]; - P->sjdbShiftLeft=new uint8 [P->sjdbN]; - P->sjdbShiftRight=new uint8 [P->sjdbN]; - P->sjdbStrand=new uint8 [P->sjdbN]; + P.sjdbMotif=new uint8 [P.sjdbN]; + P.sjdbShiftLeft=new uint8 [P.sjdbN]; + P.sjdbShiftRight=new uint8 [P.sjdbN]; + P.sjdbStrand=new uint8 [P.sjdbN]; - for (uint ii=0;iisjdbN;ii++) {//get the info about junctions from sjdbInfo.txt + for (uint ii=0;ii> P->sjdbStart[ii] >> P->sjdbEnd[ii] >> d1 >> d2 >> d3 >> d4; - P->sjdbMotif[ii] = (uint8) d1; - P->sjdbShiftLeft[ii] = (uint8) d2; - P->sjdbShiftRight[ii] = (uint8) d3; - P->sjdbStrand[ii] = (uint8) d4; + sjdbInfo >> P.sjdbStart[ii] >> P.sjdbEnd[ii] >> d1 >> d2 >> d3 >> d4; + P.sjdbMotif[ii] = (uint8) d1; + P.sjdbShiftLeft[ii] = (uint8) d2; + P.sjdbShiftRight[ii] = (uint8) d3; + P.sjdbStrand[ii] = (uint8) d4; }; - P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; - P->sjAstart[ii] = P->sjdbEnd[ii] + 1; - if (P->sjdbMotif[ii]==0) {//shinon-canonical junctions back to their true coordinates - P->sjDstart[ii] += P->sjdbShiftLeft[ii]; - P->sjAstart[ii] += P->sjdbShiftLeft[ii]; + P.sjDstart[ii] = P.sjdbStart[ii] - P.sjdbOverhang; + P.sjAstart[ii] = P.sjdbEnd[ii] + 1; + if (P.sjdbMotif[ii]==0) {//shinon-canonical junctions back to their true coordinates + P.sjDstart[ii] += P.sjdbShiftLeft[ii]; + P.sjAstart[ii] += P.sjdbShiftLeft[ii]; }; }; }; //check and redefine some parameters //max intron size - if (P->alignIntronMax==0 && P->alignMatesGapMax==0) { - P->inOut->logMain << "alignIntronMax=alignMatesGapMax=0, the max intron size will be approximately determined by (2^winBinNbits)*winAnchorDistNbins=" \ - << (1LLU<winBinNbits)*P->winAnchorDistNbins <logMain << "alignIntronMax=alignMatesGapMax=0, the max intron size will be approximately determined by (2^winBinNbits)*winAnchorDistNbins=" \ + << (1LLU<winBinNbits = (uint) floor( log2( max( max(4LLU,P->alignIntronMax), (P->alignMatesGapMax==0 ? 1000LLU : P->alignMatesGapMax) ) /4 ) + 0.5); - P->winBinNbits = max( P->winBinNbits, (uint) floor(log2(P->nGenome/40000+1)+0.5) ); + P.winBinNbits = (uint) floor( log2( max( max(4LLU,P.alignIntronMax), (P.alignMatesGapMax==0 ? 1000LLU : P.alignMatesGapMax) ) /4 ) + 0.5); + P.winBinNbits = max( P.winBinNbits, (uint) floor(log2(P.nGenome/40000+1)+0.5) ); //ISSUE - to be fixed in STAR3: if alignIntronMax>0 but alignMatesGapMax==0, winBinNbits will be defined by alignIntronMax - P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" redefined winBinNbits="<< P->winBinNbits <logMain << "To accomodate alignIntronMax="< " << "genomeChrBinNbits=" << P->genomeChrBinNbits << " redefining:\n"; - P->winBinNbits=P->genomeChrBinNbits; - P->inOut->logMain << "winBinNbits=" <winBinNbits < P.genomeChrBinNbits) { + P.inOut->logMain << "winBinNbits=" < " << "genomeChrBinNbits=" << P.genomeChrBinNbits << " redefining:\n"; + P.winBinNbits=P.genomeChrBinNbits; + P.inOut->logMain << "winBinNbits=" <alignIntronMax==0 && P->alignMatesGapMax==0) { + if (P.alignIntronMax==0 && P.alignMatesGapMax==0) { } else { //redefine winFlankNbins,winAnchorDistNbins - P->winFlankNbins=max(P->alignIntronMax,P->alignMatesGapMax)/(1LLU<winBinNbits)+1; - P->winAnchorDistNbins=2*P->winFlankNbins; - P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" and alignMatesGapMax="<alignMatesGapMax<<\ - ", redefined winFlankNbins="<winFlankNbins<<" and winAnchorDistNbins="<winAnchorDistNbins<logMain << "To accomodate alignIntronMax="<inOut->logMain << timeMonthDayTime(rawtime) << " ..... inserting extra sequences into genome indexes" <logMain << timeMonthDayTime(rawtime) << " ..... inserting extra sequences into genome indexes" <nGenome-(P->chrStart.back()-P->genomeInsertL);//length of sjdb sequences - memmove(G+P->chrStart.back(),G+P->chrStart.back()-P->genomeInsertL,sjdblen); - memset(G+P->chrStart.back()-P->genomeInsertL, GENOME_spacingChar, P->genomeInsertL);//fill empty space with spacing characters + uint sjdblen=P.nGenome-(P.chrStart.back()-P.genomeInsertL);//length of sjdb sequences + memmove(G+P.chrStart.back(),G+P.chrStart.back()-P.genomeInsertL,sjdblen); + memset(G+P.chrStart.back()-P.genomeInsertL, GENOME_spacingChar, P.genomeInsertL);//fill empty space with spacing characters - genomeScanFastaFiles(P, G+P->chrStart.back()-P->genomeInsertL, true); //read the seqs from file(s) into the free space - uint64 nGenomeOld=P->nGenome; - P->nGenome=P->chrStart.back()+sjdblen; + genomeScanFastaFiles(P, G+P.chrStart.back()-P.genomeInsertL, true); //read the seqs from file(s) into the free space + uint64 nGenomeOld=P.nGenome; + P.nGenome=P.chrStart.back()+sjdblen; //insert new sequences into the SA - insertSeqSA(SA, SAinsert, SAi, G, G+P->chrStart.back()-P->genomeInsertL, nGenomeOld-sjdblen, P->genomeInsertL, sjdblen, P); + insertSeqSA(SA, SAinsert, SAi, G, G+P.chrStart.back()-P.genomeInsertL, nGenomeOld-sjdblen, P.genomeInsertL, sjdblen, P); //insert new sequences into the SAi //update P diff --git a/OutSJ.cpp b/OutSJ.cpp index 71f67b3..3e5369e 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -1,7 +1,7 @@ #include "OutSJ.h" #include "ErrorWarning.h" -OutSJ::OutSJ (uint nSJmax, Parameters *inP) {//do I need P? +OutSJ::OutSJ (uint nSJmax, Parameters &inP) {//do I need P? data = new char [oneSJ.dataSize*nSJmax]; //allocate big array of SJ loci and properties memset(data,0,oneSJ.dataSize*nSJmax); @@ -72,14 +72,14 @@ void Junction::junctionPointer(char* sjPoint, uint isj) {// overhangRight=(uint16*) (d1+overhangRightP); }; -void Junction::outputStream(ostream &outStream, Parameters* P) { - uint sjChr=P->chrBin[*start >> P->genomeChrBinNbits]; - outStream << P->chrName.at(sjChr) <<"\t"<< *start + 1 - P->chrStart[sjChr] <<"\t"<<*start + *gap - P->chrStart[sjChr] \ +void Junction::outputStream(ostream &outStream, Parameters& P) { + uint sjChr=P.chrBin[*start >> P.genomeChrBinNbits]; + outStream << P.chrName.at(sjChr) <<"\t"<< *start + 1 - P.chrStart[sjChr] <<"\t"<<*start + *gap - P.chrStart[sjChr] \ <<"\t"<< int(*strand) <<"\t"<< int(*motif) <<"\t"<< int (*annot) <<"\t"<< *countUnique <<"\t"<< *countMultiple \ <<"\t"<< *overhangLeft << endl; }; -void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters* P) {//collapse isj junction into isj1: increase counts in isj1. choose max overhangs, motif, annot +void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters& P) {//collapse isj junction into isj1: increase counts in isj1. choose max overhangs, motif, annot *(uint32*)(isj1P+countUniqueP) += *(uint32*)(isjP+countUniqueP); *(uint32*)(isj1P+countMultipleP) += *(uint32*)(isjP+countMultipleP); @@ -95,14 +95,14 @@ void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters* P) {//collapse errOut <<"EXITING becaues of BUG: different motifs for the same junction while collapsing junctions\n" \ <<*(uint*)(isj1P+startP) <<" "<<*(uint32*)(isj1P+gapP) <<" "<inOut->logMain, EXIT_CODE_BUG, *P);\ + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P);\ // *(isj1P+motifP) = *(isjP+motifP) ; }; if (*(isj1P+annotP) < *(isjP+annotP) ) { stringstream errOut; errOut <<"EXITING becaues of BUG: different annotation status for the same junction while collapsing junctions:"\ <<*(uint*)(isj1P+startP) <<" "<<*(uint32*)(isj1P+gapP) <<" "<inOut->logMain, EXIT_CODE_BUG, *P);\ + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P);\ // *(isj1P+annotP) = *(isjP+annotP) ; }; diff --git a/OutSJ.h b/OutSJ.h index aa89899..bc54e49 100644 --- a/OutSJ.h +++ b/OutSJ.h @@ -24,8 +24,8 @@ class Junction {//one junction const static uint dataSize=overhangRightP+sizeof(uint16); void junctionPointer(char* sjPoint, uint isj); - void outputStream(ostream &outStream, Parameters* P); - void collapseOneSJ(char* isj1P, char* isjP, Parameters* P); + void outputStream(ostream &outStream, Parameters& P); + void collapseOneSJ(char* isj1P, char* isjP, Parameters& P); }; class OutSJ { @@ -38,9 +38,9 @@ class OutSJ { Junction oneSJ; - Parameters *P; + Parameters &P; - OutSJ(uint nSJmax, Parameters *P); + OutSJ(uint nSJmax, Parameters &P); void collapseSJ();//collapse the junctions in data // int compareSJ(void* i1, void* i2); diff --git a/Parameters.cpp b/Parameters.cpp index e32d0c4..f6b1845 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -532,7 +532,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (removeDuplicates.mode!="-") { *inOut->logStdOut << timeMonthDayTime() << " ..... reading from BAM, remove duplicates, output BAM\n" <logMain << timeMonthDayTime() << " ..... reading from BAM, remove duplicates, output BAM\n" <logStdOut << timeMonthDayTime() << " ..... done\n" <logMain << timeMonthDayTime() << " ..... done\n" <winBinN]; - winBin[1] = new uintWinBin [P->winBinN]; - memset(winBin[0],255,sizeof(winBin[0][0])*P->winBinN); - memset(winBin[1],255,sizeof(winBin[0][0])*P->winBinN); + winBin[0] = new uintWinBin [P.winBinN]; + winBin[1] = new uintWinBin [P.winBinN]; + memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); + memset(winBin[1],255,sizeof(winBin[0][0])*P.winBinN); //RNGs - rngMultOrder.seed(P->runRNGseed*(iChunk+1)); + rngMultOrder.seed(P.runRNGseed*(iChunk+1)); rngUniformReal0to1=std::uniform_real_distribution (0.0, 1.0); //transcriptome - if ( P->quant.trSAM.yes ) { - alignTrAll=new Transcript [P->alignTranscriptsPerReadNmax]; + if ( P.quant.trSAM.yes ) { + alignTrAll=new Transcript [P.alignTranscriptsPerReadNmax]; }; // statsRA=new StatsAll; //split splitR=new uint*[3]; - splitR[0]=new uint[P->maxNsplit]; splitR[1]=new uint[P->maxNsplit]; splitR[2]=new uint[P->maxNsplit]; + splitR[0]=new uint[P.maxNsplit]; splitR[1]=new uint[P.maxNsplit]; splitR[2]=new uint[P.maxNsplit]; //alignments - PC=new uiPC[P->seedPerReadNmax]; - WC=new uiWC[P->alignWindowsPerReadNmax]; + PC=new uiPC[P.seedPerReadNmax]; + WC=new uiWC[P.alignWindowsPerReadNmax]; - nWA=new uint[P->alignWindowsPerReadNmax]; - nWAP=new uint[P->alignWindowsPerReadNmax]; - WALrec=new uint[P->alignWindowsPerReadNmax]; - WlastAnchor=new uint[P->alignWindowsPerReadNmax]; + nWA=new uint[P.alignWindowsPerReadNmax]; + nWAP=new uint[P.alignWindowsPerReadNmax]; + WALrec=new uint[P.alignWindowsPerReadNmax]; + WlastAnchor=new uint[P.alignWindowsPerReadNmax]; #ifdef COMPILE_FOR_LONG_READS - swWinCov = new uint[P->alignWindowsPerReadNmax]; - -// if (P->swMode==1) { -// swWinGleft = new uint[P->alignWindowsPerReadNmax]; -// swWinGright = new uint[P->alignWindowsPerReadNmax]; -// swWinRleft = new uint[P->alignWindowsPerReadNmax]; -// swWinRright = new uint[P->alignWindowsPerReadNmax]; -// P->swHsize=5000000000LLU; -// swT = new char [P->swHsize]; + swWinCov = new uint[P.alignWindowsPerReadNmax]; + +// if (P.swMode==1) { +// swWinGleft = new uint[P.alignWindowsPerReadNmax]; +// swWinGright = new uint[P.alignWindowsPerReadNmax]; +// swWinRleft = new uint[P.alignWindowsPerReadNmax]; +// swWinRright = new uint[P.alignWindowsPerReadNmax]; +// P.swHsize=5000000000LLU; +// swT = new char [P.swHsize]; // }; - scoreSeedToSeed = new intScore [P->seedPerWindowNmax*(P->seedPerWindowNmax+1)/2]; - scoreSeedBest = new intScore [P->seedPerWindowNmax]; - scoreSeedBestInd = new uint [P->seedPerWindowNmax]; - scoreSeedBestMM = new uint [P->seedPerWindowNmax]; - seedChain = new uint [P->seedPerWindowNmax]; + scoreSeedToSeed = new intScore [P.seedPerWindowNmax*(P.seedPerWindowNmax+1)/2]; + scoreSeedBest = new intScore [P.seedPerWindowNmax]; + scoreSeedBestInd = new uint [P.seedPerWindowNmax]; + scoreSeedBestMM = new uint [P.seedPerWindowNmax]; + seedChain = new uint [P.seedPerWindowNmax]; #endif - WA=new uiWA*[P->alignWindowsPerReadNmax]; - for (uint ii=0;iialignWindowsPerReadNmax;ii++) WA[ii]=new uiWA[P->seedPerWindowNmax]; + WA=new uiWA*[P.alignWindowsPerReadNmax]; + for (uint ii=0;iiseedPerWindowNmax]; + WAincl = new bool [P.seedPerWindowNmax]; - trAll = new Transcript**[P->alignWindowsPerReadNmax+1]; + trAll = new Transcript**[P.alignWindowsPerReadNmax+1]; - nWinTr = new uint[P->alignWindowsPerReadNmax]; + nWinTr = new uint[P.alignWindowsPerReadNmax]; - trArray = new Transcript[P->alignTranscriptsPerReadNmax]; - trArrayPointer = new Transcript*[P->alignTranscriptsPerReadNmax]; - for (uint ii=0;iialignTranscriptsPerReadNmax;ii++) trArrayPointer[ii]= &(trArray[ii]); + trArray = new Transcript[P.alignTranscriptsPerReadNmax]; + trArrayPointer = new Transcript*[P.alignTranscriptsPerReadNmax]; + for (uint ii=0;iireadNmates]; - for (uint ii=0; iireadNmates; ii++) { + readNameMates=new char* [P.readNmates]; + for (uint ii=0; iireadNmates+2]; //extra piece for chimeric reads - outBAMoneAlign = new char* [P->readNmates+2]; //extra piece for chimeric reads - for (uint ii=0; iireadNmates+2; ii++) { + outBAMoneAlignNbytes = new uint [P.readNmates+2]; //extra piece for chimeric reads + outBAMoneAlign = new char* [P.readNmates+2]; //extra piece for chimeric reads + for (uint ii=0; iireadNmates; ii++) { + for (uint ii=0; iialignTranscriptsPerReadNmax;ii++) trArrayPointer[ii]= &(trArray[ii]); +// for (uint ii=0;ii #include "ErrorWarning.h" -ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin) {//initialize chunk +ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin) {//initialize chunk iThread=iChunk; - if ( P->quant.yes ) {//allocate transcriptome structures + if ( P.quant.yes ) {//allocate transcriptome structures chunkTr=new Transcriptome(*TrIn); chunkTr->quantsAllocate(); } else { @@ -17,69 +17,69 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome RA->iRead=0; - chunkIn=new char* [P->readNmates]; - readInStream=new istringstream* [P->readNmates]; -// readInStream=new istringstream* [P->readNmates]; - for (uint ii=0;iireadNmates;ii++) { - chunkIn[ii]=new char[P->chunkInSizeBytesArray];//reserve more space to finish loading one read - memset(chunkIn[ii],'\n',P->chunkInSizeBytesArray); + chunkIn=new char* [P.readNmates]; + readInStream=new istringstream* [P.readNmates]; +// readInStream=new istringstream* [P.readNmates]; + for (uint ii=0;iirdbuf()->pubsetbuf(chunkIn[ii],P->chunkInSizeBytesArray); + readInStream[ii]->rdbuf()->pubsetbuf(chunkIn[ii],P.chunkInSizeBytesArray); RA->readInStream[ii]=readInStream[ii]; }; - if (P->outSAMbool) { - chunkOutBAM=new char [P->chunkOutBAMsizeBytes]; + if (P.outSAMbool) { + chunkOutBAM=new char [P.chunkOutBAMsizeBytes]; RA->outBAMarray=chunkOutBAM; chunkOutBAMstream=new ostringstream; - chunkOutBAMstream->rdbuf()->pubsetbuf(chunkOutBAM,P->chunkOutBAMsizeBytes); + chunkOutBAMstream->rdbuf()->pubsetbuf(chunkOutBAM,P.chunkOutBAMsizeBytes); RA->outSAMstream=chunkOutBAMstream; RA->outSAMstream->seekp(0,ios::beg); chunkOutBAMtotal=0; }; - if (P->outBAMunsorted) { - chunkOutBAMunsorted = new BAMoutput (P->inOut->outBAMfileUnsorted, P); + if (P.outBAMunsorted) { + chunkOutBAMunsorted = new BAMoutput (P.inOut->outBAMfileUnsorted, P); RA->outBAMunsorted = chunkOutBAMunsorted; } else { chunkOutBAMunsorted=NULL; RA->outBAMunsorted=NULL; }; - if (P->outBAMcoord) { - chunkOutBAMcoord = new BAMoutput (iChunk, P->outBAMsortTmpDir, P); + if (P.outBAMcoord) { + chunkOutBAMcoord = new BAMoutput (iChunk, P.outBAMsortTmpDir, P); RA->outBAMcoord = chunkOutBAMcoord; } else { chunkOutBAMcoord=NULL; RA->outBAMcoord=NULL; }; - if ( P->quant.trSAM.yes ) { - chunkOutBAMquant = new BAMoutput (P->inOut->outQuantBAMfile,P); + if ( P.quant.trSAM.yes ) { + chunkOutBAMquant = new BAMoutput (P.inOut->outQuantBAMfile,P); RA->outBAMquant = chunkOutBAMquant; } else { chunkOutBAMquant=NULL; RA->outBAMquant=NULL; }; - chunkOutSJ=new OutSJ (P->limitOutSJcollapsed, P); - chunkOutSJ1=new OutSJ (P->limitOutSJcollapsed, P); + chunkOutSJ=new OutSJ (P.limitOutSJcollapsed, P); + chunkOutSJ1=new OutSJ (P.limitOutSJcollapsed, P); RA->chunkOutSJ=chunkOutSJ; RA->chunkOutSJ1=chunkOutSJ1; - if (P->chimSegmentMin>0) { - chunkFstreamOpen(P->outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); - chunkFstreamOpen(P->outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); + if (P.chimSegmentMin>0) { + chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); + chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); }; - if (P->outReadsUnmapped=="Fastx" ) { - chunkFstreamOpen(P->outFileTmp + "/Unmapped.out.mate1.thread",iChunk, RA->chunkOutUnmappedReadsStream[0]); - if (P->readNmates==2) chunkFstreamOpen(P->outFileTmp + "/Unmapped.out.mate2.thread",iChunk, RA->chunkOutUnmappedReadsStream[1]); + if (P.outReadsUnmapped=="Fastx" ) { + chunkFstreamOpen(P.outFileTmp + "/Unmapped.out.mate1.thread",iChunk, RA->chunkOutUnmappedReadsStream[0]); + if (P.readNmates==2) chunkFstreamOpen(P.outFileTmp + "/Unmapped.out.mate2.thread",iChunk, RA->chunkOutUnmappedReadsStream[1]); }; - if (P->outFilterType=="BySJout") { - chunkFstreamOpen(P->outFileTmp + "/FilterBySJoutFiles.mate1.thread",iChunk, RA->chunkOutFilterBySJoutFiles[0]); - if (P->readNmates==2) chunkFstreamOpen(P->outFileTmp + "/FilterBySJoutFiles.mate2.thread",iChunk, RA->chunkOutFilterBySJoutFiles[1]); + if (P.outFilterType=="BySJout") { + chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate1.thread",iChunk, RA->chunkOutFilterBySJoutFiles[0]); + if (P.readNmates==2) chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate2.thread",iChunk, RA->chunkOutFilterBySJoutFiles[1]); }; }; @@ -88,7 +88,7 @@ void ReadAlignChunk::chunkFstreamOpen(string filePrefix, int iChunk, fstream &fs ostringstream fNameStream1; fNameStream1 << filePrefix << iChunk; string fName1=fNameStream1.str(); - P->inOut->logMain << "Opening the file: " << fName1 << " ... " <logMain << "Opening the file: " << fName1 << " ... " <inOut->logMain << "failed!\n"; + P.inOut->logMain << "failed!\n"; ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not create output file "<< fName1 << "\n"; errOut << "Solution: check that you have permission to write this file\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - P->inOut->logMain << "ok" <logMain << "ok" <readInStream[ii] RA->statsRA.resetN(); - for (uint ii=0;iireadNmates;ii++) {//clear eof and rewind the input streams + for (uint ii=0;iireadInStream[ii]->clear(); RA->readInStream[ii]->seekg(0,ios::beg); }; - if ( P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//open chunk file + if ( P.outSAMorder == "PairedKeepInputOrder" && P.runThreadN>1 ) {//open chunk file ostringstream name1(""); - name1 << P->outFileTmp + "/Aligned.tmp.sam.chunk"<outSAMbool) { - if ( chunkOutBAMtotal > P->chunkOutBAMsizeBytes ) {//this should not happen! + if (P.outSAMbool) { + if ( chunkOutBAMtotal > P.chunkOutBAMsizeBytes ) {//this should not happen! ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SAM/BAM output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSAMoneReadBytes\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - } else if ( chunkOutBAMtotal + P->limitOutSAMoneReadBytes > P->chunkOutBAMsizeBytes || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped - if ( P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//output chunks into separate files + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } else if ( chunkOutBAMtotal + P.limitOutSAMoneReadBytes > P.chunkOutBAMsizeBytes || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped + if ( P.outSAMorder == "PairedKeepInputOrder" && P.runThreadN>1 ) {//output chunks into separate files chunkOutBAMfile.write(chunkOutBAM,chunkOutBAMtotal); chunkOutBAMfile.clear(); //in case 0 bytes were written which could set fail bit } else {//standard way, directly into Aligned.out.sam file //SAM output - if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); - P->inOut->outSAM->write(chunkOutBAM,chunkOutBAMtotal); - P->inOut->outSAM->clear();//in case 0 bytes were written which could set fail bit - if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutSAM); + P.inOut->outSAM->write(chunkOutBAM,chunkOutBAMtotal); + P.inOut->outSAM->clear();//in case 0 bytes were written which could set fail bit + if (P.runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutSAM); }; RA->outSAMstream->seekp(0,ios::beg); //rewind the chunk storage chunkOutBAMtotal=0; @@ -55,53 +55,53 @@ void ReadAlignChunk::mapChunk() {//map one chunk. Input reads stream has to be s }; //collapse SJ buffer if needed - if ( chunkOutSJ->N > P->limitOutSJcollapsed ) {//this means the number of collapsed junctions is larger than the chunks size + if ( chunkOutSJ->N > P.limitOutSJcollapsed ) {//this means the number of collapsed junctions is larger than the chunks size ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJoneRead\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - } else if ( chunkOutSJ->N + P->limitOutSJoneRead > P->limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } else if ( chunkOutSJ->N + P.limitOutSJoneRead > P.limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped chunkOutSJ->collapseSJ(); - if ( chunkOutSJ->N + 2*P->limitOutSJoneRead > P->limitOutSJcollapsed ) { + if ( chunkOutSJ->N + 2*P.limitOutSJoneRead > P.limitOutSJcollapsed ) { ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; //collapse SJ1 buffer if needed - if ( chunkOutSJ1->N > P->limitOutSJcollapsed ) {//this means the number of collapsed junctions is larger than the chunks size + if ( chunkOutSJ1->N > P.limitOutSJcollapsed ) {//this means the number of collapsed junctions is larger than the chunks size ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJoneRead\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - } else if ( chunkOutSJ1->N + P->limitOutSJoneRead > P->limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + } else if ( chunkOutSJ1->N + P.limitOutSJoneRead > P.limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped chunkOutSJ1->collapseSJ(); - if ( chunkOutSJ1->N + 2*P->limitOutSJoneRead > P->limitOutSJcollapsed ) { + if ( chunkOutSJ1->N + 2*P.limitOutSJoneRead > P.limitOutSJcollapsed ) { ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; }; //reads cycle - if ( P->outSAMbool && P->outSAMorder == "PairedKeepInputOrder" && P->runThreadN>1 ) {//write the remaining part of the buffer, close and rename chunk files + if ( P.outSAMbool && P.outSAMorder == "PairedKeepInputOrder" && P.runThreadN>1 ) {//write the remaining part of the buffer, close and rename chunk files chunkOutBAMfile.write(chunkOutBAM,chunkOutBAMtotal); chunkOutBAMfile.clear(); //in case 0 bytes were written which could set fail bit chunkOutBAMfile.close(); RA->outSAMstream->seekp(0,ios::beg); //rewind the chunk storage chunkOutBAMtotal=0; ostringstream name2(""); - name2 << P->outFileTmp + "/Aligned.out.sam.chunk"<runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexStats); + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexStats); g_statsAll.addStats(RA->statsRA); - g_statsAll.progressReport(P->inOut->logProgress); - if (P->runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexStats); + g_statsAll.progressReport(P.inOut->logProgress); + if (P.runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexStats); }; diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 48e1ad3..e308c1c 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -8,113 +8,113 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks while (!noReadsLeft) {//continue until the input EOF //////////////read a chunk from input files and store in memory - if (P->outFilterBySJoutStage<2) {//read chunks from input file + if (P.outFilterBySJoutStage<2) {//read chunks from input file - if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexInRead); + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexInRead); uint chunkInSizeBytesTotal[2]={0,0}; - while (chunkInSizeBytesTotal[0] < P->chunkInSizeBytes && chunkInSizeBytesTotal[1] < P->chunkInSizeBytes && P->inOut->readIn[0].good() && P->inOut->readIn[1].good()) { - char nextChar=P->inOut->readIn[0].peek(); - if (P->iReadAll==P->readMapNumber) {//do nto read any more reads + while (chunkInSizeBytesTotal[0] < P.chunkInSizeBytes && chunkInSizeBytesTotal[1] < P.chunkInSizeBytes && P.inOut->readIn[0].good() && P.inOut->readIn[1].good()) { + char nextChar=P.inOut->readIn[0].peek(); + if (P.iReadAll==P.readMapNumber) {//do nto read any more reads break; } else if (nextChar=='@') {//fastq, not multi-line - P->iReadAll++; //increment read number - for (uint imate=0; imatereadNmates; imate++) {//for all mates + P.iReadAll++; //increment read number + for (uint imate=0; imateoutFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping + if (P.outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping //read or skip the 1st field of the read name line - if (P->outSAMreadID=="Number") { - chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], "@%llu", P->iReadAll); + if (P.outSAMreadID=="Number") { + chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], "@%llu", P.iReadAll); string dummy1; - P->inOut->readIn[imate] >> dummy1; //skip the first field of the read name + P.inOut->readIn[imate] >> dummy1; //skip the first field of the read name } else { - P->inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); + P.inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); chunkInSizeBytesTotal[imate] += strlen(chunkIn[imate] + chunkInSizeBytesTotal[imate]); }; //read the second field of the read name line char passFilterIllumina='N'; - if (P->inOut->readIn[imate].peek()!='\n') {//2nd field exists + if (P.inOut->readIn[imate].peek()!='\n') {//2nd field exists string field2; - P->inOut->readIn[imate] >> field2; + P.inOut->readIn[imate] >> field2; passFilterIllumina='N'; if (field2.length()>=3 && field2.at(2)=='Y') passFilterIllumina='Y'; }; //ignore the rest of the read name - P->inOut->readIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); + P.inOut->readIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); - chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P->iReadAll, passFilterIllumina, P->readFilesIndex); + chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P.iReadAll, passFilterIllumina, P.readFilesIndex); iline=1; }; //do not need to worry about 2nd stage, that's read directly from the files // else {//2nd stage of 2-stage mapping // read index and file index are already recorded with the read name, simply copy it -// P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); +// P.inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); // }; for (;iline<4;iline++) {//TODO ignore the 3rd line of fastq - P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); - chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount(); + P.inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); + chunkInSizeBytesTotal[imate] += P.inOut->readIn[imate].gcount(); chunkIn[imate][chunkInSizeBytesTotal[imate]-1]='\n'; }; }; } else if (nextChar=='>') {//fasta, can be multiline, which is converted to single line - P->iReadAll++; //increment read number - for (uint imate=0; imatereadNmates; imate++) { - if (P->outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping + P.iReadAll++; //increment read number + for (uint imate=0; imateoutSAMreadID=="Number") { - chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], ">%llu", P->iReadAll); + if (P.outSAMreadID=="Number") { + chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], ">%llu", P.iReadAll); } else { - P->inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); + P.inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); chunkInSizeBytesTotal[imate] += strlen(chunkIn[imate] + chunkInSizeBytesTotal[imate]); }; - P->inOut->readIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); + P.inOut->readIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); - chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P->iReadAll, 'N', P->readFilesIndex); + chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P.iReadAll, 'N', P.readFilesIndex); }; // else {//2nd stage of 2-stage mapping // read index and file index are already recorded with the read name, simply copy it -// P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); +// P.inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); // }; - nextChar=P->inOut->readIn[imate].peek(); - while (nextChar!='@' && nextChar!='>' && nextChar!=' ' && nextChar!='\n' && P->inOut->readIn[imate].good()) {//read multi-line fasta - P->inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readSeqLengthMax + 1 ); - if (P->inOut->readIn[imate].gcount()<2) break; //no more input - chunkInSizeBytesTotal[imate] += P->inOut->readIn[imate].gcount()-1; - nextChar=P->inOut->readIn[imate].peek(); + nextChar=P.inOut->readIn[imate].peek(); + while (nextChar!='@' && nextChar!='>' && nextChar!=' ' && nextChar!='\n' && P.inOut->readIn[imate].good()) {//read multi-line fasta + P.inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readSeqLengthMax + 1 ); + if (P.inOut->readIn[imate].gcount()<2) break; //no more input + chunkInSizeBytesTotal[imate] += P.inOut->readIn[imate].gcount()-1; + nextChar=P.inOut->readIn[imate].peek(); }; chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n'; chunkInSizeBytesTotal[imate] ++; }; - } else if (nextChar==' ' || nextChar=='\n' || !P->inOut->readIn[0].good()) {//end of stream - P->inOut->logMain << "Thread #" <inOut->readIn[0] >> P->readFilesIndex; + P.inOut->readIn[0] >> P.readFilesIndex; pthread_mutex_lock(&g_threadChunks.mutexLogMain); - P->inOut->logMain << "Starting to map file # " << P->readFilesIndex<<"\n"; - for (uint imate=0; imatereadNmates; imate++) { - P->inOut->logMain << "mate " <readFilesNames.at(imate).at(P->readFilesIndex) <<"\n"; - P->inOut->readIn[imate].ignore(numeric_limits::max(),'\n'); + P.inOut->logMain << "Starting to map file # " << P.readFilesIndex<<"\n"; + for (uint imate=0; imatelogMain << "mate " <readIn[imate].ignore(numeric_limits::max(),'\n'); }; - P->inOut->logMain<logMain<readNmates==2) {//skip the FILE line for the second read -// getline(P->inOut->readIn[1],word1); +// if (P.readNmates==2) {//skip the FILE line for the second read +// getline(P.inOut->readIn[1],word1); // }; } else {//error ostringstream errOut; errOut << ERROR_OUT <<" EXITING because of FATAL ERROR in input reads: unknown file format: the read ID should start with @ or > \n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; }; @@ -129,13 +129,13 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks g_threadChunks.chunkInN++; }; - for (uint imate=0; imatereadNmates; imate++) chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n';//extra empty line at the end of the chunks + for (uint imate=0; imaterunThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexInRead); + if (P.runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexInRead); } else {//read from one file per thread noReadsLeft=true; - for (uint imate=0; imatereadNmates; imate++) { + for (uint imate=0; imatechunkOutFilterBySJoutFiles[imate].flush(); RA->chunkOutFilterBySJoutFiles[imate].seekg(0,ios::beg); RA->readInStream[imate]=& RA->chunkOutFilterBySJoutFiles[imate]; @@ -144,30 +144,30 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks mapChunk(); - if (iThread==0 && P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files - chunkFilesCat(P->inOut->outSAM, P->outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); + if (iThread==0 && P.runThreadN>1 && P.outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files + chunkFilesCat(P.inOut->outSAM, P.outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); }; };//cycle over input chunks - if (P->outFilterBySJoutStage!=1 && RA->iRead>0) {//not the first stage of the 2-stage mapping - if (P->outBAMunsorted) chunkOutBAMunsorted->unsortedFlush(); - if (P->outBAMcoord) chunkOutBAMcoord->coordFlush(); + if (P.outFilterBySJoutStage!=1 && RA->iRead>0) {//not the first stage of the 2-stage mapping + if (P.outBAMunsorted) chunkOutBAMunsorted->unsortedFlush(); + if (P.outBAMcoord) chunkOutBAMcoord->coordFlush(); if (chunkOutBAMquant!=NULL) chunkOutBAMquant->unsortedFlush(); //the thread is finished mapping reads, concatenate the temp files into output files - if (P->chimSegmentMin>0) { - chunkFstreamCat (RA->chunkOutChimSAM, P->inOut->outChimSAM, P->runThreadN>1, g_threadChunks.mutexOutChimSAM); - chunkFstreamCat (RA->chunkOutChimJunction, P->inOut->outChimJunction, P->runThreadN>1, g_threadChunks.mutexOutChimJunction); + if (P.chimSegmentMin>0) { + chunkFstreamCat (RA->chunkOutChimSAM, P.inOut->outChimSAM, P.runThreadN>1, g_threadChunks.mutexOutChimSAM); + chunkFstreamCat (RA->chunkOutChimJunction, P.inOut->outChimJunction, P.runThreadN>1, g_threadChunks.mutexOutChimJunction); }; - if (P->outReadsUnmapped=="Fastx" ) { - for (uint ii=0;iireadNmates;ii++) { - chunkFstreamCat (RA->chunkOutUnmappedReadsStream[ii],P->inOut->outUnmappedReadsStream[ii], P->runThreadN>1, g_threadChunks.mutexOutUnmappedFastx); + if (P.outReadsUnmapped=="Fastx" ) { + for (uint ii=0;iichunkOutUnmappedReadsStream[ii],P.inOut->outUnmappedReadsStream[ii], P.runThreadN>1, g_threadChunks.mutexOutUnmappedFastx); }; }; }; - if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexLogMain); - P->inOut->logMain << "Completed: thread #" <runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexLogMain); + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexLogMain); + P.inOut->logMain << "Completed: thread #" <1) pthread_mutex_unlock(&g_threadChunks.mutexLogMain); }; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 1a7da5e..c3eb2a5 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -16,7 +16,7 @@ void ReadAlign::samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uin if ( r1!=g1 || r1==4 || g1==4) { ++tagNM; tagMD+=to_string(matchN); - tagMD+=P->genomeNumToNT[(uint8) g1]; + tagMD+=P.genomeNumToNT[(uint8) g1]; matchN=0; } else { matchN++; @@ -27,7 +27,7 @@ void ReadAlign::samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uin tagNM+=trOut.exons[iex+1][EX_G]-(trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L]); tagMD+=to_string(matchN) + "^"; for (uint ii=trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L];iigenomeNumToNT[(uint8) mapGen.G[ii]]; + tagMD+=P.genomeNumToNT[(uint8) mapGen.G[ii]]; }; matchN=0; } else if (trOut.canonSJ[iex]==-2) {//insertion @@ -85,7 +85,7 @@ int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray }; template -int bamAttrArrayWriteInt(intType xIn, const char* tagName, char* attrArray, Parameters *P) {//adapted from samtools +int bamAttrArrayWriteInt(intType xIn, const char* tagName, char* attrArray, Parameters &P) {//adapted from samtools attrArray[0]=tagName[0];attrArray[1]=tagName[1]; #define ATTR_RECORD_INT(_intChar,_intType,_intValue) attrArray[2] = _intChar; *(_intType*)(attrArray+3) = (_intType) _intValue; return 3+sizeof(_intType) int64 x = (int64) xIn; @@ -100,7 +100,7 @@ int bamAttrArrayWriteInt(intType xIn, const char* tagName, char* attrArray, Para ostringstream errOut; errOut <<"EXITING because of FATAL BUG: integer out of range for BAM conversion: "<< x <<"\n"; errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); }; }; } else { @@ -114,7 +114,7 @@ int bamAttrArrayWriteInt(intType xIn, const char* tagName, char* attrArray, Para ostringstream errOut; errOut <<"EXITING because of FATAL BUG: integer out of range for BAM conversion: "<< x <<"\n"; errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); }; }; }; @@ -134,7 +134,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint // -13: chimeric alignment, supplemental, soft-clipping - if (P->outSAMmode=="None") return 0; //no SAM/BAM output + if (P.outSAMmode=="None") return 0; //no SAM/BAM output uint32 recSize=0; //record size - total for both mates outBAMarrayN[0]=0; @@ -146,7 +146,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint uint16 samFLAG=0; uint leftMate=0; //the mate (0 or 1) which is on the left - bool flagPaired = P->readNmates==2; + bool flagPaired = P.readNmates==2; uint nMates=1; if (alignType<0) {//mapped reads: SAM @@ -160,7 +160,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint nMates=0; }; - for (uint imate=0;imate < (alignType<0 ? nMates:P->readNmates);imate++) { + for (uint imate=0;imate < (alignType<0 ? nMates:P.readNmates);imate++) { uint iEx1=0; uint iEx2=0; @@ -176,7 +176,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (alignType>=0) {//this mate is unmapped if (mateMapped!=NULL && mateMapped[imate]) continue; //this mate was mapped, do not record it as unmapped samFLAG=0x4; - if (P->readNmates==2) {//paired read + if (P.readNmates==2) {//paired read samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); if (mateMapped[1-imate]) {//mate mapped if (trOut.Str!=(1-imate)) @@ -184,7 +184,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint samFLAG+=0x20; }; mateChr=trOut.Chr; - trChrStart=P->chrStart[mateChr]; + trChrStart=P.chrStart[mateChr]; mateStart=trOut.exons[0][EX_G] - trChrStart; mateStrand= trOut.Str == (1-imate) ? 0 : 1; @@ -214,13 +214,13 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWriteInt(trOut.maxScore,"AS",attrOutArray+attrN,P); attrN+=bamAttrArrayWriteInt(trOut.nMM,"nM",attrOutArray+attrN,P); attrN+=bamAttrArrayWrite((to_string((uint) alignType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers - if (!P->outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); + if (!P.outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); } else {//this mate is mapped if (flagPaired) {//paired reads samFLAG=0x0001; if (iExMate==trOut.nExons-1) {//single mate - if (mateChr>P->nChrReal) samFLAG+=0x0008; //not mapped as pair + if (mateChr>P.nChrReal) samFLAG+=0x0008; //not mapped as pair } else {//properly paired samFLAG+=0x0002; //mapped as pair }; @@ -311,7 +311,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint packedCIGAR[nCIGAR++]=trimR1<outSAMmapqUnique; + MAPQ=P.outSAMmapqUnique; if (nTrOut>=5) { MAPQ=0; } else if (nTrOut>=3) { @@ -331,7 +331,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWriteInt(nTrOut,"NH",attrOutArray+attrN,P); break; case ATTR_HI: - attrN+=bamAttrArrayWriteInt(iTrOut+P->outSAMattrIHstart,"HI",attrOutArray+attrN,P); + attrN+=bamAttrArrayWriteInt(iTrOut+P.outSAMattrIHstart,"HI",attrOutArray+attrN,P); break; case ATTR_AS: attrN+=bamAttrArrayWriteInt(trOut.maxScore,"AS",attrOutArray+attrN,P); @@ -361,7 +361,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWrite(tagMD,"MD",attrOutArray+attrN); break; case ATTR_RG: - attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); break; case ATTR_vL: { @@ -385,7 +385,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM/BAM atrribute (tag): "<inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, *P); }; }; }; @@ -445,7 +445,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint }; //4: FLAG<<16|n cigar op; n cigar op is the number of operations in CIGAR. - pBAM[4]=( ( ((samFLAG & P->outSAMflagAND) | P->outSAMflagOR) << 16 ) | (nCIGAR) ); + pBAM[4]=( ( ((samFLAG & P.outSAMflagAND) | P.outSAMflagOR) << 16 ) | (nCIGAR) ); //5: l seq Length of SEQ pBAM[5]=seqMateLength; @@ -453,7 +453,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint //6: next refID Ref-ID of the next segment (􀀀1  mate refID < n ref) if (nMates>1) { pBAM[6]=trOut.Chr; - } else if (mateChrnChrReal){ + } else if (mateChr1) { pBAM[7]=trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G] - trChrStart; - } else if (mateChrnChrReal){ + } else if (mateChroutSAMmode != "NoQS") {//output qualtiy + if (readFileType==2 && P.outSAMmode != "NoQS") {//output qualtiy for (uint32 ii=0; ii>P->winBinNbits]; + uint iW=winBin[aStr][a1>>P.winBinNbits]; if (iW==uintWinBinMax || (!aAnchor && aLength < WALrec[iW]) ) return; //alignment does not belong to any window, or it's shorter than rec-length @@ -65,7 +65,7 @@ void ReadAlign::assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep }; }; - if (nWA[iW]==P->seedPerWindowNmax) {//too many aligns per window, re-calcualte min-length, remove the shortest one, + if (nWA[iW]==P.seedPerWindowNmax) {//too many aligns per window, re-calcualte min-length, remove the shortest one, WALrec[iW]=Lread+1; for (uint iA=0; iA WALrec[iW] ) { - if (nWA[iW]>=P->seedPerWindowNmax) { - exitWithError("BUG: iA>=P->seedPerWindowNmax in stitchPieces, exiting",std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + if (nWA[iW]>=P.seedPerWindowNmax) { + exitWithError("BUG: iA>=P.seedPerWindowNmax in stitchPieces, exiting",std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); }; uint iA; diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 83e5e79..23c269f 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -19,15 +19,15 @@ bool ReadAlign::chimericDetection() { //output chains for out-of-STAR chimeric detection #ifdef OUTPUT_localChains { - P->inOut->outLocalChains << readName <<"\t"<< Read0[0] <<"\t"<< Read0[1] << "\n"; + P.inOut->outLocalChains << readName <<"\t"<< Read0[0] <<"\t"<< Read0[1] << "\n"; for (uint iw=0; iwinOut->outLocalChains << trAll[iw][itr]->maxScore<<"\t"<< trAll[iw][itr]->Chr<<"\t"<Str<<"\t"<nExons; + P.inOut->outLocalChains << trAll[iw][itr]->maxScore<<"\t"<< trAll[iw][itr]->Chr<<"\t"<Str<<"\t"<nExons; for (uint ib=0;ibnExons;ib++) { - P->inOut->outLocalChains <<"\t"<< trAll[iw][itr]->exons[ib][EX_G]-P->chrStart[trAll[iw][itr]->Chr] \ + P.inOut->outLocalChains <<"\t"<< trAll[iw][itr]->exons[ib][EX_G]-P.chrStart[trAll[iw][itr]->Chr] \ <<"\t"<< trAll[iw][itr]->exons[ib][EX_R] <<"\t"<< trAll[iw][itr]->exons[ib][EX_L]; }; - P->inOut->outLocalChains <<"\n"; + P.inOut->outLocalChains <<"\n"; }; }; }; @@ -44,7 +44,7 @@ bool ReadAlign::chimericDetection() { // return chimRecord;//false // }; // //special degenerate case: nTr=2 -// if (P->readNmates==2) +// if (P.readNmates==2) // {//PE // uint f00=trMult[0]->exons[0][EX_iFrag]; // uint f01=trMult[0]->exons[trMult[0]->nExons][EX_iFrag]; @@ -61,14 +61,14 @@ bool ReadAlign::chimericDetection() { // }; // }; - if (nTr>P->chimMainSegmentMultNmax && nTr!=2) + if (nTr>P.chimMainSegmentMultNmax && nTr!=2) {//multimapping main segment, nTr==2 is a secial case to be checked later return chimRecord; }; - if (P->chimSegmentMin>0 && trBest->rLength >= P->chimSegmentMin \ - && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P->chimSegmentMin <= Lread \ - || trBest->exons[0][EX_R] >= P->chimSegmentMin ) \ + if (P.chimSegmentMin>0 && trBest->rLength >= P.chimSegmentMin \ + && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.chimSegmentMin <= Lread \ + || trBest->exons[0][EX_R] >= P.chimSegmentMin ) \ && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif int chimScoreBest=0,chimScoreNext=0; @@ -124,8 +124,8 @@ bool ReadAlign::chimericDetection() { bool diffMates=(roEnd1 < readLength[0] && roStart2 >= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); //segment lengths && (different mates || small gap between segments) - if (roEnd1 > P->chimSegmentMin + roStart1 + chimOverlap && roEnd2> P->chimSegmentMin + roStart2 + chimOverlap \ - && ( diffMates || ( (roEnd1 + P->chimSegmentReadGapMax + 1) >= roStart2 && (roEnd2 + P->chimSegmentReadGapMax + 1) >= roStart1 ) ) ) { + if (roEnd1 > P.chimSegmentMin + roStart1 + chimOverlap && roEnd2> P.chimSegmentMin + roStart2 + chimOverlap \ + && ( diffMates || ( (roEnd1 + P.chimSegmentReadGapMax + 1) >= roStart2 && (roEnd2 + P.chimSegmentReadGapMax + 1) >= roStart1 ) ) ) { int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting @@ -135,7 +135,7 @@ bool ReadAlign::chimericDetection() { overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); }; - if (chimScore > chimScoreBest && chimScore >= P->chimScoreMin && chimScore+P->chimScoreDropMax >= (int) (readLength[0]+readLength[1]) ) { + if (chimScore > chimScoreBest && chimScore >= P.chimScoreMin && chimScore+P.chimScoreDropMax >= (int) (readLength[0]+readLength[1]) ) { trChim[1]=*trAll[iW][iWt]; trChim1=trAll[iW][iWt]; if (overlap1==0) @@ -144,7 +144,7 @@ bool ReadAlign::chimericDetection() { }; chimScoreBest=chimScore; trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; - trChim[1].cStart = trChim[1].gStart - P->chrStart[trChim[1].Chr]; + trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; chimStrBest=chimStr1; } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one chimScoreNext=chimScore; @@ -153,7 +153,7 @@ bool ReadAlign::chimericDetection() { };//cycle over window transcripts };//cycle over windows - if (nTr>P->chimMainSegmentMultNmax) + if (nTr>P.chimMainSegmentMultNmax) {//check main segment for multi-aligns //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) @@ -166,7 +166,7 @@ bool ReadAlign::chimericDetection() { if (chimStr==0) chimStr=chimStrBest; chimN=0; - if (chimScoreNext + P->chimScoreSeparation < chimScoreBest) {//report only if chimera is unique + if (chimScoreNext + P.chimScoreSeparation < chimScoreBest) {//report only if chimera is unique if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); @@ -196,7 +196,7 @@ bool ReadAlign::chimericDetection() { chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; }; } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - if (trChim[0].exons[e0][EX_L]>=P->chimJunctionOverhangMin && trChim[1].exons[e1][EX_L]>=P->chimJunctionOverhangMin ) {//large enough overhang required + if (trChim[0].exons[e0][EX_L]>=P.chimJunctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.chimJunctionOverhangMin ) {//large enough overhang required uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; @@ -223,7 +223,7 @@ bool ReadAlign::chimericDetection() { if (b1<4) b1=3-b1; }; - if ( ( P->chim.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read + if ( ( P.chim.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read chimN=0; break; }; @@ -265,7 +265,7 @@ bool ReadAlign::chimericDetection() { jScore--; }; - jScoreJ =jMotif==0 ? jScore + P->chimScoreJunctionNonGTAG : jScore ; + jScoreJ =jMotif==0 ? jScore + P.chimScoreJunctionNonGTAG : jScore ; if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { chimMotif=jMotif; @@ -337,18 +337,18 @@ bool ReadAlign::chimericDetection() { };//chimeric junction is within a mate //debug - // cout << readName <<"\t"<< (trChim[0].Str==0 ? chimJ1-chimJ0 : chimJ0-chimJ1) << "\t"<< (chimMotif>=0 ? P->alignIntronMax : P->alignMatesGapMax)<<"\n"; + // cout << readName <<"\t"<< (trChim[0].Str==0 ? chimJ1-chimJ0 : chimJ0-chimJ1) << "\t"<< (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax)<<"\n"; // cout << chimRepeat0 <<"\t"< (chimMotif>=0 ? P->alignIntronMax : P->alignMatesGapMax) ) ) + || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) {// //&& (diff str || diff chr || //|| gap > (alignIntronMax,alignMatesGapMax) ) negative gap = very large # because of uint if (chimMotif>=0 && \ - (trChim[0].exons[e0][EX_L]chimJunctionOverhangMin+chimRepeat0 || trChim[1].exons[e1][EX_L]chimJunctionOverhangMin+chimRepeat1) ) + (trChim[0].exons[e0][EX_L]chim.out.bam) {//BAM output + if (P.chim.out.bam) {//BAM output int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering uint mateChr,mateStart; @@ -399,7 +399,7 @@ bool ReadAlign::chimericDetection() { alignType=-10; //this is representative part of chimeric alignment, record is as normal; if encompassing chimeric junction, both are recorded as normal bamIrepr=( (itr%2)==(trChim[itr].Str) && chimType!=3) ? bamN+1 : bamN;//this is the mate that is chimerically split } else {//"supplementary" chimeric segment - alignType=P->chim.out.bamHardClip ? ( ( itr%2==trChim[itr].Str ) ? -12 : -11) : -13 ; //right:left chimeric junction + alignType=P.chim.out.bamHardClip ? ( ( itr%2==trChim[itr].Str ) ? -12 : -11) : -13 ; //right:left chimeric junction bamIsuppl=bamN; if (chimType==1) {//PE alignment, need mate info for the suppl uint iex=0; @@ -416,8 +416,8 @@ bool ReadAlign::chimericDetection() { }; - bamN+=alignBAM(trChim[itr], 1, 0, P->chrStart[trChim[itr].Chr], mateChr, mateStart-P->chrStart[mateChr], mateStrand, \ - alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); + bamN+=alignBAM(trChim[itr], 1, 0, P.chrStart[trChim[itr].Chr], mateChr, mateStart-P.chrStart[mateChr], mateStrand, \ + alignType, NULL, P.outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1];//outBAMoneAlignNbytes[1] = 0 if SE is recorded }; @@ -435,7 +435,7 @@ bool ReadAlign::chimericDetection() { bam_read1_fromArray(outBAMoneAlign[tagI], b); uint8_t* auxp=bam_aux_get(b,"NM"); uint32_t auxv=bam_aux2i(auxp); - string tagSA1="SAZ"+P->chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + string tagSA1="SAZ"+P.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end @@ -443,15 +443,15 @@ bool ReadAlign::chimericDetection() { * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); }; - if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); + if (P.outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); + if (P.outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); }; }; for (uint iTr=0;iTrreadNmates==2) {//PE: need mate info + if (P.readNmates==2) {//PE: need mate info uint iex=0; if ( trChim[1-iTr].exons[0][EX_iFrag] != trChim[1-iTr].exons[trChim[1-iTr].nExons-1][EX_iFrag] ) {//the other segment has 2 mates, need to find the opposite mate @@ -473,11 +473,11 @@ bool ReadAlign::chimericDetection() { }; }; //junction + SAMp - chunkOutChimJunction << P->chrName[trChim[0].Chr] <<"\t"<< chimJ0 - P->chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \ - <<"\t"<< P->chrName[trChim[1].Chr] <<"\t"<< chimJ1 - P->chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \ + chunkOutChimJunction << P.chrName[trChim[0].Chr] <<"\t"<< chimJ0 - P.chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \ + <<"\t"<< P.chrName[trChim[1].Chr] <<"\t"<< chimJ1 - P.chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat0 <<"\t"<< chimRepeat1 <<"\t"<< readName+1 \ - <<"\t"<< trChim[0].exons[0][EX_G] - P->chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \ - <<"\t"<< trChim[1].exons[0][EX_G] - P->chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]) <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate + <<"\t"<< trChim[0].exons[0][EX_G] - P.chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \ + <<"\t"<< trChim[1].exons[0][EX_G] - P.chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]) <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate }; };//chimeric score };//chimeric search diff --git a/ReadAlign_createExtendWindowsWithAlign.cpp b/ReadAlign_createExtendWindowsWithAlign.cpp index c872faf..8c5460b 100644 --- a/ReadAlign_createExtendWindowsWithAlign.cpp +++ b/ReadAlign_createExtendWindowsWithAlign.cpp @@ -7,7 +7,7 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { - uint aBin = (a1 >> P->winBinNbits); //align's bin + uint aBin = (a1 >> P.winBinNbits); //align's bin uint iBinLeft=aBin, iBinRight=aBin; uintWinBin* wB=winBin[aStr]; uint iBin=-1, iWin=-1, iWinRight=-1; @@ -18,14 +18,14 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { bool flagMergeLeft=false; if (aBin>0) {//merge left only if there are bins on the left - for (iBin=aBin-1; iBin >= ( aBin>P->winAnchorDistNbins ? aBin-P->winAnchorDistNbins : 0 ); --iBin) {//go left, find windows in Anchor range + for (iBin=aBin-1; iBin >= ( aBin>P.winAnchorDistNbins ? aBin-P.winAnchorDistNbins : 0 ); --iBin) {//go left, find windows in Anchor range if (wB[iBin]chrBin[iBin>>P->winBinChrNbits]==P->chrBin[aBin>>P->winBinChrNbits]); + flagMergeLeft = flagMergeLeft && (P.chrBin[iBin>>P.winBinChrNbits]==P.chrBin[aBin>>P.winBinChrNbits]); if (flagMergeLeft) {//this align can be merged into the existing window iWin=wB[iBin]; iBinLeft=WC[iWin][WC_gStart]; @@ -36,15 +36,15 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { }; bool flagMergeRight=false; - if (aBin+1winBinN) {//merge left only if there are bins on the right - for (iBin=aBin+1; iBinwinAnchorDistNbins+1,P->winBinN); ++iBin) {//go right, find windows in Anchor range + if (aBin+1chrBin[iBin>>P->winBinChrNbits]==P->chrBin[aBin>>P->winBinChrNbits]); + flagMergeRight = flagMergeRight && (P.chrBin[iBin>>P.winBinChrNbits]==P.chrBin[aBin>>P.winBinChrNbits]); if (flagMergeRight) {//this align can be merged into the existing window while (wB[iBin]==wB[iBin+1]) ++iBin; //extend through all bins of the right window iBinRight=iBin; @@ -63,12 +63,12 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { if (!flagMergeLeft && !flagMergeRight) {//no merging, a new window was added wB[aBin]=iWin=nW; //add new window ID for now, may change it later - WC[iWin][WC_Chr]=P->chrBin[aBin >> P->winBinChrNbits]; + WC[iWin][WC_Chr]=P.chrBin[aBin >> P.winBinChrNbits]; WC[iWin][WC_Str]=aStr; WC[iWin][WC_gEnd]=WC[iWin][WC_gStart]=aBin; ++nW; - if (nW>=P->alignWindowsPerReadNmax) { - nW=P->alignWindowsPerReadNmax-1; + if (nW>=P.alignWindowsPerReadNmax) { + nW=P.alignWindowsPerReadNmax-1; return EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS; //too many windows, do not record TODO: record a marker }; } else {//record windows after merging diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 8a30bdd..8293587 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -14,7 +14,7 @@ int ReadAlign::mapOneRead() { revertStrand = false; //the 2nd read is awlays on opposite strand. 1st and 2nd reads have already been reversed. if (Lread>0) { - Nsplit=qualitySplit(Read1[0], Qual1[0], Lread, P->Qsplit, P->maxNsplit, P->minLsplit, splitR); + Nsplit=qualitySplit(Read1[0], Qual1[0], Lread, P.Qsplit, P.maxNsplit, P.minLsplit, splitR); } else { Nsplit=0; }; @@ -31,11 +31,11 @@ int ReadAlign::mapOneRead() { trNext=trBest=trInit; - uint seedSearchStartLmax=min(P->seedSearchStartLmax,(uint) (P->seedSearchStartLmaxOverLread*(Lread-1))); + uint seedSearchStartLmax=min(P.seedSearchStartLmax,(uint) (P.seedSearchStartLmaxOverLread*(Lread-1))); // align all good pieces for (uint ip=0; ipseedSearchStartLmax>0 && seedSearchStartLmax0 && seedSearchStartLmax0) {//check if the 1st piece in reveree direction does not need to be remapped Lmapped=0; - while ( istart*Lstart + Lmapped + P->minLmap < splitR[1][ip] ) {//map until unmapped portion is <=minLmap + while ( istart*Lstart + Lmapped + P.minLmap < splitR[1][ip] ) {//map until unmapped portion is <=minLmap uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart + Lmapped ) : \ ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1-Lmapped); //choose Shift for forward or reverse - //uint seedLength=min(splitR[1][ip] - Lmapped - istart*Lstart, P->seedSearchLmax); + //uint seedLength=min(splitR[1][ip] - Lmapped - istart*Lstart, P.seedSearchLmax); uint seedLength=splitR[1][ip] - Lmapped - istart*Lstart; - maxMappableLength2strands(Shift, seedLength, iDir, 0, P->nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple + maxMappableLength2strands(Shift, seedLength, iDir, 0, P.nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple if (iDir==0 && istart==0 && Lmapped==0 && Shift+L == splitR[1][ip] ) {//this piece maps full length and does not need to be mapped from the opposite direction flagDirMap=false; }; Lmapped+=L; - };//while ( istart*Lstart + Lmapped + P->minLmap < splitR[1][ip] ) + };//while ( istart*Lstart + Lmapped + P.minLmap < splitR[1][ip] ) };//if (flagDirMap || istart>0) - if (P->seedSearchLmax>0) {//search fixed length. Not very efficient, need to improve + if (P.seedSearchLmax>0) {//search fixed length. Not very efficient, need to improve uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart ) : \ ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1); //choose Shift for forward or reverse - uint seedLength = min(P->seedSearchLmax, iDir==0 ? (splitR[0][ip] + splitR[1][ip]-Shift):(Shift+1) ); - maxMappableLength2strands(Shift, seedLength, iDir, 0, P->nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple + uint seedLength = min(P.seedSearchLmax, iDir==0 ? (splitR[0][ip] + splitR[1][ip]-Shift):(Shift+1) ); + maxMappableLength2strands(Shift, seedLength, iDir, 0, P.nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple }; @@ -83,7 +83,7 @@ int ReadAlign::mapOneRead() { #endif nTr=0;//nothing mapped yet - if (LreadoutFilterMatchNmin) {//read is too short (trimmed too much?) + if (LreadrLength=0; //min good piece length nW=0; diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index 426b2f9..fd5b732 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -6,17 +6,17 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, //returns number of mappings, maxMappedLength=mapped length uint Nrep=0, indStartEnd[2], maxL; - uint NrepAll[P->genomeSAsparseD], indStartEndAll[P->genomeSAsparseD][2], maxLall[P->genomeSAsparseD]; + uint NrepAll[P.genomeSAsparseD], indStartEndAll[P.genomeSAsparseD][2], maxLall[P.genomeSAsparseD]; maxLbest=0; bool dirR = iDir==0; - for (uint iDist=0; iDistgenomeSAsparseD); iDist++) {//cycle through different distances + for (uint iDist=0; iDistgenomeSAindexNbases,pieceLength); + uint Lmax=min(P.genomeSAindexNbases,pieceLength); uint ind1=0; if (dirR) {//forward search pieceStart=pieceStartIn+iDist; @@ -35,8 +35,8 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, //find SA boundaries uint Lind=Lmax; while (Lind>0) {//check the precense of the prefix for Lind - iSA1=mapGen.SAi[P->genomeSAindexStart[Lind-1]+ind1]; - if ((iSA1 & P->SAiMarkAbsentMaskC) == 0) {//prefix exists + iSA1=mapGen.SAi[P.genomeSAindexStart[Lind-1]+ind1]; + if ((iSA1 & P.SAiMarkAbsentMaskC) == 0) {//prefix exists break; } else {//this prefix does not exist, reduce Lind --Lind; @@ -44,10 +44,10 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, }; }; - if (P->genomeSAindexStart[Lind-1]+ind1+1 < P->genomeSAindexStart[Lind]) {//we are not at the end of the SA - iSA2=((mapGen.SAi[P->genomeSAindexStart[Lind-1]+ind1+1] & P->SAiMarkNmask) & P->SAiMarkAbsentMask) - 1; + if (P.genomeSAindexStart[Lind-1]+ind1+1 < P.genomeSAindexStart[Lind]) {//we are not at the end of the SA + iSA2=((mapGen.SAi[P.genomeSAindexStart[Lind-1]+ind1+1] & P.SAiMarkNmask) & P.SAiMarkAbsentMask) - 1; } else { - iSA2=P->nSA-1; + iSA2=P.nSA-1; }; @@ -56,30 +56,30 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, #ifdef SA_SEARCH_FULL //full search of the array even if the index search gave maxL maxL=0; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, mapGen.G, mapGen.SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, mapGen.G, mapGen.SA, iSA1 & P.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); #else - if (Lind < P->genomeSAindexNbases && (iSA1 & P->SAiMarkNmaskC)==0 ) {//no need for SA search + if (Lind < P.genomeSAindexNbases && (iSA1 & P.SAiMarkNmaskC)==0 ) {//no need for SA search indStartEnd[0]=iSA1; indStartEnd[1]=iSA2; Nrep=indStartEnd[1]-indStartEnd[0]+1; maxL=Lind; } else if (iSA1==iSA2) {//unique align already, just find maxL - if ((iSA1 & P->SAiMarkNmaskC)!=0) { + if ((iSA1 & P.SAiMarkNmaskC)!=0) { ostringstream errOut; errOut << "BUG: in ReadAlign::maxMappableLength2strands"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); }; indStartEnd[0]=indStartEnd[1]=iSA1; Nrep=1; bool comparRes; maxL=compareSeqToGenome(Read1, pieceStart, pieceLength, Lind, mapGen.G, mapGen.SA, iSA1, dirR, comparRes, P); } else {//SA search, pieceLength>maxL - if ( (iSA1 & P->SAiMarkNmaskC)==0 ) {//no N in the prefix + if ( (iSA1 & P.SAiMarkNmaskC)==0 ) {//no N in the prefix maxL=Lind; } else { maxL=0; }; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, mapGen.G, mapGen.SA, iSA1 & P->SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(Read1, pieceStart, pieceLength, mapGen.G, mapGen.SA, iSA1 & P.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); }; #endif @@ -92,7 +92,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, maxLall[iDist]=maxL; }; - for (uint iDist=0; iDistgenomeSAsparseD); iDist++) {//cycle through different distances, store the ones with largest maxL + for (uint iDist=0; iDistmaxScore) { ostringstream errOut; errOut << "BUG: maxScore!=trBest->maxScore in multMapSelect"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); }; nTr=0; for (uint iW=0; iWmaxScore + P->outFilterMultimapScoreRange) >= maxScore ) {//record this alignment + if ( (trAll[iW][iTr]->maxScore + P.outFilterMultimapScoreRange) >= maxScore ) {//record this alignment // if paired-end, record alignments from ALL windows if (nTr==MAX_N_MULTMAP) {//too many alignments for this read, do not record it ostringstream errOut; errOut << "EXITING: Fatal ERROR: number of alignments exceeds MAX_N_MULTMAP, increase it and re-compile STAR"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, *P); }; trMult[nTr]=trAll[iW][iTr]; @@ -34,14 +34,14 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts trMult[nTr]->Str = trAll[iW][0]->Str; trMult[nTr]->roStr = trAll[iW][0]->roStr; - if ( (trAll[iW][iTr]->maxScore + P->outFilterMultimapScoreRange) >= maxScore) nTrMate++; + if ( (trAll[iW][iTr]->maxScore + P.outFilterMultimapScoreRange) >= maxScore) nTrMate++; nTr++; }; }; }; - if (nTr > P->outFilterMultimapNmax || nTr==0) + if (nTr > P.outFilterMultimapNmax || nTr==0) {//too multi OR no alignments, no need for further processing, since it will be considered unmapped return; }; @@ -49,10 +49,10 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts for (uint iTr=0; iTrroStart = trMult[iTr]->roStr==0 ? trMult[iTr]->rStart : Lread - trMult[iTr]->rStart - trMult[iTr]->rLength; - trMult[iTr]->cStart=trMult[iTr]->gStart - P->chrStart[trMult[iTr]->Chr]; + trMult[iTr]->cStart=trMult[iTr]->gStart - P.chrStart[trMult[iTr]->Chr]; }; -// if (P->outMultimapperOrder.sortCoord) +// if (P.outMultimapperOrder.sortCoord) // {//sort multimappers by coordinate // uint *s=new uint[nTr*2]; // Transcript **t=new Transcript*[nTr]; @@ -76,7 +76,7 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts } else {//multimappers int nbest=0; - if (P->outMultimapperOrder.random || P->outSAMmultNmax != (uint) -1 ) + if (P.outMultimapperOrder.random || P.outSAMmultNmax != (uint) -1 ) {//bring the best alignment to the top of the list. TODO sort alignments by the score? for (uint itr=0; itroutMultimapperOrder.random) + if (P.outMultimapperOrder.random) {//shuffle separately the best aligns, and the rest for (int itr=nbest-1; itr>=1; itr--) {//Fisher-Yates-Durstenfeld-Knuth shuffle @@ -101,13 +101,13 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts }; }; - if ( P->outSAMprimaryFlag=="AllBestScore" ) + if ( P.outSAMprimaryFlag=="AllBestScore" ) { for (uint itr=0; itrmaxScore == maxScore ) trMult[itr]->primaryFlag=true; }; - } else if (P->outMultimapperOrder.random || P->outSAMmultNmax != (uint) -1) + } else if (P.outMultimapperOrder.random || P.outSAMmultNmax != (uint) -1) { trMult[0]->primaryFlag=true;//mark as primary the first one in the random ordered list: best scoring aligns are already in front of the list // for (uint itr=0; itrreadNmates==2) {//read the 2nd mate + if (P.readNmates==2) {//read the 2nd mate readStatus[1]=readLoad(*(readInStream[1]), P, 1, readLength[1], readLengthOriginal[1], readNameMates[1], Read0[1], Read1[0]+readLength[0]+1, Qual0[1], Qual1[0]+readLength[0]+1, clip3pNtotal[1], clip5pNtotal[1], clip3pAdapterN[1], iReadAll, readFilesIndex, readFilter); if (readStatus[0]!=readStatus[1]) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: Read1 and Read2 are not consistent, reached the end of the one before the other one\n"; errOut << "SOLUTION: Check you your input files: they may be corrupted\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); } else if (readStatus[0]==-1) {//finished with the stream return -1; }; @@ -29,7 +29,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write errOut << "EXITING because of FATAL ERROR in reads input: Lread of the pair = " << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; Read1[0][readLength[0]]=MARK_FRAG_SPACER_BASE; //marker for spacer base @@ -64,7 +64,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write statsRA.readBases += readLength[0]+readLength[1]; //max number of mismatches allowed for this read - outFilterMismatchNmaxTotal=min(P->outFilterMismatchNmax, (uint) (P->outFilterMismatchNoverReadLmax*(readLength[0]+readLength[1]))); + outFilterMismatchNmaxTotal=min(P.outFilterMismatchNmax, (uint) (P.outFilterMismatchNoverReadLmax*(readLength[0]+readLength[1]))); //map the read mapOneRead(); diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index b1da036..c7ef6f4 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -8,11 +8,11 @@ void ReadAlign::outputAlignments() { bool mateMapped[2]={false,false}; - if (P->outFilterBySJoutStage<=1) {//no chimeric output for stage=2 + if (P.outFilterBySJoutStage<=1) {//no chimeric output for stage=2 if ( chimericDetection() ) { statsRA.chimericAll++; - if ( P->chim.out.bam) + if ( P.chim.out.bam) { //if chimeric alignment was recorded in main BAM files, it contains the representative portion, so non-chimeric aligmnent is not output return; @@ -23,21 +23,21 @@ void ReadAlign::outputAlignments() { if ( nW==0 ) {//no good windows statsRA.unmappedOther++; unmapType=0; - } else if ( (trBest->maxScore < P->outFilterScoreMin) || (trBest->maxScore < (intScore) (P->outFilterScoreMinOverLread*(Lread-1))) \ - || (trBest->nMatch < P->outFilterMatchNmin) || (trBest->nMatch < (uint) (P->outFilterMatchNminOverLread*(Lread-1))) ) {//too short + } else if ( (trBest->maxScore < P.outFilterScoreMin) || (trBest->maxScore < (intScore) (P.outFilterScoreMinOverLread*(Lread-1))) \ + || (trBest->nMatch < P.outFilterMatchNmin) || (trBest->nMatch < (uint) (P.outFilterMatchNminOverLread*(Lread-1))) ) {//too short statsRA.unmappedShort++; unmapType=1; - } else if ( (trBest->nMM > outFilterMismatchNmaxTotal) || (double(trBest->nMM)/double(trBest->rLength)>P->outFilterMismatchNoverLmax) ) {//too many mismatches + } else if ( (trBest->nMM > outFilterMismatchNmaxTotal) || (double(trBest->nMM)/double(trBest->rLength)>P.outFilterMismatchNoverLmax) ) {//too many mismatches statsRA.unmappedMismatch++; unmapType=2; - } else if (nTr > P->outFilterMultimapNmax){//too multi + } else if (nTr > P.outFilterMultimapNmax){//too multi statsRA.unmappedMulti++; unmapType=3; } else {//output transcripts outFilterPassed=true; - if (P->outFilterBySJoutStage==1) {//filtering by SJout + if (P.outFilterBySJoutStage==1) {//filtering by SJout for (uint iTr=0;iTrnExons-1;iex++) {//check all junctions if (trMult[iTr]->canonSJ[iex]>=0 && trMult[iTr]->sjAnnot[iex]==0) { @@ -52,8 +52,8 @@ void ReadAlign::outputAlignments() { statsRA.readN--; statsRA.readBases -= readLength[0]+readLength[1]; -// if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutFilterBySJout); - for (uint im=0;imreadNmates;im++) { +// if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutFilterBySJout); + for (uint im=0;imrunThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutFilterBySJout); +// if (P.runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutFilterBySJout); }; }; - if (P->outSJfilterReads=="All" || nTr==1) { + if (P.outSJfilterReads=="All" || nTr==1) { uint sjReadStartN=chunkOutSJ1->N; for (uint iTr=0;iTroutSAMfilter.yes) + if (P.outSAMfilter.yes) { - if (P->outSAMfilter.KeepOnlyAddedReferences) + if (P.outSAMfilter.KeepOnlyAddedReferences) { for (uint itr=0;itrChrgenomeInsertChrIndFirst) + if (trMult[itr]->ChroutSAMfilter.KeepAllAddedReferences) + } else if (P.outSAMfilter.KeepAllAddedReferences) { nTrOut=0; for (uint itr=0;itrChr>=P->genomeInsertChrIndFirst) + if (trMult[itr]->Chr>=P.genomeInsertChrIndFirst) { trMult[nTrOut]=trMult[itr]; trMult[nTrOut]->primaryFlag=false; @@ -119,10 +119,10 @@ void ReadAlign::outputAlignments() { } else {//cannot be ostringstream errOut; errOut << "EXITING because of a BUG: nTr=0 in outputAlignments.cpp"; - exitWithError(errOut.str(), std::cerr, P->inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); }; - nTrOut=min(P->outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files + nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; mateMapped1[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; - if (P->outSAMbool && outSAMfilterYes) + if (P.outSAMbool && outSAMfilterYes) {//SAM output outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); - if (P->outSAMunmapped.keepPairs && P->readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) + if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) {//keep pairs && paired reads && one of the mates not mapped in this transcript outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, outSAMstream); }; }; - if ((P->outBAMunsorted || P->outBAMcoord) && outSAMfilterYes) + if ((P.outBAMunsorted || P.outBAMcoord) && outSAMfilterYes) {//BAM output - alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); + alignBAM(*(trMult[iTr]), nTr, iTr, P.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); - if (P->outBAMunsorted) + if (P.outBAMunsorted) {//unsorted - for (uint imate=0; imatereadNmates; imate++) + for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; - if (P->outSAMunmapped.keepPairs && P->readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) + if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) {//keep pairs && paired reads && one of the mates not mapped in this transcript - alignBAM(*trMult[iTr], 0, 0, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, 4, mateMapped1, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) + alignBAM(*trMult[iTr], 0, 0, P.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, 4, mateMapped1, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; }; }; - if (P->outBAMcoord) + if (P.outBAMcoord) {//coordinate sorted - for (uint imate=0; imatereadNmates; imate++) + for (uint imate=0; imatecoordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; @@ -178,28 +178,28 @@ void ReadAlign::outputAlignments() { mateMapped[trBest->exons[0][EX_iFrag]]=true; mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; - if (P->readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) + if (P.readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) { unmapType=4; }; - if (unmapType==4 && P->outSAMunmapped.yes) + if (unmapType==4 && P.outSAMunmapped.yes) {//output unmapped end for single-end alignments - if (P->outSAMbool && !P->outSAMunmapped.keepPairs && outSAMfilterYes) + if (P.outSAMbool && !P.outSAMunmapped.keepPairs && outSAMfilterYes) { outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); }; - if ( (P->outBAMcoord || (P->outBAMunsorted && !P->outSAMunmapped.keepPairs) ) && outSAMfilterYes) + if ( (P.outBAMcoord || (P.outBAMunsorted && !P.outSAMunmapped.keepPairs) ) && outSAMfilterYes) {//BAM output - alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) + alignBAM(*trBest, 0, 0, P.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + for (uint imate=0; imateoutBAMunsorted && !P->outSAMunmapped.keepPairs) + if (P.outBAMunsorted && !P.outSAMunmapped.keepPairs) { outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; - if (P->outBAMcoord) + if (P.outBAMcoord) {//KeepPairs option does not affect for sorted BAM since we do not want multiple entries for the same unmapped read outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); }; @@ -207,7 +207,7 @@ void ReadAlign::outputAlignments() { }; }; - if (P->outSJfilterReads=="All" || nTr==1) + if (P.outSJfilterReads=="All" || nTr==1) { uint sjReadStartN=chunkOutSJ->N; for (uint iTr=0;iTrquant.geCount.yes ) + if ( P.quant.geCount.yes ) { chunkTr->geneCountsAddAlign(nTr, trMult); }; - if ( P->quant.trSAM.yes ) + if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll); }; @@ -233,36 +233,36 @@ void ReadAlign::outputAlignments() { statsRA.unmappedAll++; }; - if ( P->outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped - if (P->outBAMcoord || P->outBAMunsorted || P->quant.trSAM.yes) + if ( P.outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped + if (P.outBAMcoord || P.outBAMunsorted || P.quant.trSAM.yes) {//BAM output - alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) + alignBAM(*trBest, 0, 0, P.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + for (uint imate=0; imateoutBAMunsorted) + if (P.outBAMunsorted) { outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; - if (P->quant.trSAM.yes) + if (P.quant.trSAM.yes) { outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; - if (P->outBAMcoord) + if (P.outBAMcoord) { outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); }; }; }; - if (P->outSAMbool) + if (P.outSAMbool) {//output SAM outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); }; }; - if (unmapType>=0 && P->outReadsUnmapped=="Fastx" ){//output to fasta/q files - for (uint im=0;imreadNmates;im++) { + if (unmapType>=0 && P.outReadsUnmapped=="Fastx" ){//output to fasta/q files + for (uint im=0;imreadNmates>1) chunkOutUnmappedReadsStream[im] <<"\t"<< int(mateMapped[0]) << int(mateMapped[1]); + if (P.readNmates>1) chunkOutUnmappedReadsStream[im] <<"\t"<< int(mateMapped[0]) << int(mateMapped[1]); chunkOutUnmappedReadsStream[im] <<"\n"; chunkOutUnmappedReadsStream[im] << Read0[im] <<"\n"; if (readFileType==2) {//fastq diff --git a/ReadAlign_outputTranscriptCIGARp.cpp b/ReadAlign_outputTranscriptCIGARp.cpp index e9a464c..f884d1d 100644 --- a/ReadAlign_outputTranscriptCIGARp.cpp +++ b/ReadAlign_outputTranscriptCIGARp.cpp @@ -8,7 +8,7 @@ string ReadAlign::outputTranscriptCIGARp(Transcript const &trOut) {//generates C samStreamCIGAR.str(std::string()); uint leftMate=0; - if (P->readFilesIn.size()>1) leftMate=trOut.Str; + if (P.readFilesIn.size()>1) leftMate=trOut.Str; uint trimL=trOut.exons[0][EX_R] - (trOut.exons[0][EX_R]0) { diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 130a2cb..56aea6c 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -4,18 +4,18 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, ostream *outStream) { - if (P->outSAMmode=="None") return 0; //no SAM output + if (P.outSAMmode=="None") return 0; //no SAM output uint outStreamPos0=(uint)outStream->tellp(); if (unmapType>=0) {//unmapped reads: SAM - for (uint imate=0;imatereadNmates;imate++) + for (uint imate=0;imatereadNmates==2) + if (P.readNmates==2) {//paired read samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); if (mateMapped[1-imate]) @@ -41,14 +41,14 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i <<"\t"<< '*' <<"\t"<< '0' <<"\t"<< '0' <<"\t"<< '*'; if (mateMapped[1-imate]) {//mate is mapped - *outStream <<"\t"<< P->chrName[trOut.Chr] <<"\t"<< trOut.exons[0][EX_G] + 1 - P->chrStart[trOut.Chr]; + *outStream <<"\t"<< P.chrName[trOut.Chr] <<"\t"<< trOut.exons[0][EX_G] + 1 - P.chrStart[trOut.Chr]; } else { *outStream <<"\t"<< '*' <<"\t"<< '0'; }; *outStream <<"\t"<< '0' <<"\t"<< Read0[imate] <<"\t"<< (readFileType==2 ? Qual0[imate]:"*") \ <<"\tNH:i:0" <<"\tHI:i:0" <<"\tAS:i:"<outSAMattrRG.empty()) *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); + if (!P.outSAMattrRG.empty()) *outStream<< "\tRG:Z:" <=0 && outStream != NULL) //unmapped reads: SAM - bool flagPaired = P->readNmates==2; + bool flagPaired = P.readNmates==2; string CIGAR; //for SAM output need to split mates @@ -76,10 +76,10 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i samFlagCommon=0x0001; if (iExMate==trOut.nExons-1) {//single mate - if (mateChr>P->nChrReal) samFlagCommon+=0x0008; //not mapped as pair + if (mateChr>P.nChrReal) samFlagCommon+=0x0008; //not mapped as pair } else {//paired align - if (P->alignEndsProtrude.concordantPair || \ + if (P.alignEndsProtrude.concordantPair || \ ( (trOut.exons[0][EX_G] <= trOut.exons[iExMate+1][EX_G]+trOut.exons[0][EX_R]) && \ (trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L] <= trOut.exons[trOut.nExons-1][EX_G]+Lread-trOut.exons[trOut.nExons-1][EX_R]) ) ) {//properly paired @@ -156,8 +156,8 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i samStreamCIGAR << "N"; samStreamSJmotif <<','<< trOut.canonSJ[ii-1] + (trOut.sjAnnot[ii-1]==0 ? 0 : SJ_SAM_AnnotatedMotifShift); //record junction type // samStreamSJannot <<','<< (int) trOut.sjAnnot[ii-1]; //record annotation type - samStreamSJintron <<','<< trOut.exons[ii-1][EX_G] + trOut.exons[ii-1][EX_L] + 1 - P->chrStart[trOut.Chr] <<','\ - << trOut.exons[ii][EX_G] - P->chrStart[trOut.Chr]; //record intron loci + samStreamSJintron <<','<< trOut.exons[ii-1][EX_G] + trOut.exons[ii-1][EX_L] + 1 - P.chrStart[trOut.Chr] <<','\ + << trOut.exons[ii][EX_G] - P.chrStart[trOut.Chr]; //record intron loci } else if (gapG>0) {//deletion: N samStreamCIGAR << gapG; samStreamCIGAR << "D"; @@ -202,7 +202,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i // return; - int MAPQ=P->outSAMmapqUnique; + int MAPQ=P.outSAMmapqUnique; if (nTrOut>=5) { MAPQ=0; } else if (nTrOut>=3) { @@ -211,14 +211,14 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i MAPQ=3; }; - *outStream << readName+1 <<"\t"<< ((samFLAG & P->outSAMflagAND) | P->outSAMflagOR) <<"\t"<< P->chrName[trOut.Chr] <<"\t"<< trOut.exons[iEx1][EX_G] + 1 - P->chrStart[trOut.Chr] + *outStream << readName+1 <<"\t"<< ((samFLAG & P.outSAMflagAND) | P.outSAMflagOR) <<"\t"<< P.chrName[trOut.Chr] <<"\t"<< trOut.exons[iEx1][EX_G] + 1 - P.chrStart[trOut.Chr] <<"\t"<< MAPQ <<"\t"<< CIGAR; if (nMates>1) { - *outStream <<"\t"<< "=" <<"\t"<< trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G]+ 1 - P->chrStart[trOut.Chr] + *outStream <<"\t"<< "=" <<"\t"<< trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G]+ 1 - P.chrStart[trOut.Chr] <<"\t"<< (imate==0? "":"-") << trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; - } else if (mateChrnChrReal){//mateChr is given in the function parameters - *outStream <<"\t"<< P->chrName[mateChr] <<"\t"<< mateStart+1-P->chrStart[mateChr] <<"\t"<< 0; + } else if (mateChroutSAMmode != "NoQS") {//fastq + if (readFileType==2 && P.outSAMmode != "NoQS") {//fastq *outStream <<"\t"<< qualOut ; } else { *outStream <<"\t"<< "*"; @@ -236,7 +236,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i uint tagNM=0; string tagMD(""); - if (P->outSAMattrPresent.NM || P->outSAMattrPresent.MD) { + if (P.outSAMattrPresent.NM || P.outSAMattrPresent.MD) { char* R=Read1[trOut.roStr==0 ? 0:2]; uint matchN=0; for (uint iex=iEx1;iex<=iEx2;iex++) { @@ -248,7 +248,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i // if (matchN>0 || (ii==0 && iex>0 && trOut.canonSJ[iex]==-1) ) { tagMD+=to_string(matchN); // }; - tagMD+=P->genomeNumToNT[(uint8) g1]; + tagMD+=P.genomeNumToNT[(uint8) g1]; matchN=0; } else { matchN++; @@ -259,7 +259,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i tagNM+=trOut.exons[iex+1][EX_G]-(trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L]); tagMD+=to_string(matchN) + "^"; for (uint ii=trOut.exons[iex][EX_G]+trOut.exons[iex][EX_L];iigenomeNumToNT[(uint8) mapGen.G[ii]]; + tagMD+=P.genomeNumToNT[(uint8) mapGen.G[ii]]; }; matchN=0; } else if (trOut.canonSJ[iex]==-2) {//insertion @@ -269,13 +269,13 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i }; tagMD+=to_string(matchN); }; - for (uint ii=0;iioutSAMattrOrder.size();ii++) { - switch (P->outSAMattrOrder[ii]) { + for (uint ii=0;iioutSAMattrIHstart; + *outStream <<"\tHI:i:"<outSAMattrRG.at(readFilesIndex); + *outStream<< "\tRG:Z:" <outSAMattrOrder[ii] <<"\n"; + errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, *P); }; }; diff --git a/ReadAlign_outputTranscriptSJ.cpp b/ReadAlign_outputTranscriptSJ.cpp index eac1f23..05179e8 100644 --- a/ReadAlign_outputTranscriptSJ.cpp +++ b/ReadAlign_outputTranscriptSJ.cpp @@ -7,7 +7,7 @@ void ReadAlign::outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ * //For a multimapper, several alignments may contain the same junctions - now it's recorded several time. // if (nTrOut>1) return; //junctions from multi-mappers are not recorded -// if (P->outSAMmode=="None") return; //no SAM output +// if (P.outSAMmode=="None") return; //no SAM output for (uint iex=0;iex=0) {//only record junctions, not indels or mate gap diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 5a691df..a226b16 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -8,18 +8,18 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript uint nAlignT=0; for (uint iag=0; iagquant.trSAM.indel && (alignG[iag]->nDel>0 || alignG[iag]->nIns>0) ) + if (!P.quant.trSAM.indel && (alignG[iag]->nDel>0 || alignG[iag]->nIns>0) ) {//prevent indels if requested continue; }; - if (!P->quant.trSAM.singleEnd && (P->readNmates==2 && alignG[iag]->exons[0][EX_iFrag]==alignG[iag]->exons[alignG[iag]->nExons-1][EX_iFrag]) ) + if (!P.quant.trSAM.singleEnd && (P.readNmates==2 && alignG[iag]->exons[0][EX_iFrag]==alignG[iag]->exons[alignG[iag]->nExons-1][EX_iFrag]) ) {//prevent single end alignments continue; }; uint nMM1=0; char* R=Read1[alignG[iag]->roStr==0 ? 0:2]; - if (!P->quant.trSAM.softClip) + if (!P.quant.trSAM.softClip) {//soft clipping not allowed, extend them if possible for (uint32 iab=0; iabnExons; iab++) { uint left1=0,right1=0;//how many bases to move left or right @@ -52,7 +52,7 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript alignG[iag]->exons[iab][EX_L] += left1+right1; }; - if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P->outFilterMismatchNoverLmax*(Lread-1)) ) ) + if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P.outFilterMismatchNoverLmax*(Lread-1)) ) ) {//extension of soft clips yielded too many mismatches, no output continue; }; @@ -69,18 +69,18 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript // alignBAM(alignT[iatr], nAlignT, iatr, 0, (uint) -1, (uint) -1, 0, -1, NULL, outBAMoneAlign, outBAMoneAlignNbytes); // outBAMarray1+=bamBytes; // outBAMbytes1+=bamBytes; - alignBAM(alignT[iatr], nAlignT, iatr, 0, (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrderQuant, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imatereadNmates; imate++) {//output each mate + alignBAM(alignT[iatr], nAlignT, iatr, 0, (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrderQuant, outBAMoneAlign, outBAMoneAlignNbytes); + for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iatr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nAlignT); }; }; //not used anymore, at Colin Dewey's request -// if (nAlignT==0 && P->outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped +// if (nAlignT==0 && P.outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped // uint unmapType=5; // bool mateMapped[2]={false,false}; -// alignBAM(*alignG[0], 0, 0, P->chrStart[alignG[0]->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder); -// for (uint imate=0; imatereadNmates; imate++) {//output each mate +// alignBAM(*alignG[0], 0, 0, P.chrStart[alignG[0]->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder); +// for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); // }; // diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 7e4c1c4..e36cdd6 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -13,8 +13,8 @@ void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { //zero-out winBin - memset(winBin[0],255,sizeof(winBin[0][0])*P->winBinN); - memset(winBin[1],255,sizeof(winBin[0][0])*P->winBinN); + memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); + memset(winBin[1],255,sizeof(winBin[0][0])*P.winBinN); // for (uint iWin=0;iWinwinBinN;ii++){ +// for (uint ii=0;iiinOut->logMain <<" SOLUTION: increase alignTranscriptsPerReadNmax and re-run\n" << flush; + if (trNtotal+P.alignTranscriptsPerWindowNmax >= P.alignTranscriptsPerReadNmax) { + P.inOut->logMain << "WARNING: not enough space allocated for transcript. Did not process all windows for read "<< readName+1 <logMain <<" SOLUTION: increase alignTranscriptsPerReadNmax and re-run\n" << flush; break; }; *(trAll[iW1][0])=trA; @@ -299,7 +299,7 @@ std::time(&timeStart); #ifdef COMPILE_FOR_LONG_READS stitchWindowSeeds(iW, iW1, NULL, R[trA.roStr==0 ? 0:2], Q[trA.roStr], mapGen.G); - if (P->chimSegmentMin>0) { + if (P.chimSegmentMin>0) { for (uint ia=0;iaoutFilterBySJoutStage==2 && trA1.nExons>1) - {//junctions have to be present in the filtered set P->sjnovel + if (P.outFilterBySJoutStage==2 && trA1.nExons>1) + {//junctions have to be present in the filtered set P.sjnovel uint iex=0; if (trA1.canonSJ[iex]>=0 && trA1.sjAnnot[iex]==0) { uint jS=trA1.exons[iex][EX_G]+trA1.exons[iex][EX_L]; uint jE=trA1.exons[iex+1][EX_G]-1; - if ( binarySearch2(jS,jE,P->sjNovelStart,P->sjNovelEnd,P->sjNovelN) < 0 ) return; + if ( binarySearch2(jS,jE,P.sjNovelStart,P.sjNovelEnd,P.sjNovelN) < 0 ) return; }; }; //check the length of the iS2 exon. TODO: build the transcripts vs iS1, check the actual exon length - bool exonLongEnough = trA1.exons[0][EX_L] >= ( trA1.sjAnnot[0]==0 ? P->alignSJoverhangMin : P->alignSJDBoverhangMin ); + bool exonLongEnough = trA1.exons[0][EX_L] >= ( trA1.sjAnnot[0]==0 ? P.alignSJoverhangMin : P.alignSJDBoverhangMin ); if (exonLongEnough && score2>0 && score2+scoreSeedBest[iS2] > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2+scoreSeedBest[iS2]; @@ -54,12 +54,12 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c } else {//extend to the left score2=WA[iW][iS1][WA_Length]; if ( WA[iW][iS1][WA_rStart]>0 \ - && extendAlign(R, Q, mapGen.G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend + && extendAlign(R, Q, mapGen.G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + P.alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; - bool exonLongEnough = (WA[iW][iS1][WA_Length]+trA1.extendL) >= P->alignSJoverhangMin; //TODO new parameter to control end exons length + bool exonLongEnough = (WA[iW][iS1][WA_Length]+trA1.extendL) >= P.alignSJoverhangMin; //TODO new parameter to control end exons length if (exonLongEnough && score2 > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2; @@ -79,13 +79,13 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread-1 \ - && extendAlign(R, Q, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) + && extendAlign(R, Q, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + P.alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) {//extend to the right scoreSeedBest[iS1]+=trA1.maxScore; }; - bool exonLongEnough = (WA[iW][iS1][WA_Length]+trA1.extendL) >= P->alignSJoverhangMin; //TODO new parameter to control end exons length + bool exonLongEnough = (WA[iW][iS1][WA_Length]+trA1.extendL) >= P.alignSJoverhangMin; //TODO new parameter to control end exons length if (exonLongEnough && scoreSeedBest[iS1]>scoreBest) {//record new best transcript scoreBest=scoreSeedBest[iS1]; @@ -142,8 +142,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c {//extend to the left trA1=*trInit; if ( trA.exons[0][EX_R]>0 \ - && extendAlign(R, Q, mapGen.G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, - P->alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend + && extendAlign(R, Q, mapGen.G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, + P.alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend trA.add(&trA1); @@ -161,8 +161,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread \ - && extendAlign(R, Q, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend + && extendAlign(R, Q, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + P.alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend trA.add(&trA1); trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon }; @@ -211,9 +211,9 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c }; }; - if (P->scoreGenomicLengthLog2scale!=0) {//add gap length score + if (P.scoreGenomicLengthLog2scale!=0) {//add gap length score trA.maxScore += int(ceil( log2( (double) ( trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] - trA.exons[0][EX_G]) ) \ - * P->scoreGenomicLengthLog2scale - 0.5)); + * P.scoreGenomicLengthLog2scale - 0.5)); trA.maxScore = max(0,trA.maxScore); }; @@ -231,28 +231,28 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c }; }; - if (sjN>0 && trA.sjMotifStrand==0 && P->outSAMstrandField=="intronMotif") {//strand not defined for a junction + if (sjN>0 && trA.sjMotifStrand==0 && P.outSAMstrandField=="intronMotif") {//strand not defined for a junction return; }; - if (P->outFilterIntronMotifs=="None") {//no filtering + if (P.outFilterIntronMotifs=="None") {//no filtering - } else if (P->outFilterIntronMotifs=="RemoveNoncanonical") { + } else if (P.outFilterIntronMotifs=="RemoveNoncanonical") { for (uint iex=0;iexoutFilterIntronMotifs=="RemoveNoncanonicalUnannotated") { + } else if (P.outFilterIntronMotifs=="RemoveNoncanonicalUnannotated") { for (uint iex=0;iexinOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; -// if (P->outFilterIntronMotifs=="KeepCanonical" && (trA.intronMotifs[0]>0 || (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0) ) ) {//keep only conistent canonical introns +// if (P.outFilterIntronMotifs=="KeepCanonical" && (trA.intronMotifs[0]>0 || (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0) ) ) {//keep only conistent canonical introns // return; // }; @@ -260,8 +260,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c //check exons lenghts including repeats, do not report a transcript with short exons // for (uint isj=0;isj=0 && -// ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] -// || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1]) ) { +// ( trA.exons[isj][EX_L] < P.alignSJoverhangMin + trA.shiftSJ[isj][0] +// || trA.exons[isj+1][EX_L] < P.alignSJoverhangMin + trA.shiftSJ[isj][1]) ) { // return;//do not record this transcript in wTr // }; // }; diff --git a/ReadAlign_storeAligns.cpp b/ReadAlign_storeAligns.cpp index ba7536e..1b39ae8 100644 --- a/ReadAlign_storeAligns.cpp +++ b/ReadAlign_storeAligns.cpp @@ -14,7 +14,7 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS return; #endif - if ( Nrep > P->seedMultimapNmax ) {// if a piece maps too many times, do not store it + if ( Nrep > P.seedMultimapNmax ) {// if a piece maps too many times, do not store it if ( Nrep < multNmin || multNmin==0 ) {multNmin=Nrep; multNminL=L;}; return; }; @@ -43,11 +43,11 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS nP++; //now nP is the new number of elements // - if (nP > P->seedPerReadNmax) { + if (nP > P.seedPerReadNmax) { ostringstream errOut; errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_RUNTIME, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_RUNTIME, *P); }; #else // int iP3; @@ -106,11 +106,11 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS // }; if (nRemove==0) {//add piece - if (nP == P->seedPerReadNmax) { + if (nP == P.seedPerReadNmax) { ostringstream errOut; errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_RUNTIME, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_RUNTIME, *P); }; for (int ii=nP-1;ii>=iP;ii--) {//move old entries to free space for the new one for (int jj=0;jjinputParameters(argInN, argIn); + Parameters P; //all parameters + P.inputParameters(argInN, argIn); - *(P->inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... started STAR run\n" <logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... started STAR run\n" <runMode=="alignReads") + if (P.runMode=="alignReads") {//continue - } else if (P->runMode=="genomeGenerate") + } else if (P.runMode=="genomeGenerate") { genomeGenerate(P); - (void) sysRemoveDir (P->outFileTmp); - P->inOut->logMain << "DONE: Genome generation, EXITING\n" << flush; + (void) sysRemoveDir (P.outFileTmp); + P.inOut->logMain << "DONE: Genome generation, EXITING\n" << flush; exit(0); - } else if (P->runMode=="liftOver") + } else if (P.runMode=="liftOver") { - for (uint ii=0; iigenomeChainFiles.size();ii++) + for (uint ii=0; iigenomeChainFiles.at(ii)); - chain.liftOverGTF(P->sjdbGTFfile,P->outFileNamePrefix+"GTFliftOver_"+to_string(ii+1)+".gtf"); - P->inOut->logMain << "DONE: lift-over of GTF file, EXITING\n" << flush; + Chain chain(P,P.genomeChainFiles.at(ii)); + chain.liftOverGTF(P.sjdbGTFfile,P.outFileNamePrefix+"GTFliftOver_"+to_string(ii+1)+".gtf"); + P.inOut->logMain << "DONE: lift-over of GTF file, EXITING\n" << flush; exit(0); }; } else { - P->inOut->logMain << "EXITING because of INPUT ERROR: unknown value of input parameter runMode=" <runMode<logMain << "EXITING because of INPUT ERROR: unknown value of input parameter runMode=" <genomeLoad=="LoadAndExit" || P->genomeLoad=="Remove") + if (P.genomeLoad=="LoadAndExit" || P.genomeLoad=="Remove") { return 0; }; - P->twoPass.pass2=false; //this is the 1st pass + P.twoPass.pass2=false; //this is the 1st pass //calculate genome-related parameters @@ -100,23 +100,22 @@ int main(int argInN, char* argIn[]) { mainGenome.Var=new Variation(P); - if (P->genomeFastaFiles.at(0)!="-") + if (P.genomeFastaFiles.at(0)!="-") {//insert sequences in the genome }; SjdbClass sjdbLoci; - if (P->sjdbInsert.pass1) + if (P.sjdbInsert.pass1) { - Parameters *P1=new Parameters; - *P1=*P; + Parameters P1=P; sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); }; /////////////////////////////////////////////////////////////////////////////////////////////////START - if (P->runThreadN>1) { - g_threadChunks.threadArray=new pthread_t[P->runThreadN]; + if (P.runThreadN>1) { + g_threadChunks.threadArray=new pthread_t[P.runThreadN]; pthread_mutex_init(&g_threadChunks.mutexInRead, NULL); pthread_mutex_init(&g_threadChunks.mutexOutSAM, NULL); pthread_mutex_init(&g_threadChunks.mutexOutBAM1, NULL); @@ -126,91 +125,90 @@ int main(int argInN, char* argIn[]) { pthread_mutex_init(&g_threadChunks.mutexBAMsortBins, NULL); }; - g_statsAll.progressReportHeader(P->inOut->logProgress); + g_statsAll.progressReportHeader(P.inOut->logProgress); - if (P->twoPass.yes) {//2-pass + if (P.twoPass.yes) {//2-pass //re-define P for the pass1 - Parameters *P1=new Parameters; - *P1=*P; + Parameters P1=P; //turn off unnecessary calculations - P1->outSAMtype[0]="None"; - P1->outSAMbool=false; - P1->outBAMunsorted=false; - P1->outBAMcoord=false; + P1.outSAMtype[0]="None"; + P1.outSAMbool=false; + P1.outBAMunsorted=false; + P1.outBAMcoord=false; - P1->chimSegmentMin=0; + P1.chimSegmentMin=0; - P1->quant.yes=false; - P1->quant.trSAM.yes=false; - P1->quant.geCount.yes=false; + P1.quant.yes=false; + P1.quant.trSAM.yes=false; + P1.quant.geCount.yes=false; - P1->outFilterBySJoutStage=0; + P1.outFilterBySJoutStage=0; - P1->outReadsUnmapped="None"; + P1.outReadsUnmapped="None"; - P1->outFileNamePrefix=P->twoPass.dir; + P1.outFileNamePrefix=P.twoPass.dir; - P1->readMapNumber=P->twoPass.pass1readsN; -// P1->inOut->logMain.open((P1->outFileNamePrefix + "Log.out").c_str()); + P1.readMapNumber=P.twoPass.pass1readsN; +// P1.inOut->logMain.open((P1.outFileNamePrefix + "Log.out").c_str()); g_statsAll.resetN(); time(&g_statsAll.timeStartMap); - P->inOut->logProgress << timeMonthDayTime(g_statsAll.timeStartMap) <<"\tStarted 1st pass mapping\n" <inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... started 1st pass mapping\n" <logProgress << timeMonthDayTime(g_statsAll.timeStartMap) <<"\tStarted 1st pass mapping\n" <logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... started 1st pass mapping\n" <runThreadN]; - for (int ii=0;iirunThreadN;ii++) { + ReadAlignChunk *RAchunk1[P.runThreadN]; + for (int ii=0;iirunThreadN;ii++) { +// for (int ii=0;iiinOut->logProgress << timeMonthDayTime(rawtime) <<"\tFinished 1st pass mapping\n"; - *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... finished 1st pass mapping\n" <twoPass.dir + "/Log.final.out").c_str()); + P.inOut->logProgress << timeMonthDayTime(rawtime) <<"\tFinished 1st pass mapping\n"; + *P.inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... finished 1st pass mapping\n" <twoPass.pass2=true;//starting the 2nd pass - P->twoPass.pass1sjFile=P->twoPass.dir+"/SJ.out.tab"; + P.twoPass.pass2=true;//starting the 2nd pass + P.twoPass.pass1sjFile=P.twoPass.dir+"/SJ.out.tab"; sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); //reopen reads files - P->closeReadsFiles(); - P->openReadsFiles(); + P.closeReadsFiles(); + P.openReadsFiles(); } else {//not 2-pass //nothing for now }; - if ( P->quant.yes ) {//load transcriptome + if ( P.quant.yes ) {//load transcriptome mainTranscriptome=new Transcriptome(P); }; //initialize Stats g_statsAll.resetN(); time(&g_statsAll.timeStartMap); - *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... started mapping\n" <logStdOut << timeMonthDayTime(g_statsAll.timeStartMap) << " ..... started mapping\n" <outSAMmode != "None") {//open SAM file and write header + if (P.outSAMmode != "None") {//open SAM file and write header ostringstream samHeaderStream; - for (uint ii=0;iinChrReal;ii++) { - samHeaderStream << "@SQ\tSN:"<< P->chrName.at(ii) <<"\tLN:"<chrLength[ii]<<"\n"; + for (uint ii=0;iichrNameAll=P->chrName; - P->chrLengthAll=P->chrLength; + P.chrNameAll=P.chrName; + P.chrLengthAll=P.chrLength; {//add exra references - ifstream extrastream (P->genomeDir + "/extraReferences.txt"); + ifstream extrastream (P.genomeDir + "/extraReferences.txt"); while (extrastream.good()) { string line1; getline(extrastream,line1); @@ -222,26 +220,26 @@ int main(int argInN, char* argIn[]) { samHeaderStream << line1 <<"\n"; stream1 >> field1; - P->chrNameAll.push_back(field1.substr(3)); + P.chrNameAll.push_back(field1.substr(3)); stream1 >> field1; - P->chrLengthAll.push_back((uint) stoll(field1.substr(3))); + P.chrLengthAll.push_back((uint) stoll(field1.substr(3))); }; }; extrastream.close(); }; - if (P->outSAMheaderPG.at(0)!="-") { - samHeaderStream << P->outSAMheaderPG.at(0); - for (uint ii=1;iioutSAMheaderPG.size(); ii++) { - samHeaderStream << "\t" << P->outSAMheaderPG.at(ii); + if (P.outSAMheaderPG.at(0)!="-") { + samHeaderStream << P.outSAMheaderPG.at(0); + for (uint ii=1;iicommandLineFull <<"\n"; + samHeaderStream << "@PG\tID:STAR\tPN:STAR\tVN:" << STAR_VERSION <<"\tCL:" << P.commandLineFull <<"\n"; - if (P->outSAMheaderCommentFile!="-") { - ifstream comstream (P->outSAMheaderCommentFile); + if (P.outSAMheaderCommentFile!="-") { + ifstream comstream (P.outSAMheaderCommentFile); while (comstream.good()) { string line1; getline(comstream,line1); @@ -253,37 +251,37 @@ int main(int argInN, char* argIn[]) { }; - for (uint32 ii=0;iioutSAMattrRGlineSplit.size();ii++) {//@RG lines - samHeaderStream << "@RG\t" << P->outSAMattrRGlineSplit.at(ii) <<"\n"; + for (uint32 ii=0;iicommandLine <<"\n"; + samHeaderStream << "@CO\t" <<"user command line: " << P.commandLine <<"\n"; - if (P->outSAMheaderHD.at(0)!="-") { - P->samHeaderHD = P->outSAMheaderHD.at(0); - for (uint ii=1;iioutSAMheaderHD.size(); ii++) { - P->samHeaderHD +="\t" + P->outSAMheaderHD.at(ii); + if (P.outSAMheaderHD.at(0)!="-") { + P.samHeaderHD = P.outSAMheaderHD.at(0); + for (uint ii=1;iisamHeaderHD = "@HD\tVN:1.4"; + P.samHeaderHD = "@HD\tVN:1.4"; }; - P->samHeader=P->samHeaderHD+"\n"+samHeaderStream.str(); + P.samHeader=P.samHeaderHD+"\n"+samHeaderStream.str(); //for the sorted BAM, need to add SO:cooridnate to the header line - P->samHeaderSortedCoord=P->samHeaderHD + (P->outSAMheaderHD.size()==0 ? "" : "\tSO:coordinate") + "\n" + samHeaderStream.str(); + P.samHeaderSortedCoord=P.samHeaderHD + (P.outSAMheaderHD.size()==0 ? "" : "\tSO:coordinate") + "\n" + samHeaderStream.str(); - if (P->outSAMbool) {// - *P->inOut->outSAM << P->samHeader; + if (P.outSAMbool) {// + *P.inOut->outSAM << P.samHeader; }; - if (P->outBAMunsorted){ - outBAMwriteHeader(P->inOut->outBAMfileUnsorted,P->samHeader,P->chrNameAll,P->chrLengthAll); + if (P.outBAMunsorted){ + outBAMwriteHeader(P.inOut->outBAMfileUnsorted,P.samHeader,P.chrNameAll,P.chrLengthAll); }; -// if (P->outBAMcoord){ -// outBAMwriteHeader(P->inOut->outBAMfileCoord,P->samHeader,P->chrName,P->chrLength); +// if (P.outBAMcoord){ +// outBAMwriteHeader(P.inOut->outBAMfileCoord,P.samHeader,P.chrName,P.chrLength); // }; - if ( P->quant.trSAM.yes ) { + if ( P.quant.trSAM.yes ) { samHeaderStream.str(""); vector trlength; for (uint32 ii=0;iitrID.size();ii++) { @@ -291,41 +289,41 @@ int main(int argInN, char* argIn[]) { trlength.push_back(mainTranscriptome->exLenCum[iex1]+mainTranscriptome->exSE[2*iex1+1]-mainTranscriptome->exSE[2*iex1]+1); samHeaderStream << "@SQ\tSN:"<< mainTranscriptome->trID.at(ii) <<"\tLN:"<outSAMattrRGlineSplit.size();ii++) {//@RG lines - samHeaderStream << "@RG\t" << P->outSAMattrRGlineSplit.at(ii) <<"\n"; + for (uint32 ii=0;iiinOut->outQuantBAMfile,samHeaderStream.str(),mainTranscriptome->trID,trlength); + outBAMwriteHeader(P.inOut->outQuantBAMfile,samHeaderStream.str(),mainTranscriptome->trID,trlength); }; }; - if (P->chimSegmentMin>0) { - P->inOut->outChimJunction.open((P->outFileNamePrefix + "Chimeric.out.junction").c_str()); - P->inOut->outChimSAM.open((P->outFileNamePrefix + "Chimeric.out.sam").c_str()); - P->inOut->outChimSAM << P->samHeader; + if (P.chimSegmentMin>0) { + P.inOut->outChimJunction.open((P.outFileNamePrefix + "Chimeric.out.junction").c_str()); + P.inOut->outChimSAM.open((P.outFileNamePrefix + "Chimeric.out.sam").c_str()); + P.inOut->outChimSAM << P.samHeader; pthread_mutex_init(&g_threadChunks.mutexOutChimSAM, NULL); pthread_mutex_init(&g_threadChunks.mutexOutChimJunction, NULL); }; - // P->inOut->logMain << "mlock value="<logMain << "mlock value="<runThreadN]; - for (int ii=0;iirunThreadN;ii++) { + ReadAlignChunk *RAchunk[P.runThreadN]; + for (int ii=0;iioutFilterBySJoutStage==1) {//completed stage 1, go to stage 2 - P->inOut->logMain << "Completed stage 1 mapping of outFilterBySJout mapping\n"<logMain << "Completed stage 1 mapping of outFilterBySJout mapping\n"<readFilesIndex=-1; + P.readFilesIndex=-1; - P->outFilterBySJoutStage=2; - if (P->outBAMcoord) { - for (int it=0; itrunThreadN; it++) {//prepare the unmapped bin + P.outFilterBySJoutStage=2; + if (P.outBAMcoord) { + for (int it=0; itchunkOutBAMcoord->coordUnmappedPrepareBySJout(); }; }; @@ -334,68 +332,68 @@ int main(int argInN, char* argIn[]) { }; //close some BAM files - if (P->inOut->outBAMfileUnsorted!=NULL) { - bgzf_flush(P->inOut->outBAMfileUnsorted); - bgzf_close(P->inOut->outBAMfileUnsorted); + if (P.inOut->outBAMfileUnsorted!=NULL) { + bgzf_flush(P.inOut->outBAMfileUnsorted); + bgzf_close(P.inOut->outBAMfileUnsorted); }; - if (P->inOut->outQuantBAMfile!=NULL) { - bgzf_flush(P->inOut->outQuantBAMfile); - bgzf_close(P->inOut->outQuantBAMfile); + if (P.inOut->outQuantBAMfile!=NULL) { + bgzf_flush(P.inOut->outQuantBAMfile); + bgzf_close(P.inOut->outQuantBAMfile); }; - if (P->outBAMcoord && P->limitBAMsortRAM==0) {//make it equal ot the genome size - P->limitBAMsortRAM=P->nGenome+mainGenome.SA.lengthByte+mainGenome.SAi.lengthByte; + if (P.outBAMcoord && P.limitBAMsortRAM==0) {//make it equal ot the genome size + P.limitBAMsortRAM=P.nGenome+mainGenome.SA.lengthByte+mainGenome.SAi.lengthByte; }; //no need for genome anymore, free the memory mainGenome.freeMemory(); - if ( P->quant.geCount.yes ) + if ( P.quant.geCount.yes ) {//output gene quantifications - for (int ichunk=1; ichunkrunThreadN; ichunk++) + for (int ichunk=1; ichunkchunkTr->quants->addQuants(*(RAchunk[ichunk]->chunkTr->quants)); }; RAchunk[0]->chunkTr->quantsOutput(); }; - if (P->runThreadN>1 && P->outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files - RAchunk[0]->chunkFilesCat(P->inOut->outSAM, P->outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); + if (P.runThreadN>1 && P.outSAMorder=="PairedKeepInputOrder") {//concatenate Aligned.* files + RAchunk[0]->chunkFilesCat(P.inOut->outSAM, P.outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); }; - if (P->outBAMcoord) {//sort BAM if needed - *P->inOut->logStdOut << timeMonthDayTime() << " ..... started sorting BAM\n" <inOut->logMain << timeMonthDayTime() << " ..... started sorting BAM\n" <outBAMcoordNbins; + if (P.outBAMcoord) {//sort BAM if needed + *P.inOut->logStdOut << timeMonthDayTime() << " ..... started sorting BAM\n" <logMain << timeMonthDayTime() << " ..... started sorting BAM\n" <runThreadN; it++) {//collect sizes from threads + for (int it=0; itchunkOutBAMcoord->binTotalBytes[ibin]+24*RAchunk[it]->chunkOutBAMcoord->binTotalN[ibin]; }; if (binS>maxMem) maxMem=binS; }; - P->inOut->logMain << "Max memory needed for sorting = "<P->limitBAMsortRAM) { + P.inOut->logMain << "Max memory needed for sorting = "<P.limitBAMsortRAM) { ostringstream errOut; errOut <<"EXITING because of fatal ERROR: not enough memory for BAM sorting: \n"; errOut <<"SOLUTION: re-run STAR with at least --limitBAMsortRAM " <inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); }; uint totalMem=0; -// P->inOut->logMain << "Started sorting BAM ..." <outBAMsortingThreadNactual) +// P.inOut->logMain << "Started sorting BAM ..." <runThreadN; it++) {//collect sizes from threads + for (int it=0; itchunkOutBAMcoord->binTotalN[ibin]; binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]; }; @@ -403,19 +401,19 @@ int main(int argInN, char* argIn[]) { if (binS==0) continue; //empty bin if (ibin == nBins-1) {//last bin for unmapped reads - BAMbinSortUnmapped(ibin,P->runThreadN,P->outBAMsortTmpDir,P->inOut->outBAMfileCoord, P); + BAMbinSortUnmapped(ibin,P.runThreadN,P.outBAMsortTmpDir,P.inOut->outBAMfileCoord, P); } else { uint newMem=binS+binN*24; bool boolWait=true; while (boolWait) { #pragma omp critical - if (totalMem+newMem < P->limitBAMsortRAM) { + if (totalMem+newMem < P.limitBAMsortRAM) { boolWait=false; totalMem+=newMem; }; sleep(0.1); }; - BAMbinSortByCoordinate(ibin,binN,binS,P->runThreadN,P->outBAMsortTmpDir, P); + BAMbinSortByCoordinate(ibin,binN,binS,P.runThreadN,P.outBAMsortTmpDir, P); #pragma omp critical totalMem-=newMem;//"release" RAM }; @@ -425,7 +423,7 @@ int main(int argInN, char* argIn[]) { vector bamBinNamesV; for (uint32 ibin=0; ibinoutBAMsortTmpDir+"/b"+std::to_string((uint) ibin)); + bamBinNamesV.push_back(P.outBAMsortTmpDir+"/b"+std::to_string((uint) ibin)); struct stat buffer; if (stat (bamBinNamesV.back().c_str(), &buffer) != 0) {//check if file exists bamBinNamesV.pop_back(); @@ -434,41 +432,40 @@ int main(int argInN, char* argIn[]) { for (uint32 ibin=0; ibinoutBAMfileCoordName.c_str()); + bam_cat(bamBinNamesV.size(), bamBinNames, 0, P.outBAMfileCoordName.c_str()); }; //wiggle output - if (P->outWigFlags.yes) { - *P->inOut->logStdOut << timeMonthDayTime() << " ..... started wiggle output\n" <inOut->logMain << timeMonthDayTime() << " ..... started wiggle output\n" <outFileNamePrefix + "Signal"; - signalFromBAM(P->outBAMfileCoordName, wigOutFileNamePrefix, *P); + if (P.outWigFlags.yes) { + *(P.inOut->logStdOut) << timeMonthDayTime() << " ..... started wiggle output\n" <logMain << timeMonthDayTime() << " ..... started wiggle output\n" <inOut->logProgress); - P->inOut->logProgress << "ALL DONE!\n"<inOut->logFinal.open((P->outFileNamePrefix + "Log.final.out").c_str()); - g_statsAll.reportFinal(P->inOut->logFinal); - *P->inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... finished successfully\n" <logProgress); + P.inOut->logProgress << "ALL DONE!\n"<logFinal.open((P.outFileNamePrefix + "Log.final.out").c_str()); + g_statsAll.reportFinal(P.inOut->logFinal); + *P.inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... finished successfully\n" <inOut->logMain << "ALL DONE!\n"<outTmpKeep=="None") + P.inOut->logMain << "ALL DONE!\n"<outFileTmp); + sysRemoveDir (P.outFileTmp); } else { //nothing to do }; - P->closeReadsFiles();//this will kill the readFilesCommand processes if necessary - //mainGenome.~Genome(); //need explicit call because of the 'delete P->inOut' below, which will destroy P->inOut->logStdOut + P.closeReadsFiles();//this will kill the readFilesCommand processes if necessary + //mainGenome.~Genome(); //need explicit call because of the 'delete P.inOut' below, which will destroy P.inOut->logStdOut - ///@todo create Destructor to destroy P->inOut - delete P->inOut; //to close files - delete P; + ///@todo create Destructor to destroy P.inOut + delete P.inOut; //to close files return 0; }; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 3d00efe..0765ffb 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -6,7 +6,7 @@ inline uint medianUint2(uint a, uint b) { return a/2 + b/2 + (a%2 + b%2)/2; }; -uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, bool& compRes, Parameters* P) { +uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, bool& compRes, Parameters& P) { // compare s to g, find the maximum identity length // s2[0] read sequence; s2[1] complementary sequence // S position to start search from in s2[0],s2[1] @@ -15,8 +15,8 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& register int64 ii; uint SAstr=SA[iSA]; - bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P->GstrandMask; + bool dirG = (SAstr>>P.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P.GstrandMask; if (dirR && dirG) {//forward on read, forward on genome @@ -41,7 +41,7 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& return N; //exact match } else if (dirR && !dirG) { char* s = s2[1] + S + L; - g += P->nGenome-1-SAstr - L; + g += P.nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { if (s[ii]!=g[-ii]) @@ -79,7 +79,7 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& return N; } else {//if (!dirR && !dirG) char* s = s2[0] + S - L; - g += P->nGenome-1-SAstr - L; + g += P.nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { if (s[-ii]!=g[-ii]) @@ -99,7 +99,7 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& }; }; -uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, char* g, PackedArray& SA, bool dirR, uint S, Parameters* P) { +uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, char* g, PackedArray& SA, bool dirR, uint S, Parameters& P) { // given SA index i3 and identity length L3, return the index of the farthest element with the same length, starting from i1,L1 or i1a,L1a, or i1b,L1b bool compRes; @@ -126,7 +126,7 @@ uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint return i1a; }; -uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters* P) { +uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters& P) { // find minimum mappable length of sequence s to the genome g with suffix array SA; length(s)=N; [i1 i2] is // returns number of mappings (1=unique);range indStartEnd; min mapped length = L // binary search in SA space @@ -189,7 +189,7 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint }; /* -uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, uint i1, uint i2, uint L, Parameters* P) { +uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, uint i1, uint i2, uint L, Parameters& P) { // binary search in SA space // s[0],s[1] - sequence, complementary sequence // S - start offset @@ -220,8 +220,8 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, uint register int64 ii; uint SAstr=SA[i3]; - bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P->GstrandMask; + bool dirG = (SAstr>>P.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P.GstrandMask; if (dirG) @@ -240,7 +240,7 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, uint } else { char* s = s2[1] + S + L; - char* g = G + P->nGenome-1-SAstr - L; + char* g = G + P.nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { if (s[ii]!=g[-ii]) @@ -274,20 +274,20 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, uint }; */ -int compareRefEnds (uint64 SAstr, uint64 gInsert, bool strG, bool strR, Parameters* P) +int compareRefEnds (uint64 SAstr, uint64 gInsert, bool strG, bool strR, Parameters& P) { if ( strG) {// + strand g return strR ? (SAstr < gInsert ? 1:-1) : 1; } else {// - strand g - return strR ? -1 : ( gInsert==-1LLU ? -1 : ( SAstr < P->nGenome-gInsert ? 1:-1) ); + return strR ? -1 : ( gInsert==-1LLU ? -1 : ( SAstr < P.nGenome-gInsert ? 1:-1) ); }; }; -uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, uint64 gInsert, int & compRes, Parameters* P) { +uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, uint64 gInsert, int & compRes, Parameters& P) { // compare s to g, find the maximum identity length // s2[0] read sequence; s2[1] complementary sequence // S position to start search from in s2[0],s2[1] @@ -302,8 +302,8 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray register int64 ii; uint SAstr=SA[iSA]; - bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P->GstrandMask; + bool dirG = (SAstr>>P.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P.GstrandMask; if (dirG) {//forward on read, forward on genome @@ -334,7 +334,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray else { char* s = s2[1] + S + L; - g += P->nGenome-1-SAstr - L; + g += P.nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { if (s[ii]!=g[-ii]) @@ -362,7 +362,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray }; -uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, PackedArray& SA, bool strR, uint i1, uint i2, uint L, Parameters* P) +uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, PackedArray& SA, bool strR, uint i1, uint i2, uint L, Parameters& P) { // binary search in SA space // s[0],s[1] - query sequence, complementary sequence @@ -417,11 +417,11 @@ uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, Packe return i2; //index at i2 is always bigger than the sequence }; -uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters* P, int & iL4) +uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters& P, int & iL4) { uint SAstr=SA[iSA]; - bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P->GstrandMask; + bool dirG = (SAstr>>P.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P.GstrandMask; iL4=-1; register uint saind=0; if (dirG) @@ -443,7 +443,7 @@ uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters* P, return saind; } else { - register uint128 g1=*( (uint128*) (G+P->nGenome-SAstr-16) ); + register uint128 g1=*( (uint128*) (G+P.nGenome-SAstr-16) ); for (int ii=0; ii>(8*(15-ii))); diff --git a/SuffixArrayFuns.h b/SuffixArrayFuns.h index a03b09b..5a8fb3b 100644 --- a/SuffixArrayFuns.h +++ b/SuffixArrayFuns.h @@ -6,12 +6,12 @@ #include "PackedArray.h" uint medianUint2(uint, uint); -uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, bool& comparRes, Parameters* P); -uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, char* g, PackedArray& SA, bool dirR, uint S, Parameters* P); -uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters* P); +uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, bool& comparRes, Parameters& P); +uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, char* g, PackedArray& SA, bool dirR, uint S, Parameters& P); +uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters& P); void writePacked( char* a, uint jj, uint x); uint readPacked(char* a, uint jj); -uint suffixArraySearch1(char** s2, uint S, uint N, char* G, uint64 gInsert, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P); +uint suffixArraySearch1(char** s2, uint S, uint N, char* G, uint64 gInsert, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters& P); int64 funCalcSAi(char* G, uint iL); -uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters* P, int & iL4); +uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters& P, int & iL4); #endif diff --git a/Transcript.h b/Transcript.h index 568bd26..bac59f2 100644 --- a/Transcript.h +++ b/Transcript.h @@ -60,8 +60,8 @@ class Transcript { void resetMapG(); // reset map to 0 void resetMapG(uint); // reset map to 0 for Lread bases void add(Transcript*); // add - void alignScore(char **Read1, char *G, Parameters *P); - int variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters *P); + void alignScore(char **Read1, char *G, Parameters &P); + int variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters &P); }; #endif diff --git a/Transcript_alignScore.cpp b/Transcript_alignScore.cpp index 68943b5..0fb3df9 100644 --- a/Transcript_alignScore.cpp +++ b/Transcript_alignScore.cpp @@ -1,7 +1,7 @@ #include "Transcript.h" #include -void Transcript::alignScore(char **Read1, char *G, Parameters *P) {//re-calculates score and number of mismatches +void Transcript::alignScore(char **Read1, char *G, Parameters &P) {//re-calculates score and number of mismatches maxScore=0; nMM=0; char* R=Read1[roStr==0 ? 0:2]; @@ -20,34 +20,34 @@ void Transcript::alignScore(char **Read1, char *G, Parameters *P) {//re-calculat }; for (uint iex=0;iexsjdbScore; + maxScore += P.sjdbScore; } else { switch (canonSJ[iex]) { case -3: //mate pair, no scoring break; case -2: //insertion - maxScore += (exons[iex+1][EX_R]-exons[iex][EX_R]-exons[iex][EX_L])*P->scoreInsBase + P->scoreInsOpen; + maxScore += (exons[iex+1][EX_R]-exons[iex][EX_R]-exons[iex][EX_L])*P.scoreInsBase + P.scoreInsOpen; break; case -1: //deletion - maxScore += (exons[iex+1][EX_G]-exons[iex][EX_G]-exons[iex][EX_L])*P->scoreDelBase + P->scoreDelOpen; + maxScore += (exons[iex+1][EX_G]-exons[iex][EX_G]-exons[iex][EX_L])*P.scoreDelBase + P.scoreDelOpen; break; case 0: //non-canonical - maxScore += P->scoreGapNoncan+P->scoreGap; + maxScore += P.scoreGapNoncan+P.scoreGap; break; case 1: case 2: //GTAG - maxScore += P->scoreGap; + maxScore += P.scoreGap; break; case 3: case 4: //GCAG - maxScore += P->scoreGapGCAG+P->scoreGap; + maxScore += P.scoreGapGCAG+P.scoreGap; break; case 5: case 6: //ATAC - maxScore += P->scoreGapATAC+P->scoreGap; + maxScore += P.scoreGapATAC+P.scoreGap; break; }; }; }; - if (P->scoreGenomicLengthLog2scale!=0) {//add gap length score + if (P.scoreGenomicLengthLog2scale!=0) {//add gap length score maxScore += int(ceil( log2( (double) ( exons[nExons-1][EX_G]+exons[nExons-1][EX_L] - exons[0][EX_G]) ) \ - * P->scoreGenomicLengthLog2scale - 0.5)); + * P.scoreGenomicLengthLog2scale - 0.5)); }; }; \ No newline at end of file diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index f356250..975c2e8 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -1,7 +1,7 @@ #include "Transcript.h" #include "serviceFuns.cpp" -int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters *P) +int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters &P) { if (!Var.yes) {//no variation @@ -21,7 +21,7 @@ int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, while (isnpVar.snp.loci[isnp]) {//these SNPs overlap the block snpInd.push_back(isnp); //record snp index - snpLoci.push_back(Var.snp.loci[isnp]-Var.P->chrStart[Chr]); + snpLoci.push_back(Var.snp.loci[isnp]-Var.P.chrStart[Chr]); char ntR=R[exons[ie][EX_R]+Var.snp.loci[isnp]-exons[ie][EX_G]];//nt of the read in the SNP position, already trnasformed to + genome strand uint8 igt; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 99b0779..4537405 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -2,12 +2,12 @@ #include "streamFuns.h" #include "GlobalVariables.h" -Transcriptome::Transcriptome (Parameters* Pin) { +Transcriptome::Transcriptome (Parameters& Pin) { P=Pin; - trInfoDir = P->sjdbGTFfile=="-" ? P->genomeDir : P->sjdbInsert.outDir; //if GTF file is given at the mapping stage, it's always used for transcript info + trInfoDir = P.sjdbGTFfile=="-" ? P.genomeDir : P.sjdbInsert.outDir; //if GTF file is given at the mapping stage, it's always used for transcript info - if ( P->quant.trSAM.yes ) {//load exon-transcript structures + if ( P.quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); @@ -26,7 +26,7 @@ Transcriptome::Transcriptome (Parameters* Pin) { trinfo >> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr]; trStr[itr]=str1; }; - P->inOut->logMain << "Loaded transcript database, nTr="<logMain << "Loaded transcript database, nTr="<> exSE[2*iex] >> exSE[2*iex+1] >> exLenCum[iex]; //reading all elements one after another }; - P->inOut->logMain << "Loaded exon database, nEx="<logMain << "Loaded exon database, nEx="<quant.geCount.yes ) {//load exon-gene structures + if ( P.quant.geCount.yes ) {//load exon-gene structures ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> exG.nEx; @@ -85,13 +85,13 @@ Transcriptome::Transcriptome (Parameters* Pin) { }; void Transcriptome::quantsAllocate() { - if ( P->quant.geCount.yes ) { + if ( P.quant.geCount.yes ) { quants = new Quantifications (nGe); }; }; void Transcriptome::quantsOutput() { - ofstream qOut(P->quant.geCount.outFile); + ofstream qOut(P.quant.geCount.outFile); qOut << "N_unmapped"; for (int itype=0; itypegeneCounts.nType; itype++) diff --git a/Transcriptome.h b/Transcriptome.h index 389bc18..db0a9e7 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -10,14 +10,14 @@ class Transcriptome { public: //methods: - Transcriptome (Parameters* Pin); //create transcriptome structure, load and initialize parameters + Transcriptome (Parameters& Pin); //create transcriptome structure, load and initialize parameters uint32 quantAlign (Transcript &aG, Transcript *aTall);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure void quantsOutput(); //output quantification files string trInfoDir; - Parameters* Ptr; //transcriptomic parameters (i.e. chrName,...), to be used with RAtr for output + Parameters& Ptr; //transcriptomic parameters (i.e. chrName,...), to be used with RAtr for output vector trID, geID; //transcript/gene IDs uint32 nTr, nGe; //number of transcript/genes @@ -41,7 +41,7 @@ class Transcriptome { Quantifications *quants; private: - Parameters* P; //normal "genomic" parameters + Parameters& P; //normal "genomic" parameters }; diff --git a/Variation.cpp b/Variation.cpp index 4f856f5..e48adfd 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -4,10 +4,9 @@ #include "TimeFunctions.h" #include "serviceFuns.cpp" -Variation::Variation (Parameters* Pin) +Variation::Variation (Parameters &Pin) : P(Pin) { - P=Pin; - if (!P->var.yes) + if (!P.var.yes) { yes=false; return; @@ -15,15 +14,15 @@ Variation::Variation (Parameters* Pin) yes=true; - varOutFileName=P->outFileNamePrefix+"Variation.out"; + varOutFileName=P.outFileNamePrefix+"Variation.out"; varOutStream.open(varOutFileName); - vcfFile=P->var.vcfFile; + vcfFile=P.var.vcfFile; loadVCF(vcfFile); }; -void scanVCF(ifstream& vcf, bool load, Parameters* P, SNP& snp) +void scanVCF(ifstream& vcf, bool load, Parameters& P, SNP& snp) { snp.N=0; uint nlines=0; @@ -49,10 +48,10 @@ void scanVCF(ifstream& vcf, bool load, Parameters* P, SNP& snp) { altV.insert(altV.begin(),ref);//add ref to the beginning - if (P->chrNameIndex.count(chr)==0) {//chr not in Genome + if (P.chrNameIndex.count(chr)==0) {//chr not in Genome if (!load) { - P->inOut->logMain << "WARNING: while processing varVCFfile file=" << P->var.vcfFile <<": chromosome '"<logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": chromosome '"<inOut->logMain << "WARNING: while processing varVCFfile file=" << P->var.vcfFile <<": more than 2 alleles per sample for line number "<logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": more than 2 alleles per sample for line number "<chrStart[P->chrNameIndex[chr]]; + snp.loci[snp.N]=pos-1+P.chrStart[P.chrNameIndex[chr]]; snp.nt[snp.N][0]=convertNt01234( ref.at(0) ); snp.nt[snp.N][1]=convertNt01234( altV.at( atoi(&sample.at(0)) ).at(0) ); snp.nt[snp.N][2]=convertNt01234( altV.at( atoi(&sample.at(2)) ).at(0) ); @@ -94,8 +93,8 @@ void Variation::loadVCF(string fileIn) { time_t rawTime; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <logMain << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Loaded VCF data, found "<logMain << timeMonthDayTime(rawTime) <<" ..... Loaded VCF data, found "<inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Finished sorting VCF data"<logMain << timeMonthDayTime(rawTime) <<" ..... Finished sorting VCF data"<>> &snpV) diff --git a/Variation.h b/Variation.h index 2259a33..2771a83 100644 --- a/Variation.h +++ b/Variation.h @@ -30,15 +30,15 @@ class Variation { public: //methods - Variation (Parameters* Pin); //create transcriptome structure, load and initialize parameters + Variation (Parameters &Pin); //create transcriptome structure, load and initialize parameters void loadVCF(string fileIn); //load VCF file vector>> sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang); //calculates snp loci in sjdb sequences //variables bool yes; SNP snp; - - Parameters* P; + + Parameters &P; //TODO: make this private private: string vcfFile; diff --git a/bamRemoveDuplicates.cpp b/bamRemoveDuplicates.cpp index 1ecd92a..5a83c0e 100644 --- a/bamRemoveDuplicates.cpp +++ b/bamRemoveDuplicates.cpp @@ -111,8 +111,8 @@ int funCompareCoordFlagCigarSeq(const void *a, const void *b) { return 0; }; -void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, Parameters* const P) { - g_bamRemoveDuplicatesMate2basesN=P->removeDuplicates.mate2basesN; +void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, Parameters &P) { + g_bamRemoveDuplicatesMate2basesN=P.removeDuplicates.mate2basesN; bam1_t *bamA; bamA=bam_init1(); @@ -121,10 +121,10 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, bam_hdr_t *bamHeader=bam_hdr_read(bamIn); BGZF *bgzfOut; - bgzfOut=bgzf_open(bamFileNameOut.c_str(),("w"+to_string((long long) P->outBAMcompression)).c_str()); + bgzfOut=bgzf_open(bamFileNameOut.c_str(),("w"+to_string((long long) P.outBAMcompression)).c_str()); bam_hdr_write(bgzfOut, bamHeader); - uint bamLengthMax=P->limitBAMsortRAM; //max length to load + uint bamLengthMax=P.limitBAMsortRAM; //max length to load if (bamLengthMax==0) bamLengthMax=16000000000; uint grNmax=1000000;//max number of alignments @@ -145,7 +145,7 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, ostringstream errOut; errOut <<"EXITING because of fatal ERROR: not enough memory for marking duplicates \n"; errOut <<"SOLUTION: re-run STAR with at least --limitBAMsortRAM " <inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, *P); }; //write out processed block @@ -178,7 +178,7 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, nMult=bam_aux2i(bam_aux_get(bamA,"NH")); - if (nMult==1 || (nMult>1 && P->removeDuplicates.markMulti)) + if (nMult==1 || (nMult>1 && P.removeDuplicates.markMulti)) { bamP[4] |= (0x400<<16);//mark all aligns as duplicate, will unmark. If multimappers, onyl mark if markMult=true }; diff --git a/bamRemoveDuplicates.h b/bamRemoveDuplicates.h index c79a761..79fccbe 100644 --- a/bamRemoveDuplicates.h +++ b/bamRemoveDuplicates.h @@ -5,6 +5,6 @@ using namespace std; -void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, Parameters* const P); +void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, Parameters &P); #endif diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 145cdd6..2ad4608 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -112,28 +112,28 @@ inline uint funG2strLocus (uint SAstr, uint const N, char const GstrandBit, uint return SAstr; }; -void genomeGenerate(Parameters *P) { +void genomeGenerate(Parameters &P) { //check parameters - if (P->sjdbOverhang<=0 && (P->sjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-")) + if (P.sjdbOverhang<=0 && (P.sjdbFileChrStartEnd.at(0)!="-" || P.sjdbGTFfile!="-")) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; errOut << "you need to specify >0 --sjdbOverhang\n"; errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); } - if (P->sjdbFileChrStartEnd.at(0)=="-" && P->sjdbGTFfile=="-") + if (P.sjdbFileChrStartEnd.at(0)=="-" && P.sjdbGTFfile=="-") { - if (P->parArray.at(P->sjdbOverhang_par)->inputLevel>0 && P->sjdbOverhang>0) + if (P.parArray.at(P.sjdbOverhang_par)->inputLevel>0 && P.sjdbOverhang>0) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; errOut << "do not specify >0 --sjdbOverhang\n"; errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - P->sjdbOverhang=0; + P.sjdbOverhang=0; }; //time @@ -141,15 +141,15 @@ void genomeGenerate(Parameters *P) { string timeString; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to generate Genome files\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to generate Genome files\n" <logMain << timeMonthDayTime(rawTime) <<" ... starting to generate Genome files\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... starting to generate Genome files\n" <genomeChrBinNbases=1LLU << P->genomeChrBinNbits; + P.genomeChrBinNbases=1LLU << P.genomeChrBinNbits; char *G=NULL, *G1=NULL; uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to find all the sizes - P->chrBinFill(); + P.chrBinFill(); uint L=10000;//maximum length of genome suffix uint nG1alloc=(nGenomeReal + L)*2; @@ -161,28 +161,28 @@ void genomeGenerate(Parameters *P) { genomeScanFastaFiles(P,G,true); //load the genome sequence uint N = nGenomeReal; - P->nGenome=N; + P.nGenome=N; uint N2 = N*2; - ofstream & chrN = ofstrOpen(P->genomeDir+"/chrName.txt",ERROR_OUT, P); - ofstream & chrS = ofstrOpen(P->genomeDir+"/chrStart.txt",ERROR_OUT, P); - ofstream & chrL = ofstrOpen(P->genomeDir+"/chrLength.txt",ERROR_OUT, P); - ofstream & chrNL = ofstrOpen(P->genomeDir+"/chrNameLength.txt",ERROR_OUT, P); + ofstream & chrN = ofstrOpen(P.genomeDir+"/chrName.txt",ERROR_OUT, P); + ofstream & chrS = ofstrOpen(P.genomeDir+"/chrStart.txt",ERROR_OUT, P); + ofstream & chrL = ofstrOpen(P.genomeDir+"/chrLength.txt",ERROR_OUT, P); + ofstream & chrNL = ofstrOpen(P.genomeDir+"/chrNameLength.txt",ERROR_OUT, P); - for (uint ii=0;iinChrReal;ii++) {//output names, starts, lengths - chrN<chrName[ii]<<"\n"; - chrS<chrStart[ii]<<"\n"; - chrL<chrLength.at(ii)<<"\n"; - chrNL<chrName[ii]<<"\t"<chrLength.at(ii)<<"\n"; + for (uint ii=0;iichrStart[P->nChrReal]<<"\n";//size of the genome + chrS<limitGenomeGenerateRAM < (nG1alloc+nG1alloc/3)) {//allocate nG1alloc/3 for SA generation + if (P.limitGenomeGenerateRAM < (nG1alloc+nG1alloc/3)) {//allocate nG1alloc/3 for SA generation ostringstream errOut; - errOut <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM="<< (P->limitGenomeGenerateRAM) <<"is too small for your genome\n"; + errOut <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM="<< (P.limitGenomeGenerateRAM) <<"is too small for your genome\n"; errOut <<"SOLUTION: please specify --limitGenomeGenerateRAM not less than "<< nG1alloc+nG1alloc/3 <<" and make that much RAM available \n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; //preparing to generate SA @@ -190,34 +190,34 @@ void genomeGenerate(Parameters *P) { G[N2-1-ii]=G[ii]<4 ? 3-G[ii] : G[ii]; }; - P->nSA=0; - for (uint ii=0;iigenomeSAsparseD) { + P.nSA=0; + for (uint ii=0;iinSA++; + P.nSA++; }; }; - P->GstrandBit = (uint) floor(log(N+P->limitSjdbInsertNsj*P->sjdbLength)/log(2))+1; - if (P->GstrandBit<32) P->GstrandBit=32; //TODO: use simple access function for SA + P.GstrandBit = (uint) floor(log(N+P.limitSjdbInsertNsj*P.sjdbLength)/log(2))+1; + if (P.GstrandBit<32) P.GstrandBit=32; //TODO: use simple access function for SA - P->GstrandMask = ~(1LLU<GstrandBit); + P.GstrandMask = ~(1LLU<GstrandBit+1,P->nSA); + SA1.defineBits(P.GstrandBit+1,P.nSA); PackedArray SA2;//SA with sjdb, reserve more space - if (P->sjdbInsert.yes) + if (P.sjdbInsert.yes) {//reserve space for junction insertion - SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitSjdbInsertNsj*P->sjdbLength);//TODO: this allocation is wasteful, get a better estimate of the number of junctions + SA2.defineBits(P.GstrandBit+1,P.nSA+2*P.limitSjdbInsertNsj*P.sjdbLength);//TODO: this allocation is wasteful, get a better estimate of the number of junctions } else {//same as SA1 - SA2.defineBits(P->GstrandBit+1,P->nSA); + SA2.defineBits(P.GstrandBit+1,P.nSA); }; - P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<logMain << "Number of SA indices: "<< P.nSA << "\n"<inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <genomeSuffixLengthMax/sizeof(uint); + globalL=P.genomeSuffixLengthMax/sizeof(uint); //count the number of indices with 4nt prefix uint indPrefN=1LLU << 16; uint* indPrefCount = new uint [indPrefN]; memset(indPrefCount,0,indPrefN*sizeof(indPrefCount[0])); - P->nSA=0; - for (uint ii=0;iigenomeSAsparseD) { + P.nSA=0; + for (uint ii=0;iinSA++; + P.nSA++; }; }; - uint saChunkSize=(P->limitGenomeGenerateRAM-nG1alloc)/8/P->runThreadN; //number of SA indexes per chunk + uint saChunkSize=(P.limitGenomeGenerateRAM-nG1alloc)/8/P.runThreadN; //number of SA indexes per chunk saChunkSize=saChunkSize*6/10; //allow extra space for qsort - //uint saChunkN=((P->nSA/saChunkSize+1)/P->runThreadN+1)*P->runThreadN;//ensure saChunkN is divisible by P->runThreadN - //saChunkSize=P->nSA/saChunkN+100000;//final chunk size - if (P->runThreadN>1) saChunkSize=min(saChunkSize,P->nSA/(P->runThreadN-1)); + //uint saChunkN=((P.nSA/saChunkSize+1)/P.runThreadN+1)*P.runThreadN;//ensure saChunkN is divisible by P.runThreadN + //saChunkSize=P.nSA/saChunkN+100000;//final chunk size + if (P.runThreadN>1) saChunkSize=min(saChunkSize,P.nSA/(P.runThreadN-1)); - uint saChunkN=P->nSA/saChunkSize;//estimate + uint saChunkN=P.nSA/saChunkSize;//estimate uint* indPrefStart = new uint [saChunkN*2]; //start and stop, *2 just in case uint* indPrefChunkCount = new uint [saChunkN*2]; indPrefStart[0]=0; @@ -266,16 +266,16 @@ void genomeGenerate(Parameters *P) { indPrefStart[saChunkN]=indPrefN+1; indPrefChunkCount[saChunkN-1]=chunkSize1; - P->inOut->logMain << "Number of chunks: " << saChunkN <<"; chunks size limit: " << saChunkSize*8 <<" bytes\n" <logMain << "Number of chunks: " << saChunkN <<"; chunks size limit: " << saChunkSize*8 <<" bytes\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <logMain << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... sorting Suffix Array chunks and saving them to disk...\n" <runThreadN) ordered schedule(dynamic,1) + #pragma omp parallel for num_threads(P.runThreadN) ordered schedule(dynamic,1) for (int iChunk=0; iChunk < (int) saChunkN; iChunk++) {//start the chunk cycle: sort each chunk with qsort and write to a file uint* saChunk=new uint [indPrefChunkCount[iChunk]];//allocate local array for each chunk - for (uint ii=0,jj=0;iigenomeSAsparseD) {//fill the chunk with SA indices + for (uint ii=0,jj=0;ii=indPrefStart[iChunk] && p1genomeDir+"/SA_"+to_string( (uint) iChunk); + string chunkFileName=P.genomeDir+"/SA_"+to_string( (uint) iChunk); ofstream & saChunkFile = ofstrOpen(chunkFileName,ERROR_OUT, P); fstreamWriteBig(saChunkFile, (char*) saChunk, sizeof(saChunk[0])*indPrefChunkCount[iChunk],chunkFileName,ERROR_OUT,P); saChunkFile.close(); @@ -302,25 +302,25 @@ void genomeGenerate(Parameters *P) { }; time ( &rawTime ); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <logMain << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <GstrandBit; + uint N2bit= 1LLU << P.GstrandBit; uint packedInd=0; #define SA_CHUNK_BLOCK_SIZE 10000000 uint* saIn=new uint[SA_CHUNK_BLOCK_SIZE]; //TODO make adjustable #ifdef genenomeGenerate_SA_textOutput - ofstream SAtxtStream ((P->genomeDir + "/SAtxt").c_str()); + ofstream SAtxtStream ((P.genomeDir + "/SAtxt").c_str()); #endif for (uint iChunk=0;iChunkgenomeDir << "/SA_" << iChunk; + saChunkFileNameStream<< P.genomeDir << "/SA_" << iChunk; ifstream saChunkFile(saChunkFileNameStream.str().c_str()); while (! saChunkFile.eof()) {//read blocks from each file uint chunkBytesN=fstreamReadBig(saChunkFile,(char*) saIn,SA_CHUNK_BLOCK_SIZE*sizeof(saIn[0])); @@ -342,12 +342,12 @@ void genomeGenerate(Parameters *P) { #endif delete [] saIn; - if (packedInd != P->nSA ) {// + if (packedInd != P.nSA ) {// ostringstream errOut; errOut << "EXITING because of FATAL problem while generating the suffix array\n"; - errOut << "The number of indices read from chunks = "<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; //DONE with suffix array generation @@ -363,8 +363,8 @@ void genomeGenerate(Parameters *P) { time ( &rawTime ); timeString=asctime(localtime ( &rawTime )); timeString.erase(timeString.end()-1,timeString.end()); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... finished generating suffix array\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... finished generating suffix array\n" <logMain << timeMonthDayTime(rawTime) <<" ... finished generating suffix array\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... finished generating suffix array\n" <nSAbyte=(uint) oldSAin.tellg(); +// P.nSAbyte=(uint) oldSAin.tellg(); // oldSAin.clear(); // oldSAin.seekg (0, ios::beg); // -// P->nSA=(P->nSAbyte*8)/(P->GstrandBit+1); -// SAold.defineBits(P->GstrandBit+1,P->nSA); +// P.nSA=(P.nSAbyte*8)/(P.GstrandBit+1); +// SAold.defineBits(P.GstrandBit+1,P.nSA); // SAold.allocateArray(); // // oldSAin.read(SAold.charArray,SAold.lengthByte); @@ -395,7 +395,7 @@ void genomeGenerate(Parameters *P) { PackedArray SAip; genomeSAindex(G,SA1,P,SAip); - if (P->sjdbFileChrStartEnd.at(0)!="-" || P->sjdbGTFfile!="-") + if (P.sjdbFileChrStartEnd.at(0)!="-" || P.sjdbGTFfile!="-") {//insert junctions SjdbClass sjdbLoci; @@ -404,11 +404,11 @@ void genomeGenerate(Parameters *P) { mainGenome.SA=SA1; mainGenome.SApass1=SA2; mainGenome.SAi=SAip; - P->sjdbInsert.outDir=P->genomeDir; - P->sjdbN=0;//no junctions are loaded yet - P->twoPass.pass2=false; + P.sjdbInsert.outDir=P.genomeDir; + P.sjdbN=0;//no junctions are loaded yet + P.twoPass.pass2=false; - Parameters *P1=new Parameters; + Parameters &P1=new Parameters; *P1=*P; sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); @@ -416,47 +416,47 @@ void genomeGenerate(Parameters *P) { //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk //this is - to avoid valgrind complaints. Note that SA2 is allocated with plenty of space to spare. SA1=mainGenome.SA; - SA1.writePacked(P->nSA,0); + SA1.writePacked(P.nSA,0); }; - P->genomeFileSizes.clear(); - P->genomeFileSizes.push_back(P->nGenome); - P->genomeFileSizes.push_back(SA1.lengthByte); + P.genomeFileSizes.clear(); + P.genomeFileSizes.push_back(P.nGenome); + P.genomeFileSizes.push_back(SA1.lengthByte); //write genome parameters file - genomeParametersWrite(P->genomeDir+("/genomeParameters.txt"), P, ERROR_OUT); + genomeParametersWrite(P.genomeDir+("/genomeParameters.txt"), P, ERROR_OUT); //write genome to disk time ( &rawTime ); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <genomeDir+"/Genome",ERROR_OUT, P); - fstreamWriteBig(genomeOut,G,P->nGenome,P->genomeDir+"/Genome",ERROR_OUT,P); + ofstream & genomeOut = ofstrOpen(P.genomeDir+"/Genome",ERROR_OUT, P); + fstreamWriteBig(genomeOut,G,P.nGenome,P.genomeDir+"/Genome",ERROR_OUT,P); genomeOut.close(); //write SA time ( &rawTime ); - P->inOut->logMain << "SA size in bytes: "<logMain << "SA size in bytes: "<inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <genomeDir+"/SA",ERROR_OUT, P); - fstreamWriteBig(SAout,(char*) SA1.charArray, (streamsize) SA1.lengthByte,P->genomeDir+"/SA",ERROR_OUT,P); + ofstream & SAout = ofstrOpen(P.genomeDir+"/SA",ERROR_OUT, P); + fstreamWriteBig(SAout,(char*) SA1.charArray, (streamsize) SA1.lengthByte,P.genomeDir+"/SA",ERROR_OUT,P); SAout.close(); //write SAi time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <logMain << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <genomeDir+"/SAindex",ERROR_OUT, P); + ofstream & SAiOut = ofstrOpen(P.genomeDir+"/SAindex",ERROR_OUT, P); - fstreamWriteBig(SAiOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->genomeDir+"/SAindex",ERROR_OUT,P); - fstreamWriteBig(SAiOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->genomeDir+"/SAindex",ERROR_OUT,P); - fstreamWriteBig(SAiOut, SAip.charArray, SAip.lengthByte,P->genomeDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(SAiOut, (char*) &P.genomeSAindexNbases, sizeof(P.genomeSAindexNbases),P.genomeDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(SAiOut, (char*) P.genomeSAindexStart, sizeof(P.genomeSAindexStart[0])*(P.genomeSAindexNbases+1),P.genomeDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(SAiOut, SAip.charArray, SAip.lengthByte,P.genomeDir+"/SAindex",ERROR_OUT,P); SAiOut.close(); SA2.deallocateArray(); @@ -466,6 +466,6 @@ void genomeGenerate(Parameters *P) { timeString.erase(timeString.end()-1,timeString.end()); time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) << " ..... finished successfully\n" <inOut->logStdOut << timeMonthDayTime(rawTime) << " ..... finished successfully\n" <logMain << timeMonthDayTime(rawTime) << " ..... finished successfully\n" <logStdOut << timeMonthDayTime(rawTime) << " ..... finished successfully\n" <commandLineFull <<"\n"; + genomePar << "### "<versionSTAR <<"\n"; + genomePar << "versionGenome\t" << P.versionSTAR <<"\n"; genomePar << "genomeFastaFiles\t"; - for (uint ii=0;iigenomeFastaFiles.size();ii++) genomePar << P->genomeFastaFiles.at(ii) << " "; + for (uint ii=0;iigenomeSAindexNbases << "\n"; - genomePar << "genomeChrBinNbits\t" << P->genomeChrBinNbits << "\n"; - genomePar << "genomeSAsparseD\t" << P->genomeSAsparseD <<"\n"; - genomePar << "sjdbOverhang\t" << P->sjdbOverhang <<"\n"; + genomePar << "genomeSAindexNbases\t" << P.genomeSAindexNbases << "\n"; + genomePar << "genomeChrBinNbits\t" << P.genomeChrBinNbits << "\n"; + genomePar << "genomeSAsparseD\t" << P.genomeSAsparseD <<"\n"; + genomePar << "sjdbOverhang\t" << P.sjdbOverhang <<"\n"; genomePar << "sjdbFileChrStartEnd\t"; - for (uint ii=0;iisjdbFileChrStartEnd.size();ii++) genomePar<< P->sjdbFileChrStartEnd.at(ii) << " "; + for (uint ii=0;iisjdbGTFfile <<"\n"; - genomePar << "sjdbGTFchrPrefix\t" << P->sjdbGTFchrPrefix <<"\n"; - genomePar << "sjdbGTFfeatureExon\t" << P->sjdbGTFfeatureExon <<"\n"; - genomePar << "sjdbGTFtagExonParentTranscript\t" << P->sjdbGTFtagExonParentTranscript <<"\n"; - genomePar << "sjdbGTFtagExonParentGene\t" << P->sjdbGTFtagExonParentGene <<"\n"; + genomePar << "sjdbGTFfile\t" << P.sjdbGTFfile <<"\n"; + genomePar << "sjdbGTFchrPrefix\t" << P.sjdbGTFchrPrefix <<"\n"; + genomePar << "sjdbGTFfeatureExon\t" << P.sjdbGTFfeatureExon <<"\n"; + genomePar << "sjdbGTFtagExonParentTranscript\t" << P.sjdbGTFtagExonParentTranscript <<"\n"; + genomePar << "sjdbGTFtagExonParentGene\t" << P.sjdbGTFtagExonParentGene <<"\n"; - genomePar << "sjdbInsertSave\t" << P->sjdbInsert.save <<"\n"; + genomePar << "sjdbInsertSave\t" << P.sjdbInsert.save <<"\n"; - genomePar << "genomeFileSizes\t" << P->genomeFileSizes.at(0); - for (uint ii=1;iigenomeFileSizes.size();ii++) - genomePar << " " << P->genomeFileSizes.at(ii) ; + genomePar << "genomeFileSizes\t" << P.genomeFileSizes.at(0); + for (uint ii=1;iigenomeSAindexStart = new uint [P->genomeSAindexNbases+1]; - P->genomeSAindexStart[0]=0; - for (uint ii=1;ii<=P->genomeSAindexNbases;ii++) {//L-mer indices starts - P->genomeSAindexStart[ii] = P->genomeSAindexStart[ii-1] + ( 1LLU<<(2*ii) ); + P.genomeSAindexStart = new uint [P.genomeSAindexNbases+1]; + P.genomeSAindexStart[0]=0; + for (uint ii=1;ii<=P.genomeSAindexNbases;ii++) {//L-mer indices starts + P.genomeSAindexStart[ii] = P.genomeSAindexStart[ii-1] + ( 1LLU<<(2*ii) ); }; - P->nSAi = P->genomeSAindexStart[P->genomeSAindexNbases]; + P.nSAi = P.genomeSAindexStart[P.genomeSAindexNbases]; /* testing - // uint* SAi1=new uint[P->nSAi]; + // uint* SAi1=new uint[P.nSAi]; PackedArray SAio; - SAio.defineBits(P->GstrandBit+3,P->nSAi); + SAio.defineBits(P.GstrandBit+3,P.nSAi); SAio.allocateArray(); ifstream oldSAiin("./DirTrue/SAindex"); - oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes + oldSAiin.read(SAio.charArray,8*(P.genomeSAindexNbases+2));//skip first bytes oldSAiin.read(SAio.charArray,SAio.lengthByte); oldSAiin.close(); */ - P->SAiMarkNbit=P->GstrandBit+1; - P->SAiMarkAbsentBit=P->GstrandBit+2; + P.SAiMarkNbit=P.GstrandBit+1; + P.SAiMarkAbsentBit=P.GstrandBit+2; - P->SAiMarkNmaskC=1LLU << P->SAiMarkNbit; - P->SAiMarkNmask=~P->SAiMarkNmaskC; - P->SAiMarkAbsentMaskC=1LLU << P->SAiMarkAbsentBit; - P->SAiMarkAbsentMask=~P->SAiMarkAbsentMaskC; + P.SAiMarkNmaskC=1LLU << P.SAiMarkNbit; + P.SAiMarkNmask=~P.SAiMarkNmaskC; + P.SAiMarkAbsentMaskC=1LLU << P.SAiMarkAbsentBit; + P.SAiMarkAbsentMask=~P.SAiMarkAbsentMaskC; - SAi.defineBits(P->GstrandBit+3,P->nSAi); + SAi.defineBits(P.GstrandBit+3,P.nSAi); SAi.allocateArray(); time_t rawTime; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... generating Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... generating Suffix Array index\n" <logMain << timeMonthDayTime(rawTime) <<" ... generating Suffix Array index\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... generating Suffix Array index\n" <genomeSAindexNbases]; + uint* ind0=new uint[P.genomeSAindexNbases]; - for (uint ii=0; iigenomeSAindexNbases; ii++) { + for (uint ii=0; iinSAi]; + uint* SAi1=new uint[P.nSAi]; - for (uint isa=0; isanSA; isa++) {//for all suffixes - if (isa%100000000==0) P->inOut->logMain << isa*100/P->nSA << "% " << flush; + for (uint isa=0; isalogMain << isa*100/P.nSA << "% " << flush; uint SAstr=SA1[isa]; - bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P->GstrandMask; - if (!dirG) SAstr=P->nGenome-1-SAstr; + bool dirG = (SAstr>>P.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P.GstrandMask; + if (!dirG) SAstr=P.nGenome-1-SAstr; uint indPref=0; - for (uint iL=0; iL < P->genomeSAindexNbases; iL++) {//calculate index + for (uint iL=0; iL < P.genomeSAindexNbases; iL++) {//calculate index indPref <<= 2; uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand if (g1>3) {//if N, this suffix does not belong in SAi - for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { - SAi1[P->genomeSAindexStart[iL1]+ind0[iL1]] |= P->SAiMarkNmaskC; + for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { + SAi1[P.genomeSAindexStart[iL1]+ind0[iL1]] |= P.SAiMarkNmaskC; }; break; }; @@ -78,33 +78,33 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi indPref += (uint) g1; if ( indPref > ind0[iL] || isa==0 ) {//new && good index, record it - SAi1[P->genomeSAindexStart[iL]+indPref]=isa; + SAi1[P.genomeSAindexStart[iL]+indPref]=isa; for (uint ii=ind0[iL]+1; iigenomeSAindexStart[iL]+ii] = isa | P->SAiMarkAbsentMaskC; + SAi1[P.genomeSAindexStart[iL]+ii] = isa | P.SAiMarkAbsentMaskC; }; ind0[iL]=indPref; } else if ( indPref < ind0[iL] ) { ostringstream errOut; errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; - };//for (uint isa=0; isanSA; isa++) + };//for (uint isa=0; isainOut->logMain << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <logMain << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <genomeSAindexNbases-1;ii++) {//L-mer indices starts +// for (uint ii=1;ii<=P.genomeSAindexNbases-1;ii++) {//L-mer indices starts // cout <genomeSAindexStart[ii-1]; jjgenomeSAindexStart[ii]; jj++) +// for (uint jj=P.genomeSAindexStart[ii-1]; jjgenomeSAindexStart[ii-1]<<" "<genomeSAindexNbases]; - uint* ind0a=new uint[P->genomeSAindexNbases]; + uint* ind0=new uint[P.genomeSAindexNbases]; + uint* ind0a=new uint[P.genomeSAindexNbases]; - for (uint ii=0; iigenomeSAindexNbases; ii++) { + for (uint ii=0; iinSA/(1llu<<(2*P->genomeSAindexNbases))+1; + uint isaStep=P.nSA/(1llu<<(2*P.genomeSAindexNbases))+1; // isaStep=8; uint isa=iSA1; int iL4; - uint indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); + uint indFull=funCalcSAiFromSA(G,SA,isa,P.genomeSAindexNbases,P,iL4); while (isa<=iSA2) {//for all suffixes /* testing uint SAstr=SA[isa]; - bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P->GstrandMask; - if (!dirG) SAstr=P->nGenome-1-SAstr; + bool dirG = (SAstr>>P.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= P.GstrandMask; + if (!dirG) SAstr=P.nGenome-1-SAstr; uint indPref1=0; */ - for (uint iL=0; iL < P->genomeSAindexNbases; iL++) {//calculate index + for (uint iL=0; iL < P.genomeSAindexNbases; iL++) {//calculate index /*{//testing: old way indPref1 <<= 2; uint g1= (uint) G[dirG ? SAstr+iL : SAstr-iL]; //reverese if (-) strand if (g1>3) {//if N, this suffix does not belong in SAi - for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { - SAi1.writePacked(P->genomeSAindexStart[iL1]+ind0[iL1],SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] | P->SAiMarkNmaskC); + for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { + SAi1.writePacked(P.genomeSAindexStart[iL1]+ind0[iL1],SAi[P.genomeSAindexStart[iL1]+ind0[iL1]] | P.SAiMarkNmaskC); }; } else //relying on the true code to break iL cycle { @@ -161,29 +161,29 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray indPref1 += (uint) g1; if ( indPref1 > ind0a[iL] || isa==0 ) {//new && good index, record it - SAi1.writePacked(P->genomeSAindexStart[iL]+indPref1, isa); + SAi1.writePacked(P.genomeSAindexStart[iL]+indPref1, isa); for (uint ii=ind0a[iL]+1; iigenomeSAindexStart[iL]+ii, isa | P->SAiMarkAbsentMaskC); + SAi1.writePacked(P.genomeSAindexStart[iL]+ii, isa | P.SAiMarkAbsentMaskC); }; ind0a[iL]=indPref1; } else if ( indPref1 < ind0a[iL] ) { ostringstream errOut; errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; }; */ - uint indPref = indFull >> (2*(P->genomeSAindexNbases-1-iL)); + uint indPref = indFull >> (2*(P.genomeSAindexNbases-1-iL)); // if (indPref!=indPref1) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexNbases; iL1++) { - SAi.writePacked(P->genomeSAindexStart[iL1]+ind0[iL1],SAi[P->genomeSAindexStart[iL1]+ind0[iL1]] | P->SAiMarkNmaskC); -// if (SAi[P->genomeSAindexStart[iL]+ind0[iL1]] != SAi1[P->genomeSAindexStart[iL]+ind0[iL1]]) + for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { + SAi.writePacked(P.genomeSAindexStart[iL1]+ind0[iL1],SAi[P.genomeSAindexStart[iL1]+ind0[iL1]] | P.SAiMarkNmaskC); +// if (SAi[P.genomeSAindexStart[iL]+ind0[iL1]] != SAi1[P.genomeSAindexStart[iL]+ind0[iL1]]) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+indPref, isa); -// if (SAi[P->genomeSAindexStart[iL]+indPref] != SAi1[P->genomeSAindexStart[iL]+indPref]) + SAi.writePacked(P.genomeSAindexStart[iL]+indPref, isa); +// if (SAi[P.genomeSAindexStart[iL]+indPref] != SAi1[P.genomeSAindexStart[iL]+indPref]) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<genomeSAindexStart[iL]+ii, isa | P->SAiMarkAbsentMaskC); + SAi.writePacked(P.genomeSAindexStart[iL]+ii, isa | P.SAiMarkAbsentMaskC); }; ind0[iL]=indPref; } else if ( indPref < ind0[iL] ) { ostringstream errOut; errOut << "BUG: next index is smaller than previous, EXITING\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; @@ -216,38 +216,38 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray //find next index not equal to the current one funSAiFindNextIndex(P, G, SA, isaStep, isa, indFull, iL4);//indFull and iL4 have been already defined at the previous step // isa++; -// indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); +// indFull=funCalcSAiFromSA(G,SA,isa,P.genomeSAindexNbases,P,iL4); };//isa cycle delete [] ind0; }; -void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4) +void funSAiFindNextIndex(Parameters & P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4) { uint indFullPrev=indFull; int iL4prev=iL4; isa+=isaStep; - while (isanSA && (indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) + while (isa=P->nSA) + if (isa>=P.nSA) {//reached the end of the SA - indFull=funCalcSAiFromSA(G,SA,P->nSA-1,P->genomeSAindexNbases,P,iL4); + indFull=funCalcSAiFromSA(G,SA,P.nSA-1,P.genomeSAindexNbases,P,iL4); if (indFull==indFullPrev && iL4==iL4prev) { - isa=P->nSA;//no more indices, the last one is equal to the previous + isa=P.nSA;//no more indices, the last one is equal to the previous return; }; }; {//binary search uint i1=isa-isaStep; - uint i2=min(isa,P->nSA-1); + uint i2=min(isa,P.nSA-1); while (i1+1genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) + if ((indFull=funCalcSAiFromSA(G,SA,isa,P.genomeSAindexNbases,P,iL4))==indFullPrev && iL4==iL4prev) { i1=isa; } else @@ -258,7 +258,7 @@ void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaSte if (isa==i1) { isa=i2; - indFull=funCalcSAiFromSA(G,SA,isa,P->genomeSAindexNbases,P,iL4); + indFull=funCalcSAiFromSA(G,SA,isa,P.genomeSAindexNbases,P,iL4); }; }; }; diff --git a/genomeSAindex.h b/genomeSAindex.h index a04a28c..14a771d 100644 --- a/genomeSAindex.h +++ b/genomeSAindex.h @@ -3,8 +3,8 @@ #include "PackedArray.h" #include "Parameters.h" -void genomeSAindex(char * G, PackedArray & SA, Parameters * P, PackedArray & SAip); -void genomeSAindexChunk(char * G, PackedArray & SA, Parameters * P, PackedArray & SAi, uint iSA1, uint iSA2); -void funSAiFindNextIndex(Parameters * P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4); +void genomeSAindex(char * G, PackedArray & SA, Parameters & P, PackedArray & SAip); +void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray & SAi, uint iSA1, uint iSA2); +void funSAiFindNextIndex(Parameters & P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4); #endif diff --git a/genomeScanFastaFiles.cpp b/genomeScanFastaFiles.cpp index 1ba2a1b..c212993 100644 --- a/genomeScanFastaFiles.cpp +++ b/genomeScanFastaFiles.cpp @@ -2,39 +2,39 @@ #include "ErrorWarning.h" -uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta files. flagRun=false: check and find full size, flaRun=true: collect all the data +uint genomeScanFastaFiles (Parameters &P, char* G, bool flagRun) {//scans fasta files. flagRun=false: check and find full size, flaRun=true: collect all the data uint N=0;//total number of bases in the genome, including chr "spacers" - if (!flagRun && P->chrLength.size()>0) + if (!flagRun && P.chrLength.size()>0) {//previous chr records exist - P->chrStart.pop_back();//remove last record, it will be recorded again - N = P->chrStart.back()+P->chrLength.back(); - P->chrLength.pop_back();//remove last record, it will be recorded again + P.chrStart.pop_back();//remove last record, it will be recorded again + N = P.chrStart.back()+P.chrLength.back(); + P.chrLength.pop_back();//remove last record, it will be recorded again }; ifstream fileIn; - for (uint ii=0;iigenomeFastaFiles.size();ii++) {//all the input files - fileIn.open(P->genomeFastaFiles.at(ii).c_str()); + for (uint ii=0;iigenomeFastaFiles.at(ii) <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <logMain, EXIT_CODE_INPUT_FILES, *P); }; char cc=fileIn.peek(); if ( !fileIn.good() ) {// ostringstream errOut; - errOut << "EXITING because of INPUT ERROR: could not read from genomeFastaFile: " <genomeFastaFiles.at(ii) <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + errOut << "EXITING because of INPUT ERROR: could not read from genomeFastaFile: " <logMain, EXIT_CODE_INPUT_FILES, *P); }; if (cc!='>') { ostringstream errOut; - errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <genomeFastaFiles.at(ii) << " is not fasta:"; + errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <'.\n"; errOut << " Solution: check formatting of the fasta file. Make sure the file is uncompressed (unzipped).\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; while(!fileIn.eof()) {//read each file until eof string lineIn (4096,'.'); getline(fileIn,lineIn); @@ -44,18 +44,18 @@ uint genomeScanFastaFiles (Parameters *P, char* G, bool flagRun) {//scans fasta lineInStream.ignore(1,' '); string chrName1; lineInStream >> chrName1; - P->chrName.push_back(chrName1); + P.chrName.push_back(chrName1); }; - if (!flagRun && P->chrStart.size()>0) P->chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the chr + if (!flagRun && P.chrStart.size()>0) P.chrLength.push_back(N-P.chrStart.at(P.chrStart.size()-1)); //true length of the chr if (N>0) {//pad the chromosomes to bins boudnaries - N = ( (N+1)/P->genomeChrBinNbases+1 )*P->genomeChrBinNbases; + N = ( (N+1)/P.genomeChrBinNbases+1 )*P.genomeChrBinNbases; }; if (!flagRun) { - P->chrStart.push_back(N); - P->inOut->logMain << P->genomeFastaFiles.at(ii)<<" : chr # " << P->chrStart.size()-1 << " \""<chrName.at(P->chrStart.size()-1)<<"\" chrStart: "<logMain << P.genomeFastaFiles.at(ii)<<" : chr # " << P.chrStart.size()-1 << " \""<chrLength.push_back(N-P->chrStart.at(P->chrStart.size()-1)); //true length of the last chr + if (!flagRun) P.chrLength.push_back(N-P.chrStart.at(P.chrStart.size()-1)); //true length of the last chr - N = ( (N+1)/P->genomeChrBinNbases+1)*P->genomeChrBinNbases; + N = ( (N+1)/P.genomeChrBinNbases+1)*P.genomeChrBinNbases; if (!flagRun) { - P->nChrReal=P->chrStart.size(); - P->chrStart.push_back(N); //last chromosome end+1 - for (uint ii=0;iinChrReal;ii++) { - P->chrNameIndex[P->chrName[ii]]=ii; + P.nChrReal=P.chrStart.size(); + P.chrStart.push_back(N); //last chromosome end+1 + for (uint ii=0;iiinOut->logMain << "Unexpected character: char="<< G[jj] << " int="<logMain << "Unexpected character: char="<< G[jj] << " int="<inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; uint N2bit= 1LLU << (SA.wordLength-1); @@ -72,7 +72,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * uint64* indArray=new uint64[nG1*2*2+2];// for each base, 1st number - insertion place in SA, 2nd number - index, *2 for reverse compl - #pragma omp parallel num_threads(P->runThreadN) + #pragma omp parallel num_threads(P.runThreadN) #pragma omp for schedule (dynamic,1000) for (uint ii=0; ii<2*nG1; ii++) {//find insertion points for each of the sequences @@ -97,7 +97,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * time_t rawtime; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search, number of new SA indices = "<logMain << timeMonthDayTime(rawtime) << " Finished SA search, number of new SA indices = "<inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort - old " <logMain << timeMonthDayTime(rawtime) << " Finished qsort - old " <genomeSuffixLengthMax/sizeof(uint64_t); + g_funCompareUintAndSuffixesMemcmp_L=P.genomeSuffixLengthMax/sizeof(uint64_t); qsort((void*) indArray, nInd, 2*sizeof(uint64_t), funCompareUintAndSuffixesMemcmp); // qsort((void*) indArray, nInd, 2*sizeof(uint64), funCompareUint2); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort" <logMain << timeMonthDayTime(rawtime) << " Finished qsort" <inOut->logMain << timeMonthDayTime(rawtime) << " Finished qsort"<logMain << timeMonthDayTime(rawtime) << " Finished qsort"<inOut->logMain << timeMonthDayTime(rawtime) << " Finished ordering suffixes"<logMain << timeMonthDayTime(rawtime) << " Finished ordering suffixes"<inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indices"<logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indices"<GstrandBit+1,P->nSA+nInd); + SAo.defineBits(P.GstrandBit+1,P.nSA+nInd); SAo.allocateArray(); ifstream oldSAin("./DirTrue/SA"); oldSAin.read(SAo.charArray,SAo.lengthByte); @@ -199,31 +199,31 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * }; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <genomeSAindexNbases; iL++) { +// for (uint iL=0; iL < P.genomeSAindexNbases; iL++) { // uint iSeq=0; -// uint ind0=P->genomeSAindexStart[iL]-1;//last index that was present in the old genome -// for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index +// uint ind0=P.genomeSAindexStart[iL]-1;//last index that was present in the old genome +// for (uint ii=P.genomeSAindexStart[iL];iiSAiMarkNmask & P->SAiMarkAbsentMask; +// uint iSA2=iSA1 & P.SAiMarkNmask & P.SAiMarkAbsentMask; // -// if ( iSeqSAiMarkAbsentMaskC)>0 ) +// if ( iSeq0 ) // {//index missing from the old genome // uint iSeq1=iSeq; // int64 ind1=funCalcSAi(seq1[0]+indArray[2*iSeq+1],iL); -// while (ind1 < (int64)(ii-P->genomeSAindexStart[iL]) && indArray[2*iSeq]genomeSAindexStart[iL]) ) { +// if (ind1 == (int64)(ii-P.genomeSAindexStart[iL]) ) { // SAi.writePacked(ii,indArray[2*iSeq]+iSeq+1); // for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); +// SAi.writePacked(ii0,(indArray[2*iSeq]+iSeq+1) | P.SAiMarkAbsentMaskC); // }; // ++iSeq; // ind0=ii; @@ -237,7 +237,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // }; // // while (iSeq= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index +// if (funCalcSAi(seq1[0]+indArray[2*iSeq+1],iL) >= (int64) (ii-P.genomeSAindexStart[iL]) ) {//this belongs to the next index // break; // }; // ++iSeq; @@ -246,7 +246,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // SAi.writePacked(ii,iSA1+iSeq); // // for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); +// SAi.writePacked(ii0,(iSA2+iSeq) | P.SAiMarkAbsentMaskC); // }; // ind0=ii; // }; @@ -257,19 +257,19 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // // for (uint isj=0;isjgenomeSAindexNbases; iL++) { +// for (uint iL=0; iL < P.genomeSAindexNbases; iL++) { // uint g=(uint) seq1[0][indArray[2*isj+1]+iL]; // ind1 <<= 2; // if (g>3) {//this iSA contains N, need to mark the previous -// for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { +// for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { // ind1+=3; -// int64 ind2=P->genomeSAindexStart[iL1]+ind1; +// int64 ind2=P.genomeSAindexStart[iL1]+ind1; // for (; ind2>=0; ind2--) {//find previous index that is not absent -// if ( (SAi[ind2] & P->SAiMarkAbsentMaskC)==0 ) { +// if ( (SAi[ind2] & P.SAiMarkAbsentMaskC)==0 ) { // break; // }; // }; -// SAi.writePacked(ind2,SAi[ind2] | P->SAiMarkNmaskC); +// SAi.writePacked(ind2,SAi[ind2] | P.SAiMarkNmaskC); // ind1 <<= 2; // }; // break; @@ -279,18 +279,18 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // }; // }; // time ( &rawtime ); -// P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <logMain << timeMonthDayTime(rawtime) << " Finished SAi" <genomeSAindexNbases+2));//skip first bytes +// oldSAiin.read(SAio.charArray,8*(P.genomeSAindexNbases+2));//skip first bytes // oldSAiin.read(SAio.charArray,SAio.lengthByte); // oldSAiin.close(); // -// for (uint iL=0; iL < P->genomeSAindexNbases; iL++) { -// for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index +// for (uint iL=0; iL < P.genomeSAindexNbases; iL++) { +// for (uint ii=P.genomeSAindexStart[iL];iiGstrandBit+1,SA.length+nInd);//same as SA2 + SA.defineBits(P.GstrandBit+1,SA.length+nInd);//same as SA2 SA.pointArray(SA1.charArray); - P->nSA=SA.length; - P->nSAbyte=SA.lengthByte; + P.nSA=SA.length; + P.nSAbyte=SA.lengthByte; //generate SAi genomeSAindex(G,SA,P,SAi); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <logMain << timeMonthDayTime(rawtime) << " Finished SAi" <sjGstart=P->chrStart[P->nChrReal]; -// memcpy(G+P->chrStart[P->nChrReal],seq1[0], nseq1[0]); +// P.sjGstart=P.chrStart[P.nChrReal]; +// memcpy(G+P.chrStart[P.nChrReal],seq1[0], nseq1[0]); return nInd; diff --git a/insertSeqSA.h b/insertSeqSA.h index 366c553..a579591 100644 --- a/insertSeqSA.h +++ b/insertSeqSA.h @@ -5,6 +5,6 @@ #include "PackedArray.h" #include "Parameters.h" -uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * G, char * G1, uint64 nG, uint64 nG1, uint64 nG2, Parameters * P); +uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * G, char * G1, uint64 nG, uint64 nG1, uint64 nG2, Parameters & P); #endif diff --git a/loadGTF.cpp b/loadGTF.cpp index 9ca5371..f5e70db 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -32,25 +32,25 @@ -uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file, add junctions to P->sjdb +uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file, add junctions to P.sjdb //returns number of added junctions - if (P->sjdbOverhang>0 && P->sjdbGTFfile!="-") { + if (P.sjdbOverhang>0 && P.sjdbGTFfile!="-") { time_t rawTime; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <sjdbGTFfile.c_str() ); + ifstream sjdbStreamIn ( P.sjdbGTFfile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; - errOut << "FATAL error, could not open file sjdbGTFfile=" << P->sjdbGTFfile <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + errOut << "FATAL error, could not open file sjdbGTFfile=" << P.sjdbGTFfile <<"\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - if (P->chrNameIndex.size()==0) + if (P.chrNameIndex.size()==0) { - for (uint ii=0;iinChrReal;ii++) { - P->chrNameIndex[P->chrName[ii]]=ii; + for (uint ii=0;ii> chr1 >> ddd2 >> featureType; - if (chr1.substr(0,1)!="#" && featureType==P->sjdbGTFfeatureExon) { + if (chr1.substr(0,1)!="#" && featureType==P.sjdbGTFfeatureExon) { exonN++; }; sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line @@ -69,11 +69,11 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file if (exonN==0) { ostringstream errOut; - errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << P->sjdbGTFfile <<"\n"; + errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << P.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; errOut << " Make sure the GTF file is unzipped.\n"; errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; uint* exonLoci=new uint [exonN*GTF_exonLoci_size]; @@ -90,13 +90,13 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file istringstream oneLineStream (oneLine); oneLineStream >> chr1 >> ddd2 >> featureType; - if (chr1.substr(0,1)!="#" && featureType==P->sjdbGTFfeatureExon) {//exonic line, process + if (chr1.substr(0,1)!="#" && featureType==P.sjdbGTFfeatureExon) {//exonic line, process - if (P->sjdbGTFchrPrefix!="-") chr1=P->sjdbGTFchrPrefix + chr1; + if (P.sjdbGTFchrPrefix!="-") chr1=P.sjdbGTFchrPrefix + chr1; - if (P->chrNameIndex.count(chr1)==0) {//chr not in Genome - P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": chromosome '"<inOut->logMain << oneLine <<"\n"<logMain << "WARNING: while processing sjdbGTFfile=" << P.sjdbGTFfile <<": chromosome '"<logMain << oneLine <<"\n"<> attr1; - if (attr1==P->sjdbGTFtagExonParentTranscript) { + if (attr1==P.sjdbGTFtagExonParentTranscript) { oneLineStream >> trID; trID.erase(remove(trID.begin(),trID.end(),'"'),trID.end()); trID.erase(remove(trID.begin(),trID.end(),';'),trID.end()); - } else if (attr1==P->sjdbGTFtagExonParentGene) { + } else if (attr1==P.sjdbGTFtagExonParentGene) { oneLineStream >> gID; gID.erase(remove(gID.begin(),gID.end(),'"'),gID.end()); gID.erase(remove(gID.begin(),gID.end(),';'),gID.end()); }; }; if (trID=="") {//no transcript ID - P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": no transcript_id for line:\n"; - P->inOut->logMain << oneLine <<"\n"<logMain << "WARNING: while processing sjdbGTFfile=" << P.sjdbGTFfile <<": no transcript_id for line:\n"; + P.inOut->logMain << oneLine <<"\n"< (trID,(uint) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value if (transcriptID.size() < transcriptIDnumber.size()) transcriptID.push_back(trID); @@ -140,16 +140,16 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file }; if (gID=="") {//no gene ID - P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": no gene_id for line:\n"; - P->inOut->logMain << oneLine <<"\n"<logMain << "WARNING: while processing sjdbGTFfile=" << P.sjdbGTFfile <<": no gene_id for line:\n"; + P.inOut->logMain << oneLine <<"\n"< (gID,(uint) geneIDnumber.size()));//insert new element if necessary with a $ if (geneID.size() < geneIDnumber.size()) geneID.push_back(gID); }; exonLoci[GTF_exonTrID(exonN)]=transcriptIDnumber[trID]; - exonLoci[GTF_exonStart(exonN)]=ex1+P->chrStart[P->chrNameIndex[chr1]]-1; - exonLoci[GTF_exonEnd(exonN)]=ex2+P->chrStart[P->chrNameIndex[chr1]]-1; + exonLoci[GTF_exonStart(exonN)]=ex1+P.chrStart[P.chrNameIndex[chr1]]-1; + exonLoci[GTF_exonEnd(exonN)]=ex2+P.chrStart[P.chrNameIndex[chr1]]-1; exonLoci[GTF_exonGeID(exonN)]=geneIDnumber[gID]; ++exonN; @@ -159,9 +159,9 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file if (exonN==0) { ostringstream errOut; - errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << P->sjdbGTFfile <<"\n"; + errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << P.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; //sort exonLoci by transcript ID and exon coordinates qsort((void*) exonLoci, exonN, sizeof(uint)*GTF_exonLoci_size, funCompareUint2); @@ -254,11 +254,11 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file uint sjN=0; for (uint exI=1; exIchrBin[exonLoci[GTF_exonStart(exI)] >> P->genomeChrBinNbits]; + uint chr1=P.chrBin[exonLoci[GTF_exonStart(exI)] >> P.genomeChrBinNbits]; if ( exonLoci[GTF_exonStart(exI)]<=exonLoci[GTF_exonEnd(exI-1)]+1 ) { - P->inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P->sjdbGTFfile <<": overlapping or touching exons:\n"; - P->inOut->logMain << P->chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-P->chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-P->chrStart[chr1] <<"\n"; - P->inOut->logMain << P->chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-P->chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-P->chrStart[chr1] <<"\n"; + P.inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P.sjdbGTFfile <<": overlapping or touching exons:\n"; + P.inOut->logMain << P.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-P.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-P.chrStart[chr1] <<"\n"; + P.inOut->logMain << P.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-P.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-P.chrStart[chr1] <<"\n"; } else { sjLoci[sjN*3]=exonLoci[GTF_exonEnd(exI-1)]+1; sjLoci[sjN*3+1]=exonLoci[GTF_exonStart(exI)]-1; @@ -276,10 +276,10 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file uint sjdbN1=sjdbLoci.chr.size(); for (uint ii=0;iichrBin[sjLoci[ii*3] >> P->genomeChrBinNbits]; - sjdbLoci.chr.push_back(P->chrName[chr1]); - sjdbLoci.start.push_back(sjLoci[ii*3]+1-P->chrStart[chr1]); - sjdbLoci.end.push_back(sjLoci[ii*3+1]+1-P->chrStart[chr1]); + uint chr1=P.chrBin[sjLoci[ii*3] >> P.genomeChrBinNbits]; + sjdbLoci.chr.push_back(P.chrName[chr1]); + sjdbLoci.start.push_back(sjLoci[ii*3]+1-P.chrStart[chr1]); + sjdbLoci.end.push_back(sjLoci[ii*3+1]+1-P.chrStart[chr1]); sjdbLoci.str.push_back(strandChar[sjLoci[ii*3+2]]); }; }; @@ -290,11 +290,11 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file }; sjdbList.close(); - P->inOut->logMain << "Processing sjdbGTFfile=" << P->sjdbGTFfile <<", found:\n"; - P->inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; + P.inOut->logMain << "Processing sjdbGTFfile=" << P.sjdbGTFfile <<", found:\n"; + P.inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <logMain << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <runThreadN;ithread++) {//spawn threads +void mapThreadsSpawn (Parameters &P, ReadAlignChunk** RAchunk) { + for (int ithread=1;ithread0) {//something went wrong with one of threads ostringstream errOut; errOut << "EXITING because of FATAL ERROR: phtread error while creating thread # " << ithread <<", error code: "<inOut->logMain, 1, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, *P); }; pthread_mutex_lock(&g_threadChunks.mutexLogMain); - P->inOut->logMain << "Created thread # " <logMain << "Created thread # " <processChunks(); //start main thread - for (int ithread=1;ithreadrunThreadN;ithread++) {//wait for all threads to complete + for (int ithread=1;ithread0) {//something went wrong with one of threads ostringstream errOut; errOut << "EXITING because of FATAL ERROR: phtread error while joining thread # " << ithread <<", error code: "<inOut->logMain, 1, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, *P); }; pthread_mutex_lock(&g_threadChunks.mutexLogMain); - P->inOut->logMain << "Joined thread # " <logMain << "Joined thread # " <> Log.timing.out"); Junction oneSJ; - char** sjChunks = new char* [P->runThreadN+1]; + char** sjChunks = new char* [P.runThreadN+1]; #define OUTSJ_limitScale 5 - OutSJ allSJ (P->limitOutSJcollapsed*OUTSJ_limitScale,P); + OutSJ allSJ (P.limitOutSJcollapsed*OUTSJ_limitScale,P); - if (P->outFilterBySJoutStage!=1) {//chunkOutSJ - for (int ic=0;icrunThreadN;ic++) {//populate sjChunks with links to data + if (P.outFilterBySJoutStage!=1) {//chunkOutSJ + for (int ic=0;icchunkOutSJ->data; memset(sjChunks[ic]+RAchunk[ic]->chunkOutSJ->N*oneSJ.dataSize,255,oneSJ.dataSize);//mark the junction after last with big number }; } else {//chunkOutSJ1 - for (int ic=0;icrunThreadN;ic++) {//populate sjChunks with links to data + for (int ic=0;icchunkOutSJ1->data; memset(sjChunks[ic]+RAchunk[ic]->chunkOutSJ1->N*oneSJ.dataSize,255,oneSJ.dataSize);//mark the junction after last with big number }; @@ -41,7 +41,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr while (true) { int icOut=-1;//chunk from which the junction is output - for (int ic=0;icrunThreadN;ic++) {//scan through all chunks, find the "smallest" junction + for (int ic=0;icrunThreadN;ic++) {//scan through all chunks, find the junctions equal to icOut-junction + for (int ic=0;ic0 \ - || ( ( *oneSJ.countUnique>=(uint) P->outSJfilterCountUniqueMin[(*oneSJ.motif+1)/2] \ - || (*oneSJ.countMultiple+*oneSJ.countUnique)>=(uint) P->outSJfilterCountTotalMin[(*oneSJ.motif+1)/2] )\ - && *oneSJ.overhangLeft >= (uint) P->outSJfilterOverhangMin[(*oneSJ.motif+1)/2] \ - && *oneSJ.overhangRight >= (uint) P->outSJfilterOverhangMin[(*oneSJ.motif+1)/2] \ - && ( (*oneSJ.countMultiple+*oneSJ.countUnique)>P->outSJfilterIntronMaxVsReadN.size() || *oneSJ.gap<=(uint) P->outSJfilterIntronMaxVsReadN[*oneSJ.countMultiple+*oneSJ.countUnique-1]) ); + || ( ( *oneSJ.countUnique>=(uint) P.outSJfilterCountUniqueMin[(*oneSJ.motif+1)/2] \ + || (*oneSJ.countMultiple+*oneSJ.countUnique)>=(uint) P.outSJfilterCountTotalMin[(*oneSJ.motif+1)/2] )\ + && *oneSJ.overhangLeft >= (uint) P.outSJfilterOverhangMin[(*oneSJ.motif+1)/2] \ + && *oneSJ.overhangRight >= (uint) P.outSJfilterOverhangMin[(*oneSJ.motif+1)/2] \ + && ( (*oneSJ.countMultiple+*oneSJ.countUnique)>P.outSJfilterIntronMaxVsReadN.size() || *oneSJ.gap<=(uint) P.outSJfilterIntronMaxVsReadN[*oneSJ.countMultiple+*oneSJ.countUnique-1]) ); if (sjFilter) {//record the junction in all SJ memcpy(allSJ.data+allSJ.N*oneSJ.dataSize,sjChunks[icOut],oneSJ.dataSize); allSJ.N++; - if (allSJ.N == P->limitOutSJcollapsed*OUTSJ_limitScale ) { + if (allSJ.N == P.limitOutSJcollapsed*OUTSJ_limitScale ) { ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; }; @@ -82,7 +82,7 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr }; bool* sjFilter=new bool[allSJ.N]; - if (P->outFilterBySJoutStage!=2) { + if (P.outFilterBySJoutStage!=2) { //filter non-canonical junctions that are close to canonical uint* sjA = new uint [allSJ.N*3]; for (uint ii=0;ii0) x1=*( (uint*)(allSJ.data+(ii-1)*oneSJ.dataSize) ); //previous junction donor if (ii+1= (uint) P->outSJfilterDistToOtherSJmin[(*oneSJ.motif+1)/2]; + sjFilter[ii]= minDist >= (uint) P.outSJfilterDistToOtherSJmin[(*oneSJ.motif+1)/2]; sjA[ii*3]=*oneSJ.start+(uint)*oneSJ.gap;//acceptor sjA[ii*3+1]=ii; @@ -113,42 +113,42 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr if (ii>0) x1=sjA[ii*3-3]; //previous junction donor if (ii+1= (uint) P->outSJfilterDistToOtherSJmin[(sjA[ii*3+2]+1)/2] ); + sjFilter[sjA[ii*3+1]] = sjFilter[sjA[ii*3+1]] && ( minDist >= (uint) P.outSJfilterDistToOtherSJmin[(sjA[ii*3+2]+1)/2] ); }; }; }; //output junctions - if (P->outFilterBySJoutStage!=1) {//output file - ofstream outSJfileStream((P->outFileNamePrefix+"SJ.out.tab").c_str()); + if (P.outFilterBySJoutStage!=1) {//output file + ofstream outSJfileStream((P.outFileNamePrefix+"SJ.out.tab").c_str()); for (uint ii=0;iioutFilterBySJoutStage==2 || sjFilter[ii] ) { + if ( P.outFilterBySJoutStage==2 || sjFilter[ii] ) { oneSJ.junctionPointer(allSJ.data,ii); oneSJ.outputStream(outSJfileStream, P);//write to file }; }; outSJfileStream.close(); } else {//make sjNovel array in P - P->sjNovelN=0; + P.sjNovelN=0; for (uint ii=0;iisjNovelN++; + if (*oneSJ.annot==0) P.sjNovelN++; }; }; - P->sjNovelStart = new uint [P->sjNovelN]; - P->sjNovelEnd = new uint [P->sjNovelN]; - P->inOut->logMain <<"Detected " <sjNovelN<<" novel junctions that passed filtering, will proceed to filter reads that contained unannotated junctions"<logMain <<"Detected " <sjNovelStart[isj]=*oneSJ.start; - P->sjNovelEnd[isj]=*oneSJ.start+(uint)(*oneSJ.gap)-1; + P.sjNovelStart[isj]=*oneSJ.start; + P.sjNovelEnd[isj]=*oneSJ.start+(uint)(*oneSJ.gap)-1; isj++; }; }; diff --git a/outputSJ.h b/outputSJ.h index 5dbecae..de9114b 100644 --- a/outputSJ.h +++ b/outputSJ.h @@ -1,4 +1,4 @@ #ifndef OUTPUTSJ_DEF #define OUTPUTSJ_DEF -void outputSJ(ReadAlignChunk** RAchunk, Parameters* P); +void outputSJ(ReadAlignChunk** RAchunk, Parameters& P); #endif diff --git a/readLoad.cpp b/readLoad.cpp index 40b92e1..f33810d 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -1,7 +1,7 @@ #include "readLoad.h" #include "ErrorWarning.h" -int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& LreadOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter){ +int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint& LreadOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter){ //load one read from a stream int readFileType=0; @@ -17,7 +17,7 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; readInStream >> iReadAll >> readFilter >> readFilesIndex; //extract read number @@ -33,7 +33,7 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint errOut << "Read Sequence="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; --Lread;//do not count /n in the read length LreadOriginal=Lread; @@ -43,7 +43,7 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; // //was trying to read multi-line @@ -59,34 +59,34 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint // errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; // errOut << "Read Name="<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); +// exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); // }; // LreadOriginal=Lread; - if ( Lread>(P->clip5pNbases[iMate]+P->clip3pNbases[iMate]) ) { - Lread=Lread-(P->clip5pNbases[iMate]+P->clip3pNbases[iMate]); + if ( Lread>(P.clip5pNbases[iMate]+P.clip3pNbases[iMate]) ) { + Lread=Lread-(P.clip5pNbases[iMate]+P.clip3pNbases[iMate]); } else { Lread=0; }; - convertNucleotidesToNumbers(Seq+P->clip5pNbases[iMate],SeqNum,Lread); + convertNucleotidesToNumbers(Seq+P.clip5pNbases[iMate],SeqNum,Lread); //clip the adapter - if (P->clip3pAdapterSeq.at(iMate).length()>0) { - clip3pAdapterN = Lread-localSearch(SeqNum,Lread,P->clip3pAdapterSeqNum[iMate],P->clip3pAdapterSeq.at(iMate).length(),P->clip3pAdapterMMp[iMate]); + if (P.clip3pAdapterSeq.at(iMate).length()>0) { + clip3pAdapterN = Lread-localSearch(SeqNum,Lread,P.clip3pAdapterSeqNum[iMate],P.clip3pAdapterSeq.at(iMate).length(),P.clip3pAdapterMMp[iMate]); Lread = Lread>clip3pAdapterN ? Lread-clip3pAdapterN : 0; } else { clip3pAdapterN = 0; }; //final read length, trim 3p after the adapter was clipped - if (Lread>P->clip3pAfterAdapterNbases[iMate]) { - Lread =Lread - P->clip3pAfterAdapterNbases[iMate]; + if (Lread>P.clip3pAfterAdapterNbases[iMate]) { + Lread =Lread - P.clip3pAfterAdapterNbases[iMate]; } else { Lread=0; }; - clip3pNtotal=P->clip3pNbases[iMate] + clip3pAdapterN + P->clip3pAfterAdapterNbases[iMate]; - clip5pNtotal=P->clip5pNbases[iMate]; + clip3pNtotal=P.clip3pNbases[iMate] + clip3pAdapterN + P.clip3pAfterAdapterNbases[iMate]; + clip5pNtotal=P.clip5pNbases[iMate]; if (readName[0]=='@') {//fastq format, read qualities readFileType=2; @@ -99,11 +99,11 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint errOut << Seq <<"\n"; errOut << Qual <<"\n"; errOut << "SOLUTION: fix your fastq file\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - if (P->outQSconversionAdd!=0) { + if (P.outQSconversionAdd!=0) { for (uint ii=0;iioutQSconversionAdd; + int qs=int(Qual[ii])+P.outQSconversionAdd; if (qs<33) { qs=33; } else if (qs>126) { @@ -120,7 +120,7 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint } else {//header ostringstream errOut; errOut <<"Unknown reads file format: header line does not start with @ or > : "<< readName<<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; for (uint ii=0;iiclip5pNbases[iMate]] > P->QasciiSubtract) ? (Qual[ii+P->clip5pNbases[iMate]] - P->QasciiSubtract) : 0; //substract QasciiSubtract -// QualNum[ii]=P->QSconv[(int) QualNum[ii]]; -// QualNum[ii]=min(QualNum[ii], P->Qtop);//cut QSs at the Qtop -// // if (QualNum[ii]==2) QualNum[ii]=P->Qtop; +// QualNum[ii]=(Qual[ii+P.clip5pNbases[iMate]] > P.QasciiSubtract) ? (Qual[ii+P.clip5pNbases[iMate]] - P.QasciiSubtract) : 0; //substract QasciiSubtract +// QualNum[ii]=P.QSconv[(int) QualNum[ii]]; +// QualNum[ii]=min(QualNum[ii], P.Qtop);//cut QSs at the Qtop +// // if (QualNum[ii]==2) QualNum[ii]=P.Qtop; // if (SeqNum[ii]>3) QualNum[ii]=0; //QS=0 for Ns // Qual1[1][Lread-ii-1]=QualNum[ii]; //reverse // }; //trim read name - for (uint ii=0; iireadNameSeparatorChar.size(); ii++) + for (uint ii=0; iireadNameSeparatorChar.at(ii)); //trim everything after ' ' + char* pSlash=strchr(readName,P.readNameSeparatorChar.at(ii)); //trim everything after ' ' if (pSlash!=NULL) *pSlash=0; }; return readFileType; diff --git a/readLoad.h b/readLoad.h index f531f86..9ea9339 100644 --- a/readLoad.h +++ b/readLoad.h @@ -5,6 +5,6 @@ #include "Parameters.h" #include "SequenceFuns.h" -int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& readLengthPairOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter); +int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint& readLengthPairOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter); #endif diff --git a/sjSplitAlign.cpp b/sjSplitAlign.cpp index 1351aae..babcdf5 100644 --- a/sjSplitAlign.cpp +++ b/sjSplitAlign.cpp @@ -1,14 +1,14 @@ #include "IncludeDefine.h" #include "Parameters.h" -bool sjAlignSplit(uint a1,uint aLength,Parameters* P, uint &a1D, uint &aLengthD, uint &a1A, uint &aLengthA, uint &isj) { - uint sj1=(a1-P->sjGstart)%P->sjdbLength; - if (sj1sjdbOverhang && sj1+aLength>P->sjdbOverhang) {//align crosses the junctions - isj=(a1-P->sjGstart)/P->sjdbLength; - aLengthD=P->sjdbOverhang-sj1; +bool sjAlignSplit(uint a1,uint aLength,Parameters& P, uint &a1D, uint &aLengthD, uint &a1A, uint &aLengthA, uint &isj) { + uint sj1=(a1-P.sjGstart)%P.sjdbLength; + if (sj1P.sjdbOverhang) {//align crosses the junctions + isj=(a1-P.sjGstart)/P.sjdbLength; + aLengthD=P.sjdbOverhang-sj1; aLengthA=aLength-aLengthD; - a1D=P->sjDstart[isj]+sj1; - a1A=P->sjAstart[isj]; + a1D=P.sjDstart[isj]+sj1; + a1A=P.sjAstart[isj]; return true; } else { return false; diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 8d4539b..2b7a4ec 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -13,24 +13,24 @@ #include "funCompareUintAndSuffixes.h" -void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { +void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { #define SPACER_CHAR GENOME_spacingChar - if (P->sjdbN==0) + if (P.sjdbN==0) {//no junctions to insert return; }; time_t rawtime; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... inserting junctions into the genome indices" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... inserting junctions into the genome indices" <logMain << timeMonthDayTime(rawtime) << " ..... inserting junctions into the genome indices" <logStdOut << timeMonthDayTime(rawtime) << " ..... inserting junctions into the genome indices" <sjdbLength*P->sjdbN; - for (uint ii=1; ii<=P->sjdbN; ii++) + uint nGsj=P.sjdbLength*P.sjdbN; + for (uint ii=1; ii<=P.sjdbN; ii++) { - Gsj[ii*P->sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char + Gsj[ii*P.sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char }; Gsj[nGsj*2]=SPACER_CHAR;//mark the end of the text @@ -41,23 +41,23 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr char* G1c=new char[nGsj*2+1]; complementSeqNumbers(Gsj, G1c, nGsj*2+1); - uint32* oldSJind=new uint32[P1->sjdbN]; + uint32* oldSJind=new uint32[P1.sjdbN]; -// uint nIndicesSJ1=P->sjdbOverhang; - uint nIndicesSJ1=P->sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome +// uint nIndicesSJ1=P.sjdbOverhang; + uint nIndicesSJ1=P.sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome - uint64* indArray=new uint64[2*P->sjdbN*(nIndicesSJ1+1)*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndices per junction * 2 for reverse compl + uint64* indArray=new uint64[2*P.sjdbN*(nIndicesSJ1+1)*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndices per junction * 2 for reverse compl uint64 sjNew=0; - #pragma omp parallel num_threads(P->runThreadN) + #pragma omp parallel num_threads(P.runThreadN) #pragma omp for schedule (dynamic,1000) reduction(+:sjNew) - for (uint isj=0; isj<2*P->sjdbN; isj++) {//find insertion points for each of the sequences + for (uint isj=0; isj<2*P.sjdbN; isj++) {//find insertion points for each of the sequences char** seq1=new char*[2]; - seq1[0]=Gsj+isj*P->sjdbLength; - seq1[1]=G1c+isj*P->sjdbLength; + seq1[0]=Gsj+isj*P.sjdbLength; + seq1[1]=G1c+isj*P.sjdbLength; - uint isj1=isjsjdbN ? isj : 2*P->sjdbN-1-isj; - int sjdbInd = P1->sjdbN==0 ? -1 : binarySearch2(P->sjdbStart[isj1],P->sjdbEnd[isj1],P1->sjdbStart,P1->sjdbEnd,P1->sjdbN); + uint isj1=isjsjdbN ? istart1 : istart1+1; //for rev-compl junction, shift by one base to start with the 1st non-spacer base +// uint istart=isj=0 || seq1[0][istart]>3) {//no index for already included junctions, or suffices starting with N indArray[ind1]=-1; } else { - //indArray[ind1] = suffixArraySearch(seq1, istart, P->sjdbLength-istart1, G, SA, true, 0, P->nSA-1, 0, P) ; - indArray[ind1] = suffixArraySearch1(seq1, istart, 10000, G, -1LLU, SA, true, 0, P->nSA-1, 0, P) ; + //indArray[ind1] = suffixArraySearch(seq1, istart, P.sjdbLength-istart1, G, SA, true, 0, P.nSA-1, 0, P) ; + indArray[ind1] = suffixArraySearch1(seq1, istart, 10000, G, -1LLU, SA, true, 0, P.nSA-1, 0, P) ; //-1LLU results in suffixes for the new junctions to be always included in SA *after* the suffixes of the old junctions //for identical suffixes, this may result in unstable ordering - indArray[ind1+1] = isj*P->sjdbLength+istart; + indArray[ind1+1] = isj*P.sjdbLength+istart; }; }; }; sjNew = sjNew/2;//novel junctions were double counted on two strands time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search: number of new junctions=" << sjNew <<", old junctions="<sjdbN-sjNew<logMain << timeMonthDayTime(rawtime) << " Finished SA search: number of new junctions=" << sjNew <<", old junctions="<sjdbN*nIndicesSJ1; ii++) {//remove entries that cannot be inserted, this cannot be done in the parallel cycle above + for (uint ii=0; ii<2*P.sjdbN*nIndicesSJ1; ii++) {//remove entries that cannot be inserted, this cannot be done in the parallel cycle above if (indArray[ii*2]!= (uint) -1) { indArray[nInd*2]=indArray[ii*2]; indArray[nInd*2+1]=indArray[ii*2+1]; @@ -101,33 +101,33 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr g_funCompareUintAndSuffixes_G=Gsj; qsort((void*) indArray, nInd, 2*sizeof(uint64), funCompareUintAndSuffixes); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indicesL nInd="<logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indicesL nInd="<nGenome=P->chrStart[P->nChrReal]+nGsj; - P->nSA+=nInd; + P.nGenome=P.chrStart[P.nChrReal]+nGsj; + P.nSA+=nInd; - uint GstrandBit1 = (uint) floor(log(P->nGenome)/log(2))+1; + uint GstrandBit1 = (uint) floor(log(P.nGenome)/log(2))+1; if (GstrandBit1<32) GstrandBit1=32; //TODO: use simple access function for SA - if ( GstrandBit1 != P->GstrandBit) + if ( GstrandBit1 != P.GstrandBit) {//too many junctions were added - GstrandBit changed ostringstream errOut; errOut << "EXITING because of FATAL ERROR: cannot insert junctions on the fly because of strand GstrandBit problem\n"; errOut << "SOLUTION: please contact STAR author at https://groups.google.com/forum/#!forum/rna-star\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; - SA2.defineBits(P->GstrandBit+1,P->nSA); - uint nGsjNew=sjNew*P->sjdbLength; //this is the actual number of bytes added to the genome, while nGsj is the total size of all junctions + SA2.defineBits(P.GstrandBit+1,P.nSA); + uint nGsjNew=sjNew*P.sjdbLength; //this is the actual number of bytes added to the genome, while nGsj is the total size of all junctions - uint N2bit= 1LLU << P->GstrandBit; + uint N2bit= 1LLU << P.GstrandBit; uint strandMask=~N2bit; /*testing PackedArray SAo; - SAo.defineBits(P->GstrandBit+1,P->nSA); + SAo.defineBits(P.GstrandBit+1,P.nSA); SAo.allocateArray(); ifstream oldSAin("./DirTrue/SA"); oldSAin.read(SAo.charArray,SAo.lengthByte); @@ -135,11 +135,11 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr */ uint isj=0, isa2=0; - for (uint isa=0;isanSA;isa++) { + for (uint isa=0;isachrStart[P->nChrReal]; + ind1+=P.chrStart[P.nChrReal]; } else {//reverse strand ind1=(ind1-nGsj) | N2bit; }; @@ -156,22 +156,22 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr uint ind1=SA[isa]; if ( (ind1 & N2bit)>0 ) {//- strand - uint ind1s = P1->nGenome - (ind1 & strandMask); - if (ind1s>P->chrStart[P->nChrReal]) + uint ind1s = P1.nGenome - (ind1 & strandMask); + if (ind1s>P.chrStart[P.nChrReal]) {//this index was an old sj, may need to shift it - uint sj1 = (ind1s-P->chrStart[P->nChrReal])/P->sjdbLength;//old junction index - ind1s += (oldSJind[sj1]-sj1)*P->sjdbLength; - ind1 = (P->nGenome - ind1s) | N2bit; + uint sj1 = (ind1s-P.chrStart[P.nChrReal])/P.sjdbLength;//old junction index + ind1s += (oldSJind[sj1]-sj1)*P.sjdbLength; + ind1 = (P.nGenome - ind1s) | N2bit; } else { ind1+=nGsjNew; //reverse complementary indices are all shifted by the length of junctions }; } else {//+ strand - if (ind1>P->chrStart[P->nChrReal]) + if (ind1>P.chrStart[P.nChrReal]) {//this index was an old sj, may need to shift it - uint sj1 = (ind1-P->chrStart[P->nChrReal])/P->sjdbLength;//old junction index - ind1 += (oldSJind[sj1]-sj1)*P->sjdbLength; + uint sj1 = (ind1-P.chrStart[P.nChrReal])/P.sjdbLength;//old junction index + ind1 += (oldSJind[sj1]-sj1)*P.sjdbLength; }; }; @@ -188,7 +188,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr for (;isjchrStart[P->nChrReal]; + ind1+=P.chrStart[P.nChrReal]; } else {//reverse strand ind1=(ind1-nGsj) | N2bit; }; @@ -203,28 +203,28 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" <logMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" <genomeSAindexNbases; iL++) { + for (uint iL=0; iL < P.genomeSAindexNbases; iL++) { uint iSJ=0; - uint ind0=P->genomeSAindexStart[iL]-1;//last index that was present in the old genome - for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longest index + uint ind0=P.genomeSAindexStart[iL]-1;//last index that was present in the old genome + for (uint ii=P.genomeSAindexStart[iL];iiSAiMarkNmask & P->SAiMarkAbsentMask; + uint iSA2=iSA1 & P.SAiMarkNmask & P.SAiMarkAbsentMask; - if ( iSJSAiMarkAbsentMaskC)>0 ) + if ( iSJ0 ) {//index missing from the old genome uint iSJ1=iSJ; int64 ind1=funCalcSAi(Gsj+indArray[2*iSJ+1],iL); - while (ind1 < (int64)(ii-P->genomeSAindexStart[iL]) && indArray[2*iSJ]-1genomeSAindexStart[iL]) ) { + if (ind1 == (int64)(ii-P.genomeSAindexStart[iL]) ) { SAi.writePacked(ii,indArray[2*iSJ]-1+iSJ+1); for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); + SAi.writePacked(ii0,(indArray[2*iSJ]-1+iSJ+1) | P.SAiMarkAbsentMaskC); }; ++iSJ; ind0=ii; @@ -238,7 +238,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; while (iSJ= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index + if (funCalcSAi(Gsj+indArray[2*iSJ+1],iL) >= (int64) (ii-P.genomeSAindexStart[iL]) ) {//this belongs to the next index break; }; ++iSJ; @@ -247,7 +247,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr SAi.writePacked(ii,iSA1+iSJ); for (uint ii0=ind0+1; ii0SAiMarkAbsentMaskC); + SAi.writePacked(ii0,(iSA2+iSJ) | P.SAiMarkAbsentMaskC); }; ind0=ii; }; @@ -257,19 +257,19 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr for (uint isj=0;isjgenomeSAindexNbases; iL++) { + for (uint iL=0; iL < P.genomeSAindexNbases; iL++) { uint g=(uint) Gsj[indArray[2*isj+1]+iL]; ind1 <<= 2; if (g>3) {//this iSA contains N, need to mark the previous - for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { + for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { ind1+=3; - int64 ind2=P->genomeSAindexStart[iL1]+ind1; + int64 ind2=P.genomeSAindexStart[iL1]+ind1; for (; ind2>=0; ind2--) {//find previous index that is not absent - if ( (SAi[ind2] & P->SAiMarkAbsentMaskC)==0 ) { + if ( (SAi[ind2] & P.SAiMarkAbsentMaskC)==0 ) { break; }; }; - SAi.writePacked(ind2,SAi[ind2] | P->SAiMarkNmaskC); + SAi.writePacked(ind2,SAi[ind2] | P.SAiMarkNmaskC); ind1 <<= 2; }; break; @@ -279,33 +279,33 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr }; }; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <logMain << timeMonthDayTime(rawtime) << " Finished SAi" <GstrandBit+1,P->nSA);//same as SA2 + SA.defineBits(P.GstrandBit+1,P.nSA);//same as SA2 SA.pointArray(SA2.charArray); - P->nSAbyte=SA.lengthByte; - P->sjGstart=P->chrStart[P->nChrReal]; - memcpy(G+P->chrStart[P->nChrReal],Gsj, nGsj); + P.nSAbyte=SA.lengthByte; + P.sjGstart=P.chrStart[P.nChrReal]; + memcpy(G+P.chrStart[P.nChrReal],Gsj, nGsj); /* testing PackedArray SAio=SAi; SAio.allocateArray(); ifstream oldSAiin("./DirTrue/SAindex"); - oldSAiin.read(SAio.charArray,8*(P->genomeSAindexNbases+2));//skip first bytes + oldSAiin.read(SAio.charArray,8*(P.genomeSAindexNbases+2));//skip first bytes oldSAiin.read(SAio.charArray,SAio.lengthByte); oldSAiin.close(); - for (uint ii=0;iinSA;ii++) { + for (uint ii=0;iigenomeSAindexNbases; iL++) { - for (uint ii=P->genomeSAindexStart[iL];iigenomeSAindexStart[iL+1]; ii++) {//scan through the longets index + for (uint iL=0; iL < P.genomeSAindexNbases; iL++) { + for (uint ii=P.genomeSAindexStart[iL];iinGenome+nGsj,"777","777",P); + fstreamWriteBig(genomeOut,G,P.nGenome+nGsj,"777","777",P); genomeOut.close(); genomeOut.open("/home/dobin/SA"); fstreamWriteBig(genomeOut,SA2.charArray,SA2.lengthByte,"777","777",P); diff --git a/sjdbBuildIndex.h b/sjdbBuildIndex.h index cba780f..24cea26 100644 --- a/sjdbBuildIndex.h +++ b/sjdbBuildIndex.h @@ -4,6 +4,6 @@ #include "Parameters.h" #include "PackedArray.h" -void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi); +void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi); #endif diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 201a0f2..03a76ea 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -8,98 +8,98 @@ #include "streamFuns.h" #include "genomeParametersWrite.h" -void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbClass & sjdbLoci) +void sjdbInsertJunctions(Parameters & P, Parameters & P1, Genome & genome, SjdbClass & sjdbLoci) { time_t rawtime; - if (P->sjdbN>0 && sjdbLoci.chr.size()==0) + if (P.sjdbN>0 && sjdbLoci.chr.size()==0) {//load from the saved genome, only if the loading did not happen already (if sjdb insertion happens at the 1st pass, sjdbLoci will be populated - ifstream & sjdbStreamIn = ifstrOpen(P->genomeDir+"/sjdbList.out.tab", ERROR_OUT, "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P); + ifstream & sjdbStreamIn = ifstrOpen(P.genomeDir+"/sjdbList.out.tab", ERROR_OUT, "SOLUTION: re-generate the genome in genomeDir=" + P.genomeDir, P); sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); sjdbLoci.priority.resize(sjdbLoci.chr.size(),30); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P->genomeDir+"/sjdbList.out.tab" <<": "<logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P.genomeDir+"/sjdbList.out.tab" <<": "<twoPass.pass2) + if (P.twoPass.pass2) {//load 1st pass new junctions //sjdbLoci already contains the junctions from before 1st pass - ifstream sjdbStreamIn ( P->twoPass.pass1sjFile.c_str() ); + ifstream sjdbStreamIn ( P.twoPass.pass1sjFile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; - errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P->twoPass.pass1sjFile <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P.twoPass.pass1sjFile <<"\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); sjdbLoci.priority.resize(sjdbLoci.chr.size(),0); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twoPass.pass1sjFile <<": "<logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P.twoPass.pass1sjFile <<": "<sjdbFileChrStartEnd.at(0)!="-") + if (P.sjdbFileChrStartEnd.at(0)!="-") {//load from junction files sjdbLoadFromFiles(P,sjdbLoci); sjdbLoci.priority.resize(sjdbLoci.chr.size(),10); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; + P.inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; }; - if (P->sjdbGTFfile!="-") + if (P.sjdbGTFfile!="-") {//load from GTF - loadGTF(sjdbLoci, P, P->sjdbInsert.outDir); + loadGTF(sjdbLoci, P, P.sjdbInsert.outDir); sjdbLoci.priority.resize(sjdbLoci.chr.size(),20); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P.sjdbGTFfile<<": "<sjdbLength*sjdbLoci.chr.size()*(P->var.yes ? 2:1)+1];//array to store junction sequences, will be filled in sjdbPrepare - sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome, Gsj);//P->nGenome - change when replacing junctions + char *Gsj=new char [2*P.sjdbLength*sjdbLoci.chr.size()*(P.var.yes ? 2:1)+1];//array to store junction sequences, will be filled in sjdbPrepare + sjdbPrepare (sjdbLoci, P, P.chrStart[P.nChrReal], P.sjdbInsert.outDir, genome, Gsj);//P.nGenome - change when replacing junctions time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <sjdbN>P->limitSjdbInsertNsj) + if (P.sjdbN>P.limitSjdbInsertNsj) { ostringstream errOut; - errOut << "Fatal LIMIT error: the number of junctions to be inserted on the fly ="<sjdbN<<" is larger than the limitSjdbInsertNsj="<limitSjdbInsertNsj<<"\n"; errOut << "Fatal LIMIT error: the number of junctions to be inserted on the fly ="<sjdbN<<" is larger than the limitSjdbInsertNsj="<limitSjdbInsertNsj<<"\n"; - errOut << "SOLUTION: re-run with at least --limitSjdbInsertNsj "<sjdbN<<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + errOut << "Fatal LIMIT error: the number of junctions to be inserted on the fly ="<logMain, EXIT_CODE_INPUT_FILES, *P); }; //insert junctions into the genome and SA and SAi - sjdbBuildIndex (P, P1, Gsj, genome.G, genome.SA, (P->twoPass.pass2 ? genome.SApass2 : genome.SApass1), genome.SAi); + sjdbBuildIndex (P, P1, Gsj, genome.G, genome.SA, (P.twoPass.pass2 ? genome.SApass2 : genome.SApass1), genome.SAi); delete [] Gsj; //junction sequences have been added to G time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... finished inserting junctions into genome" <logMain << timeMonthDayTime(rawtime) << " ..... finished inserting junctions into genome" <sjdbInsert.save=="All") + if (P.sjdbInsert.save=="All") {//save and copy all genome files into sjdbInsert.outDir, except those created above - if (P->genomeDir != P->sjdbInsert.outDir) + if (P.genomeDir != P.sjdbInsert.outDir) { - copyFile(P->genomeDir+"/chrName.txt", P->sjdbInsert.outDir+"/chrName.txt"); - copyFile(P->genomeDir+"/chrStart.txt", P->sjdbInsert.outDir+"/chrStart.txt"); - copyFile(P->genomeDir+"/chrNameLength.txt", P->sjdbInsert.outDir+"/chrNameLength.txt"); - copyFile(P->genomeDir+"/chrLength.txt", P->sjdbInsert.outDir+"/chrLength.txt"); + copyFile(P.genomeDir+"/chrName.txt", P.sjdbInsert.outDir+"/chrName.txt"); + copyFile(P.genomeDir+"/chrStart.txt", P.sjdbInsert.outDir+"/chrStart.txt"); + copyFile(P.genomeDir+"/chrNameLength.txt", P.sjdbInsert.outDir+"/chrNameLength.txt"); + copyFile(P.genomeDir+"/chrLength.txt", P.sjdbInsert.outDir+"/chrLength.txt"); }; - genomeParametersWrite(P->sjdbInsert.outDir+("/genomeParameters.txt"), P, ERROR_OUT); + genomeParametersWrite(P.sjdbInsert.outDir+("/genomeParameters.txt"), P, ERROR_OUT); - ofstream & genomeOut = ofstrOpen(P->sjdbInsert.outDir+"/Genome",ERROR_OUT, P); - fstreamWriteBig(genomeOut,genome.G,P->nGenome,P->sjdbInsert.outDir+"/Genome",ERROR_OUT,P); + ofstream & genomeOut = ofstrOpen(P.sjdbInsert.outDir+"/Genome",ERROR_OUT, P); + fstreamWriteBig(genomeOut,genome.G,P.nGenome,P.sjdbInsert.outDir+"/Genome",ERROR_OUT,P); genomeOut.close(); - ofstream & saOut = ofstrOpen(P->sjdbInsert.outDir+"/SA",ERROR_OUT, P); - fstreamWriteBig(saOut,(char*) genome.SA.charArray, (streamsize) genome.SA.lengthByte, P->sjdbInsert.outDir+"/SA",ERROR_OUT,P); + ofstream & saOut = ofstrOpen(P.sjdbInsert.outDir+"/SA",ERROR_OUT, P); + fstreamWriteBig(saOut,(char*) genome.SA.charArray, (streamsize) genome.SA.lengthByte, P.sjdbInsert.outDir+"/SA",ERROR_OUT,P); saOut.close(); - ofstream & saIndexOut = ofstrOpen(P->sjdbInsert.outDir+"/SAindex",ERROR_OUT, P); - fstreamWriteBig(saIndexOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); - fstreamWriteBig(saIndexOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); - fstreamWriteBig(saIndexOut, genome.SAi.charArray, genome.SAi.lengthByte,P->sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); + ofstream & saIndexOut = ofstrOpen(P.sjdbInsert.outDir+"/SAindex",ERROR_OUT, P); + fstreamWriteBig(saIndexOut, (char*) &P.genomeSAindexNbases, sizeof(P.genomeSAindexNbases),P.sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(saIndexOut, (char*) P.genomeSAindexStart, sizeof(P.genomeSAindexStart[0])*(P.genomeSAindexNbases+1),P.sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); + fstreamWriteBig(saIndexOut, genome.SAi.charArray, genome.SAi.lengthByte,P.sjdbInsert.outDir+"/SAindex",ERROR_OUT,P); saIndexOut.close(); }; //re-calculate genome-related parameters - P->winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; + P.winBinN = P.nGenome/(1LLU << P.winBinNbits)+1; }; diff --git a/sjdbInsertJunctions.h b/sjdbInsertJunctions.h index 91f272e..731dee1 100644 --- a/sjdbInsertJunctions.h +++ b/sjdbInsertJunctions.h @@ -5,6 +5,6 @@ #include "Genome.h" #include "SjdbClass.h" -void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbClass & sjdbLoci); +void sjdbInsertJunctions(Parameters & P, Parameters & P1, Genome & genome, SjdbClass & sjdbLoci); #endif diff --git a/sjdbLoadFromFiles.cpp b/sjdbLoadFromFiles.cpp index 271d75a..ceb6590 100644 --- a/sjdbLoadFromFiles.cpp +++ b/sjdbLoadFromFiles.cpp @@ -2,21 +2,21 @@ #include "sjdbLoadFromStream.h" #include "ErrorWarning.h" -void sjdbLoadFromFiles(Parameters *P, SjdbClass &sjdbLoci) { +void sjdbLoadFromFiles(Parameters &P, SjdbClass &sjdbLoci) { - if (P->sjdbFileChrStartEnd.at(0)!="-") { - for (uint ifile=0;ifilesjdbFileChrStartEnd.size(); ifile++) { - ifstream sjdbStreamIn ( P->sjdbFileChrStartEnd.at(ifile).c_str() ); + if (P.sjdbFileChrStartEnd.at(0)!="-") { + for (uint ifile=0;ifileinOut->logMain, EXIT_CODE_INPUT_FILES, *P); + errOut << "FATAL INPUT error, could not open input file sjdbFileChrStartEnd=" << P.sjdbFileChrStartEnd.at(ifile) <<"\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); - P->inOut->logMain << "Loaded database junctions from file: " << P->sjdbFileChrStartEnd.at(ifile) <<", total number of junctions: "<logMain << "Loaded database junctions from file: " << P.sjdbFileChrStartEnd.at(ifile) <<", total number of junctions: "<sjdbFileChrStartEnd!="-") + }; //if (P.sjdbFileChrStartEnd!="-") }; \ No newline at end of file diff --git a/sjdbLoadFromFiles.h b/sjdbLoadFromFiles.h index f79e684..8547f74 100644 --- a/sjdbLoadFromFiles.h +++ b/sjdbLoadFromFiles.h @@ -5,6 +5,6 @@ #include "SjdbClass.h" #include "Parameters.h" -void sjdbLoadFromFiles(Parameters *P, SjdbClass &sjdbLoci); +void sjdbLoadFromFiles(Parameters &P, SjdbClass &sjdbLoci); #endif diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index cd8f90e..cf1f42d 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -2,7 +2,7 @@ #include "ErrorWarning.h" #include "serviceFuns.cpp" -void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string outDir, Genome & genome, char *Gsj) { +void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string outDir, Genome & genome, char *Gsj) { uint *sjdbS=new uint [sjdbLoci.chr.size()]; uint *sjdbE=new uint [sjdbLoci.chr.size()]; @@ -16,20 +16,20 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o uint iChr=0; for (uint ii=0;iinChrReal;iChr++) { - if (sjdbLoci.chr.at(ii)==P->chrName[iChr]) break; + for (iChr=0;iChr=P->nChrReal) { + if (iChr>=P.nChrReal) { ostringstream errOut; errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; errOut << "SOLUTION: fix your file(s) --sjdbFileChrStartEnd, offending junciton:" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; chrOld=sjdbLoci.chr.at(ii); }; - sjdbS[ii] = sjdbLoci.start.at(ii) + P->chrStart[iChr] - 1;//sj names contain 1-based intron loci - sjdbE[ii] = sjdbLoci.end.at(ii) + P->chrStart[iChr] - 1; + sjdbS[ii] = sjdbLoci.start.at(ii) + P.chrStart[iChr] - 1;//sj names contain 1-based intron loci + sjdbE[ii] = sjdbLoci.end.at(ii) + P.chrStart[iChr] - 1; //motifs if ( G[sjdbS[ii]]==2 && G[sjdbS[ii]+1]==3 && G[sjdbE[ii]-1]==0 && G[sjdbE[ii]]==2 ) {//GTAG @@ -61,8 +61,8 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o if (jjR==255 || jjL==255) { - P->inOut->logMain << "WARNING: long repeat for junction # " << ii+1 <<" : " \ - << sjdbLoci.chr.at(ii) <<" "<chrStart[iChr] + 1 <<" "<< sjdbE[ii] - P->chrStart[iChr] + 1 \ + P.inOut->logMain << "WARNING: long repeat for junction # " << ii+1 <<" : " \ + << sjdbLoci.chr.at(ii) <<" "<yes) nsj1*=2; - P->sjdbStart=new uint [nsj1]; - P->sjdbEnd=new uint [nsj1]; - P->sjdbMotif=new uint8 [nsj1]; - P->sjdbShiftLeft=new uint8 [nsj1]; - P->sjdbShiftRight=new uint8 [nsj1]; - P->sjdbStrand=new uint8 [nsj1]; + P.sjdbStart=new uint [nsj1]; + P.sjdbEnd=new uint [nsj1]; + P.sjdbMotif=new uint8 [nsj1]; + P.sjdbShiftLeft=new uint8 [nsj1]; + P.sjdbShiftRight=new uint8 [nsj1]; + P.sjdbStrand=new uint8 [nsj1]; vector>> sjdbSnp; @@ -146,7 +146,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o for (uint ii=0;ii0 && P->sjdbStart[nsj1-1]==sjdbSort[ii*3] && P->sjdbEnd[nsj1-1]==sjdbSort[ii*3+1] ) {//same loci on opposite strands + if ( nsj1>0 && P.sjdbStart[nsj1-1]==sjdbSort[ii*3] && P.sjdbEnd[nsj1-1]==sjdbSort[ii*3+1] ) {//same loci on opposite strands uint isj0=sjdbSort[(ii-1)*3+2]; if (sjdbLoci.priority.at(isj)sjdbLoci.priority.at(isj0)) {//new junction has higher priority nsj1--;//replace the old junction with the new one - } else if (P->sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') + } else if (P.sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') {//new junction strand is not defined continue; - } else if (P->sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') + } else if (P.sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') {//old junction strand is not defined nsj1--; //replace old with new - } else if (P->sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) + } else if (P.sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) {//both are non-canonical (on opposite strand) - P->sjdbStrand[nsj1-1]=0;//do not record new junction, keep old with undefined strand + P.sjdbStrand[nsj1-1]=0;//do not record new junction, keep old with undefined strand continue; - } else if ( (P->sjdbMotif[nsj1-1]>0 && sjdbMotif[isj]==0) ||(P->sjdbMotif[nsj1-1]%2 == (2-P->sjdbStrand[nsj1-1])) ){//both strands defined, both junctions canonical + } else if ( (P.sjdbMotif[nsj1-1]>0 && sjdbMotif[isj]==0) ||(P.sjdbMotif[nsj1-1]%2 == (2-P.sjdbStrand[nsj1-1])) ){//both strands defined, both junctions canonical //old junction is canonical, new is not, OR old junction is on correct strand continue; } else { @@ -174,67 +174,67 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o }; }; - vector>> sjdbSnp1=genome.Var->sjdbSnp(sjdbSort[ii*3],sjdbSort[ii*3+1],P->sjdbOverhang); + vector>> sjdbSnp1=genome.Var->sjdbSnp(sjdbSort[ii*3],sjdbSort[ii*3+1],P.sjdbOverhang); for (int ia=0; iasjdbStart[nsj1]=sjdbSort[ii*3]; - P->sjdbEnd[nsj1]=sjdbSort[ii*3+1]; - P->sjdbMotif[nsj1]=sjdbMotif[isj]; - P->sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; - P->sjdbShiftRight[nsj1]=sjdbShiftRight[isj]; + P.sjdbStart[nsj1]=sjdbSort[ii*3]; + P.sjdbEnd[nsj1]=sjdbSort[ii*3+1]; + P.sjdbMotif[nsj1]=sjdbMotif[isj]; + P.sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; + P.sjdbShiftRight[nsj1]=sjdbShiftRight[isj]; if (sjdbLoci.str.at(isj)=='+') { - P->sjdbStrand[nsj1]=1; + P.sjdbStrand[nsj1]=1; } else if (sjdbLoci.str.at(isj)=='-') { - P->sjdbStrand[nsj1]=2; + P.sjdbStrand[nsj1]=2; } else { - if (P->sjdbMotif[nsj1]==0) {//strand un-defined - P->sjdbStrand[nsj1]=0; + if (P.sjdbMotif[nsj1]==0) {//strand un-defined + P.sjdbStrand[nsj1]=0; } else { - P->sjdbStrand[nsj1]=2-P->sjdbMotif[nsj1]%2; + P.sjdbStrand[nsj1]=2-P.sjdbMotif[nsj1]%2; }; }; nsj1++; }; }; - P->sjdbN=nsj1; + P.sjdbN=nsj1; - P->sjDstart = new uint [P->sjdbN]; - P->sjAstart = new uint [P->sjdbN]; + P.sjDstart = new uint [P.sjdbN]; + P.sjAstart = new uint [P.sjdbN]; ofstream sjdbInfo((outDir+"/sjdbInfo.txt").c_str()); ofstream sjdbList ((outDir+"/sjdbList.out.tab").c_str()); char strandChar[3]={'.','+','-'}; //first line is some general useful information - sjdbInfo << P->sjdbN <<"\t"<< P->sjdbOverhang <<"\n"; + sjdbInfo << P.sjdbN <<"\t"<< P.sjdbOverhang <<"\n"; uint sjGstart=0; - for (uint ii=0;iisjdbN;ii++) + for (uint ii=0;iisjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; - P->sjAstart[ii] = P->sjdbEnd[ii] + 1; - if (P->sjdbMotif[ii]==0) {//shift non-canonical junctions back to their true coordinates - P->sjDstart[ii] += P->sjdbShiftLeft[ii]; - P->sjAstart[ii] += P->sjdbShiftLeft[ii]; + P.sjDstart[ii] = P.sjdbStart[ii] - P.sjdbOverhang; + P.sjAstart[ii] = P.sjdbEnd[ii] + 1; + if (P.sjdbMotif[ii]==0) {//shift non-canonical junctions back to their true coordinates + P.sjDstart[ii] += P.sjdbShiftLeft[ii]; + P.sjAstart[ii] += P.sjdbShiftLeft[ii]; }; - memcpy(Gsj+sjGstart,G+P->sjDstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci - memcpy(Gsj+sjGstart+P->sjdbOverhang,G+P->sjAstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci + memcpy(Gsj+sjGstart,G+P.sjDstart[ii],P.sjdbOverhang);//sjdbStart contains 1-based intron loci + memcpy(Gsj+sjGstart+P.sjdbOverhang,G+P.sjAstart[ii],P.sjdbOverhang);//sjdbStart contains 1-based intron loci for (int ia=0; iasjdbLength; + sjGstart += P.sjdbLength; Gsj[sjGstart-1]=GENOME_spacingChar;//spacing char between the sjdb seqs - sjdbInfo << P->sjdbStart[ii] <<"\t"<< P->sjdbEnd[ii] <<"\t"<<(int) P->sjdbMotif[ii] <<"\t"<<(int) P->sjdbShiftLeft[ii] <<"\t"<<(int) P->sjdbShiftRight[ii]<<"\t"<<(int) P->sjdbStrand[ii] <<"\n"; - uint chr1=P->chrBin[ P->sjdbStart[ii] >> P->genomeChrBinNbits]; - sjdbList << P->chrName[chr1]<< "\t" << P->sjdbStart[ii]-P->chrStart[chr1] + 1 + (P->sjdbMotif[ii]>0 ? 0:P->sjdbShiftLeft[ii]) \ - << "\t"<< P->sjdbEnd[ii]-P->chrStart[chr1] + 1 + (P->sjdbMotif[ii]>0 ? 0:P->sjdbShiftLeft[ii]) \ - << "\t"<< strandChar[P->sjdbStrand[ii]]<<"\n"; + sjdbInfo << P.sjdbStart[ii] <<"\t"<< P.sjdbEnd[ii] <<"\t"<<(int) P.sjdbMotif[ii] <<"\t"<<(int) P.sjdbShiftLeft[ii] <<"\t"<<(int) P.sjdbShiftRight[ii]<<"\t"<<(int) P.sjdbStrand[ii] <<"\n"; + uint chr1=P.chrBin[ P.sjdbStart[ii] >> P.genomeChrBinNbits]; + sjdbList << P.chrName[chr1]<< "\t" << P.sjdbStart[ii]-P.chrStart[chr1] + 1 + (P.sjdbMotif[ii]>0 ? 0:P.sjdbShiftLeft[ii]) \ + << "\t"<< P.sjdbEnd[ii]-P.chrStart[chr1] + 1 + (P.sjdbMotif[ii]>0 ? 0:P.sjdbShiftLeft[ii]) \ + << "\t"<< strandChar[P.sjdbStrand[ii]]<<"\n"; }; sjdbInfo.close(); sjdbList.close(); diff --git a/sjdbPrepare.h b/sjdbPrepare.h index 8a4f42a..42b0030 100644 --- a/sjdbPrepare.h +++ b/sjdbPrepare.h @@ -5,6 +5,6 @@ #include "Parameters.h" #include "Genome.h" -void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string outDir, Genome &G, char *Gsj); +void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string outDir, Genome &G, char *Gsj); #endif \ No newline at end of file diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index c54c9bf..d69f7d2 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -5,7 +5,7 @@ #include "binarySearch2.h" // #include "stitchGapIndel.cpp" -intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters* P, char* R, char* Q, char* G, Transcript *trA, const uint outFilterMismatchNmaxTotal) { +intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, char* Q, char* G, Transcript *trA, const uint outFilterMismatchNmaxTotal) { //stitch together A and B, extend in the gap, returns max score //Q is assumed modified already @@ -14,21 +14,21 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst if (sjAB!=((uint) -1) && trA->exons[trA->nExons-1][EX_sjA]==sjAB \ && trA->exons[trA->nExons-1][EX_iFrag]==iFragB && rBstart==rAend+1 && gAend+1sjdbMotif[sjAB]==0 && (L<=P->sjdbShiftRight[sjAB] || trA->exons[trA->nExons-1][EX_L]<=P->sjdbShiftLeft[sjAB]) ) { + if (P.sjdbMotif[sjAB]==0 && (L<=P.sjdbShiftRight[sjAB] || trA->exons[trA->nExons-1][EX_L]<=P.sjdbShiftLeft[sjAB]) ) { return -1000006; //too large repeats around non-canonical junction }; trA->exons[trA->nExons][EX_L] = L; //new exon length trA->exons[trA->nExons][EX_R] = rBstart; //new exon r-start trA->exons[trA->nExons][EX_G] = gBstart; //new exon g-start - trA->canonSJ[trA->nExons-1]=P->sjdbMotif[sjAB]; //mark sj-db - trA->shiftSJ[trA->nExons-1][0]=P->sjdbShiftLeft[sjAB]; - trA->shiftSJ[trA->nExons-1][1]=P->sjdbShiftRight[sjAB]; + trA->canonSJ[trA->nExons-1]=P.sjdbMotif[sjAB]; //mark sj-db + trA->shiftSJ[trA->nExons-1][0]=P.sjdbShiftLeft[sjAB]; + trA->shiftSJ[trA->nExons-1][1]=P.sjdbShiftRight[sjAB]; trA->sjAnnot[trA->nExons-1]=1; - trA->sjStr[trA->nExons-1]=P->sjdbStrand[sjAB];; + trA->sjStr[trA->nExons-1]=P.sjdbStrand[sjAB];; trA->nExons++; trA->nMatch+=L; for (uint ii=rBstart;iisjdbScore; + Score+=P.sjdbScore; } else {//general stitching trA->sjAnnot[trA->nExons-1]=0; trA->sjStr[trA->nExons-1]=0; @@ -82,12 +82,12 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst if ( R[rAend+ii]==G[gAend+ii] ) { Score+=int(Q[rAend+ii]); nMatch++; - // if (Q[rAend+ii]>=P->Qgood) nMatchGood++; + // if (Q[rAend+ii]>=P.Qgood) nMatchGood++; } else { Score-=int(Q[rAend+ii]); // trA->rMM[trA->nMM + nMM] = rAend+ii; nMM++; - // if (Q[rAend+ii]>=P->Qgood) nMMgood++; + // if (Q[rAend+ii]>=P.Qgood) nMMgood++; }; }; }; @@ -97,7 +97,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst nDel=1; Del=gGap-rGap; //gGap>0 here - if (Del>P->alignIntronMax && P->alignIntronMax>0) { + if (Del>P.alignIntronMax && P.alignIntronMax>0) { return -1000003; //large gaps not allowed }; @@ -106,7 +106,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst do { // 1. move left, until the score for MM is less than canonical advantage jR1--; if ( R[rAend+jR1]!=G[gBstart1+jR1] && G[gBstart1+jR1]<4 && R[rAend+jR1]==G[gAend+jR1]) Score1 -= int(Q[rAend+jR1]); - } while ( Score1+P->scoreStitchSJshift >= 0 && int(trA->exons[trA->nExons-1][EX_L]) + jR1 > 1);//>=P->alignSJoverhangMin); //also check that we are still within the exon + } while ( Score1+P.scoreStitchSJshift >= 0 && int(trA->exons[trA->nExons-1][EX_L]) + jR1 > 1);//>=P.alignSJoverhangMin); //also check that we are still within the exon int maxScore2=-999999; Score1=0; @@ -120,7 +120,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst int jPen1=0; int Score2=Score1; - if (Del>=P->alignIntronMin) {//only check intron motif for large gaps= non-Dels + if (Del>=P.alignIntronMin) {//only check intron motif for large gaps= non-Dels //check if the intron is canonical, or semi-canonical if ( G[gAend+jR1+1]==2 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==2 ) {//GTAG jCan1=1; @@ -128,19 +128,19 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst jCan1=2; } else if ( G[gAend+jR1+1]==2 && G[gAend+jR1+2]==1 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==2 ) {//GCAG jCan1=3; - jPen1=P->scoreGapGCAG; + jPen1=P.scoreGapGCAG; } else if ( G[gAend+jR1+1]==1 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==2 && G[gBstart1+jR1]==1 ) {//CTGC jCan1=4; - jPen1=P->scoreGapGCAG; + jPen1=P.scoreGapGCAG; } else if ( G[gAend+jR1+1]==0 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==1 ) {//ATAC jCan1=5; - jPen1=P->scoreGapATAC; + jPen1=P.scoreGapATAC; } else if ( G[gAend+jR1+1]==2 && G[gAend+jR1+2]==3 && G[gBstart1+jR1-1]==0 && G[gBstart1+jR1]==3 ) {//GTAT jCan1=6; - jPen1=P->scoreGapATAC; + jPen1=P.scoreGapATAC; } else { jCan1=0; - jPen1=P->scoreGapNoncan; + jPen1=P.scoreGapNoncan; }; Score2 += jPen1; @@ -153,7 +153,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst jPen=jPen1; }; jR1++; - } while ( jR1 < int(rBend) - int(rAend) );// - int(P->alignSJoverhangMin) );//TODO: do not need to search the full B-transcript, can stop as soon as Score goes down by more than + } while ( jR1 < int(rBend) - int(rAend) );// - int(P.alignSJoverhangMin) );//TODO: do not need to search the full B-transcript, can stop as soon as Score goes down by more than //repeat length: go back and forth around jR to find repeat length uint jjL=0,jjR=0; @@ -161,7 +161,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst jjL++; }; - while ( gAend+jjR+jR+1nGenome && G[gAend+jjR+jR+1]==G[gBstart1+jjR+jR+1] && G[gAend+jjR+jR+1]<4 && jjR<=MAX_SJ_REPEAT_SEARCH) {//go forward + while ( gAend+jjR+jR+1sjdbN>0) {//check if the junction is annotated + if (P.sjdbN>0) {//check if the junction is annotated uint jS=gAend+jR+1, jE=gBstart1+jR;//intron start/end - int sjdbInd=binarySearch2(jS,jE,P->sjdbStart,P->sjdbEnd,P->sjdbN); + int sjdbInd=binarySearch2(jS,jE,P.sjdbStart,P.sjdbEnd,P.sjdbN); if (sjdbInd<0) { - if (Del>=P->alignIntronMin) { - Score += P->scoreGap + jPen; //genome gap penalty + non-canonical penalty + if (Del>=P.alignIntronMin) { + Score += P.scoreGap + jPen; //genome gap penalty + non-canonical penalty } else {//deletion - Score += Del*P->scoreDelBase + P->scoreDelOpen; + Score += Del*P.scoreDelBase + P.scoreDelOpen; jCan=-1; trA->sjAnnot[trA->nExons-1]=0; // jjR-=jjL; @@ -212,24 +212,24 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst // trA->shiftSJ[trA->nExons-1][1]=jjR; }; } else {//annotated - jCan=P->sjdbMotif[sjdbInd]; - if (P->sjdbMotif[sjdbInd]==0) {//shift to match annotations - if (L<=P->sjdbShiftLeft[sjdbInd] || trA->exons[trA->nExons-1][EX_L]<=P->sjdbShiftLeft[sjdbInd]) { + jCan=P.sjdbMotif[sjdbInd]; + if (P.sjdbMotif[sjdbInd]==0) {//shift to match annotations + if (L<=P.sjdbShiftLeft[sjdbInd] || trA->exons[trA->nExons-1][EX_L]<=P.sjdbShiftLeft[sjdbInd]) { return -1000006; }; - jR += (int) P->sjdbShiftLeft[sjdbInd]; - jjL=P->sjdbShiftLeft[sjdbInd]; - jjR=P->sjdbShiftRight[sjdbInd]; + jR += (int) P.sjdbShiftLeft[sjdbInd]; + jjL=P.sjdbShiftLeft[sjdbInd]; + jjR=P.sjdbShiftRight[sjdbInd]; }; trA->sjAnnot[trA->nExons-1]=1; - trA->sjStr[trA->nExons-1]=P->sjdbStrand[sjdbInd]; - Score += P->sjdbScore; + trA->sjStr[trA->nExons-1]=P.sjdbStrand[sjdbInd]; + Score += P.sjdbScore; }; } else {//no annotation - if (Del>=P->alignIntronMin) {//junction, not short deletion - Score += P->scoreGap + jPen; + if (Del>=P.alignIntronMin) {//junction, not short deletion + Score += P.scoreGap + jPen; } else { - Score += Del*P->scoreDelBase + P->scoreDelOpen; + Score += Del*P.scoreDelBase + P.scoreDelOpen; jCan=-1; trA->sjAnnot[trA->nExons-1]=0; }; @@ -287,7 +287,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; }; - Score += Ins*P->scoreInsBase + P->scoreInsOpen; + Score += Ins*P.scoreInsBase + P.scoreInsOpen; jCan=-3; }; //different types of gaps selection @@ -299,13 +299,13 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst #else if ( (trA->nMM + nMM)<=outFilterMismatchNmaxTotal \ - && ( jCan<0 || (jCan<7 && nMM<= (uint) P->alignSJstitchMismatchNmax[(jCan+1)/2]) ) ) + && ( jCan<0 || (jCan<7 && nMM<= (uint) P.alignSJstitchMismatchNmax[(jCan+1)/2]) ) ) #endif {//stitching worked only if there no mis-matches for non-GT/AG junctions trA->nMM += nMM; trA->nMatch += nMatch; - if (Del>=P->alignIntronMin) { + if (Del>=P.alignIntronMin) { trA->nGap += nDel; trA->lGap += Del; } else { @@ -338,7 +338,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; } else if (gBstart+trA->exons[0][EX_R] >= trA->exons[0][EX_G] || trA->exons[0][EX_G] < trA->exons[0][EX_R]){//if (iFragA==iFragB) stitch aligns from different fragments - if (P->alignMatesGapMax>0 && gBstart > trA->exons[trA->nExons-1][EX_G] + trA->exons[trA->nExons-1][EX_L] + P->alignMatesGapMax) { + if (P.alignMatesGapMax>0 && gBstart > trA->exons[trA->nExons-1][EX_G] + trA->exons[trA->nExons-1][EX_L] + P.alignMatesGapMax) { return -1000004; //gap between mates too large }; //extend the fragments inside @@ -358,8 +358,8 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trExtend.reset(); - if ( extendAlign(R, Q, G, rAend+1, gAend+1, 1, 1, DEF_readSeqLengthMax, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[trA->exons[trA->nExons-1][EX_iFrag]][1], &trExtend) ) { + if ( extendAlign(R, Q, G, rAend+1, gAend+1, 1, 1, DEF_readSeqLengthMax, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + P.alignEndsType.ext[trA->exons[trA->nExons-1][EX_iFrag]][1], &trExtend) ) { trA->add(&trExtend); Score += trExtend.maxScore; @@ -373,11 +373,11 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->nMatch += L; trExtend.reset(); - //if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, + //if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, //if end extension needs to be forced, use large length. Otherwise, only extend until the beginning of the transcript - uint extlen=P->alignEndsType.ext[iFragB][1] ? DEF_readSeqLengthMax : gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R]; - if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, extlen, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[iFragB][1], &trExtend) ) { + uint extlen=P.alignEndsType.ext[iFragB][1] ? DEF_readSeqLengthMax : gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R]; + if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, extlen, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + P.alignEndsType.ext[iFragB][1], &trExtend) ) { trA->add(&trExtend); Score += trExtend.maxScore; diff --git a/stitchAlignToTranscript.h b/stitchAlignToTranscript.h index a382daf..71ec421 100644 --- a/stitchAlignToTranscript.h +++ b/stitchAlignToTranscript.h @@ -2,5 +2,5 @@ #include "Parameters.h" #include "Transcript.h" -intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters* P, char* R, char* Q, char* G, Transcript *trA, uint outFilterMismatchNmaxTotal); +intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, char* Q, char* G, Transcript *trA, uint outFilterMismatchNmaxTotal); diff --git a/stitchGapIndel.cpp b/stitchGapIndel.cpp index ecfdf7e..ed93314 100644 --- a/stitchGapIndel.cpp +++ b/stitchGapIndel.cpp @@ -1,7 +1,7 @@ #include "IncludeDefine.h" #include "Parameters.h" -int stitchGapIndel (uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint gapStart, uint gapEnd, char* R, char* G, Parameters* P,\ +int stitchGapIndel (uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint gapStart, uint gapEnd, char* R, char* G, Parameters& P,\ uint &iRbest, uint &nMM){//returns stitch score uint gapLength = gapEnd-gapStart+1; @@ -37,7 +37,7 @@ int stitchGapIndel (uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, //score the alignment with inDel at iRbest nMM=0; - score2= L - inDel*P->scoreDelBase - P->scoreDelOpen; //score B and deletion + score2= L - inDel*P.scoreDelBase - P.scoreDelOpen; //score B and deletion for (uint iR=1; iRiRbest) iG += (uint) inDel; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 7050ef3..bdc640d 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -7,7 +7,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ uint Lread, uiWA* WA, char* R, char* Q, char* G, \ - Parameters* P, Transcript** wTr, uint* nWinTr, ReadAlign *RA) { + Parameters& P, Transcript** wTr, uint* nWinTr, ReadAlign *RA) { //recursively stitch aligns for one gene //*nWinTr - number of transcripts for the current window @@ -42,8 +42,8 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui trAstep1.reset(); uint imate=trA.exons[0][EX_iFrag]; if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, trA.rStart, tR2-trA.rStart+1, \ - trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[imate][(int)(trA.Str!=imate)], &trAstep1) ) {//if could extend + trA.nMM, RA->outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + P.alignEndsType.ext[imate][(int)(trA.Str!=imate)], &trAstep1) ) {//if could extend trA.add(&trAstep1); Score += trAstep1.maxScore; @@ -63,8 +63,8 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui trAstep1.reset(); uint imate=trA.exons[trA.nExons-1][EX_iFrag]; if ( extendAlign(R, Q, G, tR2+1, tG2+1, +1, +1, Lread-tR2-1, tR2-trA.rStart+1, \ - trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax, \ - P->alignEndsType.ext[imate][(int)(imate==trA.Str)], &trAstep1) ) {//if could extend + trA.nMM, RA->outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + P.alignEndsType.ext[imate][(int)(imate==trA.Str)], &trAstep1) ) {//if could extend trA.add(&trAstep1); Score += trAstep1.maxScore; @@ -80,9 +80,9 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; }; - if (P->alignSoftClipAtReferenceEnds=="No" && \ - ( (trA.exons[trA.nExons-1][EX_G] + Lread-trA.exons[trA.nExons-1][EX_R]) > (P->chrStart[trA.Chr]+P->chrLength[trA.Chr]) || \ - trA.exons[0][EX_G]<(P->chrStart[trA.Chr]+trA.exons[0][EX_R]) ) ) { + if (P.alignSoftClipAtReferenceEnds=="No" && \ + ( (trA.exons[trA.nExons-1][EX_G] + Lread-trA.exons[trA.nExons-1][EX_R]) > (P.chrStart[trA.Chr]+P.chrLength[trA.Chr]) || \ + trA.exons[0][EX_G]<(P.chrStart[trA.Chr]+trA.exons[0][EX_R]) ) ) { return; //no soft clipping past the ends of the chromosome }; @@ -97,15 +97,15 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui for (uint isj=0;isj=0 ) {//junction if (trA.sjAnnot[isj]==1) {//sjdb - if ( ( trA.exons[isj][EX_L] < P->alignSJDBoverhangMin && (isj==0 || trA.canonSJ[isj-1]==-3 || (trA.sjAnnot[isj-1]==0 && trA.canonSJ[isj-1]>=0) ) )\ - || ( trA.exons[isj+1][EX_L] < P->alignSJDBoverhangMin && (isj==trA.nExons-2 || trA.canonSJ[isj+1]==-3 || (trA.sjAnnot[isj+1]==0 && trA.canonSJ[isj+1]>=0) ) ) )return; + if ( ( trA.exons[isj][EX_L] < P.alignSJDBoverhangMin && (isj==0 || trA.canonSJ[isj-1]==-3 || (trA.sjAnnot[isj-1]==0 && trA.canonSJ[isj-1]>=0) ) )\ + || ( trA.exons[isj+1][EX_L] < P.alignSJDBoverhangMin && (isj==trA.nExons-2 || trA.canonSJ[isj+1]==-3 || (trA.sjAnnot[isj+1]==0 && trA.canonSJ[isj+1]>=0) ) ) )return; } else {//non-sjdb - if ( trA.exons[isj][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][0] \ - || trA.exons[isj+1][EX_L] < P->alignSJoverhangMin + trA.shiftSJ[isj][1] ) return; + if ( trA.exons[isj][EX_L] < P.alignSJoverhangMin + trA.shiftSJ[isj][0] \ + || trA.exons[isj+1][EX_L] < P.alignSJoverhangMin + trA.shiftSJ[isj][1] ) return; }; }; }; - if (trA.nExons>1 && trA.sjAnnot[trA.nExons-2]==1 && trA.exons[trA.nExons-1][EX_L] < P->alignSJDBoverhangMin) return; //this exon was not checkedin the cycle above + if (trA.nExons>1 && trA.sjAnnot[trA.nExons-2]==1 && trA.exons[trA.nExons-1][EX_L] < P.alignSJDBoverhangMin) return; //this exon was not checkedin the cycle above trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex0 && trA.sjMotifStrand==0 && P->outSAMstrandField=="intronMotif") {//strand not defined for a junction + if (sjN>0 && trA.sjMotifStrand==0 && P.outSAMstrandField=="intronMotif") {//strand not defined for a junction return; }; - if (P->outFilterIntronMotifs=="None") {//no filtering + if (P.outFilterIntronMotifs=="None") {//no filtering - } else if (P->outFilterIntronMotifs=="RemoveNoncanonical") { + } else if (P.outFilterIntronMotifs=="RemoveNoncanonical") { for (uint iex=0;iexoutFilterIntronMotifs=="RemoveNoncanonicalUnannotated") { + } else if (P.outFilterIntronMotifs=="RemoveNoncanonicalUnannotated") { for (uint iex=0;iexinOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; {//check mapped length for each mate @@ -156,7 +156,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui for (uint iex=0;iex0 && (exlalignSplicedMateMapLmin || exl < (uint) (P->alignSplicedMateMapLminOverLmate*RA->readLength[trA.exons[iex][EX_iFrag]])) ) { + if (nsj>0 && (exlreadLength[trA.exons[iex][EX_iFrag]])) ) { return; //do not record this transcript }; exl=0;nsj=0; @@ -166,12 +166,12 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; }; - if (P->outFilterBySJoutStage==2) {//junctions have to be present in the filtered set P->sjnovel + if (P.outFilterBySJoutStage==2) {//junctions have to be present in the filtered set P.sjnovel for (uint iex=0;iex=0 && trA.sjAnnot[iex]==0) { uint jS=trA.exons[iex][EX_G]+trA.exons[iex][EX_L]; uint jE=trA.exons[iex+1][EX_G]-1; - if ( binarySearch2(jS,jE,P->sjNovelStart,P->sjNovelEnd,P->sjNovelN) < 0 ) return; + if ( binarySearch2(jS,jE,P.sjNovelStart,P.sjNovelEnd,P.sjNovelN) < 0 ) return; }; }; }; @@ -189,9 +189,9 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( trA.exons[iexM2-1][EX_G] + trA.exons[iexM2-1][EX_L] > trA.exons[iexM2][EX_G] ) {//mates overlap - check consistency of junctions if (trA.exons[0][EX_G] > \ - trA.exons[iexM2][EX_G]+trA.exons[0][EX_R]+P->alignEndsProtrude.nBasesMax) return; //LeftMateStart > RightMateStart + allowance + trA.exons[iexM2][EX_G]+trA.exons[0][EX_R]+P.alignEndsProtrude.nBasesMax) return; //LeftMateStart > RightMateStart + allowance if (trA.exons[iexM2-1][EX_G]+trA.exons[iexM2-1][EX_L] > \ - trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]+P->alignEndsProtrude.nBasesMax) return; //LeftMateEnd > RightMateEnd +allowance + trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]+P.alignEndsProtrude.nBasesMax) return; //LeftMateEnd > RightMateEnd +allowance //check for junctions consistency uint iex1=1, iex2=iexM2+1; //last exons of the junction @@ -218,9 +218,9 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui };//mates overlap - check consistency of junctions };//check for correct overlap between mates - if (P->scoreGenomicLengthLog2scale!=0) {//add gap length score + if (P.scoreGenomicLengthLog2scale!=0) {//add gap length score Score += int(ceil( log2( (double) ( trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] - trA.exons[0][EX_G]) ) \ - * P->scoreGenomicLengthLog2scale - 0.5)); + * P.scoreGenomicLengthLog2scale - 0.5)); Score = max(0,Score); }; @@ -242,14 +242,14 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui trA.maxScore=Score; // transcript has been finalized, compare the score and record - if ( Score+P->outFilterMultimapScoreRange >= wTr[0]->maxScore \ - || ( trA.iFrag>=0 && Score+P->outFilterMultimapScoreRange >= RA->maxScoreMate[trA.iFrag] ) \ - || P->chimSegmentMin>0) { + if ( Score+P.outFilterMultimapScoreRange >= wTr[0]->maxScore \ + || ( trA.iFrag>=0 && Score+P.outFilterMultimapScoreRange >= RA->maxScoreMate[trA.iFrag] ) \ + || P.chimSegmentMin>0) { //only record the transcripts within the window that are in the Score range //OR within the score range of each mate //OR all transcript if chimeric detection is activated -// if (P->alignEndsType.in=="EndToEnd") {//check that the alignment is end-to-end +// if (P.alignEndsType.in=="EndToEnd") {//check that the alignment is end-to-end // uint rTotal=trA.rLength+trA.lIns; // // for (uint iex=1;iexalignTranscriptsPerWindowNmax) { + if (*nWinTrinOut->logMain << "Writing " << N << " bytes into " <logMain << "Writing " << N << " bytes into " <genomeDir + " > "+ P->genomeDir +"/error.info 2>&1").c_str()); -// ifstream error_info((P->genomeDir +"/error.info").c_str()); -// P->inOut->logMain < "+ P.genomeDir +"/error.info 2>&1").c_str()); +// ifstream error_info((P.genomeDir +"/error.info").c_str()); +// P.inOut->logMain <inOut->logMain, EXIT_CODE_FILE_WRITE, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_WRITE, *P); }; - P->inOut->logMain << " done\n" <logMain << " done\n" <inOut->logMain, EXIT_CODE_FILE_OPEN, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_OPEN, *P); }; return ofStream; }; -std::ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P) { +std::ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters &P) { //open file 'fileName', generate error if cannot open std::ifstream & ifStream = *new std::ifstream(fileName.c_str()); if (ifStream.fail()) {// @@ -82,14 +82,14 @@ std::ifstream & ifstrOpen (std::string fileName, std::string errorID, std::strin if (solutionString.size()>0) { errOut << " "<< solutionString <<"\n"; }; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_FILE_OPEN, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_OPEN, *P); }; return ifStream; }; -ifstream & ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P) { +ifstream & ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters &P) { //open one of the genome files - return ifstrOpen(P->genomeDir+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P); + return ifstrOpen(P.genomeDir+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P); }; void copyFile(string fileIn, string fileOut) diff --git a/streamFuns.h b/streamFuns.h index 958fe1a..3c6d5c9 100644 --- a/streamFuns.h +++ b/streamFuns.h @@ -5,11 +5,11 @@ #include unsigned long long fstreamReadBig(std::ifstream &S, char* A, unsigned long long N); -void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::string fileName, std::string errorID, Parameters *P) ; +void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::string fileName, std::string errorID, Parameters &P) ; -ofstream & ofstrOpen (std::string fileName, std::string errorID, Parameters *P); -ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P); -ifstream & ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P); +ofstream & ofstrOpen (std::string fileName, std::string errorID, Parameters &P); +ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters &P); +ifstream & ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters &P); void copyFile(string fileIn, string fileOut); #endif From c27b600b072b595e2d277b7b87af4fb25780e074 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 27 Apr 2017 16:18:40 -0400 Subject: [PATCH 240/536] Finished replacing P-> with P. Compiles OK --- BAMbinSortByCoordinate.cpp | 2 +- BAMoutput.cpp | 8 ++------ OutSJ.cpp | 7 +++---- OutSJ.h | 10 ++++------ ReadAlignChunk.cpp | 2 +- ReadAlignChunk_mapChunk.cpp | 10 +++++----- ReadAlignChunk_processChunks.cpp | 2 +- ReadAlign_alignBAM.cpp | 6 +++--- ReadAlign_assignAlignToWindow.cpp | 2 +- ReadAlign_maxMappableLength2strands.cpp | 2 +- ReadAlign_multMapSelect.cpp | 4 ++-- ReadAlign_oneRead.cpp | 4 ++-- ReadAlign_outputAlignments.cpp | 2 +- ReadAlign_outputTranscriptSAM.cpp | 2 +- ReadAlign_stitchWindowSeeds.cpp | 2 +- ReadAlign_storeAligns.cpp | 4 ++-- Transcriptome.cpp | 5 +---- Transcriptome.h | 6 ++---- bamRemoveDuplicates.cpp | 2 +- genomeGenerate.cpp | 12 ++++++------ genomeSAindex.cpp | 6 +++--- genomeScanFastaFiles.cpp | 6 +++--- insertSeqSA.cpp | 2 +- loadGTF.cpp | 6 +++--- mapThreadsSpawn.cpp | 4 ++-- outputSJ.cpp | 2 +- readLoad.cpp | 12 ++++++------ sjdbBuildIndex.cpp | 2 +- sjdbInsertJunctions.cpp | 4 ++-- sjdbLoadFromFiles.cpp | 2 +- sjdbPrepare.cpp | 2 +- stitchWindowAligns.cpp | 2 +- streamFuns.cpp | 6 +++--- 33 files changed, 69 insertions(+), 81 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index b821e68..111ef28 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -30,7 +30,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st ostringstream errOut; errOut << "EXITING because of FATAL ERROR: number of bytes expected from the BAM bin does not agree with the actual size on disk: "; errOut << binS <<" "<< bamInBytes <<" "<< iBin <<"\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, P); }; //extract coordinates diff --git a/BAMoutput.cpp b/BAMoutput.cpp index 78bc149..3fbbcb2 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -5,9 +5,7 @@ #include "serviceFuns.cpp" #include "ThreadControl.h" -BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters &Pin) {//allocate bam array - - P=Pin; +BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters &Pin) : P(Pin){//allocate bam array nBins=P.outBAMcoordNbins; binSize=P.chunkOutBAMsizeBytes/nBins; @@ -34,9 +32,7 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters &Pin) {//allocate ba nBins=1;//start with one bin to estimate genomic bin sizes }; -BAMoutput::BAMoutput (BGZF *bgzfBAMin, Parameters &Pin) {//allocate BAM array with one bin, streamed directly into bgzf file - - P=Pin; +BAMoutput::BAMoutput (BGZF *bgzfBAMin, Parameters &Pin) : P(Pin){//allocate BAM array with one bin, streamed directly into bgzf file bamArraySize=P.chunkOutBAMsizeBytes; bamArray = new char [bamArraySize]; diff --git a/OutSJ.cpp b/OutSJ.cpp index 3e5369e..06070c8 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -1,12 +1,11 @@ #include "OutSJ.h" #include "ErrorWarning.h" -OutSJ::OutSJ (uint nSJmax, Parameters &inP) {//do I need P? +OutSJ::OutSJ (uint nSJmax, Parameters &Pin) : P(Pin){//do I need P? data = new char [oneSJ.dataSize*nSJmax]; //allocate big array of SJ loci and properties memset(data,0,oneSJ.dataSize*nSJmax); N=0;//initialize the counter - P=inP; }; @@ -95,14 +94,14 @@ void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters& P) {//collapse errOut <<"EXITING becaues of BUG: different motifs for the same junction while collapsing junctions\n" \ <<*(uint*)(isj1P+startP) <<" "<<*(uint32*)(isj1P+gapP) <<" "<logMain, EXIT_CODE_BUG, *P);\ + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P);\ // *(isj1P+motifP) = *(isjP+motifP) ; }; if (*(isj1P+annotP) < *(isjP+annotP) ) { stringstream errOut; errOut <<"EXITING becaues of BUG: different annotation status for the same junction while collapsing junctions:"\ <<*(uint*)(isj1P+startP) <<" "<<*(uint32*)(isj1P+gapP) <<" "<logMain, EXIT_CODE_BUG, *P);\ + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P);\ // *(isj1P+annotP) = *(isjP+annotP) ; }; diff --git a/OutSJ.h b/OutSJ.h index bc54e49..959a460 100644 --- a/OutSJ.h +++ b/OutSJ.h @@ -33,18 +33,16 @@ class OutSJ { public: //all junctions char* data; //sj array[Njunctions][dataSize] - uint N; //number of junctions stored - Junction oneSJ; - Parameters &P; - - OutSJ(uint nSJmax, Parameters &P); - + OutSJ(uint nSJmax, Parameters &Pin); void collapseSJ();//collapse the junctions in data // int compareSJ(void* i1, void* i2); +private: + Parameters &P; + }; int compareSJ(const void* i1, const void* i2); //external functions diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 69c23ec..ef60f40 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -100,7 +100,7 @@ void ReadAlignChunk::chunkFstreamOpen(string filePrefix, int iChunk, fstream &fs ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not create output file "<< fName1 << "\n"; errOut << "Solution: check that you have permission to write this file\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; P.inOut->logMain << "ok" <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); } else if ( chunkOutBAMtotal + P.limitOutSAMoneReadBytes > P.chunkOutBAMsizeBytes || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped if ( P.outSAMorder == "PairedKeepInputOrder" && P.runThreadN>1 ) {//output chunks into separate files chunkOutBAMfile.write(chunkOutBAM,chunkOutBAMtotal); @@ -59,14 +59,14 @@ void ReadAlignChunk::mapChunk() {//map one chunk. Input reads stream has to be s ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJoneRead\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); } else if ( chunkOutSJ->N + P.limitOutSJoneRead > P.limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped chunkOutSJ->collapseSJ(); if ( chunkOutSJ->N + 2*P.limitOutSJoneRead > P.limitOutSJcollapsed ) { ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; }; @@ -75,14 +75,14 @@ void ReadAlignChunk::mapChunk() {//map one chunk. Input reads stream has to be s ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJoneRead\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); } else if ( chunkOutSJ1->N + P.limitOutSJoneRead > P.limitOutSJcollapsed || (readStatus==-1 && noReadsLeft) ) {//write buffer to disk because it's almost full, or all reads are mapped chunkOutSJ1->collapseSJ(); if ( chunkOutSJ1->N + 2*P.limitOutSJoneRead > P.limitOutSJcollapsed ) { ostringstream errOut; errOut <<"EXITING because of fatal error: buffer size for SJ output is too small\n"; errOut <<"Solution: increase input parameter --limitOutSJcollapsed\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; }; diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index e308c1c..63b9a4f 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -114,7 +114,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks } else {//error ostringstream errOut; errOut << ERROR_OUT <<" EXITING because of FATAL ERROR in input reads: unknown file format: the read ID should start with @ or > \n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; }; }; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index c3eb2a5..17508c8 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -100,7 +100,7 @@ int bamAttrArrayWriteInt(intType xIn, const char* tagName, char* attrArray, Para ostringstream errOut; errOut <<"EXITING because of FATAL BUG: integer out of range for BAM conversion: "<< x <<"\n"; errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; - exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); }; }; } else { @@ -114,7 +114,7 @@ int bamAttrArrayWriteInt(intType xIn, const char* tagName, char* attrArray, Para ostringstream errOut; errOut <<"EXITING because of FATAL BUG: integer out of range for BAM conversion: "<< x <<"\n"; errOut <<"SOLUTION: contact Alex Dobin at dobin@cshl.edu\n"; - exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); }; }; }; @@ -385,7 +385,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM/BAM atrribute (tag): "<logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); }; }; }; diff --git a/ReadAlign_assignAlignToWindow.cpp b/ReadAlign_assignAlignToWindow.cpp index 34d2e0e..c1f6fe6 100644 --- a/ReadAlign_assignAlignToWindow.cpp +++ b/ReadAlign_assignAlignToWindow.cpp @@ -100,7 +100,7 @@ void ReadAlign::assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep if ( aAnchor || aLength > WALrec[iW] ) { if (nWA[iW]>=P.seedPerWindowNmax) { - exitWithError("BUG: iA>=P.seedPerWindowNmax in stitchPieces, exiting",std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError("BUG: iA>=P.seedPerWindowNmax in stitchPieces, exiting",std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); }; uint iA; diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index fd5b732..982b4dd 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -67,7 +67,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, if ((iSA1 & P.SAiMarkNmaskC)!=0) { ostringstream errOut; errOut << "BUG: in ReadAlign::maxMappableLength2strands"; - exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); }; indStartEnd[0]=indStartEnd[1]=iSA1; Nrep=1; diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index 59df99e..89c63ff 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -15,7 +15,7 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts if (maxScore!=trBest->maxScore) { ostringstream errOut; errOut << "BUG: maxScore!=trBest->maxScore in multMapSelect"; - exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); }; nTr=0; @@ -26,7 +26,7 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts if (nTr==MAX_N_MULTMAP) {//too many alignments for this read, do not record it ostringstream errOut; errOut << "EXITING: Fatal ERROR: number of alignments exceeds MAX_N_MULTMAP, increase it and re-compile STAR"; - exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); }; trMult[nTr]=trAll[iW][iTr]; diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index 9314d12..0ccab28 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -16,7 +16,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write ostringstream errOut; errOut << "EXITING because of FATAL ERROR: Read1 and Read2 are not consistent, reached the end of the one before the other one\n"; errOut << "SOLUTION: Check you your input files: they may be corrupted\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); } else if (readStatus[0]==-1) {//finished with the stream return -1; }; @@ -29,7 +29,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write errOut << "EXITING because of FATAL ERROR in reads input: Lread of the pair = " << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; Read1[0][readLength[0]]=MARK_FRAG_SPACER_BASE; //marker for spacer base diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index c7ef6f4..119161f 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -119,7 +119,7 @@ void ReadAlign::outputAlignments() { } else {//cannot be ostringstream errOut; errOut << "EXITING because of a BUG: nTr=0 in outputAlignments.cpp"; - exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); }; nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 56aea6c..133080a 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -312,7 +312,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); }; }; diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 404dd75..413a530 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -249,7 +249,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c ostringstream errOut; errOut << "EXITING because of FATAL INPUT error: unrecognized value of --outFilterIntronMotifs=" <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; // if (P.outFilterIntronMotifs=="KeepCanonical" && (trA.intronMotifs[0]>0 || (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0) ) ) {//keep only conistent canonical introns diff --git a/ReadAlign_storeAligns.cpp b/ReadAlign_storeAligns.cpp index 1b39ae8..1aaa59e 100644 --- a/ReadAlign_storeAligns.cpp +++ b/ReadAlign_storeAligns.cpp @@ -47,7 +47,7 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS ostringstream errOut; errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_RUNTIME, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_RUNTIME, P); }; #else // int iP3; @@ -110,7 +110,7 @@ void ReadAlign::storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indS ostringstream errOut; errOut <<"EXITING because of FATAL error: too many pieces pere read\n" ; errOut <<"SOLUTION: increase input parameter --seedPerReadNmax"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_RUNTIME, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_RUNTIME, P); }; for (int ii=nP-1;ii>=iP;ii--) {//move old entries to free space for the new one for (int jj=0;jj trID, geID; //transcript/gene IDs uint32 nTr, nGe; //number of transcript/genes @@ -41,7 +39,7 @@ class Transcriptome { Quantifications *quants; private: - Parameters& P; //normal "genomic" parameters + Parameters &P; //normal "genomic" parameters }; diff --git a/bamRemoveDuplicates.cpp b/bamRemoveDuplicates.cpp index 5a83c0e..3aa6567 100644 --- a/bamRemoveDuplicates.cpp +++ b/bamRemoveDuplicates.cpp @@ -145,7 +145,7 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, ostringstream errOut; errOut <<"EXITING because of fatal ERROR: not enough memory for marking duplicates \n"; errOut <<"SOLUTION: re-run STAR with at least --limitBAMsortRAM " <logMain, EXIT_CODE_PARAMETER, *P); + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); }; //write out processed block diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 2ad4608..26d05b4 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -121,7 +121,7 @@ void genomeGenerate(Parameters &P) { errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; errOut << "you need to specify >0 --sjdbOverhang\n"; errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); } if (P.sjdbFileChrStartEnd.at(0)=="-" && P.sjdbGTFfile=="-") { @@ -131,7 +131,7 @@ void genomeGenerate(Parameters &P) { errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; errOut << "do not specify >0 --sjdbOverhang\n"; errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; P.sjdbOverhang=0; }; @@ -182,7 +182,7 @@ void genomeGenerate(Parameters &P) { ostringstream errOut; errOut <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM="<< (P.limitGenomeGenerateRAM) <<"is too small for your genome\n"; errOut <<"SOLUTION: please specify --limitGenomeGenerateRAM not less than "<< nG1alloc+nG1alloc/3 <<" and make that much RAM available \n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; //preparing to generate SA @@ -347,7 +347,7 @@ void genomeGenerate(Parameters &P) { errOut << "EXITING because of FATAL problem while generating the suffix array\n"; errOut << "The number of indices read from chunks = "<logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; //DONE with suffix array generation @@ -408,8 +408,8 @@ void genomeGenerate(Parameters &P) { P.sjdbN=0;//no junctions are loaded yet P.twoPass.pass2=false; - Parameters &P1=new Parameters; - *P1=*P; + Parameters P1; + P1=P; sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 888a31d..e9e621d 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -86,7 +86,7 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters & P, PackedArray & SAi } else if ( indPref < ind0[iL] ) { ostringstream errOut; errOut << "BUG: next index is smaller than previous, EXITING\n" <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; }; };//for (uint isa=0; isalogMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; }; }; @@ -207,7 +207,7 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray } else if ( indPref < ind0[iL] ) { ostringstream errOut; errOut << "BUG: next index is smaller than previous, EXITING\n" <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; diff --git a/genomeScanFastaFiles.cpp b/genomeScanFastaFiles.cpp index c212993..b1e5158 100644 --- a/genomeScanFastaFiles.cpp +++ b/genomeScanFastaFiles.cpp @@ -19,14 +19,14 @@ uint genomeScanFastaFiles (Parameters &P, char* G, bool flagRun) {//scans fasta {// ostringstream errOut; errOut << "EXITING because of INPUT ERROR: could not open genomeFastaFile: " <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; char cc=fileIn.peek(); if ( !fileIn.good() ) {// ostringstream errOut; errOut << "EXITING because of INPUT ERROR: could not read from genomeFastaFile: " <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; if (cc!='>') { @@ -34,7 +34,7 @@ uint genomeScanFastaFiles (Parameters &P, char* G, bool flagRun) {//scans fasta errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <'.\n"; errOut << " Solution: check formatting of the fasta file. Make sure the file is uncompressed (unzipped).\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; while(!fileIn.eof()) {//read each file until eof string lineIn (4096,'.'); getline(fileIn,lineIn); diff --git a/insertSeqSA.cpp b/insertSeqSA.cpp index c8d62ce..d15037b 100644 --- a/insertSeqSA.cpp +++ b/insertSeqSA.cpp @@ -25,7 +25,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * ostringstream errOut; errOut << "EXITING because of FATAL ERROR: cannot insert sequence on the fly because of strand GstrandBit problem\n"; errOut << "SOLUTION: please contact STAR author at https://groups.google.com/forum/#!forum/rna-star\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; uint N2bit= 1LLU << (SA.wordLength-1); diff --git a/loadGTF.cpp b/loadGTF.cpp index f5e70db..d40e6bf 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -44,7 +44,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file if (sjdbStreamIn.fail()) { ostringstream errOut; errOut << "FATAL error, could not open file sjdbGTFfile=" << P.sjdbGTFfile <<"\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; if (P.chrNameIndex.size()==0) @@ -73,7 +73,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; errOut << " Make sure the GTF file is unzipped.\n"; errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; uint* exonLoci=new uint [exonN*GTF_exonLoci_size]; @@ -161,7 +161,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file ostringstream errOut; errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << P.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; //sort exonLoci by transcript ID and exon coordinates qsort((void*) exonLoci, exonN, sizeof(uint)*GTF_exonLoci_size, funCompareUint2); diff --git a/mapThreadsSpawn.cpp b/mapThreadsSpawn.cpp index cb11e0d..f3adf03 100644 --- a/mapThreadsSpawn.cpp +++ b/mapThreadsSpawn.cpp @@ -9,7 +9,7 @@ void mapThreadsSpawn (Parameters &P, ReadAlignChunk** RAchunk) { if (threadStatus>0) {//something went wrong with one of threads ostringstream errOut; errOut << "EXITING because of FATAL ERROR: phtread error while creating thread # " << ithread <<", error code: "<logMain, 1, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, P); }; pthread_mutex_lock(&g_threadChunks.mutexLogMain); P.inOut->logMain << "Created thread # " <0) {//something went wrong with one of threads ostringstream errOut; errOut << "EXITING because of FATAL ERROR: phtread error while joining thread # " << ithread <<", error code: "<logMain, 1, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, P); }; pthread_mutex_lock(&g_threadChunks.mutexLogMain); P.inOut->logMain << "Joined thread # " <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; }; diff --git a/readLoad.cpp b/readLoad.cpp index f33810d..37c01c9 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -17,7 +17,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint errOut << "Read Name="<logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; readInStream >> iReadAll >> readFilter >> readFilesIndex; //extract read number @@ -33,7 +33,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint errOut << "Read Sequence="<logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; --Lread;//do not count /n in the read length LreadOriginal=Lread; @@ -43,7 +43,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; errOut << "Read Name="<logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; // //was trying to read multi-line @@ -59,7 +59,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint // errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; // errOut << "Read Name="<logMain, EXIT_CODE_INPUT_FILES, *P); +// exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); // }; // LreadOriginal=Lread; @@ -99,7 +99,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint errOut << Seq <<"\n"; errOut << Qual <<"\n"; errOut << "SOLUTION: fix your fastq file\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; if (P.outQSconversionAdd!=0) { for (uint ii=0;ii : "<< readName<<"\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; for (uint ii=0;iilogMain, EXIT_CODE_GENOME_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; SA2.defineBits(P.GstrandBit+1,P.nSA); diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 03a76ea..97d3d88 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -28,7 +28,7 @@ void sjdbInsertJunctions(Parameters & P, Parameters & P1, Genome & genome, SjdbC if (sjdbStreamIn.fail()) { ostringstream errOut; errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P.twoPass.pass1sjFile <<"\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); sjdbLoci.priority.resize(sjdbLoci.chr.size(),0); @@ -65,7 +65,7 @@ void sjdbInsertJunctions(Parameters & P, Parameters & P1, Genome & genome, SjdbC ostringstream errOut; errOut << "Fatal LIMIT error: the number of junctions to be inserted on the fly ="<logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; //insert junctions into the genome and SA and SAi sjdbBuildIndex (P, P1, Gsj, genome.G, genome.SA, (P.twoPass.pass2 ? genome.SApass2 : genome.SApass1), genome.SAi); diff --git a/sjdbLoadFromFiles.cpp b/sjdbLoadFromFiles.cpp index ceb6590..f8a5a97 100644 --- a/sjdbLoadFromFiles.cpp +++ b/sjdbLoadFromFiles.cpp @@ -10,7 +10,7 @@ void sjdbLoadFromFiles(Parameters &P, SjdbClass &sjdbLoci) { if (sjdbStreamIn.fail()) { ostringstream errOut; errOut << "FATAL INPUT error, could not open input file sjdbFileChrStartEnd=" << P.sjdbFileChrStartEnd.at(ifile) <<"\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index cf1f42d..0440094 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -23,7 +23,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string o ostringstream errOut; errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; errOut << "SOLUTION: fix your file(s) --sjdbFileChrStartEnd, offending junciton:" <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; chrOld=sjdbLoci.chr.at(ii); }; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index bdc640d..e5e04c4 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -148,7 +148,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui ostringstream errOut; errOut << "EXITING because of FATAL INPUT error: unrecognized value of --outFilterIntronMotifs=" <logMain, EXIT_CODE_INPUT_FILES, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; {//check mapped length for each mate diff --git a/streamFuns.cpp b/streamFuns.cpp index 22c78c2..746672a 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -53,7 +53,7 @@ void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::strin errOut << "File size on disk = " << statBuf.st_size<<" bytes\n"; errOut << "Solution: check that you have enough space on the disk\n"; errOut << "Empty space on disk = " << statvfsBuf.f_bavail * statvfsBuf.f_bsize <<" bytes\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_WRITE, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_WRITE, P); }; P.inOut->logMain << " done\n" <logMain, EXIT_CODE_FILE_OPEN, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_OPEN, P); }; return ofStream; }; @@ -82,7 +82,7 @@ std::ifstream & ifstrOpen (std::string fileName, std::string errorID, std::strin if (solutionString.size()>0) { errOut << " "<< solutionString <<"\n"; }; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_OPEN, *P); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_OPEN, P); }; return ifStream; }; From 320ff1c2b2011ec3f5b60ebb487d1510e8004f30 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 7 Jun 2017 17:47:21 -0400 Subject: [PATCH 241/536] Added new scripts extras/scripts/mergeLogFinal.awk,mergeSuperContig.awk,sjMotif.m. Implemented --outFilterIntronStrands None option to switch off filtering by strand consistency of junctions. --- Parameters.cpp | 1 + Parameters.h | 2 +- ReadAlign_stitchWindowSeeds.cpp | 22 +- parametersDefault | 9 +- parametersDefault.xxd | 3644 ++++++++++++++++--------------- stitchWindowAligns.cpp | 22 +- 6 files changed, 1870 insertions(+), 1830 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index e728af3..08685b8 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -133,6 +133,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMismatchNoverLmax", &outFilterMismatchNoverLmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterMismatchNoverReadLmax", &outFilterMismatchNoverReadLmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterIntronMotifs", &outFilterIntronMotifs)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outFilterIntronStrands", &outFilterIntronStrands)); //clipping parArray.push_back(new ParameterInfoVector (-1, -1, "clip5pNbases", &clip5pNbases)); diff --git a/Parameters.h b/Parameters.h index d45058f..4530010 100644 --- a/Parameters.h +++ b/Parameters.h @@ -186,7 +186,7 @@ class Parameters { uint outFilterMatchNmin,outFilterMultimapNmax;//min number of matches double outFilterScoreMinOverLread, outFilterMatchNminOverLread;//normalzied to read length intScore outFilterScoreMin,outFilterMultimapScoreRange;//min score to output - string outFilterIntronMotifs; + string outFilterIntronMotifs,outFilterIntronStrands; string outFilterType; //type of filtering int outFilterBySJoutStage; //indicates the stage of filtering by SJout diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 35b53b6..f253aa8 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -218,19 +218,25 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c }; //filter strand consistency - trA.sjMotifStrand=0; uint sjN=0; for (uint iex=0;iex=0) sjN++; - if (trA.sjStr[iex]>0) {//only these sjs have defined strand - if (trA.sjMotifStrand==0) { - trA.sjMotifStrand=trA.sjStr[iex]; - } else if (trA.sjMotifStrand != trA.sjStr[iex]) {//inconsistent strand - return; //kill this transcript - }; + if (trA.canonSJ[iex]>=0) + {//junctions - others are indels + sjN++; + trA.intronMotifs[trA.sjStr[iex]]++; }; }; + if (trA.intronMotifs[1]>0 && trA.intronMotifs[2]==0) + trA.sjMotifStrand=1; + else if (trA.intronMotifs[1]==0 && trA.intronMotifs[2]>0) + trA.sjMotifStrand=2; + else + trA.sjMotifStrand=0; + + if (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0 && P->outFilterIntronStrands=="RemoveInconsistentStrands") + return; + if (sjN>0 && trA.sjMotifStrand==0 && P->outSAMstrandField=="intronMotif") {//strand not defined for a junction return; }; diff --git a/parametersDefault b/parametersDefault index c9033ef..7d3e5a3 100644 --- a/parametersDefault +++ b/parametersDefault @@ -149,7 +149,7 @@ limitIObufferSize 150000000 int>0: max available buffers size (bytes) for input/output, per thread limitOutSAMoneReadBytes 100000 - int>0: max size of the SAM record for one read. Recommended value: >(2*(LengthMate1+LengthMate2+100)*outFilterMultimapNmax + int>0: max size of the SAM record (bytes) for one read. Recommended value: >(2*(LengthMate1+LengthMate2+100)*outFilterMultimapNmax limitOutSJoneRead 1000 int>0: max number of junctions for one read (including all multi-mappers) @@ -158,7 +158,7 @@ limitOutSJcollapsed 1000000 int>0: max number of collapsed junctions limitBAMsortRAM 0 - int>=0: maximum available RAM for sorting BAM. If =0, it will be set to the genome index size. 0 value can only be used with --genomeLoad NoSharedMemory option. + int>=0: maximum available RAM (bytes) for sorting BAM. If =0, it will be set to the genome index size. 0 value can only be used with --genomeLoad NoSharedMemory option. limitSjdbInsertNsj 1000000 int>=0: maximum number of junction to be inserted to the genome on the fly at the mapping stage, including those from annotations and those detected in the 1st step of the 2-pass run @@ -370,7 +370,10 @@ outFilterIntronMotifs None RemoveNoncanonical ... filter out alignments that contain non-canonical junctions RemoveNoncanonicalUnannotated ... filter out alignments that contain non-canonical unannotated junctions when using annotated splice junctions database. The annotated non-canonical junctions will be kept. - +outFilterIntronStrands RemoveInconsistentStrands + string: filter alignments + RemoveInconsistentStrands ... remove alignments that have junctions with inconsistent strands + None ... no filtering ### Output Filtering: Splice Junctions outSJfilterReads All diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 9daa6af..2ff1843 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -640,1951 +640,1975 @@ unsigned char parametersDefault[] = { 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, + 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, + 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, + 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, - 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, - 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, - 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, - 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, + 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, + 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, + 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, + 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, - 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, - 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, - 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, + 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, - 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, + 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, - 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, - 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, - 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, + 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, - 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, - 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, - 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, - 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, - 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, + 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, - 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, - 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, - 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, - 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, - 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, + 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, + 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, + 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, + 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, + 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, + 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, - 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, + 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, - 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, - 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, - 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, - 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, - 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, - 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, - 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, - 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, + 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, + 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, 0x68, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, + 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, - 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, - 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, - 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, - 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, + 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, + 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, + 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, + 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, + 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, - 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, - 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, - 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, - 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, - 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, - 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, - 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, - 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, - 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, - 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, - 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, + 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, + 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, + 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, + 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, + 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, + 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, + 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, + 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, + 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, + 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, - 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, - 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, - 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, - 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, - 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, - 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, - 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, - 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, - 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, - 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, - 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, - 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, - 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, - 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, + 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, + 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, + 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, + 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, + 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, + 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, + 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, + 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, + 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, + 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, + 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, + 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, + 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, - 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, - 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, - 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, - 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, - 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, - 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, + 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, + 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, - 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, - 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, - 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, - 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, - 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, - 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, - 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, + 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, + 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, + 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, + 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, + 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, + 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, + 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, - 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, - 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, - 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, - 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, - 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, - 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, + 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, + 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, + 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, - 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, - 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, + 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, + 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, + 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, - 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, - 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, - 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, + 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, - 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, - 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, + 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, + 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, + 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, + 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, - 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, + 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, - 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, - 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, - 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, - 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, + 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, + 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, + 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, - 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, - 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, - 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, - 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, + 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, + 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, + 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, - 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, - 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, - 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, + 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, + 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, + 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, + 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, + 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, + 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, + 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, + 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, + 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, + 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, + 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, + 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, + 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, - 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, - 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, + 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, - 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, - 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, + 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, + 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, + 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, + 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, + 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, - 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, - 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, - 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, + 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, + 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, + 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, - 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, - 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, - 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, - 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, - 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, - 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, + 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, + 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, + 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, + 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, - 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, - 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, + 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, + 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, + 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, + 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, + 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, - 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, - 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, - 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, + 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, + 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, + 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, + 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, + 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, + 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, - 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, - 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, - 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, + 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, + 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, + 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, + 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, + 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, - 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, - 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, + 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, + 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, - 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, - 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, + 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, + 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, + 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, - 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, + 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, + 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 31043; +unsigned int parametersDefault_len = 31326; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index f6768bd..32684f9 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -117,19 +117,25 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; //filter strand consistency - trA.sjMotifStrand=0; uint sjN=0; for (uint iex=0;iex=0) sjN++; - if (trA.sjStr[iex]>0) {//only these sjs have defined strand - if (trA.sjMotifStrand==0) { - trA.sjMotifStrand=trA.sjStr[iex]; - } else if (trA.sjMotifStrand != trA.sjStr[iex]) {//inconsistent strand - return; //kill this transcript - }; + if (trA.canonSJ[iex]>=0) + {//junctions - others are indels + sjN++; + trA.intronMotifs[trA.sjStr[iex]]++; }; }; + if (trA.intronMotifs[1]>0 && trA.intronMotifs[2]==0) + trA.sjMotifStrand=1; + else if (trA.intronMotifs[1]==0 && trA.intronMotifs[2]>0) + trA.sjMotifStrand=2; + else + trA.sjMotifStrand=0; + + if (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0 && P->outFilterIntronStrands=="RemoveInconsistentStrands") + return; + if (sjN>0 && trA.sjMotifStrand==0 && P->outSAMstrandField=="intronMotif") {//strand not defined for a junction return; }; From 73e102a8148cc24425df6436111f3d11f66dd250 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 20 Jun 2017 14:36:26 -0400 Subject: [PATCH 242/536] Save some incomplete changes. Will revert to the previous commit. --- Genome.cpp | 7 +--- Parameters.cpp | 5 --- Parameters.h | 89 +++++++++++++++++++++----------------------------- 3 files changed, 39 insertions(+), 62 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 54f348d..9fa64d3 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -175,7 +175,7 @@ void Genome::genomeLoad(){//allocate and load Genome }; P.nGenome = OpenStream("Genome",GenomeIn,P.genomeFileSizes.at(0)); P.nSAbyte = OpenStream("SA",SAin,P.genomeFileSizes.at(1)); - OpenStream("/SAindex",SAiIn,1); //we do not need SAiIn siz, using a dummy value here to prevent from reading its size from the disk + OpenStream("SAindex",SAiIn,1); //we do not need SAiIn siz, using a dummy value here to prevent from reading its size from the disk uint SAiInBytes=0; SAiInBytes += fstreamReadBig(SAiIn,(char*) &P.genomeSAindexNbases, sizeof(P.genomeSAindexNbases)); @@ -208,8 +208,6 @@ void Genome::genomeLoad(){//allocate and load Genome shmSize=SA.lengthByte + P.nGenome+L+L+SHM_startG+8; shmSize+= SAi.lengthByte; - if (P.annotScoreScale>0) shmSize+=P.nGenome; - if ((P.genomeLoad=="LoadAndKeep" || P.genomeLoad=="LoadAndRemove" || @@ -297,9 +295,6 @@ void Genome::genomeLoad(){//allocate and load Genome // errOut << "SOLUTION: check shared memory settigns as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_SHM, P); // }; - if (P.annotScoreScale>0) {//optional allocation - shmNext += P.nGenome; - } } else if (P.genomeLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory { diff --git a/Parameters.cpp b/Parameters.cpp index f6b1845..08b1cbf 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -398,11 +398,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ///////////////////////////////////////// Old variables - outputBED[0]=0; outputBED[1]=0; //controls the format of starBED output. Will be replaced with HDF5 output - - //annot scoring - annotScoreScale=0; - annotSignalFile="-"; //splitting Qsplit=0; diff --git a/Parameters.h b/Parameters.h index f956211..cea50c3 100644 --- a/Parameters.h +++ b/Parameters.h @@ -37,25 +37,13 @@ class Parameters { //input string inputBAMfile; - //genome, SA, ... - vector chrStart, chrLength, chrLengthAll; - string genomeDir,genomeLoad; - vector genomeFastaFiles, genomeChainFiles; - uint genomeSAsparseD;//sparsity=distance between indices - uint genomeInsertL; //total length of the sequence to be inserted on the fly - uint genomeInsertChrIndFirst; //index of the first inserted chromosome - uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length - vector genomeFileSizes; //size of the genome files //binning,windows,anchors - uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; uint winAnchorMultimapNmax; //max number of alignments for anchors double winReadCoverageRelativeMin; uint winReadCoverageBasesMin; - uint genomeSAindexNbases; //length of the SA pre-index strings - uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases char genomeNumToNT[6]; //read parameters @@ -244,32 +232,6 @@ class Parameters { intScore scoreStitchSJshift;//Max negative score when double scoreGenomicLengthLog2scale; - //old variables: CLEAN-up needed - char outputBED[MAX_OUTPUT_FLAG]; //output flags - - //SW search - uint swMode, swWinCoverageMinP; - //SW penalties - uint swPeoutFilterMatchNmin, swPenMismatch, swPenGapOpen, swPenGapExtend; - uint swHsize; - - int annotScoreScale;//overall multiplication factor for the annotation - string annotSignalFile;//binary file with annotation signal - - //SJ database parameters - vector sjdbFileChrStartEnd; - string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; - uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer - int sjdbOverhang_par; - int sjdbScore; - - uint sjChrStart,sjdbN; //first sj-db chr - uint sjGstart; //start of the sj-db genome sequence - uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci - uint8 *sjdbMotif; //motifs of annotated junctions - uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions - uint8 *sjdbStrand; //junctions strand, not used yet - uint sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered //quantification parameters @@ -330,25 +292,50 @@ class Parameters { char Qsplit; uint maxNsplit, minLsplit, minLmap; - //limits - + InOutStreams *inOut; //main input output streams - ////////////////////// CLEAN-UP needed - InOutStreams *inOut; //main input output streams + uint Lread; - uint Lread; + vector chrStart, chrLength, chrLengthAll; + string genomeDir,genomeLoad; + vector genomeFastaFiles, genomeChainFiles; + uint genomeSAsparseD;//sparsity=distance between indices + uint genomeInsertL; //total length of the sequence to be inserted on the fly + uint genomeInsertChrIndFirst; //index of the first inserted chromosome + uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length + vector genomeFileSizes; //size of the genome files - //Genome parameters - uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci - uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass - uint nSAi; //size of the SAindex - vector chrName, chrNameAll; - map chrNameIndex; - unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information - uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index + uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; + + uint genomeSAindexNbases; //length of the SA pre-index strings + uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases + //SJ database parameters + vector sjdbFileChrStartEnd; + string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; + uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer + int sjdbOverhang_par; + int sjdbScore; + uint sjChrStart,sjdbN; //first sj-db chr + uint sjGstart; //start of the sj-db genome sequence + uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci + uint8 *sjdbMotif; //motifs of annotated junctions + uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions + uint8 *sjdbStrand; //junctions strand, not used yet + //Genome parameters + uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci + uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass + uint nSAi; //size of the SAindex + vector chrName, chrNameAll; + map chrNameIndex; + unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information + uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index + + + + Parameters(); void chrInfoLoad(); //find nChr and chrStart from genome void chrBinFill();//file chrBin array From 2d49d8b9c6e4dd968271367338e6ac8190c06c04 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 20 Jun 2017 14:47:29 -0400 Subject: [PATCH 243/536] Reverted to 0bcc46112 --- Genome.cpp | 7 +++- Parameters.cpp | 5 +++ Parameters.h | 89 +++++++++++++++++++++++++++++--------------------- 3 files changed, 62 insertions(+), 39 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 9fa64d3..54f348d 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -175,7 +175,7 @@ void Genome::genomeLoad(){//allocate and load Genome }; P.nGenome = OpenStream("Genome",GenomeIn,P.genomeFileSizes.at(0)); P.nSAbyte = OpenStream("SA",SAin,P.genomeFileSizes.at(1)); - OpenStream("SAindex",SAiIn,1); //we do not need SAiIn siz, using a dummy value here to prevent from reading its size from the disk + OpenStream("/SAindex",SAiIn,1); //we do not need SAiIn siz, using a dummy value here to prevent from reading its size from the disk uint SAiInBytes=0; SAiInBytes += fstreamReadBig(SAiIn,(char*) &P.genomeSAindexNbases, sizeof(P.genomeSAindexNbases)); @@ -208,6 +208,8 @@ void Genome::genomeLoad(){//allocate and load Genome shmSize=SA.lengthByte + P.nGenome+L+L+SHM_startG+8; shmSize+= SAi.lengthByte; + if (P.annotScoreScale>0) shmSize+=P.nGenome; + if ((P.genomeLoad=="LoadAndKeep" || P.genomeLoad=="LoadAndRemove" || @@ -295,6 +297,9 @@ void Genome::genomeLoad(){//allocate and load Genome // errOut << "SOLUTION: check shared memory settigns as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_SHM, P); // }; + if (P.annotScoreScale>0) {//optional allocation + shmNext += P.nGenome; + } } else if (P.genomeLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory { diff --git a/Parameters.cpp b/Parameters.cpp index 08b1cbf..f6b1845 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -398,6 +398,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ///////////////////////////////////////// Old variables + outputBED[0]=0; outputBED[1]=0; //controls the format of starBED output. Will be replaced with HDF5 output + + //annot scoring + annotScoreScale=0; + annotSignalFile="-"; //splitting Qsplit=0; diff --git a/Parameters.h b/Parameters.h index cea50c3..f956211 100644 --- a/Parameters.h +++ b/Parameters.h @@ -37,13 +37,25 @@ class Parameters { //input string inputBAMfile; + //genome, SA, ... + vector chrStart, chrLength, chrLengthAll; + string genomeDir,genomeLoad; + vector genomeFastaFiles, genomeChainFiles; + uint genomeSAsparseD;//sparsity=distance between indices + uint genomeInsertL; //total length of the sequence to be inserted on the fly + uint genomeInsertChrIndFirst; //index of the first inserted chromosome + uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length + vector genomeFileSizes; //size of the genome files //binning,windows,anchors + uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; uint winAnchorMultimapNmax; //max number of alignments for anchors double winReadCoverageRelativeMin; uint winReadCoverageBasesMin; + uint genomeSAindexNbases; //length of the SA pre-index strings + uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases char genomeNumToNT[6]; //read parameters @@ -232,6 +244,32 @@ class Parameters { intScore scoreStitchSJshift;//Max negative score when double scoreGenomicLengthLog2scale; + //old variables: CLEAN-up needed + char outputBED[MAX_OUTPUT_FLAG]; //output flags + + //SW search + uint swMode, swWinCoverageMinP; + //SW penalties + uint swPeoutFilterMatchNmin, swPenMismatch, swPenGapOpen, swPenGapExtend; + uint swHsize; + + int annotScoreScale;//overall multiplication factor for the annotation + string annotSignalFile;//binary file with annotation signal + + //SJ database parameters + vector sjdbFileChrStartEnd; + string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; + uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer + int sjdbOverhang_par; + int sjdbScore; + + uint sjChrStart,sjdbN; //first sj-db chr + uint sjGstart; //start of the sj-db genome sequence + uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci + uint8 *sjdbMotif; //motifs of annotated junctions + uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions + uint8 *sjdbStrand; //junctions strand, not used yet + uint sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered //quantification parameters @@ -292,50 +330,25 @@ class Parameters { char Qsplit; uint maxNsplit, minLsplit, minLmap; - InOutStreams *inOut; //main input output streams + //limits - uint Lread; - vector chrStart, chrLength, chrLengthAll; - string genomeDir,genomeLoad; - vector genomeFastaFiles, genomeChainFiles; - uint genomeSAsparseD;//sparsity=distance between indices - uint genomeInsertL; //total length of the sequence to be inserted on the fly - uint genomeInsertChrIndFirst; //index of the first inserted chromosome - uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length - vector genomeFileSizes; //size of the genome files + ////////////////////// CLEAN-UP needed + InOutStreams *inOut; //main input output streams - uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; - - uint genomeSAindexNbases; //length of the SA pre-index strings - uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases + uint Lread; + + //Genome parameters + uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci + uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass + uint nSAi; //size of the SAindex + vector chrName, chrNameAll; + map chrNameIndex; + unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information + uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index - //SJ database parameters - vector sjdbFileChrStartEnd; - string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; - uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer - int sjdbOverhang_par; - int sjdbScore; - uint sjChrStart,sjdbN; //first sj-db chr - uint sjGstart; //start of the sj-db genome sequence - uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci - uint8 *sjdbMotif; //motifs of annotated junctions - uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions - uint8 *sjdbStrand; //junctions strand, not used yet - //Genome parameters - uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci - uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass - uint nSAi; //size of the SAindex - vector chrName, chrNameAll; - map chrNameIndex; - unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information - uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index - - - - Parameters(); void chrInfoLoad(); //find nChr and chrStart from genome void chrBinFill();//file chrBin array From 22b5065bcf25d8864bae8db54f920256363749fc Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 22 Jun 2017 16:03:58 -0400 Subject: [PATCH 244/536] Implemented --seedSplitMin option which was previously hardcoded at 12. his will allow mapping of mates shorter than 12nt. Fixed a bug in liftOver command that output an extra field in the GTF file. --- Chain.cpp | 2 +- Parameters.cpp | 3 +- Parameters.h | 1 + parametersDefault | 3 + parametersDefault.xxd | 1081 +++++++++++++++++++++-------------------- 5 files changed, 552 insertions(+), 538 deletions(-) diff --git a/Chain.cpp b/Chain.cpp index 80024a5..62a871d 100644 --- a/Chain.cpp +++ b/Chain.cpp @@ -106,7 +106,7 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) }; if (c2[0]!=-1llu && c2[1]!=-1llu && c2[1]>=c2[0]) {//good conversion - streamOut << ch1->chr2 <<"\t"<< str1 <<"\t"<< str2 <<"\t"<chr2 <<"\t"<< str1 <<"\t"<< str2 <<"\t"< (-1, -1, "seedPerWindowNmax", &seedPerWindowNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "seedNoneLociPerWindow", &seedNoneLociPerWindow)); parArray.push_back(new ParameterInfoScalar (-1, -1, "seedMultimapNmax", &seedMultimapNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "seedSplitMin", &seedSplitMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignIntronMin", &alignIntronMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignIntronMax", &alignIntronMax)); @@ -404,7 +405,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //splitting Qsplit=0; maxNsplit=10; - minLsplit=12; + minLsplit=seedSplitMin; minLmap=5; diff --git a/Parameters.h b/Parameters.h index d45058f..a97f574 100644 --- a/Parameters.h +++ b/Parameters.h @@ -114,6 +114,7 @@ class Parameters { uint seedNoneLociPerWindow; //max number of aligns from one piece per window uint seedSearchStartLmax; double seedSearchStartLmaxOverLread; //length of split start points + uint seedSplitMin; //chunk parameters uint chunkInSizeBytes,chunkInSizeBytesArray,chunkOutBAMsizeBytes; diff --git a/parametersDefault b/parametersDefault index c9033ef..32d1c8a 100644 --- a/parametersDefault +++ b/parametersDefault @@ -456,6 +456,9 @@ seedPerWindowNmax 50 seedNoneLociPerWindow 10 int>0: max number of one seed loci per window +seedSplitMin 12 + int>0: min length of the seed sequences split by Ns or mate gap + alignIntronMin 21 minimum intron size: genomic gap is considered intron if its length>=alignIntronMin, otherwise it is considered Deletion diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 9daa6af..b3b5ae5 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2027,564 +2027,573 @@ unsigned char parametersDefault[] = { 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, + 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, + 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, - 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, - 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, - 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, - 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, - 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, - 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, - 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, - 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, + 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, - 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, - 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, - 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, + 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, + 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, + 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, + 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, + 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, - 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, - 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, - 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, + 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, + 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, + 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, + 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, + 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, + 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, + 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, + 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, + 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, + 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, + 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, + 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, + 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, + 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, - 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, - 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, - 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, - 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, - 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, + 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, + 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, + 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 31043; +unsigned int parametersDefault_len = 31143; From ac9051eed7eb2e3d2f91c604dab7e10461aa87a5 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 22 Jun 2017 16:39:48 -0400 Subject: [PATCH 245/536] Compiled binaries. --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 52cb0b1..ac42101 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.3a" +#define STAR_VERSION "STAR_2.5.3a_modified" From be6f3745446646604b80eebcd35a5b2f8b7f5c78 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 27 Jun 2017 15:34:20 -0400 Subject: [PATCH 246/536] Fixed a bug which set non-primary bit 0x100 in the SAM FLAG for unmapped mates. --- ReadAlign_alignBAM.cpp | 36 +- ReadAlign_outputTranscriptSAM.cpp | 28 +- parametersDefault | 3 +- parametersDefault.xxd | 2913 ++++++++++++++--------------- 4 files changed, 1488 insertions(+), 1492 deletions(-) diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 13208ef..b7fbb09 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -177,28 +177,28 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (mateMapped!=NULL && mateMapped[imate]) continue; //this mate was mapped, do not record it as unmapped samFLAG=0x4; if (P->readNmates==2) {//paired read - samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); + samFLAG|=0x1 + (imate==0 ? 0x40 : 0x80); if (mateMapped[1-imate]) {//mate mapped if (trOut.Str!=(1-imate)) {//mate strand reverted - samFLAG+=0x20; + samFLAG|=0x20; }; mateChr=trOut.Chr; trChrStart=P->chrStart[mateChr]; mateStart=trOut.exons[0][EX_G] - trChrStart; mateStrand= trOut.Str == (1-imate) ? 0 : 1; - if (!trOut.primaryFlag) - {//mapped mate is not primary - samFLAG+=0x100; + if (!trOut.primaryFlag && P->outSAMunmapped.keepPairs) + {//mapped mate is not primary, keep unmapped mate for each pair, hence need to mark some as not primary + samFLAG|=0x100; }; } else {//mate unmapped - samFLAG+=0x8; + samFLAG|=0x8; }; }; - if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + if (readFilter=='Y') samFLAG|=0x200; //not passing quality control if (mateMapped[1-imate]) {//mate is mapped, fill the infromation from trOut @@ -220,20 +220,20 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (flagPaired) {//paired reads samFLAG=0x0001; if (iExMate==trOut.nExons-1) {//single mate - if (mateChr>P->nChrReal) samFLAG+=0x0008; //not mapped as pair + if (mateChr>P->nChrReal) samFLAG|=0x0008; //not mapped as pair } else {//properly paired - samFLAG+=0x0002; //mapped as pair + samFLAG|=0x0002; //mapped as pair }; } else {//single end samFLAG=0; }; - if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + if (readFilter=='Y') samFLAG|=0x200; //not passing quality control if (alignType==-11 || alignType==-12 || alignType==-13) { - samFLAG+=0x800; //mark chimeric alignments + samFLAG|=0x800; //mark chimeric alignments } else {//only non-chimeric alignments will be marked as non-primary, since chimeric are already marked with 0x800 - if (!trOut.primaryFlag) samFLAG +=0x100;//mark not primary align + if (!trOut.primaryFlag) samFLAG|=0x100;//mark not primary align }; iEx1 = (imate==0 ? 0 : iExMate+1); @@ -242,17 +242,17 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint Str= trOut.Str;//note that Strand = the mate on the left if (Mate==0) { - samFLAG += Str*0x10; - if (nMates==2) samFLAG += (1-Str)*0x20; + samFLAG|= Str*0x10; + if (nMates==2) samFLAG|= (1-Str)*0x20; } else {//second mate strand need to be reverted - samFLAG += (1-Str)*0x10; - if (nMates==2) samFLAG += Str*0x20; + samFLAG|= (1-Str)*0x10; + if (nMates==2) samFLAG|= Str*0x20; }; if (flagPaired) { leftMate=Str; - samFLAG += (Mate==0 ? 0x0040 : 0x0080); - if (flagPaired && nMates==1 && mateStrand==1) samFLAG +=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) + samFLAG|= (Mate==0 ? 0x0040 : 0x0080); + if (flagPaired && nMates==1 && mateStrand==1) samFLAG|=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) }; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 180b29d..40f02b8 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -17,24 +17,24 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i uint16 samFLAG=0x4; if (P->readNmates==2) {//paired read - samFLAG+=0x1 + (imate==0 ? 0x40 : 0x80); + samFLAG|=0x1 + (imate==0 ? 0x40 : 0x80); if (mateMapped[1-imate]) {//mate mapped if ( trOut.Str != (1-imate) ) { - samFLAG+=0x20;//mate strand reverted + samFLAG|=0x20;//mate strand reverted }; } else {//mate unmapped - samFLAG+=0x8; + samFLAG|=0x8; }; }; - if (readFilter=='Y') samFLAG+=0x200; //not passing quality control + if (readFilter=='Y') samFLAG|=0x200; //not passing quality control - if (mateMapped[1-imate] && !trOut.primaryFlag) - {//mapped mate is not primary - samFLAG+=0x100; + if (mateMapped[1-imate] && !trOut.primaryFlag && P->outSAMunmapped.keepPairs) + {//mapped mate is not primary, keep unmapped mate for each pair, hence need to mark some as not primary + samFLAG|=0x100; }; *outStream << readName+1 <<"\t"<< samFLAG \ @@ -104,21 +104,21 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i uint Str= trOut.Str;//note that Strand = the mate on the left if (Mate==0) { - samFLAG += Str*0x10; - if (nMates==2) samFLAG += (1-Str)*0x20; + samFLAG|= Str*0x10; + if (nMates==2) samFLAG|= (1-Str)*0x20; } else {//second mate strand need to be reverted - samFLAG += (1-Str)*0x10; - if (nMates==2) samFLAG += Str*0x20; + samFLAG|= (1-Str)*0x10; + if (nMates==2) samFLAG|= Str*0x20; }; if (flagPaired) { leftMate=Str; - samFLAG += (Mate==0 ? 0x0040 : 0x0080); - if (flagPaired && nMates==1 && mateStrand==1) samFLAG +=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) + samFLAG|= (Mate==0 ? 0x0040 : 0x0080); + if (flagPaired && nMates==1 && mateStrand==1) samFLAG|=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) }; //not primary align? - if (!trOut.primaryFlag) samFLAG +=0x100; + if (!trOut.primaryFlag) samFLAG|=0x100; //empty streams samStreamCIGAR.str(std::string()); diff --git a/parametersDefault b/parametersDefault index 272e41f..cb48d76 100644 --- a/parametersDefault +++ b/parametersDefault @@ -236,8 +236,7 @@ outSAMunmapped None None ... no output Within ... output unmapped reads within the main SAM file (i.e. Aligned.out.sam) 2nd word: - KeepPairs ... record unmapped mate for each alignment, and, in case of unsorted output, keep it adjacent to its mapped mate. - Only affects multi-mapping reads + KeepPairs ... record unmapped mate for each alignment, and, in case of unsorted output, keep it adjacent to its mapped mate. Only affects multi-mapping reads. outSAMorder Paired string: type of sorting for the SAM output diff --git a/parametersDefault.xxd b/parametersDefault.xxd index d689fd2..49af664 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1087,743 +1087,672 @@ unsigned char parametersDefault[] = { 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x6c, - 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, + 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, - 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, - 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, - 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, - 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, - 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, - 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, - 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, - 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, - 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, - 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, - 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, - 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, - 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, - 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, - 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, - 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, - 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, - 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, - 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, - 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, - 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, - 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, - 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, - 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, - 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, - 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, - 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, - 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, - 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, - 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, - 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, - 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, - 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, - 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, - 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, - 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, + 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, + 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, + 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, + 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, - 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, - 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, - 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, - 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, - 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, + 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, + 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, + 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, + 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, + 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, + 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, + 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, + 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, + 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, + 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, + 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, + 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, + 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, + 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, + 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, + 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, + 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, + 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, + 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, + 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, + 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, + 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, - 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, - 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, - 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, + 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, - 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, - 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, - 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, - 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, - 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, - 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, - 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, + 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, + 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, + 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, + 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, + 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, - 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, + 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, + 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, - 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, - 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, - 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, @@ -1838,785 +1767,853 @@ unsigned char parametersDefault[] = { 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, - 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, - 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, - 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, - 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, + 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, + 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, - 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, - 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, - 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, - 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, - 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, - 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, - 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, - 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, - 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, - 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, + 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, - 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, - 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, - 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, - 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, - 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, - 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, - 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, - 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, - 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, - 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, - 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, - 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, - 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, + 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, + 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, + 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, + 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, + 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, + 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, + 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, + 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, - 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, + 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, + 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, - 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, - 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, - 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, - 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, - 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, - 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, - 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, - 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, - 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, - 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, - 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, + 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, + 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, + 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, + 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, + 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, - 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, - 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, + 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, + 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, + 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, - 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, - 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, - 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, - 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, + 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, + 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, - 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, - 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, - 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, - 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, + 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, + 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, + 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, + 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, + 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, + 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, - 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, - 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, - 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, - 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, - 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, + 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, + 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, + 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, - 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, - 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, - 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, + 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, + 0x0a }; -unsigned int parametersDefault_len = 31426; +unsigned int parametersDefault_len = 31381; From 0903f895f38454c4125cbbfabe66232b9a000121 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 29 Jun 2017 12:32:47 -0400 Subject: [PATCH 247/536] Fixed a bug for intron motif filtering introduced in efd61a --- ReadAlign_stitchWindowSeeds.cpp | 10 +--------- stitchWindowAligns.cpp | 10 +--------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index f253aa8..f6b9e6a 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -202,15 +202,6 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c trA.iFrag=-1; }; - trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; - for (uint iex=0;iex0) { - ++trA.intronMotifs[2-trA.canonSJ[iex]%2]; - }; - }; - if (P->scoreGenomicLengthLog2scale!=0) {//add gap length score trA.maxScore += int(ceil( log2( (double) ( trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] - trA.exons[0][EX_G]) ) \ * P->scoreGenomicLengthLog2scale - 0.5)); @@ -219,6 +210,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c //filter strand consistency uint sjN=0; + trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex=0) {//junctions - others are indels diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 32684f9..fb919e4 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -107,17 +107,9 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; if (trA.nExons>1 && trA.sjAnnot[trA.nExons-2]==1 && trA.exons[trA.nExons-1][EX_L] < P->alignSJDBoverhangMin) return; //this exon was not checkedin the cycle above - trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; - for (uint iex=0;iex0) { - ++trA.intronMotifs[2-trA.canonSJ[iex]%2]; - }; - }; - //filter strand consistency uint sjN=0; + trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex=0) {//junctions - others are indels From 7990c2dfcbffa230d5a4128212a9a62ef48c5d9c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 29 Jun 2017 14:41:18 -0400 Subject: [PATCH 248/536] Fixed an extra tab in the GTF lift-over. --- Chain.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Chain.cpp b/Chain.cpp index 1d40a9b..0b9b2c3 100644 --- a/Chain.cpp +++ b/Chain.cpp @@ -106,7 +106,7 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) }; if (c2[0]!=-1llu && c2[1]!=-1llu && c2[1]>=c2[0]) {//good conversion - streamOut << ch1->chr2 <<"\t"<< str1 <<"\t"<< str2 <<"\t"<chr2 <<"\t"<< str1 <<"\t"<< str2 <<"\t"< Date: Thu, 29 Jun 2017 15:40:13 -0400 Subject: [PATCH 249/536] Removed old commented debug lines. --- ReadAlign_chimericDetection.cpp | 40 --------------------------------- 1 file changed, 40 deletions(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 23c269f..f9dcc01 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -36,30 +36,6 @@ bool ReadAlign::chimericDetection() { //stich windows => chimeras //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows //stitch only one window on each end of the read - -// if (nTr>chimMainSegmentMultNmax) -// {//check main segment for multi-aligns -// if (nTr!=2) -// { -// return chimRecord;//false -// }; -// //special degenerate case: nTr=2 -// if (P.readNmates==2) -// {//PE -// uint f00=trMult[0]->exons[0][EX_iFrag]; -// uint f01=trMult[0]->exons[trMult[0]->nExons][EX_iFrag]; -// uint f10=trMult[1]->exons[0][EX_iFrag]; -// uint f11=trMult[1]->exons[trMult[1]->nExons][EX_iFrag]; -// -// if (f00==f10 || f00==f11 || f01==f10 || f01==f11) -// {//only allow this case if the two alignments reside on different mates -// return chimRecord; -// }; -// } else -// {//SE -// -// }; -// }; if (nTr>P.chimMainSegmentMultNmax && nTr!=2) {//multimapping main segment, nTr==2 is a secial case to be checked later @@ -93,16 +69,6 @@ bool ReadAlign::chimericDetection() { for (uint iWt=0; iWt0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) if (trBest==trAll[iW][0] && iWt==0) continue; - // {//same window - // if (iWt==0) continue; //do not check the best transcript itself - // if (trBest->exons[0][EX_R]<=trAll[iW][iWt]->exons[0][EX_R]) { - // //start of the last Best exon is before end of the first Chim exon - // if (trBest->exons[trBest->nExons-1][EX_G]exons[0][EX_G]+trAll[iW][iWt]->exons[0][EX_L]) continue; - // } else { - // if (trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_G]exons[0][EX_G]+trBest->exons[0][EX_L]) continue; - // }; - // }; - if (trAll[iW][iWt]->intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions uint chimStr1; if (trAll[iW][iWt]->intronMotifs[1]==0 && trAll[iW][iWt]->intronMotifs[2]==0) {//strand is undefined @@ -336,17 +302,11 @@ bool ReadAlign::chimericDetection() { };//large enough overhang };//chimeric junction is within a mate - //debug - // cout << readName <<"\t"<< (trChim[0].Str==0 ? chimJ1-chimJ0 : chimJ0-chimJ1) << "\t"<< (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax)<<"\n"; - // cout << chimRepeat0 <<"\t"< (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) {// - //&& (diff str || diff chr || - //|| gap > (alignIntronMax,alignMatesGapMax) ) negative gap = very large # because of uint - if (chimMotif>=0 && \ (trChim[0].exons[e0][EX_L] Date: Fri, 30 Jun 2017 14:13:48 -0400 Subject: [PATCH 250/536] Minor clean-up --- ReadAlign_chimericDetection.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index f9dcc01..5bc9d58 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -16,6 +16,7 @@ bool ReadAlign::chimericDetection() { bool chimRecord=false; + //output chains for out-of-STAR chimeric detection #ifdef OUTPUT_localChains { @@ -38,7 +39,7 @@ bool ReadAlign::chimericDetection() { //stitch only one window on each end of the read if (nTr>P.chimMainSegmentMultNmax && nTr!=2) - {//multimapping main segment, nTr==2 is a secial case to be checked later + {//multimapping main segment, nTr==2 is a special case to be checked later return chimRecord; }; From 89c668c8ff81d0f1d21ed952b3c583dc8ab4d53d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 30 Jun 2017 16:21:30 -0400 Subject: [PATCH 251/536] Reverted to non-var version of sjdbPrepare.cpp . Compiles and passes TestSuite. --- sjdbPrepare.cpp | 78 +++++++++++++++++++------------------------------ 1 file changed, 30 insertions(+), 48 deletions(-) diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index 0440094..b4c17da 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -3,6 +3,9 @@ #include "serviceFuns.cpp" void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string outDir, Genome & genome, char *Gsj) { + + char *G=genome.G; + uint *sjdbS=new uint [sjdbLoci.chr.size()]; uint *sjdbE=new uint [sjdbLoci.chr.size()]; @@ -10,8 +13,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string o uint8 *sjdbShiftLeft=new uint8 [sjdbLoci.chr.size()]; uint8 *sjdbShiftRight=new uint8 [sjdbLoci.chr.size()]; - char *G=genome.G; - + string chrOld=""; uint iChr=0; for (uint ii=0;iiyes) nsj1*=2; - - P.sjdbStart=new uint [nsj1]; - P.sjdbEnd=new uint [nsj1]; - P.sjdbMotif=new uint8 [nsj1]; - P.sjdbShiftLeft=new uint8 [nsj1]; - P.sjdbShiftRight=new uint8 [nsj1]; - P.sjdbStrand=new uint8 [nsj1]; - - vector>> sjdbSnp; - - nsj1=0; + P.sjdbStart=new uint [nsj]; + P.sjdbEnd=new uint [nsj]; + P.sjdbMotif=new uint8 [nsj]; + P.sjdbShiftLeft=new uint8 [nsj]; + P.sjdbShiftRight=new uint8 [nsj]; + P.sjdbStrand=new uint8 [nsj]; + uint nsj1=0; for (uint ii=0;ii>> sjdbSnp1=genome.Var->sjdbSnp(sjdbSort[ii*3],sjdbSort[ii*3+1],P.sjdbOverhang); - for (int ia=0; ia> P.genomeChrBinNbits]; From 69c4b24448fc683b6ac29c016f2bc66f592353e3 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 6 Jul 2017 12:31:56 -0400 Subject: [PATCH 252/536] Fixed some problems in the manual. Added calcInsertCoverage.awk script. --- parametersDefault | 21 +- parametersDefault.xxd | 4648 +++++++++++++++++++++-------------------- 2 files changed, 2346 insertions(+), 2323 deletions(-) diff --git a/parametersDefault b/parametersDefault index cb48d76..c885449 100644 --- a/parametersDefault +++ b/parametersDefault @@ -33,26 +33,32 @@ runDirPerm User_RWX runRNGseed 777 int: random number generator seed. + ### Genome Parameters genomeDir ./GenomeDir/ - string: path to the directory where genome files are stored (if runMode!=generateGenome) or will be generated (if runMode==generateGenome) + string: path to the directory where genome files are stored (for --runMode alignReads) or will be generated (for --runMode generateGenome) genomeLoad NoSharedMemory - string: mode of shared memory usage for the genome files + string: mode of shared memory usage for the genome files. Only used with --runMode alignReads. LoadAndKeep ... load genome into shared and keep it in memory after run LoadAndRemove ... load genome into shared but remove it after run LoadAndExit ... load genome into shared memory and exit, keeping the genome in memory for future runs Remove ... do not map anything, just remove loaded genome from memory NoSharedMemory ... do not use shared memory, each job will have its own private copy of the genome +genomeFastaFiles - + string(s): path(s) to the fasta files with the genome sequences, separated by spaces. These files should be plain text FASTA files, they *cannot* be zipped. + Required for the genome generation (--runMode genomeGenerate). Can also be used in the mapping (--runMode alignReads) to add extra (new) sequences to the genome (e.g. spike-ins). +genomeChainFiles - + string: chain files for genomic liftover. Only used with --runMode liftOver . -### Genome Generation Parameters +genomeFileSizes 0 + uint(s)>0: genome files exact sizes in bytes. Typically, this should not be defined by the user. -genomeFastaFiles - - string(s): path(s) to the fasta files with genomic sequences for genome generation, separated by spaces. Only used if runMode==genomeGenerate. These files should be plain text FASTA files, they *cannot* be zipped. +### Genome Indexing Parameters - only used with --runMode genomeGenerate genomeChrBinNbits 18 int: =log2(chrBin), where chrBin is the size of the bins for genome storage: each chromosome will occupy an integer number of bins. For a genome with large number of contigs, it is recommended to scale this parameter as min(18, log2[max(GenomeLength/NumberOfReferences,ReadLength)]). @@ -65,11 +71,6 @@ genomeSAsparseD 1 genomeSuffixLengthMax -1 int: maximum length of the suffixes, has to be longer than read length. -1 = infinite. -genomeChainFiles - - string: chain files for genomic liftover - -genomeFileSizes 0 - uint(s)>0: genome files exact sizes in bytes. Typically, this should not be defined by the user. ### Splice Junctions Database sjdbFileChrStartEnd - diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 49af664..672e42a 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -138,1647 +138,1709 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, - 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x21, - 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x28, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, - 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x64, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x4b, - 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, - 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, - 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, + 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, + 0x6e, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, + 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x28, - 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, - 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x3d, 0x3d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x20, 0x74, - 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x2a, 0x63, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, 0x7a, 0x69, - 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3d, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x29, - 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x72, 0x42, - 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, - 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, - 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x73, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x69, - 0x6e, 0x28, 0x31, 0x38, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x5b, 0x6d, - 0x61, 0x78, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x52, - 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x5d, 0x29, - 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, - 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, - 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, - 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, - 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, - 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x34, 0x2c, 0x20, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x29, 0x2f, 0x32, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x2e, 0x0a, - 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, - 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, - 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, - 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x3d, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, - 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, + 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, + 0x6b, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, + 0x75, 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, + 0x6f, 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, + 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x6f, - 0x76, 0x65, 0x72, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3e, 0x30, - 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, - 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, - 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, - 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, + 0x6c, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, + 0x20, 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x61, + 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x28, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x28, 0x6e, 0x65, 0x77, 0x29, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x2d, 0x69, 0x6e, 0x73, + 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, + 0x66, 0x74, 0x6f, 0x76, 0x65, 0x72, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x69, 0x66, + 0x74, 0x4f, 0x76, 0x65, 0x72, 0x20, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, + 0x73, 0x29, 0x3e, 0x30, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x65, 0x78, 0x61, 0x63, 0x74, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, + 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x20, 0x2d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, + 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x69, 0x67, 0x73, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x38, 0x2c, 0x20, 0x6c, 0x6f, + 0x67, 0x32, 0x5b, 0x6d, 0x61, 0x78, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x2c, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x5d, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, + 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, + 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x20, 0x46, + 0x6f, 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x2d, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x77, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x34, 0x2c, + 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2f, 0x32, 0x20, 0x2d, 0x20, + 0x31, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, + 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, + 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, + 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, + 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, + 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, + 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, + 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, + 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, + 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, + 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, - 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, - 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, - 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, - 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, - 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, - 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, + 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, - 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, - 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, - 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, + 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, + 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, + 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, + 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, + 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, - 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, - 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, + 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, + 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, + 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, + 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, + 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, + 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, + 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, + 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, - 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, - 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, - 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, - 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, - 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, - 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, - 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, + 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, + 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, + 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, + 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, + 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, + 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, + 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, - 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, + 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, + 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, + 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, + 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, + 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, + 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, + 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, - 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, - 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, - 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, - 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, - 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, - 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, - 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, - 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, - 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, - 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, + 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, + 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, - 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, - 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, - 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, - 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, + 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, + 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, + 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, + 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, + 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, + 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, + 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, - 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, - 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, - 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, - 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, - 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, - 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, - 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, + 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, + 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, + 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, + 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, - 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, + 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, + 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, + 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, + 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, + 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, + 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, + 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, - 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, + 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, - 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, + 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, - 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, - 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, - 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, - 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, - 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, - 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, - 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, - 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, + 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, + 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, + 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, + 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, + 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, + 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, + 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, + 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, - 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, + 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, - 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, - 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, 0x68, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, - 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, - 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, + 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, - 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, - 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, + 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, + 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, - 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, - 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, - 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, - 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, - 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, + 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, + 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, - 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, + 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, - 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, - 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, - 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, - 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, - 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, - 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, - 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, - 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, - 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, - 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, - 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, + 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, + 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, + 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, - 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, - 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, - 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, - 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, - 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, + 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, + 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, + 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, + 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, + 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, + 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, + 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, + 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, - 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, + 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, + 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, + 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, + 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, + 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, + 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, - 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, - 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, - 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, + 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, - 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, - 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, + 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, + 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, + 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, + 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, + 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, - 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, - 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, + 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, + 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, + 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, + 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, + 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, + 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, + 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, + 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, - 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, - 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, - 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, - 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, - 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, - 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, - 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, + 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, + 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, + 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, + 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, - 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, - 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, + 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, - 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, - 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, - 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, - 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, - 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, - 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, + 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, + 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, @@ -1811,809 +1873,769 @@ unsigned char parametersDefault[] = { 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, - 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, - 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, + 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, + 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, + 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, + 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, - 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, - 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, + 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, + 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, - 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, - 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, - 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, + 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, - 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, + 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, + 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, - 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, - 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, - 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, + 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, + 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, - 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, - 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, - 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, + 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, + 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, + 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, + 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, + 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, + 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, + 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, + 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, + 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, - 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, - 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, - 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, - 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, - 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, - 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, - 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, - 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, - 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, - 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, - 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, - 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, + 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, + 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, + 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, + 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, + 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, + 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, - 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, + 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, - 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, + 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, + 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, + 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, + 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, + 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, + 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, - 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, + 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, + 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, + 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, + 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, - 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, - 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, - 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, - 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, - 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, - 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, - 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, - 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, - 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, - 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, - 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, - 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, - 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, + 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, + 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, + 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, + 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, - 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, - 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, - 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, - 0x0a + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, + 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, + 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, + 0x0a, 0x0a }; -unsigned int parametersDefault_len = 31381; +unsigned int parametersDefault_len = 31646; From c24a9e50f6e16f9dd423f994924d823164ea5658 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 10 Jul 2017 13:24:05 -0400 Subject: [PATCH 253/536] Moving chimerir parameters into a separate class. --- Parameters.h | 19 +------------------ ParametersChimeric.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 18 deletions(-) create mode 100644 ParametersChimeric.h diff --git a/Parameters.h b/Parameters.h index c0d5eee..ce89f5a 100644 --- a/Parameters.h +++ b/Parameters.h @@ -307,25 +307,8 @@ class Parameters { } var; //chimeric - uint chimSegmentMin, chimJunctionOverhangMin; //min chimeric donor/acceptor length - uint chimSegmentReadGapMax; //max read gap for stitching chimeric windows - int chimScoreMin,chimScoreDropMax,chimScoreSeparation, chimScoreJunctionNonGTAG; //min chimeric score - uint chimMainSegmentMultNmax; - vector chimFilter; + ParametersChimeric parChim; - struct - { - struct - { - bool genomicN; - } filter; - struct - { - vector type; - bool bam; - bool bamHardClip; - } out; - } chim; //splitting char Qsplit; diff --git a/ParametersChimeric.h b/ParametersChimeric.h new file mode 100644 index 0000000..bdf3f00 --- /dev/null +++ b/ParametersChimeric.h @@ -0,0 +1,30 @@ +#ifndef CODE_ParametersChimeric +#define CODE_ParametersChimeric + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" + +class ParametersChimeric +{// + public: + uint chimSegmentMin, chimJunctionOverhangMin; //min chimeric donor/acceptor length + uint chimSegmentReadGapMax; //max read gap for stitching chimeric windows + int chimScoreMin,chimScoreDropMax,chimScoreSeparation, chimScoreJunctionNonGTAG; //min chimeric score + uint chimMainSegmentMultNmax; + vector chimFilter; + + struct + { + bool genomicN; + } filter; + struct + { + vector type; + bool bam; + bool bamHardClip; + } out; + private: +}; + +#endif \ No newline at end of file From eb0a3bc9cff06edcd047f841877a7c64801a6aab Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 3 Aug 2017 15:49:49 -0400 Subject: [PATCH 254/536] Finished chimeric parameters pCh. Compiles and passes TestSuite. --- Makefile | 2 +- Parameters.cpp | 64 +++-- Parameters.h | 3 +- ParametersChimeric.h | 15 +- ReadAlign.h | 1 + ReadAlignChunk.cpp | 2 +- ReadAlignChunk_processChunks.cpp | 2 +- ReadAlign_chimericDetection.cpp | 417 +-------------------------- ReadAlign_chimericDetectionMult.cpp | 415 +++++++++++++++++++++++++++ ReadAlign_chimericDetectionOld.cpp | 422 ++++++++++++++++++++++++++++ ReadAlign_outputAlignments.cpp | 2 +- ReadAlign_stitchPieces.cpp | 2 +- STAR.cpp | 4 +- parametersDefault | 7 + parametersDefault.xxd | 239 +++++++++------- stitchWindowAligns.cpp | 2 +- 16 files changed, 1038 insertions(+), 561 deletions(-) create mode 100644 ReadAlign_chimericDetectionMult.cpp create mode 100644 ReadAlign_chimericDetectionOld.cpp diff --git a/Makefile b/Makefile index 9652546..0dcd37f 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_outputAlignments.o \ ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o \ ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ - ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o \ + ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o\ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o sortSuffixesBucket.o funCompareUintAndSuffixesMemcmp.o \ diff --git a/Parameters.cpp b/Parameters.cpp index e5b18cc..150fe7f 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -194,16 +194,18 @@ Parameters::Parameters() {//initalize parameters info //chimeric - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &chimSegmentMin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &chimScoreMin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreDropMax", &chimScoreDropMax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreSeparation", &chimScoreSeparation)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMainSegmentMultNmax", &chimMainSegmentMultNmax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); - parArray.push_back(new ParameterInfoVector (-1, -1, "chimOutType", &chim.out.type)); - parArray.push_back(new ParameterInfoVector (-1, -1, "chimFilter", &chimFilter)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentReadGapMax", &chimSegmentReadGapMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &pCh.segmentMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &pCh.scoreMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreDropMax", &pCh.scoreDropMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreSeparation", &pCh.scoreSeparation)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &pCh.scoreJunctionNonGTAG)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMainSegmentMultNmax", &pCh.mainSegmentMultNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &pCh.junctionOverhangMin)); + parArray.push_back(new ParameterInfoVector (-1, -1, "chimOutType", &pCh.out.type)); + parArray.push_back(new ParameterInfoVector (-1, -1, "chimFilter", &pCh.filter.stringIn)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentReadGapMax", &pCh.segmentReadGapMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMultimapNmax", &pCh.multimapNmax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMultimapScoreRange", &pCh.multimapScoreRange)); //sjdb parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); @@ -936,66 +938,66 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //chimeric - if (chim.out.type.at(0)=="WithinBAM") + if (pCh.out.type.at(0)=="WithinBAM") { - chim.out.bam=true; - } else if (chim.out.type.at(0)=="SeparateSAMold") + pCh.out.bam=true; + } else if (pCh.out.type.at(0)=="SeparateSAMold") { - chim.out.bam=false; + pCh.out.bam=false; } else{ ostringstream errOut; - errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for the first word of --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); }; - if (chim.out.bam && !outBAMunsorted && !outBAMcoord) { + if (pCh.out.bam && !outBAMunsorted && !outBAMcoord) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - if (chim.out.bam && !outSAMattrPresent.NM) { + if (pCh.out.bam && !outSAMattrPresent.NM) { outSAMattrOrder.push_back(ATTR_NM); inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <1) + pCh.out.bamHardClip=true;//default + if (pCh.out.type.size()>1) { - if (chim.out.type.at(1)=="HardClip") + if (pCh.out.type.at(1)=="HardClip") { - chim.out.bamHardClip=true; - } else if (chim.out.type.at(1)=="SoftClip") + pCh.out.bamHardClip=true; + } else if (pCh.out.type.at(1)=="SoftClip") { - chim.out.bamHardClip=false; + pCh.out.bamHardClip=false; } else { ostringstream errOut; - errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for the 2nd word of --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); }; }; }; - chim.filter.genomicN=false; - for (uint ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); }; diff --git a/Parameters.h b/Parameters.h index ce89f5a..8467817 100644 --- a/Parameters.h +++ b/Parameters.h @@ -8,6 +8,7 @@ #include "TimeFunctions.h" #include #include +#include "ParametersChimeric.h" class Parameters { @@ -307,7 +308,7 @@ class Parameters { } var; //chimeric - ParametersChimeric parChim; + ParametersChimeric pCh; //splitting diff --git a/ParametersChimeric.h b/ParametersChimeric.h index bdf3f00..62f1137 100644 --- a/ParametersChimeric.h +++ b/ParametersChimeric.h @@ -2,22 +2,23 @@ #define CODE_ParametersChimeric #include "IncludeDefine.h" -#include "Parameters.h" -#include "Transcript.h" class ParametersChimeric {// public: - uint chimSegmentMin, chimJunctionOverhangMin; //min chimeric donor/acceptor length - uint chimSegmentReadGapMax; //max read gap for stitching chimeric windows - int chimScoreMin,chimScoreDropMax,chimScoreSeparation, chimScoreJunctionNonGTAG; //min chimeric score - uint chimMainSegmentMultNmax; - vector chimFilter; + uint segmentMin, junctionOverhangMin; //min chimeric donor/acceptor length + uint segmentReadGapMax; //max read gap for stitching chimeric windows + int scoreMin,scoreDropMax,scoreSeparation, scoreJunctionNonGTAG; //min chimeric score + uint mainSegmentMultNmax; + + uint multimapScoreRange, multimapNmax; struct { + vector stringIn; bool genomicN; } filter; + struct { vector type; diff --git a/ReadAlign.h b/ReadAlign.h index 2af25ac..869af33 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -145,6 +145,7 @@ class ReadAlign int createExtendWindowsWithAlign(uint a1, uint aStr); //extends and windows with one alignment void assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep, uint aFrag, uint aRstart,bool aAnchor, uint sjA); //assigns one alignment to a window bool chimericDetection(); + bool chimericDetectionOld(); void outputAlignments(); void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q);//stitches all seeds in one window: iW diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index ef60f40..a91d5a9 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -69,7 +69,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome RA->chunkOutSJ=chunkOutSJ; RA->chunkOutSJ1=chunkOutSJ1; - if (P.chimSegmentMin>0) { + if (P.pCh.segmentMin>0) { chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); }; diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 63b9a4f..de8904f 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -156,7 +156,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks if (chunkOutBAMquant!=NULL) chunkOutBAMquant->unsortedFlush(); //the thread is finished mapping reads, concatenate the temp files into output files - if (P.chimSegmentMin>0) { + if (P.pCh.segmentMin>0) { chunkFstreamCat (RA->chunkOutChimSAM, P.inOut->outChimSAM, P.runThreadN>1, g_threadChunks.mutexOutChimSAM); chunkFstreamCat (RA->chunkOutChimJunction, P.inOut->outChimJunction, P.runThreadN>1, g_threadChunks.mutexOutChimJunction); }; diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 5bc9d58..5aa450f 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -15,8 +15,6 @@ bool ReadAlign::chimericDetection() { - bool chimRecord=false; - //output chains for out-of-STAR chimeric detection #ifdef OUTPUT_localChains { @@ -33,414 +31,15 @@ bool ReadAlign::chimericDetection() { }; }; #endif - //////////////////// chimeras - //stich windows => chimeras - //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows - //stitch only one window on each end of the read - - if (nTr>P.chimMainSegmentMultNmax && nTr!=2) - {//multimapping main segment, nTr==2 is a special case to be checked later - return chimRecord; - }; - - if (P.chimSegmentMin>0 && trBest->rLength >= P.chimSegmentMin \ - && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.chimSegmentMin <= Lread \ - || trBest->exons[0][EX_R] >= P.chimSegmentMin ) \ - && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { - //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif - int chimScoreBest=0,chimScoreNext=0; - trChim[0]=*trBest; - Transcript* trChim1=NULL; - - uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; - uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; - if (roStart1>readLength[0]) roStart1--; - if (roEnd1>readLength[0]) roEnd1--; - - uint chimStrBest=0; - if (trBest->intronMotifs[1]==0 && trBest->intronMotifs[2]==0) {//strand is undefined - chimStr=0; - } else if ( (trBest->Str==0) == (trBest->intronMotifs[1]>0)) {//strand the same as RNA - chimStr=1; - } else {//strand opposite to RNA - chimStr=2; - }; - - for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) - if (trBest==trAll[iW][0] && iWt==0) continue; - if (trAll[iW][iWt]->intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions - uint chimStr1; - if (trAll[iW][iWt]->intronMotifs[1]==0 && trAll[iW][iWt]->intronMotifs[2]==0) {//strand is undefined - chimStr1=0; - } else if ( (trAll[iW][iWt]->Str==0) == (trAll[iW][iWt]->intronMotifs[1]>0)) {//strand the same as RNA - chimStr1=1; - } else {//strand opposite to RNA - chimStr1=2; - }; - - if (chimStr!=0 && chimStr1!=0 && chimStr!=chimStr1) continue; //chimeric segments have to have consitent strands - - uint roStart2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[0][EX_R] : Lread - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L]; - uint roEnd2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] + trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L] - 1 : Lread - trAll[iW][iWt]->exons[0][EX_R] - 1; - if (roStart2>readLength[0]) roStart2--; - if (roEnd2>readLength[0]) roEnd2--; - - uint chimOverlap = roStart2>roStart1 ? (roStart2>roEnd1 ? 0 : roEnd1-roStart2+1) : (roEnd2= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); - - //segment lengths && (different mates || small gap between segments) - if (roEnd1 > P.chimSegmentMin + roStart1 + chimOverlap && roEnd2> P.chimSegmentMin + roStart2 + chimOverlap \ - && ( diffMates || ( (roEnd1 + P.chimSegmentReadGapMax + 1) >= roStart2 && (roEnd2 + P.chimSegmentReadGapMax + 1) >= roStart1 ) ) ) { - - int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting - - uint overlap1=0; - if (iWt>0 && chimScoreBest>0) - {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. - overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); - }; - - if (chimScore > chimScoreBest && chimScore >= P.chimScoreMin && chimScore+P.chimScoreDropMax >= (int) (readLength[0]+readLength[1]) ) { - trChim[1]=*trAll[iW][iWt]; - trChim1=trAll[iW][iWt]; - if (overlap1==0) - { - chimScoreNext=chimScoreBest; - }; - chimScoreBest=chimScore; - trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; - trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; - chimStrBest=chimStr1; - } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one - chimScoreNext=chimScore; - }; - }; - };//cycle over window transcripts - };//cycle over windows - - if (nTr>P.chimMainSegmentMultNmax) - {//check main segment for multi-aligns - //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment - if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) - { - return chimRecord; - }; - }; - - - if (chimStr==0) chimStr=chimStrBest; - - chimN=0; - if (chimScoreNext + P.chimScoreSeparation < chimScoreBest) {//report only if chimera is unique - - if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); - - uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; - uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; - - uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; - int chimMotif=0; - chimN=2; - if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one - chimN=0;//reject such chimeras - //good test example: - //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT - //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA - } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction - chimN=2; - chimRepeat=0; - chimMotif=-1; - if (trChim[0].Str==1) {//negative strand - chimJ0=trChim[0].exons[e0][EX_G]-1; - } else { - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; - if (trChim[1].Str==0) {//positive strand - chimJ1=trChim[1].exons[e1][EX_G]-1; - } else { - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; - }; - } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - if (trChim[0].exons[e0][EX_L]>=P.chimJunctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.chimJunctionOverhangMin ) {//large enough overhang required - uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; - uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; - - uint jR, jRbest=0; - int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read - chimN=0; - break; - }; - - char b01,b02,b11,b12; - if (trChim[0].Str==0) { - b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; - b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; - } else { - b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; - if (b01<4) b01=3-b01; - b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; - if (b02<4) b02=3-b02; - }; - if (trChim[1].Str==0) { - b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; - b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; - } else { - b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; - if (b11<4) b11=3-b11; - b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; - if (b12<4) b12=3-b12; - }; - - jMotif=0; - if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG - if (chimStr!=2) { - jMotif=1; - }; - } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC - if (chimStr!=1) { - jMotif=2; - }; - }; - - if (bR==b0 && bR!=b1) { - jScore++; - } else if (bR!=b0 && bR==b1) { - jScore--; - }; - - jScoreJ =jMotif==0 ? jScore + P.chimScoreJunctionNonGTAG : jScore ; - - if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { - chimMotif=jMotif; - jRbest=jR; - jScoreBest=jScoreJ; - }; - };//jR cycle - if (chimN>0) {//else the chimera was rejected because of mismatches - - //shift junction in trChim - if (trChim[0].Str==1) { - trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]-1; - } else { - trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; - - if (trChim[1].Str==0) { - trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]-1; - } else { - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; - }; - //find repeats - char b0,b1; - uint jR; - for (jR=0;jR<100;jR++) {//forward check - if (trChim[0].Str==0) { - b0=mapGen.G[chimJ0+jR]; - } else { - b0=mapGen.G[chimJ0-jR]; - if (b0<4) b0=3-b0; - }; - - if (trChim[1].Str==0) { - b1=mapGen.G[chimJ1+1+jR]; - } else { - b1=mapGen.G[chimJ1-1-jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; - }; - chimRepeat1=jR; - for (jR=0;jR<100;jR++) {//reverse check - if (trChim[0].Str==0) { - b0=mapGen.G[chimJ0-1-jR]; - } else { - b0=mapGen.G[chimJ0+1+jR]; - if (b0<4) b0=3-b0; - }; - - if (trChim[1].Str==0) { - b1=mapGen.G[chimJ1-jR]; - } else { - b1=mapGen.G[chimJ1+jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; - }; - chimRepeat0=jR; - };//chimN>0 - };//large enough overhang - };//chimeric junction is within a mate - - //chimeric alignments output - if ( chimN==2 \ - && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ - || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) - {// - if (chimMotif>=0 && \ - (trChim[0].exons[e0][EX_L] trChim[1].maxScore) ? 0 : 1; - chimType = 3; - trChim[chimRepresent].primaryFlag=true; - trChim[1-chimRepresent].primaryFlag=false; - }; - - if (P.chim.out.bam) {//BAM output - int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; - uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering - uint mateChr,mateStart; - uint8_t mateStrand; - for (uint itr=0;itr=0) { - bam1_t *b; - b=bam_init1(); - bam_read1_fromArray(outBAMoneAlign[tagI], b); - uint8_t* auxp=bam_aux_get(b,"NM"); - uint32_t auxv=bam_aux2i(auxp); - string tagSA1="SAZ"+P.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ - ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; - - memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end - outBAMoneAlignNbytes[ii]+=tagSA1.size()+1; - * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); - }; - - if (P.outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); - if (P.outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); - }; - }; + bool chimRecord=false; - for (uint iTr=0;iTr0 && trBest->rLength >= P.pCh.segmentMin \ + && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ + || trBest->exons[0][EX_R] >= P.pCh.segmentMin ) \ + && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { + //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif + int chimScoreBest=0,chimScoreNext=0; + trChim[0]=*trBest; + Transcript* trChim1=NULL; + + uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; + uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; + if (roStart1>readLength[0]) roStart1--; + if (roEnd1>readLength[0]) roEnd1--; + + uint chimStrBest=0; + if (trBest->intronMotifs[1]==0 && trBest->intronMotifs[2]==0) {//strand is undefined + chimStr=0; + } else if ( (trBest->Str==0) == (trBest->intronMotifs[1]>0)) {//strand the same as RNA + chimStr=1; + } else {//strand opposite to RNA + chimStr=2; + }; + + for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) + if (trBest==trAll[iW][0] && iWt==0) continue; + if (trAll[iW][iWt]->intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions + uint chimStr1; + if (trAll[iW][iWt]->intronMotifs[1]==0 && trAll[iW][iWt]->intronMotifs[2]==0) {//strand is undefined + chimStr1=0; + } else if ( (trAll[iW][iWt]->Str==0) == (trAll[iW][iWt]->intronMotifs[1]>0)) {//strand the same as RNA + chimStr1=1; + } else {//strand opposite to RNA + chimStr1=2; + }; + + if (chimStr!=0 && chimStr1!=0 && chimStr!=chimStr1) continue; //chimeric segments have to have consitent strands + + uint roStart2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[0][EX_R] : Lread - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L]; + uint roEnd2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] + trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L] - 1 : Lread - trAll[iW][iWt]->exons[0][EX_R] - 1; + if (roStart2>readLength[0]) roStart2--; + if (roEnd2>readLength[0]) roEnd2--; + + uint chimOverlap = roStart2>roStart1 ? (roStart2>roEnd1 ? 0 : roEnd1-roStart2+1) : (roEnd2= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); + + //segment lengths && (different mates || small gap between segments) + if (roEnd1 > P.pCh.segmentMin + roStart1 + chimOverlap && roEnd2> P.pCh.segmentMin + roStart2 + chimOverlap \ + && ( diffMates || ( (roEnd1 + P.pCh.segmentReadGapMax + 1) >= roStart2 && (roEnd2 + P.pCh.segmentReadGapMax + 1) >= roStart1 ) ) ) { + + int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + + uint overlap1=0; + if (iWt>0 && chimScoreBest>0) + {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. + overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); + }; + + if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { + trChim[1]=*trAll[iW][iWt]; + trChim1=trAll[iW][iWt]; + if (overlap1==0) + { + chimScoreNext=chimScoreBest; + }; + chimScoreBest=chimScore; + trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; + trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; + chimStrBest=chimStr1; + } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one + chimScoreNext=chimScore; + }; + }; + };//cycle over window transcripts + };//cycle over windows + + if (nTr>P.pCh.mainSegmentMultNmax) + {//check main segment for multi-aligns + //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment + if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) + { + return chimRecord; + }; + }; + + + if (chimStr==0) chimStr=chimStrBest; + + chimN=0; + if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique + + if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); + + uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; + uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; + + uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; + int chimMotif=0; + chimN=2; + if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one + chimN=0;//reject such chimeras + //good test example: + //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT + //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA + } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction + chimN=2; + chimRepeat=0; + chimMotif=-1; + if (trChim[0].Str==1) {//negative strand + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + if (trChim[1].Str==0) {//positive strand + chimJ1=trChim[1].exons[e1][EX_G]-1; + } else { + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; + } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary + if (trChim[0].exons[e0][EX_L]>=P.pCh.junctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.pCh.junctionOverhangMin ) {//large enough overhang required + uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; + uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; + + uint jR, jRbest=0; + int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; + for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read + chimN=0; + break; + }; + + char b01,b02,b11,b12; + if (trChim[0].Str==0) { + b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; + } else { + b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; + if (b01<4) b01=3-b01; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; + if (b02<4) b02=3-b02; + }; + if (trChim[1].Str==0) { + b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; + b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + } else { + b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; + if (b11<4) b11=3-b11; + b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + if (b12<4) b12=3-b12; + }; + + jMotif=0; + if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG + if (chimStr!=2) { + jMotif=1; + }; + } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC + if (chimStr!=1) { + jMotif=2; + }; + }; + + if (bR==b0 && bR!=b1) { + jScore++; + } else if (bR!=b0 && bR==b1) { + jScore--; + }; + + jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; + + if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { + chimMotif=jMotif; + jRbest=jR; + jScoreBest=jScoreJ; + }; + };//jR cycle + if (chimN>0) {//else the chimera was rejected because of mismatches + + //shift junction in trChim + if (trChim[0].Str==1) { + trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + + if (trChim[1].Str==0) { + trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; + trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]-1; + } else { + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; + //find repeats + char b0,b1; + uint jR; + for (jR=0;jR<100;jR++) {//forward check + if (trChim[0].Str==0) { + b0=mapGen.G[chimJ0+jR]; + } else { + b0=mapGen.G[chimJ0-jR]; + if (b0<4) b0=3-b0; + }; + + if (trChim[1].Str==0) { + b1=mapGen.G[chimJ1+1+jR]; + } else { + b1=mapGen.G[chimJ1-1-jR]; + if (b1<4) b1=3-b1; + }; + if (b0!=b1) break; + }; + chimRepeat1=jR; + for (jR=0;jR<100;jR++) {//reverse check + if (trChim[0].Str==0) { + b0=mapGen.G[chimJ0-1-jR]; + } else { + b0=mapGen.G[chimJ0+1+jR]; + if (b0<4) b0=3-b0; + }; + + if (trChim[1].Str==0) { + b1=mapGen.G[chimJ1-jR]; + } else { + b1=mapGen.G[chimJ1+jR]; + if (b1<4) b1=3-b1; + }; + if (b0!=b1) break; + }; + chimRepeat0=jR; + };//chimN>0 + };//large enough overhang + };//chimeric junction is within a mate + + //chimeric alignments output + if ( chimN==2 \ + && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ + || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) + {// + if (chimMotif>=0 && \ + (trChim[0].exons[e0][EX_L] trChim[1].maxScore) ? 0 : 1; + chimType = 3; + trChim[chimRepresent].primaryFlag=true; + trChim[1-chimRepresent].primaryFlag=false; + }; + + if (P.pCh.out.bam) {//BAM output + int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; + uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering + uint mateChr,mateStart; + uint8_t mateStrand; + for (uint itr=0;itr=0) { + bam1_t *b; + b=bam_init1(); + bam_read1_fromArray(outBAMoneAlign[tagI], b); + uint8_t* auxp=bam_aux_get(b,"NM"); + uint32_t auxv=bam_aux2i(auxp); + string tagSA1="SAZ"+P.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; + + memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end + outBAMoneAlignNbytes[ii]+=tagSA1.size()+1; + * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); + }; + + if (P.outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); + if (P.outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); + }; + }; + + + for (uint iTr=0;iTr chimeras + //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows + //stitch only one window on each end of the read + + if (nTr>P.pCh.mainSegmentMultNmax && nTr!=2) + {//multimapping main segment, nTr==2 is a special case to be checked later + return chimRecord; + }; + + if (P.pCh.segmentMin>0 && trBest->rLength >= P.pCh.segmentMin \ + && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ + || trBest->exons[0][EX_R] >= P.pCh.segmentMin ) \ + && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { + //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif + int chimScoreBest=0,chimScoreNext=0; + trChim[0]=*trBest; + Transcript* trChim1=NULL; + + uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; + uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; + if (roStart1>readLength[0]) roStart1--; + if (roEnd1>readLength[0]) roEnd1--; + + uint chimStrBest=0; + if (trBest->intronMotifs[1]==0 && trBest->intronMotifs[2]==0) {//strand is undefined + chimStr=0; + } else if ( (trBest->Str==0) == (trBest->intronMotifs[1]>0)) {//strand the same as RNA + chimStr=1; + } else {//strand opposite to RNA + chimStr=2; + }; + + for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) + if (trBest==trAll[iW][0] && iWt==0) continue; + if (trAll[iW][iWt]->intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions + uint chimStr1; + if (trAll[iW][iWt]->intronMotifs[1]==0 && trAll[iW][iWt]->intronMotifs[2]==0) {//strand is undefined + chimStr1=0; + } else if ( (trAll[iW][iWt]->Str==0) == (trAll[iW][iWt]->intronMotifs[1]>0)) {//strand the same as RNA + chimStr1=1; + } else {//strand opposite to RNA + chimStr1=2; + }; + + if (chimStr!=0 && chimStr1!=0 && chimStr!=chimStr1) continue; //chimeric segments have to have consitent strands + + uint roStart2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[0][EX_R] : Lread - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L]; + uint roEnd2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] + trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L] - 1 : Lread - trAll[iW][iWt]->exons[0][EX_R] - 1; + if (roStart2>readLength[0]) roStart2--; + if (roEnd2>readLength[0]) roEnd2--; + + uint chimOverlap = roStart2>roStart1 ? (roStart2>roEnd1 ? 0 : roEnd1-roStart2+1) : (roEnd2= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); + + //segment lengths && (different mates || small gap between segments) + if (roEnd1 > P.pCh.segmentMin + roStart1 + chimOverlap && roEnd2> P.pCh.segmentMin + roStart2 + chimOverlap \ + && ( diffMates || ( (roEnd1 + P.pCh.segmentReadGapMax + 1) >= roStart2 && (roEnd2 + P.pCh.segmentReadGapMax + 1) >= roStart1 ) ) ) { + + int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + + uint overlap1=0; + if (iWt>0 && chimScoreBest>0) + {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. + overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); + }; + + if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { + trChim[1]=*trAll[iW][iWt]; + trChim1=trAll[iW][iWt]; + if (overlap1==0) + { + chimScoreNext=chimScoreBest; + }; + chimScoreBest=chimScore; + trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; + trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; + chimStrBest=chimStr1; + } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one + chimScoreNext=chimScore; + }; + }; + };//cycle over window transcripts + };//cycle over windows + + if (nTr>P.pCh.mainSegmentMultNmax) + {//check main segment for multi-aligns + //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment + if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) + { + return chimRecord; + }; + }; + + + if (chimStr==0) chimStr=chimStrBest; + + chimN=0; + if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique + + if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); + + uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; + uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; + + uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; + int chimMotif=0; + chimN=2; + if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one + chimN=0;//reject such chimeras + //good test example: + //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT + //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA + } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction + chimN=2; + chimRepeat=0; + chimMotif=-1; + if (trChim[0].Str==1) {//negative strand + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + if (trChim[1].Str==0) {//positive strand + chimJ1=trChim[1].exons[e1][EX_G]-1; + } else { + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; + } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary + if (trChim[0].exons[e0][EX_L]>=P.pCh.junctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.pCh.junctionOverhangMin ) {//large enough overhang required + uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; + uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; + + uint jR, jRbest=0; + int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; + for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read + chimN=0; + break; + }; + + char b01,b02,b11,b12; + if (trChim[0].Str==0) { + b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; + } else { + b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; + if (b01<4) b01=3-b01; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; + if (b02<4) b02=3-b02; + }; + if (trChim[1].Str==0) { + b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; + b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + } else { + b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; + if (b11<4) b11=3-b11; + b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + if (b12<4) b12=3-b12; + }; + + jMotif=0; + if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG + if (chimStr!=2) { + jMotif=1; + }; + } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC + if (chimStr!=1) { + jMotif=2; + }; + }; + + if (bR==b0 && bR!=b1) { + jScore++; + } else if (bR!=b0 && bR==b1) { + jScore--; + }; + + jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; + + if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { + chimMotif=jMotif; + jRbest=jR; + jScoreBest=jScoreJ; + }; + };//jR cycle + if (chimN>0) {//else the chimera was rejected because of mismatches + + //shift junction in trChim + if (trChim[0].Str==1) { + trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + + if (trChim[1].Str==0) { + trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; + trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]-1; + } else { + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; + //find repeats + char b0,b1; + uint jR; + for (jR=0;jR<100;jR++) {//forward check + if (trChim[0].Str==0) { + b0=mapGen.G[chimJ0+jR]; + } else { + b0=mapGen.G[chimJ0-jR]; + if (b0<4) b0=3-b0; + }; + + if (trChim[1].Str==0) { + b1=mapGen.G[chimJ1+1+jR]; + } else { + b1=mapGen.G[chimJ1-1-jR]; + if (b1<4) b1=3-b1; + }; + if (b0!=b1) break; + }; + chimRepeat1=jR; + for (jR=0;jR<100;jR++) {//reverse check + if (trChim[0].Str==0) { + b0=mapGen.G[chimJ0-1-jR]; + } else { + b0=mapGen.G[chimJ0+1+jR]; + if (b0<4) b0=3-b0; + }; + + if (trChim[1].Str==0) { + b1=mapGen.G[chimJ1-jR]; + } else { + b1=mapGen.G[chimJ1+jR]; + if (b1<4) b1=3-b1; + }; + if (b0!=b1) break; + }; + chimRepeat0=jR; + };//chimN>0 + };//large enough overhang + };//chimeric junction is within a mate + + //chimeric alignments output + if ( chimN==2 \ + && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ + || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) + {// + if (chimMotif>=0 && \ + (trChim[0].exons[e0][EX_L] trChim[1].maxScore) ? 0 : 1; + chimType = 3; + trChim[chimRepresent].primaryFlag=true; + trChim[1-chimRepresent].primaryFlag=false; + }; + + if (P.pCh.out.bam) {//BAM output + int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; + uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering + uint mateChr,mateStart; + uint8_t mateStrand; + for (uint itr=0;itr=0) { + bam1_t *b; + b=bam_init1(); + bam_read1_fromArray(outBAMoneAlign[tagI], b); + uint8_t* auxp=bam_aux_get(b,"NM"); + uint32_t auxv=bam_aux2i(auxp); + string tagSA1="SAZ"+P.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; + + memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end + outBAMoneAlignNbytes[ii]+=tagSA1.size()+1; + * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); + }; + + if (P.outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); + if (P.outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); + }; + }; + + + for (uint iTr=0;iTr0) { + if (P.pCh.segmentMin>0) { for (uint ia=0;ia0) { + if (P.pCh.segmentMin>0) { P.inOut->outChimJunction.open((P.outFileNamePrefix + "Chimeric.out.junction").c_str()); P.inOut->outChimSAM.open((P.outFileNamePrefix + "Chimeric.out.sam").c_str()); P.inOut->outChimSAM << P.samHeader; diff --git a/parametersDefault b/parametersDefault index eda6b71..d47ca00 100644 --- a/parametersDefault +++ b/parametersDefault @@ -578,6 +578,13 @@ chimFilter banGenomicN chimMainSegmentMultNmax 10 int>=1: maximum number of multi-alignments for the main chimeric segment. =1 will prohibit multimapping main segments. +chimMultimapNmax 0 + int>=0: maximum number of multi-alignments for the chimera + 0 ... use the old scheme for chimeric detection which only considered unique alignments + +chimMultimapScoreRange 1 + int>=0: the score range for multi-mapping chimeras below the best chimeric score + ### Quantification of Annotations quantMode - string(s): types of quantification requested diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 28fd491..a7d0757 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2517,113 +2517,142 @@ unsigned char parametersDefault[] = { 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, + 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, + 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, - 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, - 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, - 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, - 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, + 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, + 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, + 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, + 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, + 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 31512; +unsigned int parametersDefault_len = 31854; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 3987c89..43222a7 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -242,7 +242,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui // transcript has been finalized, compare the score and record if ( Score+P.outFilterMultimapScoreRange >= wTr[0]->maxScore \ || ( trA.iFrag>=0 && Score+P.outFilterMultimapScoreRange >= RA->maxScoreMate[trA.iFrag] ) \ - || P.chimSegmentMin>0) { + || P.pCh.segmentMin>0) { //only record the transcripts within the window that are in the Score range //OR within the score range of each mate //OR all transcript if chimeric detection is activated From 359f0eb00618527f18d8687f30940b9b45abdfeb Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 4 Aug 2017 15:29:56 -0400 Subject: [PATCH 255/536] Coding chimericDetectionMult. Compiles and passes basic test. --- ChimericSegment.cpp | 16 ++++++ ChimericTranscript.h | 19 +++++++ Makefile | 3 +- ParGenome.h | 46 ++++++++++++++++ ReadAlign.h | 5 +- ReadAlign_chimericDetection.cpp | 1 + ReadAlign_chimericDetectionMult.cpp | 81 ++++++++++++++--------------- 7 files changed, 128 insertions(+), 43 deletions(-) create mode 100644 ChimericSegment.cpp create mode 100644 ChimericTranscript.h create mode 100644 ParGenome.h diff --git a/ChimericSegment.cpp b/ChimericSegment.cpp new file mode 100644 index 0000000..3661e8c --- /dev/null +++ b/ChimericSegment.cpp @@ -0,0 +1,16 @@ +#include "ChimericSegment.h" + +ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn, uint Lread, uint *readLengthIn) : P(Pin), align(alignIn), readLength(readLengthIn) +{ + if (align.intronMotifs[1]==0 && align.intronMotifs[2]==0) {//strand is undefined + str=0; + } else if ( (align.Str==0) == (align.intronMotifs[1]>0)) {//strand the same as RNA + str=1; + } else {//strand opposite to RNA + str=2; + }; + uint roS=align.Str==0 ? align.exons[0][EX_R] : Lread - align.exons[align.nExons-1][EX_R] - align.exons[align.nExons-1][EX_L]; + uint roE=align.Str==0 ? align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] - 1 : Lread - align.exons[0][EX_R] - 1; + if (roS>readLength[0]) roS--; + if (roE>readLength[0]) roE--; +}; \ No newline at end of file diff --git a/ChimericTranscript.h b/ChimericTranscript.h new file mode 100644 index 0000000..0cb76ec --- /dev/null +++ b/ChimericTranscript.h @@ -0,0 +1,19 @@ +#ifndef CODE_ChimericTranscript +#define CODE_ChimericTranscript + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" + +class ChimericTranscript +{// + public: + Transcript **chTrs; //all chimeric transcripts + uint nCh; //number of recorded (best) chimeric transcripts + uint nChSize; //size of the chTrs array, will be increased if nCh > nChSize + + ChimericTranscript(Parameters &Pin); //allocate + private: +}; + +#endif \ No newline at end of file diff --git a/Makefile b/Makefile index 0dcd37f..f142816 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,8 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_outputAlignments.o \ ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o \ ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ - ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o\ + ReadAlign_stitchWindowSeeds.o \ + ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionMult.o ChimericSegment.cpp \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o sortSuffixesBucket.o funCompareUintAndSuffixesMemcmp.o \ diff --git a/ParGenome.h b/ParGenome.h new file mode 100644 index 0000000..6d2795f --- /dev/null +++ b/ParGenome.h @@ -0,0 +1,46 @@ +#ifndef DEF_ParGenome +#define DEF_ParGenome + +class ParGenome {//"constant" genome parameters + public: + vector chrStart, chrLength, chrLengthAll; + string genomeDir,genomeLoad; + vector genomeFastaFiles, genomeChainFiles; + uint genomeSAsparseD;//sparsity=distance between indices + uint genomeInsertL; //total length of the sequence to be inserted on the fly + uint genomeInsertChrIndFirst; //index of the first inserted chromosome + uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length + vector genomeFileSizes; //size of the genome files + + uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; + + uint genomeSAindexNbases; //length of the SA pre-index strings + uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases + + //SJ database parameters + vector sjdbFileChrStartEnd; + string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; + uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer + int sjdbOverhang_par; + int sjdbScore; + + uint sjChrStart,sjdbN; //first sj-db chr + uint sjGstart; //start of the sj-db genome sequence + uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci + uint8 *sjdbMotif; //motifs of annotated junctions + uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions + uint8 *sjdbStrand; //junctions strand, not used yet + + //Genome parameters + uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci + uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass + uint nSAi; //size of the SAindex + vector chrName, chrNameAll; + map chrNameIndex; + unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information + uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index + + +}; + +#endif \ No newline at end of file diff --git a/ReadAlign.h b/ReadAlign.h index 869af33..d2eb829 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -144,8 +144,11 @@ class ReadAlign void outTxtMain(ofstream*,Transcript&); int createExtendWindowsWithAlign(uint a1, uint aStr); //extends and windows with one alignment void assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep, uint aFrag, uint aRstart,bool aAnchor, uint sjA); //assigns one alignment to a window + bool chimericDetection(); - bool chimericDetectionOld(); + bool chimericDetectionOld(); + bool chimericDetectionMult(); + void outputAlignments(); void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q);//stitches all seeds in one window: iW diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 5aa450f..d023ca0 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -39,6 +39,7 @@ bool ReadAlign::chimericDetection() { chimRecord=chimericDetectionOld(); } else { + chimRecord=chimericDetectionMult(); }; return chimRecord; diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index ef4a6e6..a77a812 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -4,13 +4,38 @@ #include "ReadAlign.h" #include "BAMfunctions.h" #include "blocksOverlap.h" +#include "ChimericSegment.h" + +int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) +{ + int chimScore=0; + uint chimOverlap = seg2.roS>seg1.roS ? (seg2.roS>seg1.roE ? 0 : seg1.roE-seg2.roS+1) : (seg2.roE= seg1.readLength[0]) || (seg2.roE < seg1.readLength[0] && seg1.roS >= seg1.readLength[0]); + + //segment lengths && (different mates || small gap between segments) + if (seg1.roE > seg1.P.pCh.segmentMin + seg1.roS + chimOverlap && seg2.roE > seg1.P.pCh.segmentMin + seg2.roS + chimOverlap \ + && ( diffMates || ( (seg1.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg2.roS && (seg2.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg1.roS ) ) ) + { + chimScore=chimScore= seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + }; + + return chimScore; +}; +///////////////////////////////////////////////////////////// bool ReadAlign::chimericDetectionMult() { bool chimRecord=false; - //scan through all aligns + //////////////////// chimeras + //stich windows => chimeras + //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows + //stitch only one window on each end of the read + if (nTr>P.pCh.mainSegmentMultNmax && nTr!=2) + {//multimapping main segment, nTr==2 is a special case to be checked later + return chimRecord; + }; if (P.pCh.segmentMin>0 && trBest->rLength >= P.pCh.segmentMin \ && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ @@ -18,53 +43,27 @@ bool ReadAlign::chimericDetectionMult() { && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif int chimScoreBest=0,chimScoreNext=0; + uint chimStrBest=0; + trChim[0]=*trBest; Transcript* trChim1=NULL; - uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; - uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; - if (roStart1>readLength[0]) roStart1--; - if (roEnd1>readLength[0]) roEnd1--; - - uint chimStrBest=0; - if (trBest->intronMotifs[1]==0 && trBest->intronMotifs[2]==0) {//strand is undefined - chimStr=0; - } else if ( (trBest->Str==0) == (trBest->intronMotifs[1]>0)) {//strand the same as RNA - chimStr=1; - } else {//strand opposite to RNA - chimStr=2; - }; + ChimericSegment seg1(P,trChim[0],Lread,readLength); for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) if (trBest==trAll[iW][0] && iWt==0) continue; - if (trAll[iW][iWt]->intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions - uint chimStr1; - if (trAll[iW][iWt]->intronMotifs[1]==0 && trAll[iW][iWt]->intronMotifs[2]==0) {//strand is undefined - chimStr1=0; - } else if ( (trAll[iW][iWt]->Str==0) == (trAll[iW][iWt]->intronMotifs[1]>0)) {//strand the same as RNA - chimStr1=1; - } else {//strand opposite to RNA - chimStr1=2; - }; - - if (chimStr!=0 && chimStr1!=0 && chimStr!=chimStr1) continue; //chimeric segments have to have consitent strands - - uint roStart2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[0][EX_R] : Lread - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L]; - uint roEnd2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] + trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L] - 1 : Lread - trAll[iW][iWt]->exons[0][EX_R] - 1; - if (roStart2>readLength[0]) roStart2--; - if (roEnd2>readLength[0]) roEnd2--; - - uint chimOverlap = roStart2>roStart1 ? (roStart2>roEnd1 ? 0 : roEnd1-roStart2+1) : (roEnd2= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); - - //segment lengths && (different mates || small gap between segments) - if (roEnd1 > P.pCh.segmentMin + roStart1 + chimOverlap && roEnd2> P.pCh.segmentMin + roStart2 + chimOverlap \ - && ( diffMates || ( (roEnd1 + P.pCh.segmentReadGapMax + 1) >= roStart2 && (roEnd2 + P.pCh.segmentReadGapMax + 1) >= roStart1 ) ) ) { - - int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting - + + ChimericSegment seg2(P,*trAll[iW][iWt],Lread,readLength); + if (seg2.align.intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions + + if (seg1.str!=0 && seg2.str!=0 && seg2.str!=seg1.str) continue; //chimeric segments have to have consitent strands + + int chimScore=chimericAlignScore(seg1,seg2); + + if (chimScore>0) + { uint overlap1=0; if (iWt>0 && chimScoreBest>0) {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. @@ -81,7 +80,7 @@ bool ReadAlign::chimericDetectionMult() { chimScoreBest=chimScore; trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; - chimStrBest=chimStr1; + chimStrBest=seg1.str; } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one chimScoreNext=chimScore; }; From 99c11a5bd5c9e21996f2e08655585b656c55c881 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 9 Aug 2017 16:01:06 -0400 Subject: [PATCH 256/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ChimericSegment.cpp | 4 ++-- ReadAlign_chimericDetectionMult.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ChimericSegment.cpp b/ChimericSegment.cpp index 3661e8c..267895c 100644 --- a/ChimericSegment.cpp +++ b/ChimericSegment.cpp @@ -9,8 +9,8 @@ ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn, uint Lrea } else {//strand opposite to RNA str=2; }; - uint roS=align.Str==0 ? align.exons[0][EX_R] : Lread - align.exons[align.nExons-1][EX_R] - align.exons[align.nExons-1][EX_L]; - uint roE=align.Str==0 ? align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] - 1 : Lread - align.exons[0][EX_R] - 1; + roS=align.Str==0 ? align.exons[0][EX_R] : Lread - align.exons[align.nExons-1][EX_R] - align.exons[align.nExons-1][EX_L]; + roE=align.Str==0 ? align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] - 1 : Lread - align.exons[0][EX_R] - 1; if (roS>readLength[0]) roS--; if (roE>readLength[0]) roE--; }; \ No newline at end of file diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index a77a812..d35a47f 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -49,6 +49,7 @@ bool ReadAlign::chimericDetectionMult() { Transcript* trChim1=NULL; ChimericSegment seg1(P,trChim[0],Lread,readLength); + chimStr=seg1.str; for (uint iW=0; iW Date: Thu, 10 Aug 2017 12:43:04 -0400 Subject: [PATCH 257/536] Continue coding chimericDetectionMult. Compiles. Results match. --- Makefile | 2 +- ReadAlign_chimericDetectionMult.cpp | 167 +++++----------------------- 2 files changed, 28 insertions(+), 141 deletions(-) diff --git a/Makefile b/Makefile index f142816..f972ad7 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o \ ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ ReadAlign_stitchWindowSeeds.o \ - ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionMult.o ChimericSegment.cpp \ + ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionMult.o ChimericSegment.cpp ChimericAlign.cpp \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o sortSuffixesBucket.o funCompareUintAndSuffixesMemcmp.o \ diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index d35a47f..c4c7aa6 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -5,6 +5,7 @@ #include "BAMfunctions.h" #include "blocksOverlap.h" #include "ChimericSegment.h" +#include "ChimericAlign.h" int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) { @@ -37,27 +38,26 @@ bool ReadAlign::chimericDetectionMult() { return chimRecord; }; - if (P.pCh.segmentMin>0 && trBest->rLength >= P.pCh.segmentMin \ - && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ - || trBest->exons[0][EX_R] >= P.pCh.segmentMin ) \ - && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { + vector chimAligns; + + ChimericSegment seg1(P,*trBest,Lread,readLength); + + if (P.pCh.segmentMin>0 && seg1.align.rLength >= P.pCh.segmentMin \ + && ( seg1.align.exons[seg1.align.nExons-1][EX_R] + seg1.align.exons[seg1.align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ + || seg1.align.exons[0][EX_R] >= P.pCh.segmentMin ) \ + && seg1.align.intronMotifs[0]==0 && (seg1.align.intronMotifs[1]==0 || seg1.align.intronMotifs[2]==0) ) { //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif int chimScoreBest=0,chimScoreNext=0; - uint chimStrBest=0; - trChim[0]=*trBest; - Transcript* trChim1=NULL; - - ChimericSegment seg1(P,trChim[0],Lread,readLength); chimStr=seg1.str; for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) - if (trBest==trAll[iW][0] && iWt==0) continue; + if (&seg1.align!=trAll[iW][0] && iWt>0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) + if (&seg1.align==trAll[iW][0] && iWt==0) continue; ChimericSegment seg2(P,*trAll[iW][iWt],Lread,readLength); - if (seg2.align.intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions + if (seg2.align.intronMotifs[0]>0) continue; //do not stitch to a window with non-canonical junctions if (seg1.str!=0 && seg2.str!=0 && seg2.str!=seg1.str) continue; //chimeric segments have to have consitent strands @@ -68,20 +68,21 @@ bool ReadAlign::chimericDetectionMult() { uint overlap1=0; if (iWt>0 && chimScoreBest>0) {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. - overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); + overlap1=blocksOverlap(chimAligns.back().seg2.align,seg2.align); }; - if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { - trChim[1]=*trAll[iW][iWt]; - trChim1=trAll[iW][iWt]; + if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) + { + chimAligns.clear(); + chimAligns.push_back(ChimericAlign(seg1,seg2)); if (overlap1==0) { chimScoreNext=chimScoreBest; }; chimScoreBest=chimScore; - trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; - trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; - chimStrBest=seg1.str; + + if (chimStr==0) + chimStr=seg2.str; } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one chimScoreNext=chimScore; }; @@ -92,14 +93,19 @@ bool ReadAlign::chimericDetectionMult() { if (nTr>P.pCh.mainSegmentMultNmax) {//check main segment for multi-aligns //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment - if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) + if ( &chimAligns[0].seg2.align!=trMult[0] && &chimAligns[0].seg2.align!=trMult[1] ) { return chimRecord; }; }; + if (chimAligns.size()==0) + return chimRecord; - if (chimStr==0) chimStr=chimStrBest; + trChim[0]=chimAligns[0].seg1.align; + trChim[1]=chimAligns[0].seg2.align; + trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; + trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; chimN=0; if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique @@ -283,125 +289,6 @@ bool ReadAlign::chimericDetectionMult() { return false; }; - chimRecord=true; //chimeric alignment was recorded - - //re-calculate the score for chimeric transcripts - trChim[0].alignScore(Read1, mapGen.G, P); - trChim[1].alignScore(Read1, mapGen.G, P); - - int chimRepresent=-999, chimType=0; - if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) {//tr0 has both mates - chimRepresent = 0; - chimType = 1; - trChim[0].primaryFlag=true;//paired portion is primary - trChim[1].primaryFlag=false; - } else if (trChim[1].exons[0][EX_iFrag]!=trChim[1].exons[trChim[1].nExons-1][EX_iFrag]) {//tr1 has both mates - chimRepresent = 1; - chimType = 1; - trChim[1].primaryFlag=true;//paired portion is primary - trChim[0].primaryFlag=false; - } else if (trChim[0].exons[0][EX_iFrag]!=trChim[1].exons[0][EX_iFrag]) {//tr0 and tr1 are single different mates - chimRepresent = -1; - chimType = 2; - trChim[0].primaryFlag=true; - trChim[1].primaryFlag=true; - } else {//two chimeric segments are on the same mate - this can only happen for single-end reads - chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; - chimType = 3; - trChim[chimRepresent].primaryFlag=true; - trChim[1-chimRepresent].primaryFlag=false; - }; - - if (P.pCh.out.bam) {//BAM output - int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; - uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering - uint mateChr,mateStart; - uint8_t mateStrand; - for (uint itr=0;itr=0) { - bam1_t *b; - b=bam_init1(); - bam_read1_fromArray(outBAMoneAlign[tagI], b); - uint8_t* auxp=bam_aux_get(b,"NM"); - uint32_t auxv=bam_aux2i(auxp); - string tagSA1="SAZ"+P.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ - ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; - - memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end - outBAMoneAlignNbytes[ii]+=tagSA1.size()+1; - * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); - }; - - if (P.outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); - if (P.outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); - }; - }; - - - for (uint iTr=0;iTr Date: Thu, 10 Aug 2017 18:54:18 -0400 Subject: [PATCH 258/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 470 ++++++++++++++-------------- 1 file changed, 241 insertions(+), 229 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index c4c7aa6..33d633b 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -39,264 +39,276 @@ bool ReadAlign::chimericDetectionMult() { }; vector chimAligns; - - ChimericSegment seg1(P,*trBest,Lread,readLength); - - if (P.pCh.segmentMin>0 && seg1.align.rLength >= P.pCh.segmentMin \ - && ( seg1.align.exons[seg1.align.nExons-1][EX_R] + seg1.align.exons[seg1.align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ - || seg1.align.exons[0][EX_R] >= P.pCh.segmentMin ) \ - && seg1.align.intronMotifs[0]==0 && (seg1.align.intronMotifs[1]==0 || seg1.align.intronMotifs[2]==0) ) { - //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif - int chimScoreBest=0,chimScoreNext=0; - - chimStr=seg1.str; - - for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) - if (&seg1.align==trAll[iW][0] && iWt==0) continue; - - ChimericSegment seg2(P,*trAll[iW][iWt],Lread,readLength); - if (seg2.align.intronMotifs[0]>0) continue; //do not stitch to a window with non-canonical junctions + int chimScoreBest=0,chimScoreNext=0; - if (seg1.str!=0 && seg2.str!=0 && seg2.str!=seg1.str) continue; //chimeric segments have to have consitent strands + for (uint iW1=0; iW10 && seg1.align.rLength >= P.pCh.segmentMin \ + && ( seg1.align.exons[seg1.align.nExons-1][EX_R] + seg1.align.exons[seg1.align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ + || seg1.align.exons[0][EX_R] >= P.pCh.segmentMin ) \ + && seg1.align.intronMotifs[0]==0 && (seg1.align.intronMotifs[1]==0 || seg1.align.intronMotifs[2]==0) ) + {//there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif - int chimScore=chimericAlignScore(seg1,seg2); - - if (chimScore>0) - { - uint overlap1=0; - if (iWt>0 && chimScoreBest>0) - {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. - overlap1=blocksOverlap(chimAligns.back().seg2.align,seg2.align); - }; + chimStr=seg1.str; + + for (uint iW2=0; iW20) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest + if (&seg1.align==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 + + ChimericSegment seg2(P,*trAll[iW2][iA2],Lread,readLength); + if (seg2.align.intronMotifs[0]>0) continue; //do not stitch to a window with non-canonical junctions + + if (seg1.str!=0 && seg2.str!=0 && seg2.str!=seg1.str) continue; //chimeric segments have to have consitent strands - if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) - { - chimAligns.clear(); - chimAligns.push_back(ChimericAlign(seg1,seg2)); - if (overlap1==0) + int chimScore=chimericAlignScore(seg1,seg2); + + if (chimScore>0) { - chimScoreNext=chimScoreBest; + uint overlap1=0; + if (iA2>0 && chimScoreBest>0) + {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. + overlap1=blocksOverlap(chimAligns.back().seg2.align,seg2.align); + }; + + if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) + { + chimAligns.clear(); + chimAligns.push_back(ChimericAlign(seg1,seg2)); + if (overlap1==0) + { + chimScoreNext=chimScoreBest; + }; + chimScoreBest=chimScore; + + if (chimStr==0) + chimStr=seg2.str; + } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one + chimScoreNext=chimScore; + }; }; - chimScoreBest=chimScore; + };//cycle over window2 aligns + };//cycle over window2 + };//if seg1 is good + };//cycle over window1 aligns + };//cycle over window1 - if (chimStr==0) - chimStr=seg2.str; - } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one - chimScoreNext=chimScore; - }; - }; - };//cycle over window transcripts - };//cycle over windows - - if (nTr>P.pCh.mainSegmentMultNmax) - {//check main segment for multi-aligns - //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment - if ( &chimAligns[0].seg2.align!=trMult[0] && &chimAligns[0].seg2.align!=trMult[1] ) - { - return chimRecord; - }; + if (nTr>P.pCh.mainSegmentMultNmax) + {//check main segment for multi-aligns + //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment + if ( &chimAligns[0].seg2.align!=trMult[0] && &chimAligns[0].seg2.align!=trMult[1] ) + { + return chimRecord; }; + }; - if (chimAligns.size()==0) - return chimRecord; - - trChim[0]=chimAligns[0].seg1.align; - trChim[1]=chimAligns[0].seg2.align; - trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; - trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; - - chimN=0; - if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique - - if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); + if (chimAligns.size()==0) + return chimRecord; + + trChim[0]=chimAligns[0].seg1.align; + trChim[1]=chimAligns[0].seg2.align; + trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; + trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; + + chimN=0; + if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique + + if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); - uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; - uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; + uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; + uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; - uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; - int chimMotif=0; + uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; + int chimMotif=0; + chimN=2; + if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one + chimN=0;//reject such chimeras + //good test example: + //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT + //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA + } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction chimN=2; - if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one - chimN=0;//reject such chimeras - //good test example: - //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT - //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA - } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction - chimN=2; - chimRepeat=0; - chimMotif=-1; - if (trChim[0].Str==1) {//negative strand - chimJ0=trChim[0].exons[e0][EX_G]-1; - } else { - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; - if (trChim[1].Str==0) {//positive strand - chimJ1=trChim[1].exons[e1][EX_G]-1; - } else { - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; - }; - } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - if (trChim[0].exons[e0][EX_L]>=P.pCh.junctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.pCh.junctionOverhangMin ) {//large enough overhang required - uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; - uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; - - uint jR, jRbest=0; - int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - for (jR=0; jR=P.pCh.junctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.pCh.junctionOverhangMin ) {//large enough overhang required + uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; + uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; - if (trChim[1].Str==0) { - b1=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; - } else { - b1=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; - if (b1<4) b1=3-b1; - }; + uint jR, jRbest=0; + int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; + for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read - chimN=0; - break; - }; + if (jR==readLength[0]) jR++; //skip the inter-mate base - char b01,b02,b11,b12; - if (trChim[0].Str==0) { - b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; - b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; - } else { - b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; - if (b01<4) b01=3-b01; - b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; - if (b02<4) b02=3-b02; + char bR=Read1[0][roStart0+jR]; + + char b0,b1; + if (trChim[0].Str==0) { + b0=mapGen.G[trChim[0].exons[e0][EX_G]+jR]; + } else { + b0=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR]; + if (b0<4) b0=3-b0; + }; + + if (trChim[1].Str==0) { + b1=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + } else { + b1=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + if (b1<4) b1=3-b1; + }; + + if ( ( P.pCh.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read + chimN=0; + break; + }; + + char b01,b02,b11,b12; + if (trChim[0].Str==0) { + b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; + } else { + b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; + if (b01<4) b01=3-b01; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; + if (b02<4) b02=3-b02; + }; + if (trChim[1].Str==0) { + b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; + b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + } else { + b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; + if (b11<4) b11=3-b11; + b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + if (b12<4) b12=3-b12; + }; + + jMotif=0; + if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG + if (chimStr!=2) { + jMotif=1; }; - if (trChim[1].Str==0) { - b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; - b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; - } else { - b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; - if (b11<4) b11=3-b11; - b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; - if (b12<4) b12=3-b12; + } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC + if (chimStr!=1) { + jMotif=2; }; + }; - jMotif=0; - if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG - if (chimStr!=2) { - jMotif=1; - }; - } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC - if (chimStr!=1) { - jMotif=2; - }; - }; + if (bR==b0 && bR!=b1) { + jScore++; + } else if (bR!=b0 && bR==b1) { + jScore--; + }; - if (bR==b0 && bR!=b1) { - jScore++; - } else if (bR!=b0 && bR==b1) { - jScore--; - }; + jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; - jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; + if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { + chimMotif=jMotif; + jRbest=jR; + jScoreBest=jScoreJ; + }; + };//jR cycle + if (chimN>0) {//else the chimera was rejected because of mismatches - if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { - chimMotif=jMotif; - jRbest=jR; - jScoreBest=jScoreJ; - }; - };//jR cycle - if (chimN>0) {//else the chimera was rejected because of mismatches - - //shift junction in trChim - if (trChim[0].Str==1) { - trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]-1; + //shift junction in trChim + if (trChim[0].Str==1) { + trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + + if (trChim[1].Str==0) { + trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; + trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]-1; + } else { + trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; + //find repeats + char b0,b1; + uint jR; + for (jR=0;jR<100;jR++) {//forward check + if (trChim[0].Str==0) { + b0=mapGen.G[chimJ0+jR]; } else { - trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + b0=mapGen.G[chimJ0-jR]; + if (b0<4) b0=3-b0; }; if (trChim[1].Str==0) { - trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]-1; + b1=mapGen.G[chimJ1+1+jR]; } else { - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + b1=mapGen.G[chimJ1-1-jR]; + if (b1<4) b1=3-b1; }; - //find repeats - char b0,b1; - uint jR; - for (jR=0;jR<100;jR++) {//forward check - if (trChim[0].Str==0) { - b0=mapGen.G[chimJ0+jR]; - } else { - b0=mapGen.G[chimJ0-jR]; - if (b0<4) b0=3-b0; - }; - - if (trChim[1].Str==0) { - b1=mapGen.G[chimJ1+1+jR]; - } else { - b1=mapGen.G[chimJ1-1-jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; + if (b0!=b1) break; + }; + chimRepeat1=jR; + for (jR=0;jR<100;jR++) {//reverse check + if (trChim[0].Str==0) { + b0=mapGen.G[chimJ0-1-jR]; + } else { + b0=mapGen.G[chimJ0+1+jR]; + if (b0<4) b0=3-b0; }; - chimRepeat1=jR; - for (jR=0;jR<100;jR++) {//reverse check - if (trChim[0].Str==0) { - b0=mapGen.G[chimJ0-1-jR]; - } else { - b0=mapGen.G[chimJ0+1+jR]; - if (b0<4) b0=3-b0; - }; - if (trChim[1].Str==0) { - b1=mapGen.G[chimJ1-jR]; - } else { - b1=mapGen.G[chimJ1+jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; + if (trChim[1].Str==0) { + b1=mapGen.G[chimJ1-jR]; + } else { + b1=mapGen.G[chimJ1+jR]; + if (b1<4) b1=3-b1; }; - chimRepeat0=jR; - };//chimN>0 - };//large enough overhang - };//chimeric junction is within a mate - - //chimeric alignments output - if ( chimN==2 \ - && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ - || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) - {// - if (chimMotif>=0 && \ - (trChim[0].exons[e0][EX_L]0 + };//large enough overhang + };//chimeric junction is within a mate + + //chimeric alignments output + if ( chimN==2 \ + && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ + || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) + {// + if (chimMotif>=0 && \ + (trChim[0].exons[e0][EX_L] Date: Fri, 11 Aug 2017 11:53:07 -0400 Subject: [PATCH 259/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 33d633b..6d8a694 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -46,8 +46,8 @@ bool ReadAlign::chimericDetectionMult() { for (uint iA1=0; iA10) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest - if (&seg1.align==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 +// if (&seg1.align!=trAll[iW2][0] && iA2>0) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest +// if (&seg1.align==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 + if (trBest!=trAll[iW2][0] && iA2>0) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest + if (trBest==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 ChimericSegment seg2(P,*trAll[iW2][iA2],Lread,readLength); + +// if (seg2.align.maxScore>seg1.align.maxScore) +// swap(seg1,seg2); + if (seg2.align.intronMotifs[0]>0) continue; //do not stitch to a window with non-canonical junctions if (seg1.str!=0 && seg2.str!=0 && seg2.str!=seg1.str) continue; //chimeric segments have to have consitent strands int chimScore=chimericAlignScore(seg1,seg2); + if ( &seg1.align!=trBest && &seg2.align!=trBest ) + continue; //debug + if (chimScore>0) { uint overlap1=0; @@ -91,8 +98,6 @@ bool ReadAlign::chimericDetectionMult() { }; chimScoreBest=chimScore; - if (chimStr==0) - chimStr=seg2.str; } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one chimScoreNext=chimScore; }; @@ -120,6 +125,8 @@ bool ReadAlign::chimericDetectionMult() { trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; + chimStr = max(chimAligns[0].seg1.str,chimAligns[0].seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand + chimN=0; if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique From 5f0db153b734b5c6112002cc72378b1ed39a8c90 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 11 Aug 2017 12:28:17 -0400 Subject: [PATCH 260/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 109 +++++++++++++--------------- 1 file changed, 50 insertions(+), 59 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 6d8a694..6198da3 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -46,65 +46,61 @@ bool ReadAlign::chimericDetectionMult() { for (uint iA1=0; iA10 && seg1.align.rLength >= P.pCh.segmentMin \ - && ( seg1.align.exons[seg1.align.nExons-1][EX_R] + seg1.align.exons[seg1.align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ - || seg1.align.exons[0][EX_R] >= P.pCh.segmentMin ) \ - && seg1.align.intronMotifs[0]==0 && (seg1.align.intronMotifs[1]==0 || seg1.align.intronMotifs[2]==0) ) - {//there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif - - for (uint iW2=0; iW20) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest -// if (&seg1.align==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 - if (trBest!=trAll[iW2][0] && iA2>0) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest - if (trBest==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 - - ChimericSegment seg2(P,*trAll[iW2][iA2],Lread,readLength); - -// if (seg2.align.maxScore>seg1.align.maxScore) -// swap(seg1,seg2); - - if (seg2.align.intronMotifs[0]>0) continue; //do not stitch to a window with non-canonical junctions - - if (seg1.str!=0 && seg2.str!=0 && seg2.str!=seg1.str) continue; //chimeric segments have to have consitent strands - - int chimScore=chimericAlignScore(seg1,seg2); - - if ( &seg1.align!=trBest && &seg2.align!=trBest ) - continue; //debug - - if (chimScore>0) - { - uint overlap1=0; - if (iA2>0 && chimScoreBest>0) - {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. - overlap1=blocksOverlap(chimAligns.back().seg2.align,seg2.align); - }; + bool seg1yes = true; + seg1yes = seg1yes && seg1.align.rLength >= P.pCh.segmentMin; //mapped length >= chim segmentMin + seg1yes = seg1yes && (seg1.align.exons[seg1.align.nExons-1][EX_R] + seg1.align.exons[seg1.align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread) \ + || (seg1.align.exons[0][EX_R] >= P.pCh.segmentMin); //uncovered by seg1 read length is <= segmentMin + seg1yes = seg1yes && seg1.align.intronMotifs[0]==0; //no non-canonical juncions. TODO: allow non-canonical anotated + seg1yes = seg1yes && (seg1.align.intronMotifs[1]==0 || seg1.align.intronMotifs[2]==0); //consistent intron motifs. TODO: switch to strands + + if (!seg1yes) + continue; //seg1 is bad + + for (uint iW2=0; iW20) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest + if (trBest==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 + + ChimericSegment seg2(P,*trAll[iW2][iA2],Lread,readLength); + + if (seg2.align.intronMotifs[0]>0) + continue; //do not stitch to a window with non-canonical junctions + if (seg1.str!=0 && seg2.str!=0 && seg2.str!=seg1.str) + continue; //chimeric segments have to have consitent strands + + int chimScore=chimericAlignScore(seg1,seg2); + + if ( &seg1.align!=trBest && &seg2.align!=trBest ) + continue; //debug + + if (chimScore>0) + { + uint overlap1=0; + if (iA2>0 && chimScoreBest>0) + {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. + overlap1=blocksOverlap(chimAligns.back().seg2.align,seg2.align); + }; - if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) + if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) + { + chimAligns.clear(); + chimAligns.push_back(ChimericAlign(seg1,seg2)); + if (overlap1==0) { - chimAligns.clear(); - chimAligns.push_back(ChimericAlign(seg1,seg2)); - if (overlap1==0) - { - chimScoreNext=chimScoreBest; - }; - chimScoreBest=chimScore; - - } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one - chimScoreNext=chimScore; + chimScoreNext=chimScoreBest; }; + chimScoreBest=chimScore; + + } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one + chimScoreNext=chimScore; }; - };//cycle over window2 aligns - };//cycle over window2 - };//if seg1 is good + }; + };//cycle over window2 aligns + };//cycle over window2 };//cycle over window1 aligns };//cycle over window1 @@ -138,12 +134,7 @@ bool ReadAlign::chimericDetectionMult() { uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; int chimMotif=0; chimN=2; - if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one - chimN=0;//reject such chimeras - //good test example: - //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT - //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA - } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction + if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction chimN=2; chimRepeat=0; chimMotif=-1; From 4efb013a1beb7463fc4b00eea69917ba7f37974f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 11 Aug 2017 13:00:19 -0400 Subject: [PATCH 261/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 6198da3..49c1853 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -118,8 +118,8 @@ bool ReadAlign::chimericDetectionMult() { trChim[0]=chimAligns[0].seg1.align; trChim[1]=chimAligns[0].seg2.align; - trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; - trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; +// trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; +// trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; chimStr = max(chimAligns[0].seg1.str,chimAligns[0].seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand @@ -134,7 +134,12 @@ bool ReadAlign::chimericDetectionMult() { uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; int chimMotif=0; chimN=2; - if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction + if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one + chimN=0;//reject such chimeras + //good test example: + //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT + //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA + } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction chimN=2; chimRepeat=0; chimMotif=-1; From 32deff7705bba214fa90b9a0023109225cf641bc Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 11 Aug 2017 15:40:30 -0400 Subject: [PATCH 262/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 36 +++++++++++++++++------------ 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 49c1853..ad7b658 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -50,8 +50,8 @@ bool ReadAlign::chimericDetectionMult() { bool seg1yes = true; seg1yes = seg1yes && seg1.align.rLength >= P.pCh.segmentMin; //mapped length >= chim segmentMin - seg1yes = seg1yes && (seg1.align.exons[seg1.align.nExons-1][EX_R] + seg1.align.exons[seg1.align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread) \ - || (seg1.align.exons[0][EX_R] >= P.pCh.segmentMin); //uncovered by seg1 read length is <= segmentMin + seg1yes = seg1yes && (seg1.align.exons[seg1.align.nExons-1][EX_R] + seg1.align.exons[seg1.align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ + || seg1.align.exons[0][EX_R] >= P.pCh.segmentMin); //uncovered by seg1 read length is <= segmentMin seg1yes = seg1yes && seg1.align.intronMotifs[0]==0; //no non-canonical juncions. TODO: allow non-canonical anotated seg1yes = seg1yes && (seg1.align.intronMotifs[1]==0 || seg1.align.intronMotifs[2]==0); //consistent intron motifs. TODO: switch to strands @@ -78,13 +78,20 @@ bool ReadAlign::chimericDetectionMult() { continue; //debug if (chimScore>0) - { + {//candidate chimera + + ChimericSegment *s1=&seg1,*s2=&seg2; + if (seg1.align.roStart > seg2.align.roStart) swap (s1,s2); + uint e1 = s1->align.Str==1 ? 0 : s1->align.nExons-1; + uint e2 = s2->align.Str==0 ? 0 : s2->align.nExons-1; + if ( s1->align.exons[e1][EX_iFrag] > s2->align.exons[e2][EX_iFrag] ) + continue; + uint overlap1=0; if (iA2>0 && chimScoreBest>0) {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. overlap1=blocksOverlap(chimAligns.back().seg2.align,seg2.align); }; - if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { chimAligns.clear(); @@ -118,28 +125,27 @@ bool ReadAlign::chimericDetectionMult() { trChim[0]=chimAligns[0].seg1.align; trChim[1]=chimAligns[0].seg2.align; -// trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; -// trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; chimStr = max(chimAligns[0].seg1.str,chimAligns[0].seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand chimN=0; if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique - - if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); - + + if (trChim[0].roStart > trChim[1].roStart) + swap (trChim[0],trChim[1]); uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; int chimMotif=0; chimN=2; - if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one - chimN=0;//reject such chimeras - //good test example: - //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT - //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA - } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction +// if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one +// chimN=0;//reject such chimeras +// //good test example: +// //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT +// //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA +// } else + if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction chimN=2; chimRepeat=0; chimMotif=-1; From cd2b3e7fe9486f2a5325450eea164f215352ef03 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 11 Aug 2017 16:17:10 -0400 Subject: [PATCH 263/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index ad7b658..47db976 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -85,7 +85,17 @@ bool ReadAlign::chimericDetectionMult() { uint e1 = s1->align.Str==1 ? 0 : s1->align.nExons-1; uint e2 = s2->align.Str==0 ? 0 : s2->align.nExons-1; if ( s1->align.exons[e1][EX_iFrag] > s2->align.exons[e2][EX_iFrag] ) - continue; + continue; //strange configuration + + // if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one + // chimN=0;//reject such chimeras + // //good test example: + // //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT + // //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA + // } else + + if (s1->align.exons[e1][EX_L] < P.pCh.junctionOverhangMin && s2->align.exons[e2][EX_L] < P.pCh.junctionOverhangMin) + continue; //junction overhangs too short uint overlap1=0; if (iA2>0 && chimScoreBest>0) @@ -139,12 +149,6 @@ bool ReadAlign::chimericDetectionMult() { uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; int chimMotif=0; chimN=2; -// if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one -// chimN=0;//reject such chimeras -// //good test example: -// //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT -// //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA -// } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction chimN=2; chimRepeat=0; @@ -160,7 +164,7 @@ bool ReadAlign::chimericDetectionMult() { chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; }; } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - if (trChim[0].exons[e0][EX_L]>=P.pCh.junctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.pCh.junctionOverhangMin ) {//large enough overhang required + { uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; @@ -187,10 +191,10 @@ bool ReadAlign::chimericDetectionMult() { if (b1<4) b1=3-b1; }; - if ( ( P.pCh.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read - chimN=0; - break; - }; +// if ( ( P.pCh.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read +// chimN=0; +// break; +// }; char b01,b02,b11,b12; if (trChim[0].Str==0) { From 34b3f6c0b2369182941745198b71dc7ce0e63241 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 11 Aug 2017 17:18:59 -0400 Subject: [PATCH 264/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 47db976..c7d04fd 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -135,14 +135,14 @@ bool ReadAlign::chimericDetectionMult() { trChim[0]=chimAligns[0].seg1.align; trChim[1]=chimAligns[0].seg2.align; + if (trChim[0].roStart > trChim[1].roStart) + swap (trChim[0],trChim[1]); chimStr = max(chimAligns[0].seg1.str,chimAligns[0].seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand chimN=0; if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique - if (trChim[0].roStart > trChim[1].roStart) - swap (trChim[0],trChim[1]); uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; @@ -305,9 +305,9 @@ bool ReadAlign::chimericDetectionMult() { };//chimeric junction is within a mate //chimeric alignments output - if ( chimN==2 \ - && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ - || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) + if ( chimN==2) +// && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ +// || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) {// if (chimMotif>=0 && \ (trChim[0].exons[e0][EX_L] Date: Wed, 16 Aug 2017 16:34:07 -0400 Subject: [PATCH 265/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ChimericSegment.cpp | 10 +- Makefile | 5 +- ReadAlign_chimericDetectionMult.cpp | 204 ++-------------------------- ReadAlign_mapOneRead.cpp | 7 +- Transcript.cpp | 3 +- Transcript.h | 9 ++ 6 files changed, 35 insertions(+), 203 deletions(-) diff --git a/ChimericSegment.cpp b/ChimericSegment.cpp index 267895c..22a5a30 100644 --- a/ChimericSegment.cpp +++ b/ChimericSegment.cpp @@ -1,6 +1,6 @@ #include "ChimericSegment.h" -ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn, uint Lread, uint *readLengthIn) : P(Pin), align(alignIn), readLength(readLengthIn) +ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), align(alignIn) { if (align.intronMotifs[1]==0 && align.intronMotifs[2]==0) {//strand is undefined str=0; @@ -9,8 +9,8 @@ ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn, uint Lrea } else {//strand opposite to RNA str=2; }; - roS=align.Str==0 ? align.exons[0][EX_R] : Lread - align.exons[align.nExons-1][EX_R] - align.exons[align.nExons-1][EX_L]; - roE=align.Str==0 ? align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] - 1 : Lread - align.exons[0][EX_R] - 1; - if (roS>readLength[0]) roS--; - if (roE>readLength[0]) roE--; + roS=align.Str==0 ? align.exons[0][EX_R] : align.Lread - align.exons[align.nExons-1][EX_R] - align.exons[align.nExons-1][EX_L]; + roE=align.Str==0 ? align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] - 1 : align.Lread - align.exons[0][EX_R] - 1; + if (roS>align.readLength[0]) roS--; + if (roE>align.readLength[0]) roE--; }; \ No newline at end of file diff --git a/Makefile b/Makefile index f972ad7..37ea014 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS) ########################################################################################################## OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ - Transcript.o Transcript_alignScore.o Transcript_variationAdjust.o Chain.o \ + Transcript.o Transcript_alignScore.o Transcript_variationAdjust.o Transcript_generateCigarP.o Chain.o \ ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ ReadAlignChunk.o ReadAlignChunk_processChunks.o ReadAlignChunk_mapChunk.o \ OutSJ.o outputSJ.o blocksOverlap.o ThreadControl.o sysRemoveDir.o \ @@ -39,7 +39,8 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o \ ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ ReadAlign_stitchWindowSeeds.o \ - ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionMult.o ChimericSegment.cpp ChimericAlign.cpp \ + ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionMult.o \ + ChimericSegment.cpp ChimericAlign.cpp ChimericAlign_chimericJunctionOutput.o ChimericAlign_chimericStitching.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o sortSuffixesBucket.o funCompareUintAndSuffixesMemcmp.o \ diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index c7d04fd..1dd399a 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -11,7 +11,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) { int chimScore=0; uint chimOverlap = seg2.roS>seg1.roS ? (seg2.roS>seg1.roE ? 0 : seg1.roE-seg2.roS+1) : (seg2.roE= seg1.readLength[0]) || (seg2.roE < seg1.readLength[0] && seg1.roS >= seg1.readLength[0]); + bool diffMates=(seg1.roE < seg1.align.readLength[0] && seg2.roS >= seg1.align.readLength[0]) || (seg2.roE < seg1.align.readLength[0] && seg1.roS >= seg1.align.readLength[0]); //segment lengths && (different mates || small gap between segments) if (seg1.roE > seg1.P.pCh.segmentMin + seg1.roS + chimOverlap && seg2.roE > seg1.P.pCh.segmentMin + seg2.roS + chimOverlap \ @@ -46,7 +46,7 @@ bool ReadAlign::chimericDetectionMult() { for (uint iA1=0; iA1= P.pCh.segmentMin; //mapped length >= chim segmentMin @@ -65,7 +65,7 @@ bool ReadAlign::chimericDetectionMult() { if (trBest!=trAll[iW2][0] && iA2>0) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest if (trBest==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 - ChimericSegment seg2(P,*trAll[iW2][iA2],Lread,readLength); + ChimericSegment seg2(P,*trAll[iW2][iA2]); if (seg2.align.intronMotifs[0]>0) continue; //do not stitch to a window with non-canonical junctions @@ -102,10 +102,11 @@ bool ReadAlign::chimericDetectionMult() { {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. overlap1=blocksOverlap(chimAligns.back().seg2.align,seg2.align); }; + if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { chimAligns.clear(); - chimAligns.push_back(ChimericAlign(seg1,seg2)); + chimAligns.push_back(ChimericAlign(seg1, seg2, chimScore)); if (overlap1==0) { chimScoreNext=chimScoreBest; @@ -132,196 +133,13 @@ bool ReadAlign::chimericDetectionMult() { if (chimAligns.size()==0) return chimRecord; - - trChim[0]=chimAligns[0].seg1.align; - trChim[1]=chimAligns[0].seg2.align; - if (trChim[0].roStart > trChim[1].roStart) - swap (trChim[0],trChim[1]); - - chimStr = max(chimAligns[0].seg1.str,chimAligns[0].seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand - chimN=0; + chimN=0; + if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique - - uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; - uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; - - uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; - int chimMotif=0; - chimN=2; - if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction - chimN=2; - chimRepeat=0; - chimMotif=-1; - if (trChim[0].Str==1) {//negative strand - chimJ0=trChim[0].exons[e0][EX_G]-1; - } else { - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; - if (trChim[1].Str==0) {//positive strand - chimJ1=trChim[1].exons[e1][EX_G]-1; - } else { - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; - }; - } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - { - uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; - uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; - - uint jR, jRbest=0; - int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read -// chimN=0; -// break; -// }; - - char b01,b02,b11,b12; - if (trChim[0].Str==0) { - b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; - b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; - } else { - b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; - if (b01<4) b01=3-b01; - b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; - if (b02<4) b02=3-b02; - }; - if (trChim[1].Str==0) { - b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; - b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; - } else { - b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; - if (b11<4) b11=3-b11; - b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; - if (b12<4) b12=3-b12; - }; - - jMotif=0; - if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG - if (chimStr!=2) { - jMotif=1; - }; - } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC - if (chimStr!=1) { - jMotif=2; - }; - }; - - if (bR==b0 && bR!=b1) { - jScore++; - } else if (bR!=b0 && bR==b1) { - jScore--; - }; - - jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; - - if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { - chimMotif=jMotif; - jRbest=jR; - jScoreBest=jScoreJ; - }; - };//jR cycle - if (chimN>0) {//else the chimera was rejected because of mismatches - - //shift junction in trChim - if (trChim[0].Str==1) { - trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]-1; - } else { - trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; - - if (trChim[1].Str==0) { - trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]-1; - } else { - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; - }; - //find repeats - char b0,b1; - uint jR; - for (jR=0;jR<100;jR++) {//forward check - if (trChim[0].Str==0) { - b0=mapGen.G[chimJ0+jR]; - } else { - b0=mapGen.G[chimJ0-jR]; - if (b0<4) b0=3-b0; - }; - - if (trChim[1].Str==0) { - b1=mapGen.G[chimJ1+1+jR]; - } else { - b1=mapGen.G[chimJ1-1-jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; - }; - chimRepeat1=jR; - for (jR=0;jR<100;jR++) {//reverse check - if (trChim[0].Str==0) { - b0=mapGen.G[chimJ0-1-jR]; - } else { - b0=mapGen.G[chimJ0+1+jR]; - if (b0<4) b0=3-b0; - }; - - if (trChim[1].Str==0) { - b1=mapGen.G[chimJ1-jR]; - } else { - b1=mapGen.G[chimJ1+jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; - }; - chimRepeat0=jR; - };//chimN>0 - };//large enough overhang - };//chimeric junction is within a mate - - //chimeric alignments output - if ( chimN==2) -// && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ -// || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) - {// - if (chimMotif>=0 && \ - (trChim[0].exons[e0][EX_L]0) + chimAligns[0].chimericJunctionOutput(chunkOutChimJunction, readName); + }; return chimRecord; };//END diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 8293587..4a5edb8 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -26,9 +26,12 @@ int ReadAlign::mapOneRead() { trInit->Chr=0; trInit->Str=0; trInit->roStr=0; trInit->cStart=0; trInit->gLength=0; //to generate nice output of 0 for non-mapped reads trInit->iRead=iRead; trInit->Lread=Lread; - trInit->readLengthPairOriginal=readLengthPairOriginal; trInit->nExons=0; - + trInit->readLengthOriginal=readLengthOriginal; + trInit->readLengthPairOriginal=readLengthPairOriginal; + trInit->readLength=readLength; + trInit->readNmates=P.readNmates; + trNext=trBest=trInit; uint seedSearchStartLmax=min(P.seedSearchStartLmax,(uint) (P.seedSearchStartLmaxOverLread*(Lread-1))); diff --git a/Transcript.cpp b/Transcript.cpp index bee27d9..d92082a 100644 --- a/Transcript.cpp +++ b/Transcript.cpp @@ -1,6 +1,7 @@ #include "Transcript.h" -Transcript::Transcript() { +Transcript::Transcript() +{ reset(); }; diff --git a/Transcript.h b/Transcript.h index bac59f2..0851860 100644 --- a/Transcript.h +++ b/Transcript.h @@ -20,8 +20,11 @@ class Transcript { uint nExons; //number of exons in the read transcript + //variables from ReadAlign + uint *readLengthOriginal, *readLength; uint Lread, readLengthPairOriginal; uint iRead; //read identifier + uint readNmates; int iFrag; //frag number of the transcript, if the the transcript contains only one frag @@ -51,6 +54,7 @@ class Transcript { uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment + vector snpInd; vector snpLoci; vector snpGt; @@ -62,6 +66,11 @@ class Transcript { void add(Transcript*); // add void alignScore(char **Read1, char *G, Parameters &P); int variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters &P); + string generateCigarP(); //generates CIGAR + + private: + + }; #endif From 20739cd1110032ccf1a40b7e41fce829cc096692 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 16 Aug 2017 16:57:10 -0400 Subject: [PATCH 266/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 2 +- ReadAlign_mapOneRead.cpp | 3 ++- Transcript.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 1dd399a..cafdde2 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -139,7 +139,7 @@ bool ReadAlign::chimericDetectionMult() { if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique chimAligns[0].chimericStitching(mapGen.G, Read1[0]); if (chimAligns[0].chimScore>0) - chimAligns[0].chimericJunctionOutput(chunkOutChimJunction, readName); + chimAligns[0].chimericJunctionOutput(chunkOutChimJunction); }; return chimRecord; };//END diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 4a5edb8..01c544d 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -31,7 +31,8 @@ int ReadAlign::mapOneRead() { trInit->readLengthPairOriginal=readLengthPairOriginal; trInit->readLength=readLength; trInit->readNmates=P.readNmates; - + trInit->readName=readName; + trNext=trBest=trInit; uint seedSearchStartLmax=min(P.seedSearchStartLmax,(uint) (P.seedSearchStartLmaxOverLread*(Lread-1))); diff --git a/Transcript.h b/Transcript.h index 0851860..3d87528 100644 --- a/Transcript.h +++ b/Transcript.h @@ -25,6 +25,7 @@ class Transcript { uint Lread, readLengthPairOriginal; uint iRead; //read identifier uint readNmates; + char *readName; int iFrag; //frag number of the transcript, if the the transcript contains only one frag From f7b5464fcf0df22e7aeb86e76d732594ef7816bf Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 17 Aug 2017 13:21:51 -0400 Subject: [PATCH 267/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ReadAlign_chimericDetectionMult.cpp | 40 ++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index cafdde2..b9406a5 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -17,7 +17,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) if (seg1.roE > seg1.P.pCh.segmentMin + seg1.roS + chimOverlap && seg2.roE > seg1.P.pCh.segmentMin + seg2.roS + chimOverlap \ && ( diffMates || ( (seg1.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg2.roS && (seg2.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg1.roS ) ) ) { - chimScore=chimScore= seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + chimScore = seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting }; return chimScore; @@ -131,15 +131,41 @@ bool ReadAlign::chimericDetectionMult() { }; }; - if (chimAligns.size()==0) + chimN=0; + for (uint ic=0; ic= chimScoreBest - (int)P.pCh.multimapScoreRange) + ++chimN; + }; + + if (chimN > 2*P.pCh.multimapNmax) //too many loci (consider 2* more candidates for stitching below) return chimRecord; - chimN=0; + //TODO deal with the case chimScoreBest chimera is eliminated + chimN=0; + for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) { + chimAligns[ic].chimericStitching(mapGen.G, Read1[0]); + if (chimAligns[ic].chimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) + ++chimN; + }; + }; + + if (chimN > P.pCh.multimapNmax) //too many loci + return chimRecord; + + if (chimScoreNext >= chimScoreBest - P.pCh.scoreSeparation) + return chimRecord; - if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique - chimAligns[0].chimericStitching(mapGen.G, Read1[0]); - if (chimAligns[0].chimScore>0) - chimAligns[0].chimericJunctionOutput(chunkOutChimJunction); + for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) + chimAligns[ic].chimericJunctionOutput(chunkOutChimJunction); }; +// if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique +// chimAligns[0].chimericStitching(mapGen.G, Read1[0]); +// if (chimAligns[0].chimScore>0) +// chimAligns[0].chimericJunctionOutput(chunkOutChimJunction); +// }; + if (chimN>0) + chimRecord=true; return chimRecord; };//END From f1d0afc89ba8bba3837f6f0b38837ec4607bc659 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 17 Aug 2017 14:50:06 -0400 Subject: [PATCH 268/536] Continue coding chimericDetectionMult. Compiles. Results match. --- ChimericAlign.cpp | 5 + ChimericAlign.h | 28 ++++ ChimericAlign_chimericJunctionOutput.cpp | 11 ++ ChimericAlign_chimericStitching.cpp | 177 +++++++++++++++++++++++ ChimericSegment.h | 18 +++ Transcript_generateCigarP.cpp | 63 ++++++++ 6 files changed, 302 insertions(+) create mode 100644 ChimericAlign.cpp create mode 100644 ChimericAlign.h create mode 100644 ChimericAlign_chimericJunctionOutput.cpp create mode 100644 ChimericAlign_chimericStitching.cpp create mode 100644 ChimericSegment.h create mode 100644 Transcript_generateCigarP.cpp diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp new file mode 100644 index 0000000..a04e852 --- /dev/null +++ b/ChimericAlign.cpp @@ -0,0 +1,5 @@ +#include "ChimericAlign.h" + +ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn) : seg1(seg1in), seg2(seg2in), P(seg1in.P), chimScore(chimScoreIn) +{ +}; \ No newline at end of file diff --git a/ChimericAlign.h b/ChimericAlign.h new file mode 100644 index 0000000..55b9548 --- /dev/null +++ b/ChimericAlign.h @@ -0,0 +1,28 @@ +#ifndef CODE_ChimericAlign +#define CODE_ChimericAlign + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "ChimericSegment.h" +#include + +class ChimericAlign +{// + public: + ChimericSegment seg1, seg2; //two chimeric segments +// std::unique_ptr al1, al2; //two chimeric alignments - modified by chimeric switching + Transcript *al1, *al2; + + uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; + int chimMotif, chimStr, chimScore; + + ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate + void chimericJunctionOutput(fstream &outStream); + void chimericStitching(char *genSeq, char *readSeq); + + private: + Parameters &P; +}; + +#endif \ No newline at end of file diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp new file mode 100644 index 0000000..9cec077 --- /dev/null +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -0,0 +1,11 @@ +#include "ChimericAlign.h" + +void ChimericAlign::chimericJunctionOutput(fstream &outStream) +{ + outStream << P.chrName[al1->Chr] <<"\t"<< chimJ1 - P.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ + <<"\t"<< P.chrName[al2->Chr] <<"\t"<< chimJ2 - P.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ + <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ + <<"\t"<< al1->exons[0][EX_G] - P.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ + <<"\t"<< al2->exons[0][EX_G] - P.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\n"; //<<"\t"<< al1->exons[0][EX_iFrag]+1 --- no need for that, since al1 is always on the first mate +}; + \ No newline at end of file diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp new file mode 100644 index 0000000..9f1b0e6 --- /dev/null +++ b/ChimericAlign_chimericStitching.cpp @@ -0,0 +1,177 @@ +#include "ChimericAlign.h" + +void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { + + al1=new Transcript(seg1.align); + al2=new Transcript(seg2.align); + + if (al1->roStart > al2->roStart) + swap (al1,al2); + + Transcript &a1=*al1; + Transcript &a2=*al2;//to use insetead of pointers + + + chimStr = max(seg1.str,seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand + + uint e1 = a1.Str==1 ? 0 : a1.nExons-1; + uint e2 = a2.Str==0 ? 0 : a2.nExons-1; + + chimRepeat1=0; chimRepeat2=0; chimJ1=0; chimJ2=0; chimMotif=0; + + if ( a1.exons[e1][EX_iFrag] < a2.exons[e2][EX_iFrag] ) {//mates bracket the chimeric junction + chimMotif=-1; + if (a1.Str==1) {//negative strand + chimJ1=a1.exons[e1][EX_G]-1; + } else { + chimJ1=a1.exons[e1][EX_G]+a1.exons[e1][EX_L]; + }; + if (a2.Str==0) {//positive strand + chimJ2=a2.exons[e2][EX_G]-1; + } else { + chimJ2=a2.exons[e2][EX_G]+a2.exons[e2][EX_L]; + }; + } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary + uint roStart0 = a1.Str==0 ? a1.exons[e1][EX_R] : a1.Lread - a1.exons[e1][EX_R] - a1.exons[e1][EX_L]; + uint roStart1 = a2.Str==0 ? a2.exons[e2][EX_R] : a1.Lread - a2.exons[e2][EX_R] - a2.exons[e2][EX_L]; + + uint jR, jRbest=0; + int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; + for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read + chimScore=0; + return; + }; + + char b01,b02,b11,b12; + if (a1.Str==0) { + b01=genSeq[a1.exons[e1][EX_G]+jR+1]; + b02=genSeq[a1.exons[e1][EX_G]+jR+2]; + } else { + b01=genSeq[a1.exons[e1][EX_G]+a1.exons[e1][EX_L]-1-jR-1]; + if (b01<4) b01=3-b01; + b02=genSeq[a1.exons[e1][EX_G]+a1.exons[e1][EX_L]-1-jR-2]; + if (b02<4) b02=3-b02; + }; + if (a2.Str==0) { + b11=genSeq[a2.exons[e2][EX_G]-roStart1+roStart0+jR-1]; + b12=genSeq[a2.exons[e2][EX_G]-roStart1+roStart0+jR]; + } else { + b11=genSeq[a2.exons[e2][EX_G]+a2.exons[e2][EX_L]-1+roStart1-roStart0-jR+1]; + if (b11<4) b11=3-b11; + b12=genSeq[a2.exons[e2][EX_G]+a2.exons[e2][EX_L]-1+roStart1-roStart0-jR]; + if (b12<4) b12=3-b12; + }; + + jMotif=0; + if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG + if (chimStr!=2) { + jMotif=1; + }; + } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC + if (chimStr!=1) { + jMotif=2; + }; + }; + + if (bR==b0 && bR!=b1) { + jScore++; + } else if (bR!=b0 && bR==b1) { + jScore--; + }; + + jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; + + if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { + chimMotif=jMotif; + jRbest=jR; + jScoreBest=jScoreJ; + }; + };//jR cycle + + + //shift junction in trChim + if (a1.Str==1) { + a1.exons[e1][EX_R] +=a1.exons[e1][EX_L]-jRbest-1; + a1.exons[e1][EX_G] +=a1.exons[e1][EX_L]-jRbest-1; + a1.exons[e1][EX_L]=jRbest+1; + chimJ1=a1.exons[e1][EX_G]-1; + } else { + a1.exons[e1][EX_L]=jRbest+1; + chimJ1=a1.exons[e1][EX_G]+a1.exons[e1][EX_L]; + }; + + if (a2.Str==0) { + a2.exons[e2][EX_R] +=roStart0+jRbest+1-roStart1; + a2.exons[e2][EX_G] +=roStart0+jRbest+1-roStart1; + a2.exons[e2][EX_L]=roStart1+a2.exons[e2][EX_L]-roStart0-jRbest-1; + chimJ2=a2.exons[e2][EX_G]-1; + } else { + a2.exons[e2][EX_L]=roStart1+a2.exons[e2][EX_L]-roStart0-jRbest-1; + chimJ2=a2.exons[e2][EX_G]+a2.exons[e2][EX_L]; + }; + //find repeats + char b0,b1; + for (jR=0;jR<100;jR++) {//forward check + if (a1.Str==0) { + b0=genSeq[chimJ1+jR]; + } else { + b0=genSeq[chimJ1-jR]; + if (b0<4) b0=3-b0; + }; + + if (a2.Str==0) { + b1=genSeq[chimJ2+1+jR]; + } else { + b1=genSeq[chimJ2-1-jR]; + if (b1<4) b1=3-b1; + }; + if (b0!=b1) break; + }; + chimRepeat2=jR; + for (jR=0;jR<100;jR++) {//reverse check + if (a1.Str==0) { + b0=genSeq[chimJ1-1-jR]; + } else { + b0=genSeq[chimJ1+1+jR]; + if (b0<4) b0=3-b0; + }; + + if (a2.Str==0) { + b1=genSeq[chimJ2-jR]; + } else { + b1=genSeq[chimJ2+jR]; + if (b1<4) b1=3-b1; + }; + if (b0!=b1) break; + }; + chimRepeat1=jR; + };//chimeric junction is within a mate + + if (chimMotif>=0 && (a1.exons[e1][EX_L]1) leftMate=Str; + + uint trimL=exons[0][EX_R] - (exons[0][EX_R]0) { + samStreamCIGAR << trimL << "S"; //initial trimming + }; + + for (uint ii=0;ii0) {//record gaps + uint gapG=exons[ii][EX_G]-(exons[ii-1][EX_G]+exons[ii-1][EX_L]); + + if (exons[ii][EX_G] >= (exons[ii-1][EX_G]+exons[ii-1][EX_L]) ) {// + if (canonSJ[ii-1]==-3) {//gap between mates + //soft clipping of the second mate + uint s1=readLengthOriginal[leftMate]-(exons[ii-1][EX_R]+exons[ii-1][EX_L]); + uint s2=exons[ii][EX_R]-(readLengthOriginal[leftMate]+1); + if (s1>0){ + samStreamCIGAR << s1 << "S"; + }; + samStreamCIGAR << gapG << "p"; + if (s2>0){ + samStreamCIGAR << s2 << "S"; + }; + + } else { + //it's possible to have a D or N and I for at the same time + uint gapR=exons[ii][EX_R]-exons[ii-1][EX_R]-exons[ii-1][EX_L]; //gapR>0 always + if (gapR>0){ + samStreamCIGAR << gapR << "I"; + }; + if (canonSJ[ii-1]>=0 || sjAnnot[ii-1]==1) {//junction: N + samStreamCIGAR << gapG << "N"; + } else if (gapG>0) {//deletion + samStreamCIGAR << gapG << "D"; + }; + }; + } else {//mates overlap + samStreamCIGAR << "-" << (exons[ii-1][EX_G]+exons[ii-1][EX_L]) - exons[ii][EX_G] << "p"; + }; + }; + samStreamCIGAR << exons[ii][EX_L] << "M"; + }; + + + trimL=(exons[nExons-1][EX_R] 0 ) { + samStreamCIGAR << trimL << "S"; //final trimming + }; + CIGAR=samStreamCIGAR.str(); + + return CIGAR; +}; From 6daf48bfa46c08619944f2a16e7abee2aabdff27 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 17 Aug 2017 16:34:46 -0400 Subject: [PATCH 269/536] Last commit where the chimeric detection new (mult) much the old chimeric detection. --- ReadAlign_chimericDetectionMult.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index b9406a5..9093c7c 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -105,7 +105,7 @@ bool ReadAlign::chimericDetectionMult() { if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { - chimAligns.clear(); +// chimAligns.clear(); chimAligns.push_back(ChimericAlign(seg1, seg2, chimScore)); if (overlap1==0) { From ce3c0fbba32d4ab1c360a0448a490af43a2540c6 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 17 Aug 2017 18:17:04 -0400 Subject: [PATCH 270/536] Replaced chimScoreNext with true multimapping chimeras. Results are slightly different. --- ReadAlign_chimericDetectionMult.cpp | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 9093c7c..81f732d 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -39,7 +39,7 @@ bool ReadAlign::chimericDetectionMult() { }; vector chimAligns; - int chimScoreBest=0,chimScoreNext=0; + int chimScoreBest=0; for (uint iW1=0; iW1align.exons[e1][EX_L] < P.pCh.junctionOverhangMin && s2->align.exons[e2][EX_L] < P.pCh.junctionOverhangMin) continue; //junction overhangs too short - - uint overlap1=0; - if (iA2>0 && chimScoreBest>0) - {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. - overlap1=blocksOverlap(chimAligns.back().seg2.align,seg2.align); - }; - - if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) - { -// chimAligns.clear(); + + if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange && chimScore >= P.pCh.scoreMin) chimAligns.push_back(ChimericAlign(seg1, seg2, chimScore)); - if (overlap1==0) - { - chimScoreNext=chimScoreBest; - }; + + if (chimScore > chimScoreBest) chimScoreBest=chimScore; - } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one - chimScoreNext=chimScore; - }; }; };//cycle over window2 aligns };//cycle over window2 @@ -131,6 +118,9 @@ bool ReadAlign::chimericDetectionMult() { }; }; + if ( chimScoreBest+P.pCh.scoreDropMax < (int) (readLength[0]+readLength[1]) ) + return chimRecord;//highest score is too low + chimN=0; for (uint ic=0; ic= chimScoreBest - (int)P.pCh.multimapScoreRange) @@ -153,9 +143,6 @@ bool ReadAlign::chimericDetectionMult() { if (chimN > P.pCh.multimapNmax) //too many loci return chimRecord; - if (chimScoreNext >= chimScoreBest - P.pCh.scoreSeparation) - return chimRecord; - for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) chimAligns[ic].chimericJunctionOutput(chunkOutChimJunction); From ccaccae25d813634500320b09d834fda3efd1ef1 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 18 Aug 2017 17:37:46 -0400 Subject: [PATCH 271/536] Stitching for chimScoreBest in the main cycle to avoid eliminating it later. --- ChimericAlign.cpp | 1 + ChimericAlign.h | 2 ++ ChimericAlign_chimericStitching.cpp | 5 +++++ ReadAlign_chimericDetectionMult.cpp | 17 +++++++++-------- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index a04e852..fc5dccd 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -2,4 +2,5 @@ ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn) : seg1(seg1in), seg2(seg2in), P(seg1in.P), chimScore(chimScoreIn) { + stitchingDone=false; }; \ No newline at end of file diff --git a/ChimericAlign.h b/ChimericAlign.h index 55b9548..fcec406 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -21,6 +21,8 @@ class ChimericAlign void chimericJunctionOutput(fstream &outStream); void chimericStitching(char *genSeq, char *readSeq); + bool stitchingDone; + private: Parameters &P; }; diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index 9f1b0e6..fbd9c09 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -2,6 +2,11 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { + if (stitchingDone) + return; + + stitchingDone=true; + al1=new Transcript(seg1.align); al2=new Transcript(seg2.align); diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 81f732d..319dd93 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -100,8 +100,11 @@ bool ReadAlign::chimericDetectionMult() { if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange && chimScore >= P.pCh.scoreMin) chimAligns.push_back(ChimericAlign(seg1, seg2, chimScore)); - if (chimScore > chimScoreBest) - chimScoreBest=chimScore; + if (chimScore > chimScoreBest) { + chimAligns.back().chimericStitching(mapGen.G, Read1[0]); + if (chimAligns.back().chimScore > chimScoreBest) + chimScoreBest=chimAligns.back().chimScore; + }; }; };//cycle over window2 aligns @@ -126,20 +129,17 @@ bool ReadAlign::chimericDetectionMult() { if (chimAligns[ic].chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; - - if (chimN > 2*P.pCh.multimapNmax) //too many loci (consider 2* more candidates for stitching below) + if (chimN > 2*P.pCh.multimapNmax) //too many loci (considering 2* more candidates for stitching below) return chimRecord; - //TODO deal with the case chimScoreBest chimera is eliminated - chimN=0; + chimN=0; for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) { chimAligns[ic].chimericStitching(mapGen.G, Read1[0]); - if (chimAligns[ic].chimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) + if (chimAligns[ic].chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; }; - if (chimN > P.pCh.multimapNmax) //too many loci return chimRecord; @@ -154,5 +154,6 @@ bool ReadAlign::chimericDetectionMult() { // }; if (chimN>0) chimRecord=true; + return chimRecord; };//END From 7cba2551bfa836399a64f9a9ebe747181b98b4a3 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 18 Aug 2017 18:10:13 -0400 Subject: [PATCH 272/536] Stitching for chimScoreBest in the main cycle to avoid eliminating it later. --- ReadAlign_chimericDetectionMult.cpp | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 319dd93..7b98294 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -41,10 +41,8 @@ bool ReadAlign::chimericDetectionMult() { vector chimAligns; int chimScoreBest=0; - for (uint iW1=0; iW1=chimScoreBest-(int)P.pCh.multimapScoreRange && chimScore >= P.pCh.scoreMin) chimAligns.push_back(ChimericAlign(seg1, seg2, chimScore)); - if (chimScore > chimScoreBest) { + if ( chimScore > chimScoreBest && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { chimAligns.back().chimericStitching(mapGen.G, Read1[0]); if (chimAligns.back().chimScore > chimScoreBest) chimScoreBest=chimAligns.back().chimScore; @@ -120,9 +118,9 @@ bool ReadAlign::chimericDetectionMult() { return chimRecord; }; }; - - if ( chimScoreBest+P.pCh.scoreDropMax < (int) (readLength[0]+readLength[1]) ) - return chimRecord;//highest score is too low + + if (chimScoreBest==0) + return chimRecord; chimN=0; for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) chimAligns[ic].chimericJunctionOutput(chunkOutChimJunction); }; -// if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique -// chimAligns[0].chimericStitching(mapGen.G, Read1[0]); -// if (chimAligns[0].chimScore>0) -// chimAligns[0].chimericJunctionOutput(chunkOutChimJunction); -// }; + if (chimN>0) chimRecord=true; From e8a9d0a2cb0d4c228559f6ae62b4c7eb4bf3f264 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 18 Aug 2017 18:12:55 -0400 Subject: [PATCH 273/536] Remove some old filters - small test results are the same as in the previous commit. --- ReadAlign_chimericDetectionMult.cpp | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 7b98294..1494b5f 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -26,18 +26,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) ///////////////////////////////////////////////////////////// bool ReadAlign::chimericDetectionMult() { - bool chimRecord=false; - - //////////////////// chimeras - //stich windows => chimeras - //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows - //stitch only one window on each end of the read - - if (nTr>P.pCh.mainSegmentMultNmax && nTr!=2) - {//multimapping main segment, nTr==2 is a special case to be checked later - return chimRecord; - }; - + bool chimRecord=false; vector chimAligns; int chimScoreBest=0; @@ -110,15 +99,6 @@ bool ReadAlign::chimericDetectionMult() { };//cycle over window1 aligns };//cycle over window1 - if (nTr>P.pCh.mainSegmentMultNmax) - {//check main segment for multi-aligns - //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment - if ( &chimAligns[0].seg2.align!=trMult[0] && &chimAligns[0].seg2.align!=trMult[1] ) - { - return chimRecord; - }; - }; - if (chimScoreBest==0) return chimRecord; From 49001b4152f51dd74dbf056c07b63ee0e53029a4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 18 Aug 2017 18:32:44 -0400 Subject: [PATCH 274/536] Scanning through all windows/aligns, not just bestTr. This adds a number of multimapping chimeras. With --chimMultimapNmax 50, all the old chimeric reads are present. --- ReadAlign_chimericDetectionMult.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 1494b5f..dc8d9ee 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -44,14 +44,11 @@ bool ReadAlign::chimericDetectionMult() { if (!seg1yes) continue; //seg1 is bad - - for (uint iW2=0; iW20) break; //check only best transcripts in each window 2(i.e. iA2=0), for all windows except that of the trBest - if (trBest==trAll[iW2][0] && iA2==0) continue;//for trBest window, check all iA2>0 - + + for (uint iW2=iW1; iW20) From 800b5ea1cb4f80285006fb9a2ebf54af45cfa2e1 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 21 Aug 2017 12:09:49 -0400 Subject: [PATCH 275/536] Removed the requirement that one of the segment is the best Transcript. This adds a large number of chimeras. With --chimMultimapNmax 50, all the old chimeric reads are present. --- ChimericSegment.cpp | 5 +++-- ReadAlign_chimericDetectionMult.cpp | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ChimericSegment.cpp b/ChimericSegment.cpp index 22a5a30..bf2fc6e 100644 --- a/ChimericSegment.cpp +++ b/ChimericSegment.cpp @@ -2,9 +2,10 @@ ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), align(alignIn) { - if (align.intronMotifs[1]==0 && align.intronMotifs[2]==0) {//strand is undefined + if ( (align.intronMotifs[1]==0 && align.intronMotifs[2]==0) || (align.intronMotifs[1]>0 && align.intronMotifs[2]>0)) {//strand is undefined str=0; - } else if ( (align.Str==0) == (align.intronMotifs[1]>0)) {//strand the same as RNA + } else if ( (align.Str==0) == (align.intronMotifs[1]>0)) {//strand the same as RNA. + //This assumes that the aligns have consistent strands, i.e. only intronMotifs[1]>0 OR intronMotifs[2]>0 str=1; } else {//strand opposite to RNA str=2; diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index dc8d9ee..5a54955 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -57,9 +57,9 @@ bool ReadAlign::chimericDetectionMult() { continue; //chimeric segments have to have consitent strands int chimScore=chimericAlignScore(seg1,seg2); - - if ( &seg1.align!=trBest && &seg2.align!=trBest ) - continue; //debug +// +// if ( &seg1.align!=trBest && &seg2.align!=trBest ) +// continue; //debug if (chimScore>0) {//candidate chimera From 2449ef531a29a1c92e6905e7b9b5cdefdf502a50 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 21 Aug 2017 12:53:38 -0400 Subject: [PATCH 276/536] Cleaned up filtering - results are the same as in the previous commit. --- ChimericSegment.cpp | 17 ++++++++++++++++- ChimericSegment.h | 4 ++++ ReadAlign_chimericDetectionMult.cpp | 23 ++++++----------------- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/ChimericSegment.cpp b/ChimericSegment.cpp index bf2fc6e..b82db72 100644 --- a/ChimericSegment.cpp +++ b/ChimericSegment.cpp @@ -1,6 +1,6 @@ #include "ChimericSegment.h" -ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), align(alignIn) +ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), align(alignIn), pCh(Pin.pCh) { if ( (align.intronMotifs[1]==0 && align.intronMotifs[2]==0) || (align.intronMotifs[1]>0 && align.intronMotifs[2]>0)) {//strand is undefined str=0; @@ -14,4 +14,19 @@ ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), roE=align.Str==0 ? align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] - 1 : align.Lread - align.exons[0][EX_R] - 1; if (roS>align.readLength[0]) roS--; if (roE>align.readLength[0]) roE--; +}; + +bool ChimericSegment::segmentCheck() +{ + bool segGood = true; + segGood = segGood && align.rLength >= pCh.segmentMin; //mapped length >= chim segmentMin + segGood = segGood && align.intronMotifs[0]==0; //no non-canonical unannotated juncions. + return segGood; + + //this is already tested for each align with default --outFilterIntronStrands RemoveInconsistentStrands + //segGood = segGood && (align.intronMotifs[1]==0 || align.intronMotifs[2]==0); //consistent intron motifs. + //this is not requiered since seg2 is tested for length + // segGood = segGood && (align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ + // || align.exons[0][EX_R] >= P.pCh.segmentMin); //uncovered by seg1 read length is <= segmentMin + }; \ No newline at end of file diff --git a/ChimericSegment.h b/ChimericSegment.h index b406cdd..684c2a9 100644 --- a/ChimericSegment.h +++ b/ChimericSegment.h @@ -4,6 +4,7 @@ #include "IncludeDefine.h" #include "Parameters.h" #include "Transcript.h" +#include "ParametersChimeric.h" class ChimericSegment {// @@ -11,7 +12,10 @@ class ChimericSegment Transcript &align; //alignment uint roS,roE,str; //start/end/strand in original read coordinates Parameters &P; + ParametersChimeric &pCh; ChimericSegment(Parameters &Pin, Transcript &alignIn); //allocate + + bool segmentCheck();//check if chimeric segment is good private: }; diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 5a54955..2e0c059 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -35,15 +35,8 @@ bool ReadAlign::chimericDetectionMult() { ChimericSegment seg1(P,*trAll[iW1][iA1]); - bool seg1yes = true; - seg1yes = seg1yes && seg1.align.rLength >= P.pCh.segmentMin; //mapped length >= chim segmentMin - seg1yes = seg1yes && (seg1.align.exons[seg1.align.nExons-1][EX_R] + seg1.align.exons[seg1.align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ - || seg1.align.exons[0][EX_R] >= P.pCh.segmentMin); //uncovered by seg1 read length is <= segmentMin - seg1yes = seg1yes && seg1.align.intronMotifs[0]==0; //no non-canonical juncions. TODO: allow non-canonical anotated - seg1yes = seg1yes && (seg1.align.intronMotifs[1]==0 || seg1.align.intronMotifs[2]==0); //consistent intron motifs. TODO: switch to strands - - if (!seg1yes) - continue; //seg1 is bad + if (!seg1.segmentCheck()) + continue; //seg1 is bad - skip for (uint iW2=iW1; iW20) - continue; //do not stitch to a window with non-canonical junctions + if (!seg2.segmentCheck()) + continue; //seg2 is bad - skip + if (seg1.str!=0 && seg2.str!=0 && seg2.str!=seg1.str) - continue; //chimeric segments have to have consitent strands + continue; //chimeric segments have to have consistent strands. TODO: make this optional int chimScore=chimericAlignScore(seg1,seg2); -// -// if ( &seg1.align!=trBest && &seg2.align!=trBest ) -// continue; //debug if (chimScore>0) {//candidate chimera - ChimericSegment *s1=&seg1,*s2=&seg2; if (seg1.align.roStart > seg2.align.roStart) swap (s1,s2); uint e1 = s1->align.Str==1 ? 0 : s1->align.nExons-1; uint e2 = s2->align.Str==0 ? 0 : s2->align.nExons-1; if ( s1->align.exons[e1][EX_iFrag] > s2->align.exons[e2][EX_iFrag] ) continue; //strange configuration - // if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one // chimN=0;//reject such chimeras // //good test example: From 4e7bbe2b3dc57408d8a59d503803a2224bfcd137 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 21 Aug 2017 17:14:47 -0400 Subject: [PATCH 277/536] Streamlined the chimeric align checking. Fixed a bug with filterin short junction overhangs. Results slighlty different from the previous commit. --- ChimericAlign.cpp | 28 +++++++++- ChimericAlign.h | 3 ++ ChimericAlign_chimericStitching.cpp | 81 +++++++++++++---------------- ReadAlign_chimericDetectionMult.cpp | 22 +++----- 4 files changed, 73 insertions(+), 61 deletions(-) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index fc5dccd..ebd6ce3 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -1,6 +1,32 @@ #include "ChimericAlign.h" -ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn) : seg1(seg1in), seg2(seg2in), P(seg1in.P), chimScore(chimScoreIn) +ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn) : seg1(seg1in), seg2(seg2in), P(seg1in.P), chimScore(chimScoreIn), pCh(P.pCh) { stitchingDone=false; + + al1=&seg1.align; + al2=&seg2.align; + + if (al1->roStart > al2->roStart) + swap (al1,al2); + + ex1 = al1->Str==1 ? 0 : al1->nExons-1; + ex2 = al2->Str==0 ? 0 : al2->nExons-1; +}; + +bool ChimericAlign::chimericCheck() +{ + bool chimGood=true; + + chimGood = chimGood && al1->exons[ex1][EX_iFrag] <= al2->exons[ex2][EX_iFrag];//otherwise - strange configuration, both segments contain two mates + //if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one + // chimN=0;//reject such chimeras + //good test example: + //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT + //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA + //} else + + chimGood = chimGood && al1->exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2->exons[ex2][EX_L] >= pCh.junctionOverhangMin;//junction overhangs too short + + return chimGood; }; \ No newline at end of file diff --git a/ChimericAlign.h b/ChimericAlign.h index fcec406..38c3d6d 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -13,6 +13,7 @@ class ChimericAlign ChimericSegment seg1, seg2; //two chimeric segments // std::unique_ptr al1, al2; //two chimeric alignments - modified by chimeric switching Transcript *al1, *al2; + uint ex1, ex2; uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; int chimMotif, chimStr, chimScore; @@ -20,11 +21,13 @@ class ChimericAlign ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate void chimericJunctionOutput(fstream &outStream); void chimericStitching(char *genSeq, char *readSeq); + bool chimericCheck(); bool stitchingDone; private: Parameters &P; + ParametersChimeric &pCh; }; #endif \ No newline at end of file diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index fbd9c09..2a90df0 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -7,42 +7,35 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { stitchingDone=true; - al1=new Transcript(seg1.align); - al2=new Transcript(seg2.align); - - if (al1->roStart > al2->roStart) - swap (al1,al2); - - Transcript &a1=*al1; - Transcript &a2=*al2;//to use insetead of pointers + al1=new Transcript(*al1); + al2=new Transcript(*al2); + Transcript &a1=*al1; + Transcript &a2=*al2;//to use instead of pointers chimStr = max(seg1.str,seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand - - uint e1 = a1.Str==1 ? 0 : a1.nExons-1; - uint e2 = a2.Str==0 ? 0 : a2.nExons-1; chimRepeat1=0; chimRepeat2=0; chimJ1=0; chimJ2=0; chimMotif=0; - if ( a1.exons[e1][EX_iFrag] < a2.exons[e2][EX_iFrag] ) {//mates bracket the chimeric junction + if ( a1.exons[ex1][EX_iFrag] < a2.exons[ex2][EX_iFrag] ) {//mates bracket the chimeric junction chimMotif=-1; if (a1.Str==1) {//negative strand - chimJ1=a1.exons[e1][EX_G]-1; + chimJ1=a1.exons[ex1][EX_G]-1; } else { - chimJ1=a1.exons[e1][EX_G]+a1.exons[e1][EX_L]; + chimJ1=a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]; }; if (a2.Str==0) {//positive strand - chimJ2=a2.exons[e2][EX_G]-1; + chimJ2=a2.exons[ex2][EX_G]-1; } else { - chimJ2=a2.exons[e2][EX_G]+a2.exons[e2][EX_L]; + chimJ2=a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]; }; } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - uint roStart0 = a1.Str==0 ? a1.exons[e1][EX_R] : a1.Lread - a1.exons[e1][EX_R] - a1.exons[e1][EX_L]; - uint roStart1 = a2.Str==0 ? a2.exons[e2][EX_R] : a1.Lread - a2.exons[e2][EX_R] - a2.exons[e2][EX_L]; + uint roStart0 = a1.Str==0 ? a1.exons[ex1][EX_R] : a1.Lread - a1.exons[ex1][EX_R] - a1.exons[ex1][EX_L]; + uint roStart1 = a2.Str==0 ? a2.exons[ex2][EX_R] : a1.Lread - a2.exons[ex2][EX_R] - a2.exons[ex2][EX_L]; uint jR, jRbest=0; int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - for (jR=0; jR=0 && (a1.exons[e1][EX_L]=0 && (a1.exons[ex1][EX_L]0) - {//candidate chimera - ChimericSegment *s1=&seg1,*s2=&seg2; - if (seg1.align.roStart > seg2.align.roStart) swap (s1,s2); - uint e1 = s1->align.Str==1 ? 0 : s1->align.nExons-1; - uint e2 = s2->align.Str==0 ? 0 : s2->align.nExons-1; - if ( s1->align.exons[e1][EX_iFrag] > s2->align.exons[e2][EX_iFrag] ) - continue; //strange configuration - // if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one - // chimN=0;//reject such chimeras - // //good test example: - // //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT - // //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA - // } else + {//candidate chimera + ChimericAlign chAl(seg1, seg2, chimScore); - if (s1->align.exons[e1][EX_L] < P.pCh.junctionOverhangMin && s2->align.exons[e2][EX_L] < P.pCh.junctionOverhangMin) - continue; //junction overhangs too short + if (!chAl.chimericCheck()) + continue; //check chimeric alignment + if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange && chimScore >= P.pCh.scoreMin) - chimAligns.push_back(ChimericAlign(seg1, seg2, chimScore)); + chimAligns.push_back(chAl);//add this chimeric alignment if ( chimScore > chimScoreBest && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { chimAligns.back().chimericStitching(mapGen.G, Read1[0]); From 61367ac8a38a828fa6134bcd778e7f253d5631b4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 21 Aug 2017 17:32:36 -0400 Subject: [PATCH 278/536] Added number of multimapping loci to Chimeric.out.junction output as the last column. the results are the same as in the previous commit. --- ChimericAlign.h | 2 +- ChimericAlign_chimericJunctionOutput.cpp | 4 ++-- ReadAlign_chimericDetectionMult.cpp | 7 +++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/ChimericAlign.h b/ChimericAlign.h index 38c3d6d..6f5b03a 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -19,7 +19,7 @@ class ChimericAlign int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate - void chimericJunctionOutput(fstream &outStream); + void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 9cec077..a42f381 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -1,11 +1,11 @@ #include "ChimericAlign.h" -void ChimericAlign::chimericJunctionOutput(fstream &outStream) +void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN) { outStream << P.chrName[al1->Chr] <<"\t"<< chimJ1 - P.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ <<"\t"<< P.chrName[al2->Chr] <<"\t"<< chimJ2 - P.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ <<"\t"<< al1->exons[0][EX_G] - P.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ - <<"\t"<< al2->exons[0][EX_G] - P.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\n"; //<<"\t"<< al1->exons[0][EX_iFrag]+1 --- no need for that, since al1 is always on the first mate + <<"\t"<< al2->exons[0][EX_G] - P.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN <<"\n"; }; \ No newline at end of file diff --git a/ReadAlign_chimericDetectionMult.cpp b/ReadAlign_chimericDetectionMult.cpp index 989e53d..d9017ed 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ReadAlign_chimericDetectionMult.cpp @@ -58,12 +58,11 @@ bool ReadAlign::chimericDetectionMult() { if (!chAl.chimericCheck()) continue; //check chimeric alignment - - if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange && chimScore >= P.pCh.scoreMin) + if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange) chimAligns.push_back(chAl);//add this chimeric alignment - if ( chimScore > chimScoreBest && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { + if ( chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { chimAligns.back().chimericStitching(mapGen.G, Read1[0]); if (chimAligns.back().chimScore > chimScoreBest) chimScoreBest=chimAligns.back().chimScore; @@ -99,7 +98,7 @@ bool ReadAlign::chimericDetectionMult() { for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) - chimAligns[ic].chimericJunctionOutput(chunkOutChimJunction); + chimAligns[ic].chimericJunctionOutput(chunkOutChimJunction, chimN); }; if (chimN>0) From 511788b1b48470a15e8a88c13dcfeeb52247eed8 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 22 Aug 2017 11:50:20 -0400 Subject: [PATCH 279/536] Memory leakage likely owing to ChimericAligns. --- ChimericAlign.cpp | 6 ++++++ ChimericAlign.h | 1 + 2 files changed, 7 insertions(+) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index ebd6ce3..66cc637 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -14,6 +14,12 @@ ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, i ex2 = al2->Str==0 ? 0 : al2->nExons-1; }; +ChimericAlign::~ChimericAlign() +{ + delete al1; + delete al2; +}; + bool ChimericAlign::chimericCheck() { bool chimGood=true; diff --git a/ChimericAlign.h b/ChimericAlign.h index 6f5b03a..68721c4 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -19,6 +19,7 @@ class ChimericAlign int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate + ~ChimericAlign(); void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); From daeba77333352cc4479666f6da93b05ea9a75062 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 22 Aug 2017 12:13:30 -0400 Subject: [PATCH 280/536] Tried to fix memory leakage in ChimericAligns by replacing Transcript pointers. Too slow, will revert to the previous commit. --- ChimericAlign.cpp | 26 +++---- ChimericAlign.h | 3 +- ChimericAlign_chimericJunctionOutput.cpp | 10 +-- ChimericAlign_chimericStitching.cpp | 98 +++++++++++------------- 4 files changed, 63 insertions(+), 74 deletions(-) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index 66cc637..289552e 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -4,27 +4,23 @@ ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, i { stitchingDone=false; - al1=&seg1.align; - al2=&seg2.align; + if (seg1.align.roStart <= seg2.align.roStart) { + al1=seg1.align; + al2=seg2.align; + } else { + al1=seg2.align; + al2=seg1.align; + }; - if (al1->roStart > al2->roStart) - swap (al1,al2); - - ex1 = al1->Str==1 ? 0 : al1->nExons-1; - ex2 = al2->Str==0 ? 0 : al2->nExons-1; -}; - -ChimericAlign::~ChimericAlign() -{ - delete al1; - delete al2; + ex1 = al1.Str==1 ? 0 : al1.nExons-1; + ex2 = al2.Str==0 ? 0 : al2.nExons-1; }; bool ChimericAlign::chimericCheck() { bool chimGood=true; - chimGood = chimGood && al1->exons[ex1][EX_iFrag] <= al2->exons[ex2][EX_iFrag];//otherwise - strange configuration, both segments contain two mates + chimGood = chimGood && al1.exons[ex1][EX_iFrag] <= al2.exons[ex2][EX_iFrag];//otherwise - strange configuration, both segments contain two mates //if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one // chimN=0;//reject such chimeras //good test example: @@ -32,7 +28,7 @@ bool ChimericAlign::chimericCheck() //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA //} else - chimGood = chimGood && al1->exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2->exons[ex2][EX_L] >= pCh.junctionOverhangMin;//junction overhangs too short + chimGood = chimGood && al1.exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2.exons[ex2][EX_L] >= pCh.junctionOverhangMin;//junction overhangs too short return chimGood; }; \ No newline at end of file diff --git a/ChimericAlign.h b/ChimericAlign.h index 68721c4..314ad9a 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -12,14 +12,13 @@ class ChimericAlign public: ChimericSegment seg1, seg2; //two chimeric segments // std::unique_ptr al1, al2; //two chimeric alignments - modified by chimeric switching - Transcript *al1, *al2; + Transcript al1, al2; uint ex1, ex2; uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate - ~ChimericAlign(); void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index a42f381..6d3487a 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -2,10 +2,10 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN) { - outStream << P.chrName[al1->Chr] <<"\t"<< chimJ1 - P.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ - <<"\t"<< P.chrName[al2->Chr] <<"\t"<< chimJ2 - P.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ - <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ - <<"\t"<< al1->exons[0][EX_G] - P.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ - <<"\t"<< al2->exons[0][EX_G] - P.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN <<"\n"; + outStream << P.chrName[al1.Chr] <<"\t"<< chimJ1 - P.chrStart[al1.Chr]+1 <<"\t"<< (al1.Str==0 ? "+":"-") \ + <<"\t"<< P.chrName[al2.Chr] <<"\t"<< chimJ2 - P.chrStart[al2.Chr]+1 <<"\t"<< (al2.Str==0 ? "+":"-") \ + <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1.readName+1 \ + <<"\t"<< al1.exons[0][EX_G] - P.chrStart[al1.Chr]+1 <<"\t"<< al1.generateCigarP() \ + <<"\t"<< al2.exons[0][EX_G] - P.chrStart[al2.Chr]+1 <<"\t"<< al2.generateCigarP() <<"\t"<< chimN <<"\n"; }; \ No newline at end of file diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index 2a90df0..975c4ec 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -7,52 +7,46 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { stitchingDone=true; - al1=new Transcript(*al1); - al2=new Transcript(*al2); - - Transcript &a1=*al1; - Transcript &a2=*al2;//to use instead of pointers - chimStr = max(seg1.str,seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand chimRepeat1=0; chimRepeat2=0; chimJ1=0; chimJ2=0; chimMotif=0; - if ( a1.exons[ex1][EX_iFrag] < a2.exons[ex2][EX_iFrag] ) {//mates bracket the chimeric junction + if ( al1.exons[ex1][EX_iFrag] < al2.exons[ex2][EX_iFrag] ) {//mates bracket the chimeric junction chimMotif=-1; - if (a1.Str==1) {//negative strand - chimJ1=a1.exons[ex1][EX_G]-1; + if (al1.Str==1) {//negative strand + chimJ1=al1.exons[ex1][EX_G]-1; } else { - chimJ1=a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]; + chimJ1=al1.exons[ex1][EX_G]+al1.exons[ex1][EX_L]; }; - if (a2.Str==0) {//positive strand - chimJ2=a2.exons[ex2][EX_G]-1; + if (al2.Str==0) {//positive strand + chimJ2=al2.exons[ex2][EX_G]-1; } else { - chimJ2=a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]; + chimJ2=al2.exons[ex2][EX_G]+al2.exons[ex2][EX_L]; }; } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - uint roStart0 = a1.Str==0 ? a1.exons[ex1][EX_R] : a1.Lread - a1.exons[ex1][EX_R] - a1.exons[ex1][EX_L]; - uint roStart1 = a2.Str==0 ? a2.exons[ex2][EX_R] : a1.Lread - a2.exons[ex2][EX_R] - a2.exons[ex2][EX_L]; + uint roStart0 = al1.Str==0 ? al1.exons[ex1][EX_R] : al1.Lread - al1.exons[ex1][EX_R] - al1.exons[ex1][EX_L]; + uint roStart1 = al2.Str==0 ? al2.exons[ex2][EX_R] : al1.Lread - al2.exons[ex2][EX_R] - al2.exons[ex2][EX_L]; uint jR, jRbest=0; int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - for (jR=0; jR=0 && (a1.exons[ex1][EX_L]=0 && (al1.exons[ex1][EX_L] Date: Tue, 22 Aug 2017 12:20:14 -0400 Subject: [PATCH 281/536] Revert "Tried to fix memory leakage in ChimericAligns by replacing Transcript pointers. Too slow, will revert to the previous commit." This reverts commit dab33cfaa67c504b192019e2641d5275fb68556a. --- ChimericAlign.cpp | 26 ++++--- ChimericAlign.h | 3 +- ChimericAlign_chimericJunctionOutput.cpp | 10 +-- ChimericAlign_chimericStitching.cpp | 98 +++++++++++++----------- 4 files changed, 74 insertions(+), 63 deletions(-) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index 289552e..66cc637 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -4,23 +4,27 @@ ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, i { stitchingDone=false; - if (seg1.align.roStart <= seg2.align.roStart) { - al1=seg1.align; - al2=seg2.align; - } else { - al1=seg2.align; - al2=seg1.align; - }; + al1=&seg1.align; + al2=&seg2.align; - ex1 = al1.Str==1 ? 0 : al1.nExons-1; - ex2 = al2.Str==0 ? 0 : al2.nExons-1; + if (al1->roStart > al2->roStart) + swap (al1,al2); + + ex1 = al1->Str==1 ? 0 : al1->nExons-1; + ex2 = al2->Str==0 ? 0 : al2->nExons-1; +}; + +ChimericAlign::~ChimericAlign() +{ + delete al1; + delete al2; }; bool ChimericAlign::chimericCheck() { bool chimGood=true; - chimGood = chimGood && al1.exons[ex1][EX_iFrag] <= al2.exons[ex2][EX_iFrag];//otherwise - strange configuration, both segments contain two mates + chimGood = chimGood && al1->exons[ex1][EX_iFrag] <= al2->exons[ex2][EX_iFrag];//otherwise - strange configuration, both segments contain two mates //if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one // chimN=0;//reject such chimeras //good test example: @@ -28,7 +32,7 @@ bool ChimericAlign::chimericCheck() //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA //} else - chimGood = chimGood && al1.exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2.exons[ex2][EX_L] >= pCh.junctionOverhangMin;//junction overhangs too short + chimGood = chimGood && al1->exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2->exons[ex2][EX_L] >= pCh.junctionOverhangMin;//junction overhangs too short return chimGood; }; \ No newline at end of file diff --git a/ChimericAlign.h b/ChimericAlign.h index 314ad9a..68721c4 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -12,13 +12,14 @@ class ChimericAlign public: ChimericSegment seg1, seg2; //two chimeric segments // std::unique_ptr al1, al2; //two chimeric alignments - modified by chimeric switching - Transcript al1, al2; + Transcript *al1, *al2; uint ex1, ex2; uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate + ~ChimericAlign(); void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 6d3487a..a42f381 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -2,10 +2,10 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN) { - outStream << P.chrName[al1.Chr] <<"\t"<< chimJ1 - P.chrStart[al1.Chr]+1 <<"\t"<< (al1.Str==0 ? "+":"-") \ - <<"\t"<< P.chrName[al2.Chr] <<"\t"<< chimJ2 - P.chrStart[al2.Chr]+1 <<"\t"<< (al2.Str==0 ? "+":"-") \ - <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1.readName+1 \ - <<"\t"<< al1.exons[0][EX_G] - P.chrStart[al1.Chr]+1 <<"\t"<< al1.generateCigarP() \ - <<"\t"<< al2.exons[0][EX_G] - P.chrStart[al2.Chr]+1 <<"\t"<< al2.generateCigarP() <<"\t"<< chimN <<"\n"; + outStream << P.chrName[al1->Chr] <<"\t"<< chimJ1 - P.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ + <<"\t"<< P.chrName[al2->Chr] <<"\t"<< chimJ2 - P.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ + <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ + <<"\t"<< al1->exons[0][EX_G] - P.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ + <<"\t"<< al2->exons[0][EX_G] - P.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN <<"\n"; }; \ No newline at end of file diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index 975c4ec..2a90df0 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -7,46 +7,52 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { stitchingDone=true; + al1=new Transcript(*al1); + al2=new Transcript(*al2); + + Transcript &a1=*al1; + Transcript &a2=*al2;//to use instead of pointers + chimStr = max(seg1.str,seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand chimRepeat1=0; chimRepeat2=0; chimJ1=0; chimJ2=0; chimMotif=0; - if ( al1.exons[ex1][EX_iFrag] < al2.exons[ex2][EX_iFrag] ) {//mates bracket the chimeric junction + if ( a1.exons[ex1][EX_iFrag] < a2.exons[ex2][EX_iFrag] ) {//mates bracket the chimeric junction chimMotif=-1; - if (al1.Str==1) {//negative strand - chimJ1=al1.exons[ex1][EX_G]-1; + if (a1.Str==1) {//negative strand + chimJ1=a1.exons[ex1][EX_G]-1; } else { - chimJ1=al1.exons[ex1][EX_G]+al1.exons[ex1][EX_L]; + chimJ1=a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]; }; - if (al2.Str==0) {//positive strand - chimJ2=al2.exons[ex2][EX_G]-1; + if (a2.Str==0) {//positive strand + chimJ2=a2.exons[ex2][EX_G]-1; } else { - chimJ2=al2.exons[ex2][EX_G]+al2.exons[ex2][EX_L]; + chimJ2=a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]; }; } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - uint roStart0 = al1.Str==0 ? al1.exons[ex1][EX_R] : al1.Lread - al1.exons[ex1][EX_R] - al1.exons[ex1][EX_L]; - uint roStart1 = al2.Str==0 ? al2.exons[ex2][EX_R] : al1.Lread - al2.exons[ex2][EX_R] - al2.exons[ex2][EX_L]; + uint roStart0 = a1.Str==0 ? a1.exons[ex1][EX_R] : a1.Lread - a1.exons[ex1][EX_R] - a1.exons[ex1][EX_L]; + uint roStart1 = a2.Str==0 ? a2.exons[ex2][EX_R] : a1.Lread - a2.exons[ex2][EX_R] - a2.exons[ex2][EX_L]; uint jR, jRbest=0; int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - for (jR=0; jR=0 && (al1.exons[ex1][EX_L]=0 && (a1.exons[ex1][EX_L] Date: Tue, 22 Aug 2017 17:19:11 -0400 Subject: [PATCH 282/536] Revert "Memory leakage likely owing to ChimericAligns." This reverts commit 625d21abdfe7d19ae91ef33ae3f34870f9635990. --- ChimericAlign.cpp | 6 ------ ChimericAlign.h | 1 - 2 files changed, 7 deletions(-) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index 66cc637..ebd6ce3 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -14,12 +14,6 @@ ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, i ex2 = al2->Str==0 ? 0 : al2->nExons-1; }; -ChimericAlign::~ChimericAlign() -{ - delete al1; - delete al2; -}; - bool ChimericAlign::chimericCheck() { bool chimGood=true; diff --git a/ChimericAlign.h b/ChimericAlign.h index 68721c4..6f5b03a 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -19,7 +19,6 @@ class ChimericAlign int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate - ~ChimericAlign(); void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); From 56c720e3fcb8e26e76a542227f3f42a9dfe00d45 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 22 Aug 2017 18:47:27 -0400 Subject: [PATCH 283/536] Encapsulated new chimeric detection in chimeric detection class. --- ...himericDetection_chimericDetectionMult.cpp | 23 ++++++++----------- Makefile | 3 ++- ReadAlign.cpp | 2 ++ ReadAlign.h | 14 +++++++---- ReadAlign_chimericDetection.cpp | 2 +- 5 files changed, 24 insertions(+), 20 deletions(-) rename ReadAlign_chimericDetectionMult.cpp => ChimericDetection_chimericDetectionMult.cpp (89%) diff --git a/ReadAlign_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp similarity index 89% rename from ReadAlign_chimericDetectionMult.cpp rename to ChimericDetection_chimericDetectionMult.cpp index d9017ed..ab16dca 100644 --- a/ReadAlign_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -1,11 +1,6 @@ -#include "IncludeDefine.h" -#include "Parameters.h" -#include "Transcript.h" -#include "ReadAlign.h" -#include "BAMfunctions.h" -#include "blocksOverlap.h" +//#include "blocksOverlap.h" +#include "ChimericDetection.h" #include "ChimericSegment.h" -#include "ChimericAlign.h" int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) { @@ -24,11 +19,11 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) }; ///////////////////////////////////////////////////////////// -bool ReadAlign::chimericDetectionMult() { +bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { - bool chimRecord=false; - vector chimAligns; - int chimScoreBest=0; + chimRecord=false; + chimAligns.clear(); + chimScoreBest=0; for (uint iW1=0; iW1 chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { - chimAligns.back().chimericStitching(mapGen.G, Read1[0]); + chimAligns.back().chimericStitching(outGen.G, Read1[0]); if (chimAligns.back().chimScore > chimScoreBest) chimScoreBest=chimAligns.back().chimScore; }; @@ -88,7 +83,7 @@ bool ReadAlign::chimericDetectionMult() { chimN=0; for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) { - chimAligns[ic].chimericStitching(mapGen.G, Read1[0]); + chimAligns[ic].chimericStitching(outGen.G, Read1[0]); if (chimAligns[ic].chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; @@ -98,7 +93,7 @@ bool ReadAlign::chimericDetectionMult() { for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) - chimAligns[ic].chimericJunctionOutput(chunkOutChimJunction, chimN); + chimAligns[ic].chimericJunctionOutput(ostreamChimJunction, chimN); }; if (chimN>0) diff --git a/Makefile b/Makefile index 37ea014..f281e1f 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,8 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o \ ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ ReadAlign_stitchWindowSeeds.o \ - ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionMult.o \ + ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o \ + ChimericDetection.o ChimericDetection_chimericDetectionMult.o \ ChimericSegment.cpp ChimericAlign.cpp ChimericAlign_chimericJunctionOutput.o ChimericAlign_chimericStitching.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ diff --git a/ReadAlign.cpp b/ReadAlign.cpp index d3e925d..88b6355 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -103,6 +103,8 @@ ReadAlign::ReadAlign (Parameters& Pin, const Genome &genomeIn, Transcriptome *Tr Qual1[0]=new char[DEF_readSeqLengthMax+1]; Qual1[1]=new char[DEF_readSeqLengthMax+1]; resetN(); + + chimDet= new ChimericDetection(P, trAll, nWinTr, Read1, mapGen, chunkOutChimJunction); }; diff --git a/ReadAlign.h b/ReadAlign.h index d2eb829..3c1b4da 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -7,10 +7,12 @@ #include "Genome.h" #include "Stats.h" #include "OutSJ.h" -#include #include "Transcriptome.h" #include "BAMoutput.h" #include "Quantifications.h" +#include "ChimericDetection.h" + +#include #include class ReadAlign @@ -116,13 +118,17 @@ class ReadAlign uint nTr, nTrMate; // number of transcripts called intScore maxScore, nextWinScore;//maximum alignment score, next best score - uint chimN, chimRepeat, chimStr, chimMotif; - Transcript trChim[MAX_N_CHIMERAS]; - Transcript trA, trA1, *trBest, *trNext, *trInit; //transcript, best tr, next best tr, initialized tr Transcript ***trAll; //all transcripts for all windows uint *nWinTr; //number of recorded transcripts per window + //old chimeric detection + uint chimN, chimRepeat, chimStr, chimMotif; + Transcript trChim[MAX_N_CHIMERAS]; + //new chimeric detection + ChimericDetection *chimDet; + + Transcript *alignC, *extendC, *polyAtailC; //alignment rules/conditions Transcript* trMult[MAX_N_MULTMAP];//multimapping transcripts diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index d023ca0..f67b4e4 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -39,7 +39,7 @@ bool ReadAlign::chimericDetection() { chimRecord=chimericDetectionOld(); } else { - chimRecord=chimericDetectionMult(); + chimRecord=chimDet->chimericDetectionMult(nW, readLength); }; return chimRecord; From a68c60eaee1fd81e8422db502006155fa3296e99 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 22 Aug 2017 18:47:53 -0400 Subject: [PATCH 284/536] Encapsulated new chimeric detection in chimeric detection class. --- ChimericDetection.cpp | 8 ++++++++ ChimericDetection.h | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 ChimericDetection.cpp create mode 100644 ChimericDetection.h diff --git a/ChimericDetection.cpp b/ChimericDetection.cpp new file mode 100644 index 0000000..f9c8351 --- /dev/null +++ b/ChimericDetection.cpp @@ -0,0 +1,8 @@ +#include "ChimericDetection.h" + +ChimericDetection::ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream &ostreamChimJunctionIn) + : P(Pin), trAll(trAll), nWinTr(nWinTr), Read1(Read1in), outGen(mapGenIn), ostreamChimJunction(ostreamChimJunctionIn) { + + alignsModified.resize(P.pCh.multimapNmax*2); + +}; \ No newline at end of file diff --git a/ChimericDetection.h b/ChimericDetection.h new file mode 100644 index 0000000..93c2da7 --- /dev/null +++ b/ChimericDetection.h @@ -0,0 +1,32 @@ +#ifndef CODE_ChimericDetection +#define CODE_ChimericDetection + +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "ChimericAlign.h" +#include "Genome.h" + +class ChimericDetection { + public: + uint chimN; + vector chimAligns; + bool chimRecord; + int chimScoreBest; + + vector alignsModified; //separate storage for modified aligns + + ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream &ostreamChimJunctionIn); + bool chimericDetectionMult(uint nWin, uint *readLengthIn); + + private: + Parameters &P; + Transcript ***trAll; + uint nW, *nWinTr; + char** Read1; + uint *readLength; + Genome &outGen; + fstream &ostreamChimJunction; +}; + +#endif \ No newline at end of file From d13752a2877402a765cb05ccb725d2749c3fd22d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 23 Aug 2017 15:34:52 -0400 Subject: [PATCH 285/536] vecAligns approach does not work - the aligns are screwed up when vector is re-allocated. --- ChimericAlign.cpp | 3 ++- ChimericAlign.h | 3 ++- ChimericAlign_chimericStitching.cpp | 11 ++++++----- ChimericDetection.cpp | 2 +- ChimericDetection.h | 2 +- ChimericDetection_chimericDetectionMult.cpp | 17 +++++++++-------- 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index ebd6ce3..5603056 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -1,6 +1,7 @@ #include "ChimericAlign.h" -ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn) : seg1(seg1in), seg2(seg2in), P(seg1in.P), chimScore(chimScoreIn), pCh(P.pCh) +ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, vector &vecAlignsIn) + : seg1(seg1in), seg2(seg2in),chimScore(chimScoreIn), vecAligns(vecAlignsIn), P(seg1in.P), pCh(P.pCh) { stitchingDone=false; diff --git a/ChimericAlign.h b/ChimericAlign.h index 6f5b03a..5f372b1 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -18,7 +18,7 @@ class ChimericAlign uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; int chimMotif, chimStr, chimScore; - ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate + ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, vector &vecAlignsIn); //allocate void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); @@ -28,6 +28,7 @@ class ChimericAlign private: Parameters &P; ParametersChimeric &pCh; + vector &vecAligns; }; #endif \ No newline at end of file diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index 2a90df0..e9f03dd 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -7,10 +7,11 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { stitchingDone=true; - al1=new Transcript(*al1); - al2=new Transcript(*al2); - - Transcript &a1=*al1; + vecAligns.push_back(*al1); + al1=&vecAligns.back(); + Transcript &a1=*al1;//to use instead of pointers + vecAligns.push_back(*al2); + al2=&vecAligns.back(); Transcript &a2=*al2;//to use instead of pointers chimStr = max(seg1.str,seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand @@ -168,7 +169,7 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { if (chimMotif>=0 && (a1.exons[ex1][EX_L] alignsModified; //separate storage for modified aligns + vector vecAligns; //separate storage for modified aligns ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream &ostreamChimJunctionIn); bool chimericDetectionMult(uint nWin, uint *readLengthIn); diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index ab16dca..1bbf05d 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -21,7 +21,8 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) ///////////////////////////////////////////////////////////// bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { - chimRecord=false; + chimRecord=false; + vecAligns.clear(); chimAligns.clear(); chimScoreBest=0; @@ -49,7 +50,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { if (chimScore>0) {//candidate chimera - ChimericAlign chAl(seg1, seg2, chimScore); + ChimericAlign chAl(seg1, seg2, chimScore, vecAligns); if (!chAl.chimericCheck()) continue; //check chimeric alignment @@ -74,7 +75,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { chimN=0; for (uint ic=0; ic= chimScoreBest - (int)P.pCh.multimapScoreRange) + if (chimAligns.at(ic).chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; if (chimN > 2*P.pCh.multimapNmax) //too many loci (considering 2* more candidates for stitching below) @@ -82,9 +83,9 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { chimN=0; for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) { - chimAligns[ic].chimericStitching(outGen.G, Read1[0]); - if (chimAligns[ic].chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) + if (chimAligns.at(ic).chimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) { + chimAligns.at(ic).chimericStitching(outGen.G, Read1[0]); + if (chimAligns.at(ic).chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; }; @@ -92,8 +93,8 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { return chimRecord; for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) - chimAligns[ic].chimericJunctionOutput(ostreamChimJunction, chimN); + if (chimAligns.at(ic).chimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) + chimAligns.at(ic).chimericJunctionOutput(ostreamChimJunction, chimN); }; if (chimN>0) From 45776f640672d7bb9b059133be82d13d30dcf6bd Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 23 Aug 2017 17:04:19 -0400 Subject: [PATCH 286/536] Fixed the memory leakage. The results are the same as in the 93229 commit. --- ChimericAlign_chimericStitching.cpp | 11 ++++--- ChimericDetection_chimericDetectionMult.cpp | 33 +++++++++++++++------ 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index e9f03dd..2a90df0 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -7,11 +7,10 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { stitchingDone=true; - vecAligns.push_back(*al1); - al1=&vecAligns.back(); - Transcript &a1=*al1;//to use instead of pointers - vecAligns.push_back(*al2); - al2=&vecAligns.back(); + al1=new Transcript(*al1); + al2=new Transcript(*al2); + + Transcript &a1=*al1; Transcript &a2=*al2;//to use instead of pointers chimStr = max(seg1.str,seg2.str); //segment strands are either equal, or one is zero - select the non-zero strand @@ -169,7 +168,7 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { if (chimMotif>=0 && (a1.exons[ex1][EX_L]stitchingDone) {//al1,al2 were allocated + delete cAit->al1; + delete cAit->al2; + }; + }; + chimAligns.clear(); chimScoreBest=0; @@ -74,27 +89,27 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { return chimRecord; chimN=0; - for (uint ic=0; ic= chimScoreBest - (int)P.pCh.multimapScoreRange) + for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; if (chimN > 2*P.pCh.multimapNmax) //too many loci (considering 2* more candidates for stitching below) return chimRecord; chimN=0; - for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) { - chimAligns.at(ic).chimericStitching(outGen.G, Read1[0]); - if (chimAligns.at(ic).chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) + for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) { + cAit->chimericStitching(outGen.G, Read1[0]); + if (cAit->chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; }; if (chimN > P.pCh.multimapNmax) //too many loci return chimRecord; - for (uint ic=0; ic= chimScoreBest-(int)P.pCh.multimapScoreRange) - chimAligns.at(ic).chimericJunctionOutput(ostreamChimJunction, chimN); + for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) + cAit->chimericJunctionOutput(ostreamChimJunction, chimN); }; if (chimN>0) From be972513b88a519307eee962b66c4d6c6cb9688e Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 23 Aug 2017 18:12:36 -0400 Subject: [PATCH 287/536] Changed pre-filtering of short overhangs - only done for chimerically split mates. Result are slightly different from the previous commit. --- ChimericAlign.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index 5603056..a209111 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -26,8 +26,9 @@ bool ChimericAlign::chimericCheck() //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA //} else - - chimGood = chimGood && al1->exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2->exons[ex2][EX_L] >= pCh.junctionOverhangMin;//junction overhangs too short + + //junction overhangs too short for chimerically spliced mates + chimGood = chimGood && (al1->exons[ex1][EX_iFrag] < al2->exons[ex2][EX_iFrag] || (al1->exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2->exons[ex2][EX_L] >= pCh.junctionOverhangMin) ); return chimGood; -}; \ No newline at end of file +}; From 1c153fec43802ff94f8d455461bfaf8f98a5d712 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 23 Aug 2017 18:41:07 -0400 Subject: [PATCH 288/536] Removed vecAligns. --- ChimericAlign.cpp | 4 ++-- ChimericAlign.h | 3 +-- ChimericDetection.cpp | 5 +---- ChimericDetection.h | 4 +--- ChimericDetection_chimericDetectionMult.cpp | 3 +-- 5 files changed, 6 insertions(+), 13 deletions(-) diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index a209111..4352e54 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -1,7 +1,7 @@ #include "ChimericAlign.h" -ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, vector &vecAlignsIn) - : seg1(seg1in), seg2(seg2in),chimScore(chimScoreIn), vecAligns(vecAlignsIn), P(seg1in.P), pCh(P.pCh) +ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn) + : seg1(seg1in), seg2(seg2in),chimScore(chimScoreIn), P(seg1in.P), pCh(P.pCh) { stitchingDone=false; diff --git a/ChimericAlign.h b/ChimericAlign.h index 5f372b1..6f5b03a 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -18,7 +18,7 @@ class ChimericAlign uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; int chimMotif, chimStr, chimScore; - ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, vector &vecAlignsIn); //allocate + ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); @@ -28,7 +28,6 @@ class ChimericAlign private: Parameters &P; ParametersChimeric &pCh; - vector &vecAligns; }; #endif \ No newline at end of file diff --git a/ChimericDetection.cpp b/ChimericDetection.cpp index 3c86188..093388c 100644 --- a/ChimericDetection.cpp +++ b/ChimericDetection.cpp @@ -1,8 +1,5 @@ #include "ChimericDetection.h" ChimericDetection::ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream &ostreamChimJunctionIn) - : P(Pin), trAll(trAll), nWinTr(nWinTr), Read1(Read1in), outGen(mapGenIn), ostreamChimJunction(ostreamChimJunctionIn) { - - vecAligns.reserve(P.pCh.multimapNmax*2); //pre-allocate - + : P(Pin), trAll(trAll), nWinTr(nWinTr), Read1(Read1in), outGen(mapGenIn), ostreamChimJunction(ostreamChimJunctionIn) { }; \ No newline at end of file diff --git a/ChimericDetection.h b/ChimericDetection.h index ff8eb52..05616d8 100644 --- a/ChimericDetection.h +++ b/ChimericDetection.h @@ -13,9 +13,7 @@ class ChimericDetection { vector chimAligns; bool chimRecord; int chimScoreBest; - - vector vecAligns; //separate storage for modified aligns - + ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream &ostreamChimJunctionIn); bool chimericDetectionMult(uint nWin, uint *readLengthIn); diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 2a7b51c..371a23d 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -22,7 +22,6 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { chimRecord=false; - vecAligns.clear(); // for (uint ii=0;ii0) {//candidate chimera - ChimericAlign chAl(seg1, seg2, chimScore, vecAligns); + ChimericAlign chAl(seg1, seg2, chimScore); if (!chAl.chimericCheck()) continue; //check chimeric alignment From 9089119023aa61a11123f2f422ddb9df825e0b63 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 24 Aug 2017 16:38:28 -0400 Subject: [PATCH 289/536] Implemented --chimNonchimScoreDropMin option to triggering of chimeric detection for good non-chimeric alignments. --- ChimericAlign_chimericStitching.cpp | 224 +++++++++++++-------------- Parameters.cpp | 1 + ParametersChimeric.h | 2 +- ReadAlign_chimericDetection.cpp | 2 +- parametersDefault | 5 +- parametersDefault.xxd | 228 +++++++++++++++------------- 6 files changed, 243 insertions(+), 219 deletions(-) diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index 2a90df0..6f8bbf5 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -30,140 +30,140 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { chimJ2=a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]; }; } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - uint roStart0 = a1.Str==0 ? a1.exons[ex1][EX_R] : a1.Lread - a1.exons[ex1][EX_R] - a1.exons[ex1][EX_L]; - uint roStart1 = a2.Str==0 ? a2.exons[ex2][EX_R] : a1.Lread - a2.exons[ex2][EX_R] - a2.exons[ex2][EX_L]; + uint roStart0 = a1.Str==0 ? a1.exons[ex1][EX_R] : a1.Lread - a1.exons[ex1][EX_R] - a1.exons[ex1][EX_L]; + uint roStart1 = a2.Str==0 ? a2.exons[ex2][EX_R] : a1.Lread - a2.exons[ex2][EX_R] - a2.exons[ex2][EX_L]; - uint jR, jRbest=0; - int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read - chimScore=0; - return; - }; + if ( ( P.pCh.filter.genomicN && (b0>3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read + chimScore=0; + return; + }; + + char b01,b02,b11,b12; + if (a1.Str==0) { + b01=genSeq[a1.exons[ex1][EX_G]+jR+1]; + b02=genSeq[a1.exons[ex1][EX_G]+jR+2]; + } else { + b01=genSeq[a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]-1-jR-1]; + if (b01<4) b01=3-b01; + b02=genSeq[a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]-1-jR-2]; + if (b02<4) b02=3-b02; + }; + if (a2.Str==0) { + b11=genSeq[a2.exons[ex2][EX_G]-roStart1+roStart0+jR-1]; + b12=genSeq[a2.exons[ex2][EX_G]-roStart1+roStart0+jR]; + } else { + b11=genSeq[a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]-1+roStart1-roStart0-jR+1]; + if (b11<4) b11=3-b11; + b12=genSeq[a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]-1+roStart1-roStart0-jR]; + if (b12<4) b12=3-b12; + }; - char b01,b02,b11,b12; - if (a1.Str==0) { - b01=genSeq[a1.exons[ex1][EX_G]+jR+1]; - b02=genSeq[a1.exons[ex1][EX_G]+jR+2]; - } else { - b01=genSeq[a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]-1-jR-1]; - if (b01<4) b01=3-b01; - b02=genSeq[a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]-1-jR-2]; - if (b02<4) b02=3-b02; + jMotif=0; + if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG + if (chimStr!=2) { + jMotif=1; }; - if (a2.Str==0) { - b11=genSeq[a2.exons[ex2][EX_G]-roStart1+roStart0+jR-1]; - b12=genSeq[a2.exons[ex2][EX_G]-roStart1+roStart0+jR]; - } else { - b11=genSeq[a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]-1+roStart1-roStart0-jR+1]; - if (b11<4) b11=3-b11; - b12=genSeq[a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]-1+roStart1-roStart0-jR]; - if (b12<4) b12=3-b12; + } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC + if (chimStr!=1) { + jMotif=2; }; + }; - jMotif=0; - if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG - if (chimStr!=2) { - jMotif=1; - }; - } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC - if (chimStr!=1) { - jMotif=2; - }; - }; + if (bR==b0 && bR!=b1) { + jScore++; + } else if (bR!=b0 && bR==b1) { + jScore--; + }; - if (bR==b0 && bR!=b1) { - jScore++; - } else if (bR!=b0 && bR==b1) { - jScore--; - }; + jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; - jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; + if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { + chimMotif=jMotif; + jRbest=jR; + jScoreBest=jScoreJ; + }; + };//jR cycle - if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { - chimMotif=jMotif; - jRbest=jR; - jScoreBest=jScoreJ; - }; - };//jR cycle - - - //shift junction in trChim - if (a1.Str==1) { - a1.exons[ex1][EX_R] +=a1.exons[ex1][EX_L]-jRbest-1; - a1.exons[ex1][EX_G] +=a1.exons[ex1][EX_L]-jRbest-1; - a1.exons[ex1][EX_L]=jRbest+1; - chimJ1=a1.exons[ex1][EX_G]-1; + + //shift junction in trChim + if (a1.Str==1) { + a1.exons[ex1][EX_R] +=a1.exons[ex1][EX_L]-jRbest-1; + a1.exons[ex1][EX_G] +=a1.exons[ex1][EX_L]-jRbest-1; + a1.exons[ex1][EX_L]=jRbest+1; + chimJ1=a1.exons[ex1][EX_G]-1; + } else { + a1.exons[ex1][EX_L]=jRbest+1; + chimJ1=a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]; + }; + + if (a2.Str==0) { + a2.exons[ex2][EX_R] +=roStart0+jRbest+1-roStart1; + a2.exons[ex2][EX_G] +=roStart0+jRbest+1-roStart1; + a2.exons[ex2][EX_L]=roStart1+a2.exons[ex2][EX_L]-roStart0-jRbest-1; + chimJ2=a2.exons[ex2][EX_G]-1; + } else { + a2.exons[ex2][EX_L]=roStart1+a2.exons[ex2][EX_L]-roStart0-jRbest-1; + chimJ2=a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]; + }; + //find repeats + char b0,b1; + for (jR=0;jR<100;jR++) {//forward check + if (a1.Str==0) { + b0=genSeq[chimJ1+jR]; } else { - a1.exons[ex1][EX_L]=jRbest+1; - chimJ1=a1.exons[ex1][EX_G]+a1.exons[ex1][EX_L]; + b0=genSeq[chimJ1-jR]; + if (b0<4) b0=3-b0; }; if (a2.Str==0) { - a2.exons[ex2][EX_R] +=roStart0+jRbest+1-roStart1; - a2.exons[ex2][EX_G] +=roStart0+jRbest+1-roStart1; - a2.exons[ex2][EX_L]=roStart1+a2.exons[ex2][EX_L]-roStart0-jRbest-1; - chimJ2=a2.exons[ex2][EX_G]-1; + b1=genSeq[chimJ2+1+jR]; } else { - a2.exons[ex2][EX_L]=roStart1+a2.exons[ex2][EX_L]-roStart0-jRbest-1; - chimJ2=a2.exons[ex2][EX_G]+a2.exons[ex2][EX_L]; + b1=genSeq[chimJ2-1-jR]; + if (b1<4) b1=3-b1; }; - //find repeats - char b0,b1; - for (jR=0;jR<100;jR++) {//forward check - if (a1.Str==0) { - b0=genSeq[chimJ1+jR]; - } else { - b0=genSeq[chimJ1-jR]; - if (b0<4) b0=3-b0; - }; - - if (a2.Str==0) { - b1=genSeq[chimJ2+1+jR]; - } else { - b1=genSeq[chimJ2-1-jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; + if (b0!=b1) break; + }; + chimRepeat2=jR; + for (jR=0;jR<100;jR++) {//reverse check + if (a1.Str==0) { + b0=genSeq[chimJ1-1-jR]; + } else { + b0=genSeq[chimJ1+1+jR]; + if (b0<4) b0=3-b0; }; - chimRepeat2=jR; - for (jR=0;jR<100;jR++) {//reverse check - if (a1.Str==0) { - b0=genSeq[chimJ1-1-jR]; - } else { - b0=genSeq[chimJ1+1+jR]; - if (b0<4) b0=3-b0; - }; - if (a2.Str==0) { - b1=genSeq[chimJ2-jR]; - } else { - b1=genSeq[chimJ2+jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; + if (a2.Str==0) { + b1=genSeq[chimJ2-jR]; + } else { + b1=genSeq[chimJ2+jR]; + if (b1<4) b1=3-b1; }; - chimRepeat1=jR; + if (b0!=b1) break; + }; + chimRepeat1=jR; };//chimeric junction is within a mate if (chimMotif>=0 && (a1.exons[ex1][EX_L] (-1, -1, "chimSegmentReadGapMax", &pCh.segmentReadGapMax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMultimapNmax", &pCh.multimapNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMultimapScoreRange", &pCh.multimapScoreRange)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimNonchimScoreDropMin", &pCh.nonchimScoreDropMin)); //sjdb parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); diff --git a/ParametersChimeric.h b/ParametersChimeric.h index 62f1137..a267b6b 100644 --- a/ParametersChimeric.h +++ b/ParametersChimeric.h @@ -11,7 +11,7 @@ class ParametersChimeric int scoreMin,scoreDropMax,scoreSeparation, scoreJunctionNonGTAG; //min chimeric score uint mainSegmentMultNmax; - uint multimapScoreRange, multimapNmax; + uint multimapScoreRange, multimapNmax, nonchimScoreDropMin; struct { diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index f67b4e4..eb8eb56 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -37,7 +37,7 @@ bool ReadAlign::chimericDetection() { if (P.pCh.multimapNmax==0) { chimRecord=chimericDetectionOld(); - } else + } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) //require big enough drop in the best score { chimRecord=chimDet->chimericDetectionMult(nW, readLength); }; diff --git a/parametersDefault b/parametersDefault index d47ca00..34a9e98 100644 --- a/parametersDefault +++ b/parametersDefault @@ -583,7 +583,10 @@ chimMultimapNmax 0 0 ... use the old scheme for chimeric detection which only considered unique alignments chimMultimapScoreRange 1 - int>=0: the score range for multi-mapping chimeras below the best chimeric score + int>=0: the score range for multi-mapping chimeras below the best chimeric score. Only works with --chimMultimapNmax > 1 + +chimNonchimScoreDropMin 20 + int>=0: to trigger chimeric detection, the drop in the best non-chimeric alignment score with respect to the read lenght has to be smaller than this value ### Quantification of Annotations quantMode - diff --git a/parametersDefault.xxd b/parametersDefault.xxd index a7d0757..5bd9765 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2546,113 +2546,133 @@ unsigned char parametersDefault[] = { 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, + 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, + 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, + 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, - 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, - 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, - 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, - 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, - 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, - 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, + 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, + 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, + 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, - 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, - 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, + 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, + 0x0a }; -unsigned int parametersDefault_len = 31854; +unsigned int parametersDefault_len = 32089; From fe1fda674490e89d1770534834f50eaf863699e7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 29 Aug 2017 18:54:11 -0400 Subject: [PATCH 290/536] Encapsulated genome* and sjdb* parameters into the ParametersGenome class. --- Genome.cpp | 138 ++++++++++++------------ Genome_insertSequences.cpp | 2 +- OutSJ.cpp | 2 +- ParGenome.h | 46 -------- Parameters.cpp | 100 ++++++++--------- Parameters.h | 22 ++-- ParametersGenome.h | 28 +++++ ReadAlign_maxMappableLength2strands.cpp | 10 +- STAR.cpp | 14 +-- Transcript_alignScore.cpp | 2 +- Transcriptome.cpp | 10 +- Variation.cpp | 6 +- Variation.h | 2 +- genomeGenerate.cpp | 72 ++++++------- genomeParametersWrite.cpp | 34 +++--- genomeSAindex.cpp | 46 ++++---- genomeScanFastaFiles.cpp | 12 +-- insertSeqSA.cpp | 12 +-- loadGTF.cpp | 36 +++---- sjSplitAlign.cpp | 4 +- sjdbBuildIndex.cpp | 12 +-- sjdbInsertJunctions.cpp | 28 ++--- sjdbLoadFromFiles.cpp | 12 +-- sjdbPrepare.cpp | 12 +-- stitchAlignToTranscript.cpp | 4 +- streamFuns.cpp | 6 +- 26 files changed, 323 insertions(+), 349 deletions(-) delete mode 100644 ParGenome.h create mode 100644 ParametersGenome.h diff --git a/Genome.cpp b/Genome.cpp index 54f348d..cb25e50 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -26,7 +26,7 @@ #define SHM_projectID 23 Genome::Genome (Parameters& Pin ): P(Pin), shmStart(NULL), sharedMemory(NULL) { - shmKey=ftok(P.genomeDir.c_str(),SHM_projectID); + shmKey=ftok(P.pGe.gDir.c_str(),SHM_projectID); }; Genome::~Genome() @@ -38,7 +38,7 @@ Genome::~Genome() void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array - if (P.genomeLoad=="NoSharedMemory") {//can deallocate only for non-shared memory + if (P.pGe.gLoad=="NoSharedMemory") {//can deallocate only for non-shared memory delete[] G1; G1=NULL; SA.deallocateArray(); @@ -49,11 +49,11 @@ void Genome::freeMemory(){//free big chunks of memory used by genome and suffix uint Genome::OpenStream(string name, ifstream & stream, uint size) { - stream.open((P.genomeDir+ "/" +name).c_str(), ios::binary); + stream.open((P.pGe.gDir+ "/" +name).c_str(), ios::binary); if (!stream.good()) { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P.genomeDir << "/" << name <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <logMain, EXIT_CODE_GENOME_FILES, P); }; @@ -89,7 +89,7 @@ void Genome::genomeLoad(){//allocate and load Genome Parameters P1; - ifstream parFile((P.genomeDir+("/genomeParameters.txt")).c_str()); + ifstream parFile((P.pGe.gDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { P.inOut->logMain << "Reading genome generation parameters:\n"; P1.inOut = P.inOut; @@ -97,8 +97,8 @@ void Genome::genomeLoad(){//allocate and load Genome parFile.close(); } else { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P.genomeDir+("/genomeParameters.txt") << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <logMain, EXIT_CODE_GENOME_FILES, P); }; @@ -108,9 +108,9 @@ void Genome::genomeLoad(){//allocate and load Genome errOut << "EXITING because of FATAL ERROR: read no value for the versionGenome parameter from genomeParameters.txt file\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); - } else if (P.sjdbFileChrStartEnd.at(0)=="-" && P1.versionGenome.at(0) >= P.versionGenome.at(0)) {// + } else if (P.pGe.sjdbFileChrStartEnd.at(0)=="-" && P1.versionGenome.at(0) >= P.versionGenome.at(0)) {// P.inOut->logMain << "Genome version is compatible with current STAR version\n"; - } else if (P.sjdbFileChrStartEnd.at(0)!="-" && P1.versionGenome.at(0) >= P.versionGenome.at(1)) {// + } else if (P.pGe.sjdbFileChrStartEnd.at(0)!="-" && P1.versionGenome.at(0) >= P.versionGenome.at(1)) {// P.inOut->logMain << "Genome version is compatible with current STAR version\n"; } else { ostringstream errOut; @@ -125,12 +125,12 @@ void Genome::genomeLoad(){//allocate and load Genome //check if sjdbInfo.txt exists => genome was generated with junctions bool sjdbInfoExists=false; struct stat sjdb1; - if ( stat( (P.genomeDir+"/sjdbInfo.txt").c_str(), &sjdb1) == 0 ) + if ( stat( (P.pGe.gDir+"/sjdbInfo.txt").c_str(), &sjdb1) == 0 ) {//file exists sjdbInfoExists=true; }; - if ( P.sjdbInsert.yes && sjdbInfoExists && P1.sjdbInsert.save=="") + if ( P.sjdbInsert.yes && sjdbInfoExists && P1.pGe.sjdbInsertSave=="") {//if sjdbInsert, and genome had junctions, and genome is old - it should be re-generated with new STAR ostringstream errOut; errOut << "EXITING because of FATAL ERROR: old Genome is INCOMPATIBLE with on the fly junction insertion\n"; @@ -139,50 +139,50 @@ void Genome::genomeLoad(){//allocate and load Genome }; //record required genome parameters in P - P.genomeSAindexNbases=P1.genomeSAindexNbases; - P.genomeChrBinNbits=P1.genomeChrBinNbits; - P.genomeChrBinNbases=1LLU<0) + if (P1.pGe.gFileSizes.size()>0) {//genomeFileSize was recorded in the genomeParameters file, copy the values to P - P.genomeFileSizes = P1.genomeFileSizes; + P.pGe.gFileSizes = P1.pGe.gFileSizes; }; - if (P.parArray.at(P.sjdbOverhang_par)->inputLevel==0 && P1.sjdbOverhang>0) - {//if --sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use sjdbOverhang from the genome generation step - P.sjdbOverhang=P1.sjdbOverhang; - P.inOut->logMain << "--sjdbOverhang = " << P.sjdbOverhang << " taken from the generated genome\n"; - } else if (sjdbInfoExists && P.parArray.at(P.sjdbOverhang_par)->inputLevel>0 && P.sjdbOverhang!=P1.sjdbOverhang) - {//if sjdbOverhang was defined at the genome generation step,the mapping step value has to agree with it + if (P.parArray.at(P.pGe.sjdbOverhang_par)->inputLevel==0 && P1.pGe.sjdbOverhang>0) + {//if --pGe.sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use pGe.sjdbOverhang from the genome generation step + P.pGe.sjdbOverhang=P1.pGe.sjdbOverhang; + P.inOut->logMain << "--pGe.sjdbOverhang = " << P.pGe.sjdbOverhang << " taken from the generated genome\n"; + } else if (sjdbInfoExists && P.parArray.at(P.pGe.sjdbOverhang_par)->inputLevel>0 && P.pGe.sjdbOverhang!=P1.pGe.sjdbOverhang) + {//if pGe.sjdbOverhang was defined at the genome generation step,the mapping step value has to agree with it ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: present --sjdbOverhang="<logMain, EXIT_CODE_GENOME_FILES, P); }; - P.sjdbLength = P.sjdbOverhang==0 ? 0 : P.sjdbOverhang*2+1; + P.sjdbLength = P.pGe.sjdbOverhang==0 ? 0 : P.pGe.sjdbOverhang*2+1; P.inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<logMain << "Read from SAindex: genomeSAindexNbases=" << P.genomeSAindexNbases <<" nSAi="<< P.nSAi <logMain << "Read from SAindex: pGe.gSAindexNbases=" << P.pGe.gSAindexNbases <<" nSAi="<< P.nSAi <0) shmSize+=P.nGenome; - if ((P.genomeLoad=="LoadAndKeep" || - P.genomeLoad=="LoadAndRemove" || - P.genomeLoad=="LoadAndExit" || - P.genomeLoad=="Remove") && sharedMemory == NULL) + if ((P.pGe.gLoad=="LoadAndKeep" || + P.pGe.gLoad=="LoadAndRemove" || + P.pGe.gLoad=="LoadAndExit" || + P.pGe.gLoad=="Remove") && sharedMemory == NULL) { - bool unloadLast = P.genomeLoad=="LoadAndRemove"; + bool unloadLast = P.pGe.gLoad=="LoadAndRemove"; try { sharedMemory = new SharedMemory(shmKey, unloadLast); @@ -225,7 +225,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (!sharedMemory->NeedsAllocation()) P.inOut->logMain <<"Found genome in shared memory\n"<NeedsAllocation()) {//did not find genome in shared memory, nothing to kill ostringstream errOut; errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; @@ -265,7 +265,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (iwait==100) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: waited too long for the other job to finish loading the genome" << strerror(errno) << "\n" <logMain, EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG, P); }; }; @@ -274,7 +274,7 @@ void Genome::genomeLoad(){//allocate and load Genome { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: the SA file size did not match what we found in shared memory" << "\n" << flush; - errOut << "SOLUTION: remove the shared memory chunk by running STAR with --genomeLoad Remove, and restart STAR" << flush; + errOut << "SOLUTION: remove the shared memory chunk by running STAR with --pGe.gLoad Remove, and restart STAR" << flush; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INCONSISTENT_DATA, P); } @@ -294,17 +294,17 @@ void Genome::genomeLoad(){//allocate and load Genome // } else {//2-pass // ostringstream errOut; // errOut << "EXITING because of FATAL ERROR: 2-pass procedure cannot be used with genome already loaded im memory' "\n" ; -// errOut << "SOLUTION: check shared memory settigns as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_SHM, P); // }; if (P.annotScoreScale>0) {//optional allocation shmNext += P.nGenome; } } - else if (P.genomeLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory + else if (P.pGe.gLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory { P.genomeInsertL=0; - if (P.genomeFastaFiles.at(0)!="-") + if (P.pGe.gFastaFiles.at(0)!="-") {//will insert sequences in the genome, now estimate the extra size uint oldlen=P.chrStart.back();//record the old length P.genomeInsertChrIndFirst=P.nChrReal; @@ -379,7 +379,7 @@ void Genome::genomeLoad(){//allocate and load Genome // } else {//2-pass // ostringstream errOut; // errOut << "EXITING because of FATAL ERROR: 2-pass procedure cannot be used with genome already loaded im memory' "\n" ; -// errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_SHM, P); // }; @@ -388,7 +388,7 @@ void Genome::genomeLoad(){//allocate and load Genome bool isAllocatorProcess = sharedMemory != NULL && sharedMemory->IsAllocator(); - if (P.genomeLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files + if (P.pGe.gLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files //load genome P.inOut->logMain <<"Genome file size: "<logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<logMain << "pGe.gLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<logMain, EXIT_CODE_INPUT_FILES, P); }; - sjdbInfo >> P.sjdbN >> P.sjdbOverhang; - P.inOut->logMain << "Processing splice junctions database sjdbN=" <> P.sjdbN >> P.pGe.sjdbOverhang; + P.inOut->logMain << "Processing splice junctions database sjdbN=" <logMain << "To accomodate alignIntronMax="< " << "genomeChrBinNbits=" << P.genomeChrBinNbits << " redefining:\n"; - P.winBinNbits=P.genomeChrBinNbits; + if (P.winBinNbits > P.pGe.gChrBinNbits) { + P.inOut->logMain << "winBinNbits=" < " << "pGe.gChrBinNbits=" << P.pGe.gChrBinNbits << " redefining:\n"; + P.winBinNbits=P.pGe.gChrBinNbits; P.inOut->logMain << "winBinNbits=" <> P.genomeChrBinNbits]; + uint sjChr=P.chrBin[*start >> P.pGe.gChrBinNbits]; outStream << P.chrName.at(sjChr) <<"\t"<< *start + 1 - P.chrStart[sjChr] <<"\t"<<*start + *gap - P.chrStart[sjChr] \ <<"\t"<< int(*strand) <<"\t"<< int(*motif) <<"\t"<< int (*annot) <<"\t"<< *countUnique <<"\t"<< *countMultiple \ <<"\t"<< *overhangLeft << endl; diff --git a/ParGenome.h b/ParGenome.h deleted file mode 100644 index 6d2795f..0000000 --- a/ParGenome.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef DEF_ParGenome -#define DEF_ParGenome - -class ParGenome {//"constant" genome parameters - public: - vector chrStart, chrLength, chrLengthAll; - string genomeDir,genomeLoad; - vector genomeFastaFiles, genomeChainFiles; - uint genomeSAsparseD;//sparsity=distance between indices - uint genomeInsertL; //total length of the sequence to be inserted on the fly - uint genomeInsertChrIndFirst; //index of the first inserted chromosome - uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length - vector genomeFileSizes; //size of the genome files - - uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; - - uint genomeSAindexNbases; //length of the SA pre-index strings - uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases - - //SJ database parameters - vector sjdbFileChrStartEnd; - string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; - uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer - int sjdbOverhang_par; - int sjdbScore; - - uint sjChrStart,sjdbN; //first sj-db chr - uint sjGstart; //start of the sj-db genome sequence - uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci - uint8 *sjdbMotif; //motifs of annotated junctions - uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions - uint8 *sjdbStrand; //junctions strand, not used yet - - //Genome parameters - uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci - uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass - uint nSAi; //size of the SAindex - vector chrName, chrNameAll; - map chrNameIndex; - unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information - uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index - - -}; - -#endif \ No newline at end of file diff --git a/Parameters.cpp b/Parameters.cpp index 806c848..77999f5 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -36,15 +36,15 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "runRNGseed", &runRNGseed)); //genome - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeDir", &genomeDir)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeLoad", &genomeLoad)); - parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFastaFiles", &genomeFastaFiles)); - parArray.push_back(new ParameterInfoVector (-1, -1, "genomeChainFiles", &genomeChainFiles)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAindexNbases", &genomeSAindexNbases)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeChrBinNbits", &genomeChrBinNbits)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &genomeSAsparseD)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSuffixLengthMax", &genomeSuffixLengthMax)); - parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFileSizes", &genomeFileSizes)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeDir", &pGe.gDir)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeLoad", &pGe.gLoad)); + parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFastaFiles", &pGe.gFastaFiles)); + parArray.push_back(new ParameterInfoVector (-1, -1, "genomeChainFiles", &pGe.gChainFiles)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAindexNbases", &pGe.gSAindexNbases)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeChrBinNbits", &pGe.gChrBinNbits)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &pGe.gSAsparseD)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSuffixLengthMax", &pGe.gSuffixLengthMax)); + parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFileSizes", &pGe.gFileSizes)); //read parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesIn", &readFilesIn)); @@ -209,16 +209,16 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "chimNonchimScoreDropMin", &pCh.nonchimScoreDropMin)); //sjdb - parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfile", &sjdbGTFfile)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFchrPrefix", &sjdbGTFchrPrefix)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfeatureExon", &sjdbGTFfeatureExon)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentTranscript", &sjdbGTFtagExonParentTranscript)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentGene", &sjdbGTFtagExonParentGene)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &sjdbOverhang)); - sjdbOverhang_par=parArray.size()-1; - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &sjdbScore)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &sjdbInsert.save)); + parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &pGe.sjdbFileChrStartEnd)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfile", &pGe.sjdbGTFfile)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFchrPrefix", &pGe.sjdbGTFchrPrefix)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfeatureExon", &pGe.sjdbGTFfeatureExon)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentTranscript", &pGe.sjdbGTFtagExonParentTranscript)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentGene", &pGe.sjdbGTFtagExonParentGene)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &pGe.sjdbOverhang)); + pGe.sjdbOverhang_par=parArray.size()-1; + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &pGe.sjdbScore)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &pGe.sjdbInsertSave)); //variation parArray.push_back(new ParameterInfoScalar (-1, -1, "varVCFfile", &var.vcfFile)); @@ -301,9 +301,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters scanAllLines(parStreamCommandLine, 1, 2); //read only initial Command Line parameters }; -// need to be careful since runMode and genomeDir are not Command-Line-Initial -// if (runMode=="genomeGenerate" && outFileNamePrefix=="./") {// for genome generation, output into genomeDir -// outFileNamePrefix=genomeDir; +// need to be careful since runMode and pGe.gDir are not Command-Line-Initial +// if (runMode=="genomeGenerate" && outFileNamePrefix=="./") {// for genome generation, output into pGe.gDir +// outFileNamePrefix=pGe.gDir; // }; inOut->logMain.open((outFileNamePrefix + "Log.out").c_str()); @@ -739,7 +739,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files - if (runMode=="alignReads" && genomeLoad!="Remove" && genomeLoad!="LoadAndExit") {//open reads files to check if they are present + if (runMode=="alignReads" && pGe.gLoad!="Remove" && pGe.gLoad!="LoadAndExit") {//open reads files to check if they are present openReadsFiles(); //check sizes of the mate files, if not the same, assume mates are not the same length @@ -1038,10 +1038,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; // #ifdef COMPILE_NO_SHM -// if (genomeLoad!="NoSharedMemory") { +// if (pGe.gLoad!="NoSharedMemory") { // ostringstream errOut; -// errOut <<"EXITING because of FATAL INPUT ERROR: The code was compiled with NO SHARED MEMORY support, but genomeLoad="<logMain, EXIT_CODE_PARAMETER, *this); // }; // #endif @@ -1054,10 +1054,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters // genomeNumToNT={'A','C','G','T','N'}; strcpy(genomeNumToNT,"ACGTN"); - if (genomeLoad!="LoadAndKeep" && genomeLoad!="LoadAndRemove" && genomeLoad!="Remove" && genomeLoad!="LoadAndExit" && genomeLoad!="NoSharedMemory") {// find shared memory fragment + if (pGe.gLoad!="LoadAndKeep" && pGe.gLoad!="LoadAndRemove" && pGe.gLoad!="Remove" && pGe.gLoad!="LoadAndExit" && pGe.gLoad!="NoSharedMemory") {// find shared memory fragment ostringstream errOut; - errOut << "EXITING because of FATAL INPUT ERROR: --genomeLoad=" << genomeLoad << "\n" <logMain, EXIT_CODE_PARAMETER, *this); }; @@ -1137,10 +1137,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - if (genomeLoad!="NoSharedMemory") { + if (pGe.gLoad!="NoSharedMemory") { ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with genomeLoad<<"<logMain, EXIT_CODE_PARAMETER, *this); }; twoPass.yes=true; @@ -1159,7 +1159,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters sjdbInsert.pass1=false; sjdbInsert.pass2=false; sjdbInsert.yes=false; - if (sjdbFileChrStartEnd.at(0)!="-" || sjdbGTFfile!="-") + if (pGe.sjdbFileChrStartEnd.at(0)!="-" || pGe.sjdbGTFfile!="-") {//will insert annotated sjdb on the fly sjdbInsert.pass1=true; sjdbInsert.yes=true; @@ -1170,20 +1170,20 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters sjdbInsert.yes=true; }; - if (genomeLoad!="NoSharedMemory" && sjdbInsert.yes ) + if (pGe.gLoad!="NoSharedMemory" && sjdbInsert.yes ) { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: on the fly junction insertion and 2-pass mappng cannot be used with shared memory genome \n" ; - errOut << "SOLUTION: run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_PARAMETER, *this); }; if (runMode=="alignReads" && sjdbInsert.yes ) {//run-time genome directory, this is needed for genome files generated on the fly - if (sjdbOverhang<=0) { + if (pGe.sjdbOverhang<=0) { ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: sjdbOverhang <=0 while junctions are inserted on the fly with --sjdbFileChrStartEnd or/and --sjdbGTFfile\n"; - errOut << "SOLUTION: specify sjdbOverhang>0, ideally readmateLength-1"; + errOut << "EXITING because of fatal PARAMETERS error: pGe.sjdbOverhang <=0 while junctions are inserted on the fly with --pGe.sjdbFileChrStartEnd or/and --pGe.sjdbGTFfile\n"; + errOut << "SOLUTION: specify pGe.sjdbOverhang>0, ideally readmateLength-1"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; sjdbInsert.outDir=outFileNamePrefix+"_STARgenome/"; @@ -1196,14 +1196,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; - //final sjdbOverhang value has been determined - sjdbLength = sjdbOverhang==0 ? 0 : sjdbOverhang*2+1; + //final pGe.sjdbOverhang value has been determined + sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; if (outBAMcoord && limitBAMsortRAM==0) {//check limitBAMsortRAM - if (genomeLoad!="NoSharedMemory") { + if (pGe.gLoad!="NoSharedMemory") { ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: limitBAMsortRAM=0 (default) cannot be used with --genomeLoad="< 10000000000 (i.e 10GB).\n"; + errOut <<"EXITING because of fatal PARAMETERS error: limitBAMsortRAM=0 (default) cannot be used with --pGe.gLoad="< 10000000000 (i.e 10GB).\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; inOut->logMain<<"WARNING: --limitBAMsortRAM=0, will use genome size as RAM limit for BAM sorting\n"; @@ -1234,7 +1234,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //genome parameters - genomeChrBinNbases=1LLU<logMain, EXIT_CODE_INPUT_FILES, *this); }; @@ -1396,10 +1396,10 @@ void Parameters::chrInfoLoad() {//find chrStart,Length,nChr from Genome G chrLength.resize(nChrReal); //load chr lengths - chrStreamIn.open( (genomeDir+"/chrLength.txt").c_str() ); + chrStreamIn.open( (pGe.gDir+"/chrLength.txt").c_str() ); if (chrStreamIn.fail()) { ostringstream errOut; - errOut << "EXITING because of FATAL error, could not open file " << (genomeDir+"/chrLength.txt") <<"\n"; + errOut << "EXITING because of FATAL error, could not open file " << (pGe.gDir+"/chrLength.txt") <<"\n"; errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_INPUT_FILES, *this); }; @@ -1410,10 +1410,10 @@ void Parameters::chrInfoLoad() {//find chrStart,Length,nChr from Genome G chrStreamIn.close(); //load chr starts - chrStreamIn.open( (genomeDir+"/chrStart.txt").c_str() ); + chrStreamIn.open( (pGe.gDir+"/chrStart.txt").c_str() ); if (chrStreamIn.fail()) { ostringstream errOut; - errOut << "EXITING because of FATAL error, could not open file " << (genomeDir+"/chrStart.txt") <<"\n"; + errOut << "EXITING because of FATAL error, could not open file " << (pGe.gDir+"/chrStart.txt") <<"\n"; errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_INPUT_FILES, *this); }; diff --git a/Parameters.h b/Parameters.h index 8467817..da01fb4 100644 --- a/Parameters.h +++ b/Parameters.h @@ -9,6 +9,7 @@ #include #include #include "ParametersChimeric.h" +#include "ParametersGenome.h" class Parameters { @@ -39,24 +40,20 @@ class Parameters { string inputBAMfile; //genome, SA, ... + + ParametersGenome pGe; vector chrStart, chrLength, chrLengthAll; - string genomeDir,genomeLoad; - vector genomeFastaFiles, genomeChainFiles; - uint genomeSAsparseD;//sparsity=distance between indices uint genomeInsertL; //total length of the sequence to be inserted on the fly uint genomeInsertChrIndFirst; //index of the first inserted chromosome - uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length - vector genomeFileSizes; //size of the genome files - + uint genomeChrBinNbases, chrBinN, *chrBin; + //binning,windows,anchors - uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; uint winAnchorMultimapNmax; //max number of alignments for anchors double winReadCoverageRelativeMin; uint winReadCoverageBasesMin; - uint genomeSAindexNbases; //length of the SA pre-index strings - uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=genomeSAindexNbases + uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=pGe.gSAindexNbases char genomeNumToNT[6]; //read parameters @@ -229,7 +226,6 @@ class Parameters { bool yes; //insert? bool pass1;//insert on the 1st pass? bool pass2;//insert on the 2nd pass? - string save; string outDir; } sjdbInsert; @@ -259,11 +255,7 @@ class Parameters { string annotSignalFile;//binary file with annotation signal //SJ database parameters - vector sjdbFileChrStartEnd; - string sjdbGTFfile, sjdbGTFchrPrefix, sjdbGTFfeatureExon, sjdbGTFtagExonParentTranscript, sjdbGTFtagExonParentGene; - uint sjdbOverhang,sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*sjdbOverhang+1 including spacer - int sjdbOverhang_par; - int sjdbScore; + uint sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*pGe.sjdbOverhang+1 including spacer uint sjChrStart,sjdbN; //first sj-db chr uint sjGstart; //start of the sj-db genome sequence diff --git a/ParametersGenome.h b/ParametersGenome.h new file mode 100644 index 0000000..bbc7a70 --- /dev/null +++ b/ParametersGenome.h @@ -0,0 +1,28 @@ +#ifndef CODE_ParametersGenome +#define CODE_ParametersGenome + +class ParametersGenome {//"constant" genome parameters - user input + public: + string gDir; + string gLoad; + vector gFastaFiles; + vector gChainFiles; + uint gSAindexNbases;//length of the SA pre-index strings + uint gChrBinNbits; + uint gSAsparseD;//SA sparsity + uint gSuffixLengthMax;//maximum length of the suffixes, has to be longer than read length + vector gFileSizes;//size of the genome files + + vector sjdbFileChrStartEnd; + string sjdbGTFfile; + string sjdbGTFchrPrefix; + string sjdbGTFfeatureExon; + string sjdbGTFtagExonParentTranscript; + string sjdbGTFtagExonParentGene; + string sjdbInsertSave; + uint sjdbOverhang; + int sjdbOverhang_par; + int sjdbScore; +}; + +#endif \ No newline at end of file diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index 982b4dd..2226e67 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -6,17 +6,17 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, //returns number of mappings, maxMappedLength=mapped length uint Nrep=0, indStartEnd[2], maxL; - uint NrepAll[P.genomeSAsparseD], indStartEndAll[P.genomeSAsparseD][2], maxLall[P.genomeSAsparseD]; + uint NrepAll[P.pGe.gSAsparseD], indStartEndAll[P.pGe.gSAsparseD][2], maxLall[P.pGe.gSAsparseD]; maxLbest=0; bool dirR = iDir==0; - for (uint iDist=0; iDistlogMain << "DONE: lift-over of GTF file, EXITING\n" << flush; exit(0); }; @@ -87,7 +87,7 @@ int main(int argInN, char* argIn[]) { mainGenome.genomeLoad(); - if (P.genomeLoad=="LoadAndExit" || P.genomeLoad=="Remove") + if (P.pGe.gLoad=="LoadAndExit" || P.pGe.gLoad=="Remove") { return 0; }; @@ -100,7 +100,7 @@ int main(int argInN, char* argIn[]) { mainGenome.Var=new Variation(P); - if (P.genomeFastaFiles.at(0)!="-") + if (P.pGe.gFastaFiles.at(0)!="-") {//insert sequences in the genome }; @@ -208,7 +208,7 @@ int main(int argInN, char* argIn[]) { P.chrNameAll=P.chrName; P.chrLengthAll=P.chrLength; {//add exra references - ifstream extrastream (P.genomeDir + "/extraReferences.txt"); + ifstream extrastream (P.pGe.gDir + "/extraReferences.txt"); while (extrastream.good()) { string line1; getline(extrastream,line1); diff --git a/Transcript_alignScore.cpp b/Transcript_alignScore.cpp index 0fb3df9..18dc4a7 100644 --- a/Transcript_alignScore.cpp +++ b/Transcript_alignScore.cpp @@ -20,7 +20,7 @@ void Transcript::alignScore(char **Read1, char *G, Parameters &P) {//re-calculat }; for (uint iex=0;iex> nTr; trS=new uint [nTr]; @@ -29,7 +29,7 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ trinfo.close(); - ifstream & exinfo = ifstrOpen(trInfoDir+"/exonInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonInfo.tab", ERROR_OUT, "SOLUTION: utilize --pGe.sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> nEx; exSE = new uint32 [2*nEx]; @@ -45,7 +45,7 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ }; if ( P.quant.geCount.yes ) {//load exon-gene structures - ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --pGe.sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> exG.nEx; exG.s=new uint64[exG.nEx]; @@ -69,7 +69,7 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ exG.eMax[iex]=max(exG.eMax[iex-1],exG.e[iex]); }; - ifstream & geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", ERROR_OUT, "SOLUTION: utilize --pGe.sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); geStream >> nGe; geID.resize(nGe); for (uint ii=0;ii>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang) +vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1) { vector>> snpV(2); @@ -163,8 +163,8 @@ vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint s return snpV1; }; - snp.snpOnBlocks(sjStart-sjdbOverhang, sjdbOverhang, 0, snpV); - snp.snpOnBlocks(sjEnd+1, sjdbOverhang, sjdbOverhang, snpV); + snp.snpOnBlocks(sjStart-sjdbOverhang1, sjdbOverhang1, 0, snpV); + snp.snpOnBlocks(sjEnd+1, sjdbOverhang1, sjdbOverhang1, snpV); if (snpV.at(0).empty() && snpV.at(1).empty()) { diff --git a/Variation.h b/Variation.h index 2771a83..6a395f4 100644 --- a/Variation.h +++ b/Variation.h @@ -32,7 +32,7 @@ class Variation //methods Variation (Parameters &Pin); //create transcriptome structure, load and initialize parameters void loadVCF(string fileIn); //load VCF file - vector>> sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang); //calculates snp loci in sjdb sequences + vector>> sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1); //calculates snp loci in sjdb sequences //variables bool yes; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 26d05b4..3bb59d4 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -115,25 +115,25 @@ inline uint funG2strLocus (uint SAstr, uint const N, char const GstrandBit, uint void genomeGenerate(Parameters &P) { //check parameters - if (P.sjdbOverhang<=0 && (P.sjdbFileChrStartEnd.at(0)!="-" || P.sjdbGTFfile!="-")) + if (P.pGe.sjdbOverhang<=0 && (P.pGe.sjdbFileChrStartEnd.at(0)!="-" || P.pGe.sjdbGTFfile!="-")) { ostringstream errOut; - errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; - errOut << "you need to specify >0 --sjdbOverhang\n"; - errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; + errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--pGe.sjdbFileChrStartEnd or --pGe.sjdbGTFfile options)\n"; + errOut << "you need to specify >0 --pGe.sjdbOverhang\n"; + errOut << "SOLUTION: re-run genome generation specifying non-zero --pGe.sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); } - if (P.sjdbFileChrStartEnd.at(0)=="-" && P.sjdbGTFfile=="-") + if (P.pGe.sjdbFileChrStartEnd.at(0)=="-" && P.pGe.sjdbGTFfile=="-") { - if (P.parArray.at(P.sjdbOverhang_par)->inputLevel>0 && P.sjdbOverhang>0) + if (P.parArray.at(P.pGe.sjdbOverhang_par)->inputLevel>0 && P.pGe.sjdbOverhang>0) { ostringstream errOut; - errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; - errOut << "do not specify >0 --sjdbOverhang\n"; - errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; + errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--pGe.sjdbFileChrStartEnd or --pGe.sjdbGTFfile options)\n"; + errOut << "do not specify >0 --pGe.sjdbOverhang\n"; + errOut << "SOLUTION: re-run genome generation without --pGe.sjdbOverhang option\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; - P.sjdbOverhang=0; + P.pGe.sjdbOverhang=0; }; //time @@ -145,7 +145,7 @@ void genomeGenerate(Parameters &P) { *P.inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to generate Genome files\n" <=indPrefStart[iChunk] && p1logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <3) {//if N, this suffix does not belong in SAi - for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { + for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { SAi1[P.genomeSAindexStart[iL1]+ind0[iL1]] |= P.SAiMarkNmaskC; }; break; @@ -98,7 +98,7 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters & P, PackedArray & SAi P.inOut->logMain << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <3) {//if N, this suffix does not belong in SAi - for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { + for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { SAi1.writePacked(P.genomeSAindexStart[iL1]+ind0[iL1],SAi[P.genomeSAindexStart[iL1]+ind0[iL1]] | P.SAiMarkNmaskC); }; } else //relying on the true code to break iL cycle @@ -175,13 +175,13 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray }; */ - uint indPref = indFull >> (2*(P.genomeSAindexNbases-1-iL)); + uint indPref = indFull >> (2*(P.pGe.gSAindexNbases-1-iL)); // if (indPref!=indPref1) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<=P.nSA) {//reached the end of the SA - indFull=funCalcSAiFromSA(G,SA,P.nSA-1,P.genomeSAindexNbases,P,iL4); + indFull=funCalcSAiFromSA(G,SA,P.nSA-1,P.pGe.gSAindexNbases,P,iL4); if (indFull==indFullPrev && iL4==iL4prev) { isa=P.nSA;//no more indices, the last one is equal to the previous @@ -247,7 +247,7 @@ void funSAiFindNextIndex(Parameters & P, char * G, PackedArray & SA, uint isaSte while (i1+1logMain, EXIT_CODE_INPUT_FILES, P); }; char cc=fileIn.peek(); if ( !fileIn.good() ) {// ostringstream errOut; - errOut << "EXITING because of INPUT ERROR: could not read from genomeFastaFile: " <logMain, EXIT_CODE_INPUT_FILES, P); }; if (cc!='>') { ostringstream errOut; - errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <'.\n"; errOut << " Solution: check formatting of the fasta file. Make sure the file is uncompressed (unzipped).\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); @@ -55,7 +55,7 @@ uint genomeScanFastaFiles (Parameters &P, char* G, bool flagRun) {//scans fasta if (!flagRun) { P.chrStart.push_back(N); - P.inOut->logMain << P.genomeFastaFiles.at(ii)<<" : chr # " << P.chrStart.size()-1 << " \""<logMain << P.pGe.gFastaFiles.at(ii)<<" : chr # " << P.chrStart.size()-1 << " \""<logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <3) {//this iSA contains N, need to mark the previous -// for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { +// for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { // ind1+=3; // int64 ind2=P.genomeSAindexStart[iL1]+ind1; // for (; ind2>=0; ind2--) {//find previous index that is not absent @@ -285,11 +285,11 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // PackedArray SAio=SAi; // SAio.allocateArray(); // ifstream oldSAiin("./DirTrue/SAindex"); -// oldSAiin.read(SAio.charArray,8*(P.genomeSAindexNbases+2));//skip first bytes +// oldSAiin.read(SAio.charArray,8*(P.pGe.gSAindexNbases+2));//skip first bytes // oldSAiin.read(SAio.charArray,SAio.lengthByte); // oldSAiin.close(); // -// for (uint iL=0; iL < P.genomeSAindexNbases; iL++) { +// for (uint iL=0; iL < P.pGe.gSAindexNbases; iL++) { // for (uint ii=P.genomeSAindexStart[iL];ii0 && P.sjdbGTFfile!="-") { + if (P.pGe.sjdbOverhang>0 && P.pGe.sjdbGTFfile!="-") { time_t rawTime; time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logMain, EXIT_CODE_INPUT_FILES, P); }; @@ -60,7 +60,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file while (sjdbStreamIn.good()) {//count the number of exons string chr1,ddd2,featureType; sjdbStreamIn >> chr1 >> ddd2 >> featureType; - if (chr1.substr(0,1)!="#" && featureType==P.sjdbGTFfeatureExon) { + if (chr1.substr(0,1)!="#" && featureType==P.pGe.sjdbGTFfeatureExon) { exonN++; }; sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line @@ -69,10 +69,10 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file if (exonN==0) { ostringstream errOut; - errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << P.sjdbGTFfile <<"\n"; + errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << P.pGe.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; errOut << " Make sure the GTF file is unzipped.\n"; - errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; + errOut << " If exons are marked with a different word, use --pGe.sjdbGTFfeatureExon .\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; @@ -90,12 +90,12 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file istringstream oneLineStream (oneLine); oneLineStream >> chr1 >> ddd2 >> featureType; - if (chr1.substr(0,1)!="#" && featureType==P.sjdbGTFfeatureExon) {//exonic line, process + if (chr1.substr(0,1)!="#" && featureType==P.pGe.sjdbGTFfeatureExon) {//exonic line, process - if (P.sjdbGTFchrPrefix!="-") chr1=P.sjdbGTFchrPrefix + chr1; + if (P.pGe.sjdbGTFchrPrefix!="-") chr1=P.pGe.sjdbGTFchrPrefix + chr1; if (P.chrNameIndex.count(chr1)==0) {//chr not in Genome - P.inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P.sjdbGTFfile <<": chromosome '"<logMain << "WARNING: while processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<": chromosome '"<logMain << oneLine <<"\n"<> attr1; - if (attr1==P.sjdbGTFtagExonParentTranscript) { + if (attr1==P.pGe.sjdbGTFtagExonParentTranscript) { oneLineStream >> trID; trID.erase(remove(trID.begin(),trID.end(),'"'),trID.end()); trID.erase(remove(trID.begin(),trID.end(),';'),trID.end()); - } else if (attr1==P.sjdbGTFtagExonParentGene) { + } else if (attr1==P.pGe.sjdbGTFtagExonParentGene) { oneLineStream >> gID; gID.erase(remove(gID.begin(),gID.end(),'"'),gID.end()); gID.erase(remove(gID.begin(),gID.end(),';'),gID.end()); }; }; if (trID=="") {//no transcript ID - P.inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P.sjdbGTFfile <<": no transcript_id for line:\n"; + P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<": no transcript_id for line:\n"; P.inOut->logMain << oneLine <<"\n"< (trID,(uint) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value @@ -140,7 +140,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file }; if (gID=="") {//no gene ID - P.inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P.sjdbGTFfile <<": no gene_id for line:\n"; + P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<": no gene_id for line:\n"; P.inOut->logMain << oneLine <<"\n"< (gID,(uint) geneIDnumber.size()));//insert new element if necessary with a $ @@ -159,7 +159,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file if (exonN==0) { ostringstream errOut; - errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << P.sjdbGTFfile <<"\n"; + errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << P.pGe.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; @@ -254,9 +254,9 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file uint sjN=0; for (uint exI=1; exI> P.genomeChrBinNbits]; + uint chr1=P.chrBin[exonLoci[GTF_exonStart(exI)] >> P.pGe.gChrBinNbits]; if ( exonLoci[GTF_exonStart(exI)]<=exonLoci[GTF_exonEnd(exI-1)]+1 ) { - P.inOut->logMain << "WARNING: while processing sjdbGTFfile=" << P.sjdbGTFfile <<": overlapping or touching exons:\n"; + P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<": overlapping or touching exons:\n"; P.inOut->logMain << P.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-P.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-P.chrStart[chr1] <<"\n"; P.inOut->logMain << P.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-P.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-P.chrStart[chr1] <<"\n"; } else { @@ -276,7 +276,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file uint sjdbN1=sjdbLoci.chr.size(); for (uint ii=0;ii> P.genomeChrBinNbits]; + uint chr1=P.chrBin[sjLoci[ii*3] >> P.pGe.gChrBinNbits]; sjdbLoci.chr.push_back(P.chrName[chr1]); sjdbLoci.start.push_back(sjLoci[ii*3]+1-P.chrStart[chr1]); sjdbLoci.end.push_back(sjLoci[ii*3+1]+1-P.chrStart[chr1]); @@ -290,7 +290,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file }; sjdbList.close(); - P.inOut->logMain << "Processing sjdbGTFfile=" << P.sjdbGTFfile <<", found:\n"; + P.inOut->logMain << "Processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<", found:\n"; P.inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <P.sjdbOverhang) {//align crosses the junctions + if (sj1P.pGe.sjdbOverhang) {//align crosses the junctions isj=(a1-P.sjGstart)/P.sjdbLength; - aLengthD=P.sjdbOverhang-sj1; + aLengthD=P.pGe.sjdbOverhang-sj1; aLengthA=aLength-aLengthD; a1D=P.sjDstart[isj]+sj1; a1A=P.sjAstart[isj]; diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 1d66b09..5b04046 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -43,7 +43,7 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr uint32* oldSJind=new uint32[P1.sjdbN]; -// uint nIndicesSJ1=P.sjdbOverhang; +// uint nIndicesSJ1=P.pGe.sjdbOverhang; uint nIndicesSJ1=P.sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome uint64* indArray=new uint64[2*P.sjdbN*(nIndicesSJ1+1)*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndices per junction * 2 for reverse compl @@ -206,7 +206,7 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr P.inOut->logMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" <3) {//this iSA contains N, need to mark the previous - for (uint iL1=iL; iL1 < P.genomeSAindexNbases; iL1++) { + for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { ind1+=3; int64 ind2=P.genomeSAindexStart[iL1]+ind1; for (; ind2>=0; ind2--) {//find previous index that is not absent @@ -292,7 +292,7 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr PackedArray SAio=SAi; SAio.allocateArray(); ifstream oldSAiin("./DirTrue/SAindex"); - oldSAiin.read(SAio.charArray,8*(P.genomeSAindexNbases+2));//skip first bytes + oldSAiin.read(SAio.charArray,8*(P.pGe.gSAindexNbases+2));//skip first bytes oldSAiin.read(SAio.charArray,SAio.lengthByte); oldSAiin.close(); @@ -304,7 +304,7 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr }; - for (uint iL=0; iL < P.genomeSAindexNbases; iL++) { + for (uint iL=0; iL < P.pGe.gSAindexNbases; iL++) { for (uint ii=P.genomeSAindexStart[iL];ii0 && sjdbLoci.chr.size()==0) {//load from the saved genome, only if the loading did not happen already (if sjdb insertion happens at the 1st pass, sjdbLoci will be populated - ifstream & sjdbStreamIn = ifstrOpen(P.genomeDir+"/sjdbList.out.tab", ERROR_OUT, "SOLUTION: re-generate the genome in genomeDir=" + P.genomeDir, P); + ifstream & sjdbStreamIn = ifstrOpen(P.pGe.gDir+"/sjdbList.out.tab", ERROR_OUT, "SOLUTION: re-generate the genome in pGe.gDir=" + P.pGe.gDir, P); sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); sjdbLoci.priority.resize(sjdbLoci.chr.size(),30); time ( &rawtime ); - P.inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P.genomeDir+"/sjdbList.out.tab" <<": "<logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P.pGe.gDir+"/sjdbList.out.tab" <<": "<logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; + P.inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the pGe.sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; }; - if (P.sjdbGTFfile!="-") + if (P.pGe.sjdbGTFfile!="-") {//load from GTF loadGTF(sjdbLoci, P, P.sjdbInsert.outDir); sjdbLoci.priority.resize(sjdbLoci.chr.size(),20); time ( &rawtime ); - P.inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P.sjdbGTFfile<<": "<logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P.pGe.sjdbGTFfile<<": "<logMain << timeMonthDayTime(rawtime) << " ..... finished inserting junctions into genome" <logMain, EXIT_CODE_INPUT_FILES, P); }; sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); - P.inOut->logMain << "Loaded database junctions from file: " << P.sjdbFileChrStartEnd.at(ifile) <<", total number of junctions: "<logMain << "Loaded database junctions from file: " << P.pGe.sjdbFileChrStartEnd.at(ifile) <<", total number of junctions: "<=P.nChrReal) { ostringstream errOut; errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; - errOut << "SOLUTION: fix your file(s) --sjdbFileChrStartEnd, offending junciton:" <logMain, EXIT_CODE_INPUT_FILES, P); }; chrOld=sjdbLoci.chr.at(ii); @@ -197,23 +197,23 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string o ofstream sjdbList ((outDir+"/sjdbList.out.tab").c_str()); char strandChar[3]={'.','+','-'}; //first line is some general useful information - sjdbInfo << P.sjdbN <<"\t"<< P.sjdbOverhang <<"\n"; + sjdbInfo << P.sjdbN <<"\t"<< P.pGe.sjdbOverhang <<"\n"; uint sjGstart=0; for (uint ii=0;ii> P.genomeChrBinNbits]; + uint chr1=P.chrBin[ P.sjdbStart[ii] >> P.pGe.gChrBinNbits]; sjdbList << P.chrName[chr1]<< "\t" << P.sjdbStart[ii]-P.chrStart[chr1] + 1 + (P.sjdbMotif[ii]>0 ? 0:P.sjdbShiftLeft[ii]) \ << "\t"<< P.sjdbEnd[ii]-P.chrStart[chr1] + 1 + (P.sjdbMotif[ii]>0 ? 0:P.sjdbShiftLeft[ii]) \ << "\t"<< strandChar[P.sjdbStrand[ii]]<<"\n"; diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index d69f7d2..c501a9a 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -28,7 +28,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->nExons++; trA->nMatch+=L; for (uint ii=rBstart;iisjAnnot[trA->nExons-1]=0; trA->sjStr[trA->nExons-1]=0; @@ -223,7 +223,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; trA->sjAnnot[trA->nExons-1]=1; trA->sjStr[trA->nExons-1]=P.sjdbStrand[sjdbInd]; - Score += P.sjdbScore; + Score += P.pGe.sjdbScore; }; } else {//no annotation if (Del>=P.alignIntronMin) {//junction, not short deletion diff --git a/streamFuns.cpp b/streamFuns.cpp index 746672a..4e2104f 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -36,8 +36,8 @@ void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::strin struct statvfs statvfsBuf; statvfs(fileName.c_str(), &statvfsBuf); -// system(( "ls -lL "+ P.genomeDir + " > "+ P.genomeDir +"/error.info 2>&1").c_str()); -// ifstream error_info((P.genomeDir +"/error.info").c_str()); +// system(( "ls -lL "+ P.pGe.gDir + " > "+ P.pGe.gDir +"/error.info 2>&1").c_str()); +// ifstream error_info((P.pGe.gDir +"/error.info").c_str()); // P.inOut->logMain < Date: Wed, 30 Aug 2017 12:50:08 -0400 Subject: [PATCH 291/536] Added pGe to Genome class. --- Genome.cpp | 106 ++++++++++++++++++------------------- Genome.h | 7 ++- Genome_insertSequences.cpp | 2 +- 3 files changed, 60 insertions(+), 55 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index cb25e50..744cbac 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -25,8 +25,8 @@ //arbitrary number for ftok function #define SHM_projectID 23 -Genome::Genome (Parameters& Pin ): P(Pin), shmStart(NULL), sharedMemory(NULL) { - shmKey=ftok(P.pGe.gDir.c_str(),SHM_projectID); +Genome::Genome (Parameters &Pin ): P(Pin), pGe(Pin.pGe), shmStart(NULL), sharedMemory(NULL) { + shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); }; Genome::~Genome() @@ -38,7 +38,7 @@ Genome::~Genome() void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array - if (P.pGe.gLoad=="NoSharedMemory") {//can deallocate only for non-shared memory + if (pGe.gLoad=="NoSharedMemory") {//can deallocate only for non-shared memory delete[] G1; G1=NULL; SA.deallocateArray(); @@ -49,10 +49,10 @@ void Genome::freeMemory(){//free big chunks of memory used by genome and suffix uint Genome::OpenStream(string name, ifstream & stream, uint size) { - stream.open((P.pGe.gDir+ "/" +name).c_str(), ios::binary); + stream.open((pGe.gDir+ "/" +name).c_str(), ios::binary); if (!stream.good()) { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P.pGe.gDir << "/" << name <<"\n" << endl; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< pGe.gDir << "/" << name <<"\n" << endl; errOut << "SOLUTION: check that the path to genome files, specified in --pGe.gDir is correct and the files are present, and have user read permsissions\n" <logMain, EXIT_CODE_GENOME_FILES, P); }; @@ -89,7 +89,7 @@ void Genome::genomeLoad(){//allocate and load Genome Parameters P1; - ifstream parFile((P.pGe.gDir+("/genomeParameters.txt")).c_str()); + ifstream parFile((pGe.gDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { P.inOut->logMain << "Reading genome generation parameters:\n"; P1.inOut = P.inOut; @@ -97,7 +97,7 @@ void Genome::genomeLoad(){//allocate and load Genome parFile.close(); } else { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P.pGe.gDir+("/genomeParameters.txt") << endl; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< pGe.gDir+("/genomeParameters.txt") << endl; errOut << "SOLUTION: check that the path to genome files, specified in --pGe.gDir is correct and the files are present, and have user read permsissions\n" <logMain, EXIT_CODE_GENOME_FILES, P); }; @@ -108,9 +108,9 @@ void Genome::genomeLoad(){//allocate and load Genome errOut << "EXITING because of FATAL ERROR: read no value for the versionGenome parameter from genomeParameters.txt file\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); - } else if (P.pGe.sjdbFileChrStartEnd.at(0)=="-" && P1.versionGenome.at(0) >= P.versionGenome.at(0)) {// + } else if (pGe.sjdbFileChrStartEnd.at(0)=="-" && P1.versionGenome.at(0) >= P.versionGenome.at(0)) {// P.inOut->logMain << "Genome version is compatible with current STAR version\n"; - } else if (P.pGe.sjdbFileChrStartEnd.at(0)!="-" && P1.versionGenome.at(0) >= P.versionGenome.at(1)) {// + } else if (pGe.sjdbFileChrStartEnd.at(0)!="-" && P1.versionGenome.at(0) >= P.versionGenome.at(1)) {// P.inOut->logMain << "Genome version is compatible with current STAR version\n"; } else { ostringstream errOut; @@ -125,7 +125,7 @@ void Genome::genomeLoad(){//allocate and load Genome //check if sjdbInfo.txt exists => genome was generated with junctions bool sjdbInfoExists=false; struct stat sjdb1; - if ( stat( (P.pGe.gDir+"/sjdbInfo.txt").c_str(), &sjdb1) == 0 ) + if ( stat( (pGe.gDir+"/sjdbInfo.txt").c_str(), &sjdb1) == 0 ) {//file exists sjdbInfoExists=true; }; @@ -139,50 +139,50 @@ void Genome::genomeLoad(){//allocate and load Genome }; //record required genome parameters in P - P.pGe.gSAindexNbases=P1.pGe.gSAindexNbases; - P.pGe.gChrBinNbits=P1.pGe.gChrBinNbits; - P.genomeChrBinNbases=1LLU<0) {//genomeFileSize was recorded in the genomeParameters file, copy the values to P - P.pGe.gFileSizes = P1.pGe.gFileSizes; + pGe.gFileSizes = P1.pGe.gFileSizes; }; - if (P.parArray.at(P.pGe.sjdbOverhang_par)->inputLevel==0 && P1.pGe.sjdbOverhang>0) + if (P.parArray.at(pGe.sjdbOverhang_par)->inputLevel==0 && P1.pGe.sjdbOverhang>0) {//if --pGe.sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use pGe.sjdbOverhang from the genome generation step - P.pGe.sjdbOverhang=P1.pGe.sjdbOverhang; - P.inOut->logMain << "--pGe.sjdbOverhang = " << P.pGe.sjdbOverhang << " taken from the generated genome\n"; - } else if (sjdbInfoExists && P.parArray.at(P.pGe.sjdbOverhang_par)->inputLevel>0 && P.pGe.sjdbOverhang!=P1.pGe.sjdbOverhang) + pGe.sjdbOverhang=P1.pGe.sjdbOverhang; + P.inOut->logMain << "--pGe.sjdbOverhang = " << pGe.sjdbOverhang << " taken from the generated genome\n"; + } else if (sjdbInfoExists && P.parArray.at(pGe.sjdbOverhang_par)->inputLevel>0 && pGe.sjdbOverhang!=P1.pGe.sjdbOverhang) {//if pGe.sjdbOverhang was defined at the genome generation step,the mapping step value has to agree with it ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: present --pGe.sjdbOverhang="<logMain, EXIT_CODE_GENOME_FILES, P); }; - P.sjdbLength = P.pGe.sjdbOverhang==0 ? 0 : P.pGe.sjdbOverhang*2+1; + P.sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; P.inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<logMain << "Read from SAindex: pGe.gSAindexNbases=" << P.pGe.gSAindexNbases <<" nSAi="<< P.nSAi <logMain << "Read from SAindex: pGe.gSAindexNbases=" << pGe.gSAindexNbases <<" nSAi="<< P.nSAi <0) shmSize+=P.nGenome; - if ((P.pGe.gLoad=="LoadAndKeep" || - P.pGe.gLoad=="LoadAndRemove" || - P.pGe.gLoad=="LoadAndExit" || - P.pGe.gLoad=="Remove") && sharedMemory == NULL) + if ((pGe.gLoad=="LoadAndKeep" || + pGe.gLoad=="LoadAndRemove" || + pGe.gLoad=="LoadAndExit" || + pGe.gLoad=="Remove") && sharedMemory == NULL) { - bool unloadLast = P.pGe.gLoad=="LoadAndRemove"; + bool unloadLast = pGe.gLoad=="LoadAndRemove"; try { sharedMemory = new SharedMemory(shmKey, unloadLast); @@ -225,7 +225,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (!sharedMemory->NeedsAllocation()) P.inOut->logMain <<"Found genome in shared memory\n"<NeedsAllocation()) {//did not find genome in shared memory, nothing to kill ostringstream errOut; errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; @@ -301,10 +301,10 @@ void Genome::genomeLoad(){//allocate and load Genome shmNext += P.nGenome; } } - else if (P.pGe.gLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory + else if (pGe.gLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory { P.genomeInsertL=0; - if (P.pGe.gFastaFiles.at(0)!="-") + if (pGe.gFastaFiles.at(0)!="-") {//will insert sequences in the genome, now estimate the extra size uint oldlen=P.chrStart.back();//record the old length P.genomeInsertChrIndFirst=P.nChrReal; @@ -388,7 +388,7 @@ void Genome::genomeLoad(){//allocate and load Genome bool isAllocatorProcess = sharedMemory != NULL && sharedMemory->IsAllocator(); - if (P.pGe.gLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files + if (pGe.gLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files //load genome P.inOut->logMain <<"Genome file size: "<logMain << "pGe.gLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<logMain, EXIT_CODE_INPUT_FILES, P); }; - sjdbInfo >> P.sjdbN >> P.pGe.sjdbOverhang; - P.inOut->logMain << "Processing splice junctions database sjdbN=" <> P.sjdbN >> pGe.sjdbOverhang; + P.inOut->logMain << "Processing splice junctions database sjdbN=" <logMain << "To accomodate alignIntronMax="< " << "pGe.gChrBinNbits=" << P.pGe.gChrBinNbits << " redefining:\n"; - P.winBinNbits=P.pGe.gChrBinNbits; + if (P.winBinNbits > pGe.gChrBinNbits) { + P.inOut->logMain << "winBinNbits=" < " << "pGe.gChrBinNbits=" << pGe.gChrBinNbits << " redefining:\n"; + P.winBinNbits=pGe.gChrBinNbits; P.inOut->logMain << "winBinNbits=" < Date: Wed, 30 Aug 2017 17:39:25 -0400 Subject: [PATCH 292/536] Added pGe to Genome class. Compiles and runs OK. --- genomeParametersWrite.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp index 550d030..e984498 100644 --- a/genomeParametersWrite.cpp +++ b/genomeParametersWrite.cpp @@ -8,27 +8,27 @@ void genomeParametersWrite(string fileName, Parameters& P, string errorOut) genomePar << "### "< Date: Fri, 1 Sep 2017 17:29:56 -0400 Subject: [PATCH 293/536] Added extras/scripts/transcriptTypes.awk script. --- Genome.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Genome.cpp b/Genome.cpp index d17a56c..eb660f6 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -53,7 +53,7 @@ uint Genome::OpenStream(string name, ifstream & stream, uint size) if (!stream.good()) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir << "/" << name <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; From 21638d489bd2a97134299511878728a0ee7bbcdf Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 7 Sep 2017 11:09:43 -0400 Subject: [PATCH 294/536] Fixed a problem with very long MD SAM attributes for STARlong. --- IncludeDefine.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index 3835e7b..093fe05 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -97,12 +97,13 @@ typedef uint8_t uint8; #define BAM_CIGAR_EQ 7 #define BAM_CIGAR_X 8 -#define BAM_ATTR_MaxSize 1000 #if defined COMPILE_FOR_LONG_READS #define MAX_N_EXONS 1000 + #define BAM_ATTR_MaxSize 10000 #else #define MAX_N_EXONS 20 + #define BAM_ATTR_MaxSize 1000 #endif //input reads From 343243fd87b055122fb7e87bf2f485e18ae4eb22 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 8 Sep 2017 12:21:18 -0400 Subject: [PATCH 295/536] Minor changes. --- Genome.cpp | 2 +- sjdbPrepare.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 744cbac..c23c019 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -53,7 +53,7 @@ uint Genome::OpenStream(string name, ifstream & stream, uint size) if (!stream.good()) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< pGe.gDir << "/" << name <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --pGe.gDir is correct and the files are present, and have user read permsissions\n" <logMain, EXIT_CODE_GENOME_FILES, P); }; diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index 388e4ac..8705240 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -24,7 +24,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string o if (iChr>=P.nChrReal) { ostringstream errOut; errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; - errOut << "SOLUTION: fix your file(s) --pGe.sjdbFileChrStartEnd, offending junciton:" <logMain, EXIT_CODE_INPUT_FILES, P); }; chrOld=sjdbLoci.chr.at(ii); From e231556195182d5918204900ffdb9d3c6e8ac5c5 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 8 Sep 2017 13:23:36 -0400 Subject: [PATCH 296/536] Fixed --pGe in the error output. --- Genome.cpp | 28 ++++++++++++++-------------- Parameters.cpp | 16 ++++++++-------- STAR.cpp | 2 +- Transcriptome.cpp | 8 ++++---- genomeGenerate.cpp | 12 ++++++------ loadGTF.cpp | 2 +- 6 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 5a063f7..a6fa0cd 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -98,7 +98,7 @@ void Genome::genomeLoad(){//allocate and load Genome } else { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< pGe.gDir+("/genomeParameters.txt") << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --pGe.gDir is correct and the files are present, and have user read permsissions\n" <logMain, EXIT_CODE_GENOME_FILES, P); }; @@ -150,13 +150,13 @@ void Genome::genomeLoad(){//allocate and load Genome }; if (P.parArray.at(pGe.sjdbOverhang_par)->inputLevel==0 && P1.pGe.sjdbOverhang>0) - {//if --pGe.sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use pGe.sjdbOverhang from the genome generation step + {//if --sjdbOverhang was not defined by user and it was defined >0 at the genome generation step, then use pGe.sjdbOverhang from the genome generation step pGe.sjdbOverhang=P1.pGe.sjdbOverhang; - P.inOut->logMain << "--pGe.sjdbOverhang = " << pGe.sjdbOverhang << " taken from the generated genome\n"; + P.inOut->logMain << "--sjdbOverhang = " << pGe.sjdbOverhang << " taken from the generated genome\n"; } else if (sjdbInfoExists && P.parArray.at(pGe.sjdbOverhang_par)->inputLevel>0 && pGe.sjdbOverhang!=P1.pGe.sjdbOverhang) {//if pGe.sjdbOverhang was defined at the genome generation step,the mapping step value has to agree with it ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: present --pGe.sjdbOverhang="<logMain, EXIT_CODE_GENOME_FILES, P); }; @@ -265,7 +265,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (iwait==100) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: waited too long for the other job to finish loading the genome" << strerror(errno) << "\n" <logMain, EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG, P); }; }; @@ -274,7 +274,7 @@ void Genome::genomeLoad(){//allocate and load Genome { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: the SA file size did not match what we found in shared memory" << "\n" << flush; - errOut << "SOLUTION: remove the shared memory chunk by running STAR with --pGe.gLoad Remove, and restart STAR" << flush; + errOut << "SOLUTION: remove the shared memory chunk by running STAR with --genomeLoad Remove, and restart STAR" << flush; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INCONSISTENT_DATA, P); } @@ -294,7 +294,7 @@ void Genome::genomeLoad(){//allocate and load Genome // } else {//2-pass // ostringstream errOut; // errOut << "EXITING because of FATAL ERROR: 2-pass procedure cannot be used with genome already loaded im memory' "\n" ; -// errOut << "SOLUTION: check shared memory settigns as explained in STAR manual, OR run STAR with --pGe.gLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_SHM, P); // }; if (P.annotScoreScale>0) {//optional allocation @@ -379,7 +379,7 @@ void Genome::genomeLoad(){//allocate and load Genome // } else {//2-pass // ostringstream errOut; // errOut << "EXITING because of FATAL ERROR: 2-pass procedure cannot be used with genome already loaded im memory' "\n" ; -// errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --pGe.gLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_SHM, P); // }; @@ -465,7 +465,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (sjdbInfo.fail()) { ostringstream errOut; errOut << "EXITING because of FATAL error, could not open file " << (pGe.gDir+"/sjdbInfo.txt") <<"\n"; - errOut << "SOLUTION: check that the path to genome files, specified in --pGe.gDir is correct and the files are present, and have user read permsissions\n" <logMain, EXIT_CODE_INPUT_FILES, P); }; @@ -549,14 +549,14 @@ void Genome::HandleSharedMemoryException(const SharedMemoryException & exc, uint { case EOPENFAILED: errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open()." << endl << flush; - errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --pGe.gLoad NoSharedMemory to avoid using shared memory" << endl << flush; + errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; break; case EEXISTS: errOut << "EXITING: fatal error from shmget() trying to allocate shared memory piece." << endl; errOut << "Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes" << endl; errOut << "Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << shmSize+2000000000 << endl; errOut << "Possible cause 3: allowed shared memory size is not large enough. SOLUTIONS: (i) consult STAR manual on how to increase shared memory allocation; " \ - "(ii) ask your system administrator to increase shared memory allocation; (iii) run STAR with --pGe.gLoad NoSharedMemory" << endl<logMain, EXIT_CODE_PARAMETER, *this); // }; // #endif @@ -1056,8 +1056,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (pGe.gLoad!="LoadAndKeep" && pGe.gLoad!="LoadAndRemove" && pGe.gLoad!="Remove" && pGe.gLoad!="LoadAndExit" && pGe.gLoad!="NoSharedMemory") {// find shared memory fragment ostringstream errOut; - errOut << "EXITING because of FATAL INPUT ERROR: --pGe.gLoad=" << pGe.gLoad << "\n" <logMain, EXIT_CODE_PARAMETER, *this); }; @@ -1140,7 +1140,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (pGe.gLoad!="NoSharedMemory") { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with pGe.gLoad<<"<logMain, EXIT_CODE_PARAMETER, *this); }; twoPass.yes=true; @@ -1174,7 +1174,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: on the fly junction insertion and 2-pass mappng cannot be used with shared memory genome \n" ; - errOut << "SOLUTION: run STAR with --pGe.gLoad NoSharedMemory to avoid using shared memory\n" <logMain, EXIT_CODE_PARAMETER, *this); }; @@ -1182,7 +1182,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters {//run-time genome directory, this is needed for genome files generated on the fly if (pGe.sjdbOverhang<=0) { ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: pGe.sjdbOverhang <=0 while junctions are inserted on the fly with --pGe.sjdbFileChrStartEnd or/and --pGe.sjdbGTFfile\n"; + errOut << "EXITING because of fatal PARAMETERS error: pGe.sjdbOverhang <=0 while junctions are inserted on the fly with --sjdbFileChrStartEnd or/and --sjdbGTFfile\n"; errOut << "SOLUTION: specify pGe.sjdbOverhang>0, ideally readmateLength-1"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; @@ -1202,8 +1202,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (outBAMcoord && limitBAMsortRAM==0) {//check limitBAMsortRAM if (pGe.gLoad!="NoSharedMemory") { ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: limitBAMsortRAM=0 (default) cannot be used with --pGe.gLoad="< 10000000000 (i.e 10GB).\n"; + errOut <<"EXITING because of fatal PARAMETERS error: limitBAMsortRAM=0 (default) cannot be used with --genomeLoad="< 10000000000 (i.e 10GB).\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; inOut->logMain<<"WARNING: --limitBAMsortRAM=0, will use genome size as RAM limit for BAM sorting\n"; diff --git a/STAR.cpp b/STAR.cpp index d8a496c..28bb579 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -34,7 +34,7 @@ void usage() { - printf("Usage: STAR [options]... --pGe.gDir REFERENCE --readFilesIn R1.fq R2.fq\n"); + printf("Usage: STAR [options]... --genomeDir REFERENCE --readFilesIn R1.fq R2.fq\n"); printf("Spliced Transcripts Alignment to a Reference (c) Alexander Dobin, 2009-2015\n\n"); std::cout << parametersDefault; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index dd033ba..5f48d8e 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -9,7 +9,7 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ if ( P.quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info - ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", ERROR_OUT, "SOLUTION: utilize --pGe.sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); + ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); trinfo >> nTr; trS=new uint [nTr]; @@ -29,7 +29,7 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ trinfo.close(); - ifstream & exinfo = ifstrOpen(trInfoDir+"/exonInfo.tab", ERROR_OUT, "SOLUTION: utilize --pGe.sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> nEx; exSE = new uint32 [2*nEx]; @@ -45,7 +45,7 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ }; if ( P.quant.geCount.yes ) {//load exon-gene structures - ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --pGe.sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> exG.nEx; exG.s=new uint64[exG.nEx]; @@ -69,7 +69,7 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ exG.eMax[iex]=max(exG.eMax[iex-1],exG.e[iex]); }; - ifstream & geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", ERROR_OUT, "SOLUTION: utilize --pGe.sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + ifstream & geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); geStream >> nGe; geID.resize(nGe); for (uint ii=0;ii0 --pGe.sjdbOverhang\n"; - errOut << "SOLUTION: re-run genome generation specifying non-zero --pGe.sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; + errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; + errOut << "you need to specify >0 --sjdbOverhang\n"; + errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); } if (P.pGe.sjdbFileChrStartEnd.at(0)=="-" && P.pGe.sjdbGTFfile=="-") @@ -128,9 +128,9 @@ void genomeGenerate(Parameters &P) { if (P.parArray.at(P.pGe.sjdbOverhang_par)->inputLevel>0 && P.pGe.sjdbOverhang>0) { ostringstream errOut; - errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--pGe.sjdbFileChrStartEnd or --pGe.sjdbGTFfile options)\n"; - errOut << "do not specify >0 --pGe.sjdbOverhang\n"; - errOut << "SOLUTION: re-run genome generation without --pGe.sjdbOverhang option\n"; + errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; + errOut << "do not specify >0 --sjdbOverhang\n"; + errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; P.pGe.sjdbOverhang=0; diff --git a/loadGTF.cpp b/loadGTF.cpp index 227486d..2537421 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -72,7 +72,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << P.pGe.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; errOut << " Make sure the GTF file is unzipped.\n"; - errOut << " If exons are marked with a different word, use --pGe.sjdbGTFfeatureExon .\n"; + errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; From 851f21892598a131cdff691850ab3c104d589a4e Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 15 Sep 2017 15:33:18 -0400 Subject: [PATCH 297/536] Encapsulating genome parameters into the Genome class. Compiles except for genomeGenerate.cpp --- BAMbinSortByCoordinate.cpp | 4 +- BAMbinSortByCoordinate.h | 4 +- BAMbinSortUnmapped.cpp | 4 +- BAMbinSortUnmapped.h | 4 +- Chain.cpp | 6 +- ChimericAlign.cpp | 8 +- ChimericAlign.h | 5 +- ChimericAlign_chimericJunctionOutput.cpp | 8 +- ChimericDetection.h | 2 +- ChimericDetection_chimericDetectionMult.cpp | 2 +- ErrorWarning.h | 4 +- Genome.cpp | 249 +++++++++++++------- Genome.h | 28 ++- Genome_insertSequences.cpp | 14 +- OutSJ.cpp | 8 +- OutSJ.h | 15 +- Parameters.cpp | 77 ------ Parameters.h | 41 +--- ReadAlign.cpp | 2 +- ReadAlign.h | 4 +- ReadAlignChunk.cpp | 8 +- ReadAlignChunk.h | 7 +- ReadAlign_alignBAM.cpp | 8 +- ReadAlign_chimericDetection.cpp | 2 +- ReadAlign_chimericDetectionOld.cpp | 14 +- ReadAlign_createExtendWindowsWithAlign.cpp | 6 +- ReadAlign_mapOneRead.cpp | 4 +- ReadAlign_maxMappableLength2strands.cpp | 22 +- ReadAlign_multMapSelect.cpp | 2 +- ReadAlign_outputAlignments.cpp | 12 +- ReadAlign_outputTranscriptSAM.cpp | 16 +- ReadAlign_quantTranscriptome.cpp | 2 +- ReadAlign_stitchPieces.cpp | 32 +-- ReadAlign_stitchWindowSeeds.cpp | 4 +- STAR.cpp | 32 +-- SuffixArrayFuns.cpp | 167 +++---------- SuffixArrayFuns.h | 21 +- Transcript.h | 8 +- Transcript_variationAdjust.cpp | 6 +- Variation.cpp | 20 +- Variation.h | 5 +- genomeGenerate.cpp | 74 +++--- genomeParametersWrite.cpp | 2 +- genomeSAindex.cpp | 84 +++---- genomeScanFastaFiles.cpp | 26 +- insertSeqSA.cpp | 54 ++--- insertSeqSA.h | 3 +- loadGTF.cpp | 64 ++--- loadGTF.h | 10 +- outputSJ.cpp | 4 +- sjAlignSplit.cpp | 16 ++ sjSplitAlign.cpp | 16 -- sjdbBuildIndex.cpp | 122 +++++----- sjdbBuildIndex.h | 3 +- sjdbInsertJunctions.cpp | 28 +-- sjdbInsertJunctions.h | 2 +- sjdbPrepare.cpp | 96 ++++---- sjdbPrepare.h | 2 +- stitchAlignToTranscript.cpp | 33 +-- stitchAlignToTranscript.h | 3 +- stitchWindowAligns.cpp | 18 +- 61 files changed, 741 insertions(+), 806 deletions(-) create mode 100644 sjAlignSplit.cpp delete mode 100644 sjSplitAlign.cpp diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index 111ef28..335ce2d 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -3,7 +3,7 @@ #include "serviceFuns.cpp" #include "BAMfunctions.h" -void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, Parameters &P) { +void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, string dirBAMsort, Parameters &P, Genome &mapGen) { if (binS==0) return; //nothing to do for empty bins //allocate arrays @@ -49,7 +49,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st BGZF *bgzfBin; bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P.outBAMcompression)).c_str()); - outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,P.chrNameAll,P.chrLengthAll); + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,mapGen.chrNameAll,mapGen.chrLengthAll); //send ordered aligns to bgzf one-by-one for (uint ia=0;ia bamInFile; diff --git a/BAMbinSortUnmapped.h b/BAMbinSortUnmapped.h index cffbb4a..530f72b 100644 --- a/BAMbinSortUnmapped.h +++ b/BAMbinSortUnmapped.h @@ -2,8 +2,10 @@ #define CODE_BAMbinSortUnmapped #include "IncludeDefine.h" #include "Parameters.h" +#include "Genome.h" + #include SAMTOOLS_BGZF_H -void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters &P); +void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters &P, Genome &mapGen); #endif diff --git a/Chain.cpp b/Chain.cpp index 0b9b2c3..af900d4 100644 --- a/Chain.cpp +++ b/Chain.cpp @@ -115,12 +115,12 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) streamOut.close(); }; -// if (P.chrNameIndex.count(oldname)) +// if (mapGen.chrNameIndex.count(oldname)) // { // ostringstream errOut; // errOut << "EXITING because of fatal INPUT file error: chain file contains chromosome (scaffold) not present in the genome " << oldname <<"\n"; // errOut << ERROR_OUT << "\n"; // exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); // }; -// uint ichr=P.chrNameIndex[oldname];//chr index in the genome list -// bStart1[bN] += P.chrLength[ichr];//whole genome chain - shift by chr start +// uint ichr=mapGen.chrNameIndex[oldname];//chr index in the genome list +// bStart1[bN] += mapGen.chrLength[ichr];//whole genome chain - shift by chr start diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index 4352e54..59c1691 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -1,8 +1,7 @@ #include "ChimericAlign.h" -ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn) - : seg1(seg1in), seg2(seg2in),chimScore(chimScoreIn), P(seg1in.P), pCh(P.pCh) -{ +ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn) + : seg1(seg1in), seg2(seg2in),chimScore(chimScoreIn), P(seg1in.P), pCh(P.pCh), mapGen(genomeIn) { stitchingDone=false; al1=&seg1.align; @@ -15,8 +14,7 @@ ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, i ex2 = al2->Str==0 ? 0 : al2->nExons-1; }; -bool ChimericAlign::chimericCheck() -{ +bool ChimericAlign::chimericCheck() { bool chimGood=true; chimGood = chimGood && al1->exons[ex1][EX_iFrag] <= al2->exons[ex2][EX_iFrag];//otherwise - strange configuration, both segments contain two mates diff --git a/ChimericAlign.h b/ChimericAlign.h index 6f5b03a..a79cca1 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -5,6 +5,8 @@ #include "Parameters.h" #include "Transcript.h" #include "ChimericSegment.h" +#include "Genome.h" + #include class ChimericAlign @@ -18,7 +20,7 @@ class ChimericAlign uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; int chimMotif, chimStr, chimScore; - ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn); //allocate + ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn); //allocate void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); @@ -28,6 +30,7 @@ class ChimericAlign private: Parameters &P; ParametersChimeric &pCh; + Genome &mapGen; }; #endif \ No newline at end of file diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index a42f381..624eeb0 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -2,10 +2,10 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN) { - outStream << P.chrName[al1->Chr] <<"\t"<< chimJ1 - P.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ - <<"\t"<< P.chrName[al2->Chr] <<"\t"<< chimJ2 - P.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ + outStream << mapGen.chrName[al1->Chr] <<"\t"<< chimJ1 - mapGen.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ + <<"\t"<< mapGen.chrName[al2->Chr] <<"\t"<< chimJ2 - mapGen.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ - <<"\t"<< al1->exons[0][EX_G] - P.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ - <<"\t"<< al2->exons[0][EX_G] - P.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN <<"\n"; + <<"\t"<< al1->exons[0][EX_G] - mapGen.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ + <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN <<"\n"; }; \ No newline at end of file diff --git a/ChimericDetection.h b/ChimericDetection.h index 05616d8..0d57793 100644 --- a/ChimericDetection.h +++ b/ChimericDetection.h @@ -14,7 +14,7 @@ class ChimericDetection { bool chimRecord; int chimScoreBest; - ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream &ostreamChimJunctionIn); + ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream &ostreamChimJunctionIn); bool chimericDetectionMult(uint nWin, uint *readLengthIn); private: diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 371a23d..c9a54dd 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -64,7 +64,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { if (chimScore>0) {//candidate chimera - ChimericAlign chAl(seg1, seg2, chimScore); + ChimericAlign chAl(seg1, seg2, chimScore, outGen); if (!chAl.chimericCheck()) continue; //check chimeric alignment diff --git a/ErrorWarning.h b/ErrorWarning.h index f9ef5ca..c4a84f2 100644 --- a/ErrorWarning.h +++ b/ErrorWarning.h @@ -1,5 +1,5 @@ -#ifndef DEF_ErrorWarning -#define DEF_STATS +#ifndef CODE_ErrorWarning +#define CODE_ErrorWarning #include "IncludeDefine.h" #include "Parameters.h" diff --git a/Genome.cpp b/Genome.cpp index a6fa0cd..60b0e62 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -26,8 +26,13 @@ #define SHM_projectID 23 Genome::Genome (Parameters &Pin ): P(Pin), pGe(Pin.pGe), shmStart(NULL), sharedMemory(NULL) { - shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); - }; + shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); + + //final pGe.sjdbOverhang value has been determined + sjdbOverhang = pGe.sjdbOverhang; + sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; + +}; Genome::~Genome() { @@ -120,7 +125,7 @@ void Genome::genomeLoad(){//allocate and load Genome }; //find chr starts from files - P.chrInfoLoad(); + chrInfoLoad(); //check if sjdbInfo.txt exists => genome was generated with junctions bool sjdbInfoExists=false; @@ -141,7 +146,7 @@ void Genome::genomeLoad(){//allocate and load Genome //record required genome parameters in P pGe.gSAindexNbases=P1.pGe.gSAindexNbases; pGe.gChrBinNbits=P1.pGe.gChrBinNbits; - P.genomeChrBinNbases=1LLU<0) @@ -161,7 +166,7 @@ void Genome::genomeLoad(){//allocate and load Genome exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; - P.sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; + sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; P.inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<logMain << "Read from SAindex: pGe.gSAindexNbases=" << pGe.gSAindexNbases <<" nSAi="<< P.nSAi <logMain << "Read from SAindex: pGe.gSAindexNbases=" << pGe.gSAindexNbases <<" nSAi="<< nSAi <logMain << "nGenome=" << P.nGenome << "; nSAbyte=" << P.nSAbyte <logMain <<"GstrandBit="<logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <logMain, EXIT_CODE_SHM, P); // }; if (P.annotScoreScale>0) {//optional allocation - shmNext += P.nGenome; + shmNext += nGenome; } } else if (pGe.gLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory { - P.genomeInsertL=0; + genomeInsertL=0; if (pGe.gFastaFiles.at(0)!="-") {//will insert sequences in the genome, now estimate the extra size - uint oldlen=P.chrStart.back();//record the old length - P.genomeInsertChrIndFirst=P.nChrReal; - P.genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; + uint oldlen=chrStart.back();//record the old length + genomeInsertChrIndFirst=nChrReal; + genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; }; try { if (P.sjdbInsert.pass1 || P.sjdbInsert.pass2) {//reserve extra memory for insertion at the 1st and/or 2nd step - nGenomeInsert=P.nGenome+P.genomeInsertL; - nSAinsert=P.nSA+2*P.genomeInsertL; + nGenomeInsert=nGenome+genomeInsertL; + nSAinsert=nSA+2*genomeInsertL; nGenomePass1=nGenomeInsert; nSApass1=nSAinsert; if (P.sjdbInsert.pass1) { - nGenomePass1+=P.limitSjdbInsertNsj*P.sjdbLength; - nSApass1+=2*P.limitSjdbInsertNsj*P.sjdbLength; + nGenomePass1+=P.limitSjdbInsertNsj*sjdbLength; + nSApass1+=2*P.limitSjdbInsertNsj*sjdbLength; }; nGenomePass2=nGenomePass1; nSApass2=nSApass1; if (P.sjdbInsert.pass2) { - nGenomePass2+=P.limitSjdbInsertNsj*P.sjdbLength; - nSApass2+=2*P.limitSjdbInsertNsj*P.sjdbLength; + nGenomePass2+=P.limitSjdbInsertNsj*sjdbLength; + nSApass2+=2*P.limitSjdbInsertNsj*sjdbLength; }; G1=new char[nGenomePass2+L+L]; - SApass2.defineBits(P.GstrandBit+1,nSApass2); + SApass2.defineBits(GstrandBit+1,nSApass2); SApass2.allocateArray(); - SApass1.defineBits(P.GstrandBit+1,nSApass1); + SApass1.defineBits(GstrandBit+1,nSApass1); SApass1.pointArray(SApass2.charArray+SApass2.lengthByte-SApass1.lengthByte); - SAinsert.defineBits(P.GstrandBit+1,nSAinsert); + SAinsert.defineBits(GstrandBit+1,nSAinsert); SAinsert.pointArray(SApass1.charArray+SApass1.lengthByte-SAinsert.lengthByte); SA.pointArray(SAinsert.charArray+SAinsert.lengthByte-SA.lengthByte); } else {//no sjdb insertions - if (P.genomeInsertL==0) + if (genomeInsertL==0) {// no sequence insertion, simple allocation - G1=new char[P.nGenome+L+L]; + G1=new char[nGenome+L+L]; SA.allocateArray(); } else { - G1=new char[P.nGenome+L+L+P.genomeInsertL]; - SAinsert.defineBits(P.GstrandBit+1,P.nSA+2*P.genomeInsertL);//TODO: re-define GstrandBit if necessary + G1=new char[nGenome+L+L+genomeInsertL]; + SAinsert.defineBits(GstrandBit+1,nSA+2*genomeInsertL);//TODO: re-define GstrandBit if necessary SAinsert.allocateArray(); SA.pointArray(SAinsert.charArray+SAinsert.lengthByte-SA.lengthByte); }; @@ -365,8 +370,8 @@ void Genome::genomeLoad(){//allocate and load Genome } catch (exception & exc) { ostringstream errOut; errOut <<"EXITING: fatal error trying to allocate genome arrays, exception thrown: "<logMain, EXIT_CODE_MEMORY_ALLOCATION, P); }; @@ -390,17 +395,17 @@ void Genome::genomeLoad(){//allocate and load Genome if (pGe.gLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files //load genome - P.inOut->logMain <<"Genome file size: "<logMain <<"Loading Genome ... " << flush; - uint genomeReadBytesN=fstreamReadBig(GenomeIn,G,P.nGenome); + uint genomeReadBytesN=fstreamReadBig(GenomeIn,G,nGenome); P.inOut->logMain <<"done! state: good=" <logMain << "Sum of all Genome bytes: " <> P.sjdbN >> pGe.sjdbOverhang; - P.inOut->logMain << "Processing splice junctions database sjdbN=" <> sjdbN >> pGe.sjdbOverhang; + P.inOut->logMain << "Processing splice junctions database sjdbN=" <> P.sjdbStart[ii] >> P.sjdbEnd[ii] >> d1 >> d2 >> d3 >> d4; - P.sjdbMotif[ii] = (uint8) d1; - P.sjdbShiftLeft[ii] = (uint8) d2; - P.sjdbShiftRight[ii] = (uint8) d3; - P.sjdbStrand[ii] = (uint8) d4; + sjdbInfo >> sjdbStart[ii] >> sjdbEnd[ii] >> d1 >> d2 >> d3 >> d4; + sjdbMotif[ii] = (uint8) d1; + sjdbShiftLeft[ii] = (uint8) d2; + sjdbShiftRight[ii] = (uint8) d3; + sjdbStrand[ii] = (uint8) d4; }; - P.sjDstart[ii] = P.sjdbStart[ii] - pGe.sjdbOverhang; - P.sjAstart[ii] = P.sjdbEnd[ii] + 1; - if (P.sjdbMotif[ii]==0) {//shinon-canonical junctions back to their true coordinates - P.sjDstart[ii] += P.sjdbShiftLeft[ii]; - P.sjAstart[ii] += P.sjdbShiftLeft[ii]; + sjDstart[ii] = sjdbStart[ii] - pGe.sjdbOverhang; + sjAstart[ii] = sjdbEnd[ii] + 1; + if (sjdbMotif[ii]==0) {//shinon-canonical junctions back to their true coordinates + sjDstart[ii] += sjdbShiftLeft[ii]; + sjAstart[ii] += sjdbShiftLeft[ii]; }; }; }; @@ -513,7 +518,7 @@ void Genome::genomeLoad(){//allocate and load Genome } else { //redefine winBinNbits P.winBinNbits = (uint) floor( log2( max( max(4LLU,P.alignIntronMax), (P.alignMatesGapMax==0 ? 1000LLU : P.alignMatesGapMax) ) /4 ) + 0.5); - P.winBinNbits = max( P.winBinNbits, (uint) floor(log2(P.nGenome/40000+1)+0.5) ); + P.winBinNbits = max( P.winBinNbits, (uint) floor(log2(nGenome/40000+1)+0.5) ); //ISSUE - to be fixed in STAR3: if alignIntronMax>0 but alignMatesGapMax==0, winBinNbits will be defined by alignIntronMax P.inOut->logMain << "To accomodate alignIntronMax="<logMain, EXIT_CODE_INPUT_FILES, P); + }; + + char chrInChar[1000]; + + while (chrStreamIn.good()) { + string chrIn; + chrStreamIn.getline(chrInChar,1000); + chrIn=chrInChar; + if (chrIn=="") break; + chrName.push_back(chrIn); + }; + chrStreamIn.close(); + nChrReal=chrName.size(); + + P.inOut->logMain << "Number of real (reference) chromosomes= " << nChrReal <<"\n"<logMain, EXIT_CODE_INPUT_FILES, P); + }; + + for (uint ii=0;ii> chrLength[ii]; + }; + chrStreamIn.close(); + + //load chr starts + chrStreamIn.open( (pGe.gDir+"/chrStart.txt").c_str() ); + if (chrStreamIn.fail()) { + ostringstream errOut; + errOut << "EXITING because of FATAL error, could not open file " << (pGe.gDir+"/chrStart.txt") <<"\n"; + errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); + }; + + for (uint ii=0;ii<=nChrReal;ii++) { + chrStreamIn >> chrStart[ii]; + }; + chrStreamIn.close(); + + //log + for (uint ii=0; iilogMain << ii+1 <<"\t"<< chrName[ii] <<"\t"<=chrStart[ichr]) ichr++; + chrBin[ii]=ichr-1; + }; +}; \ No newline at end of file diff --git a/Genome.h b/Genome.h index f5d72ee..4841127 100644 --- a/Genome.h +++ b/Genome.h @@ -18,15 +18,41 @@ class Genome { ParametersGenome &pGe; + //chr parameters + vector chrStart, chrLength, chrLengthAll; + uint genomeChrBinNbases, chrBinN, *chrBin; + vector chrName, chrNameAll; + map chrNameIndex; + uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=pGe.gSAindexNbases + + uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci + uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass + uint nSAi; //size of the SAindex + unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information + uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index + + //SJ database parameters + uint sjdbOverhang, sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*pGe.sjdbOverhang+1 including spacer + uint sjChrStart,sjdbN; //first sj-db chr + uint sjGstart; //start of the sj-db genome sequence + uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci + uint8 *sjdbMotif; //motifs of annotated junctions + uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions + uint8 *sjdbStrand; //junctions strand, not used yet + //sequence insert parameters + uint genomeInsertL; //total length of the sequence to be inserted on the fly + uint genomeInsertChrIndFirst; //index of the first inserted chromosome Genome (Parameters &Pin ); ~Genome(); void freeMemory(); void genomeLoad(); - + void chrBinFill(); + void chrInfoLoad(); + void insertSequences(); diff --git a/Genome_insertSequences.cpp b/Genome_insertSequences.cpp index df07d30..0132f7a 100644 --- a/Genome_insertSequences.cpp +++ b/Genome_insertSequences.cpp @@ -16,15 +16,15 @@ if (pGe.gFastaFiles.at(0)!="-") //move the junctions to free up space for seqs // chrStart/Name/Length nChrReal include the extra sequences // nGenome is the old, small genome size - uint sjdblen=P.nGenome-(P.chrStart.back()-P.genomeInsertL);//length of sjdb sequences - memmove(G+P.chrStart.back(),G+P.chrStart.back()-P.genomeInsertL,sjdblen); - memset(G+P.chrStart.back()-P.genomeInsertL, GENOME_spacingChar, P.genomeInsertL);//fill empty space with spacing characters + uint sjdblen=nGenome-(chrStart.back()-genomeInsertL);//length of sjdb sequences + memmove(G+chrStart.back(),G+chrStart.back()-genomeInsertL,sjdblen); + memset(G+chrStart.back()-genomeInsertL, GENOME_spacingChar, genomeInsertL);//fill empty space with spacing characters - genomeScanFastaFiles(P, G+P.chrStart.back()-P.genomeInsertL, true); //read the seqs from file(s) into the free space - uint64 nGenomeOld=P.nGenome; - P.nGenome=P.chrStart.back()+sjdblen; + genomeScanFastaFiles(P, G+chrStart.back()-genomeInsertL, true); //read the seqs from file(s) into the free space + uint64 nGenomeOld=nGenome; + nGenome=chrStart.back()+sjdblen; //insert new sequences into the SA - insertSeqSA(SA, SAinsert, SAi, G, G+P.chrStart.back()-P.genomeInsertL, nGenomeOld-sjdblen, P.genomeInsertL, sjdblen, P); + insertSeqSA(SA, SAinsert, SAi, G, G+chrStart.back()-genomeInsertL, nGenomeOld-sjdblen, genomeInsertL, sjdblen, P, *this); //insert new sequences into the SAi //update P diff --git a/OutSJ.cpp b/OutSJ.cpp index 56ff912..1064065 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -1,7 +1,7 @@ #include "OutSJ.h" #include "ErrorWarning.h" -OutSJ::OutSJ (uint nSJmax, Parameters &Pin) : P(Pin){//do I need P? +OutSJ::OutSJ (uint nSJmax, Parameters &Pin, Genome &genomeIn) : P(Pin), mapGen(genomeIn), oneSJ(mapGen) {//do I need P? data = new char [oneSJ.dataSize*nSJmax]; //allocate big array of SJ loci and properties memset(data,0,oneSJ.dataSize*nSJmax); @@ -56,6 +56,8 @@ void OutSJ::collapseSJ() {//collapse junctions. Simple version now: re-sort ever N=isj1+1; }; +Junction::Junction(Genome &genomeIn) : mapGen(genomeIn) { +}; //////////////////////////////////////////////////// oneJunctionWrite void Junction::junctionPointer(char* sjPoint, uint isj) {// @@ -72,8 +74,8 @@ void Junction::junctionPointer(char* sjPoint, uint isj) {// }; void Junction::outputStream(ostream &outStream, Parameters& P) { - uint sjChr=P.chrBin[*start >> P.pGe.gChrBinNbits]; - outStream << P.chrName.at(sjChr) <<"\t"<< *start + 1 - P.chrStart[sjChr] <<"\t"<<*start + *gap - P.chrStart[sjChr] \ + uint sjChr=mapGen.chrBin[*start >> P.pGe.gChrBinNbits]; + outStream << mapGen.chrName.at(sjChr) <<"\t"<< *start + 1 - mapGen.chrStart[sjChr] <<"\t"<<*start + *gap - mapGen.chrStart[sjChr] \ <<"\t"<< int(*strand) <<"\t"<< int(*motif) <<"\t"<< int (*annot) <<"\t"<< *countUnique <<"\t"<< *countMultiple \ <<"\t"<< *overhangLeft << endl; }; diff --git a/OutSJ.h b/OutSJ.h index 959a460..13821ad 100644 --- a/OutSJ.h +++ b/OutSJ.h @@ -1,7 +1,8 @@ -#ifndef OUT_SJ_DEF -#define OUT_SJ_DEF +#ifndef CODE_OutSJ +#define CODE_OutSJ #include "Parameters.h" +#include "Genome.h" class Junction {//one junction public: @@ -23,9 +24,13 @@ class Junction {//one junction const static uint dataSize=overhangRightP+sizeof(uint16); + Junction(Genome &genomeIn); void junctionPointer(char* sjPoint, uint isj); void outputStream(ostream &outStream, Parameters& P); void collapseOneSJ(char* isj1P, char* isjP, Parameters& P); + +private: + Genome &mapGen; }; class OutSJ { @@ -36,13 +41,13 @@ class OutSJ { uint N; //number of junctions stored Junction oneSJ; - OutSJ(uint nSJmax, Parameters &Pin); + OutSJ(uint nSJmax, Parameters &Pin, Genome &genomeIn); void collapseSJ();//collapse the junctions in data // int compareSJ(void* i1, void* i2); private: - Parameters &P; - + Parameters &P; + Genome &mapGen; }; int compareSJ(const void* i1, const void* i2); //external functions diff --git a/Parameters.cpp b/Parameters.cpp index bc887af..adf0e2e 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1196,9 +1196,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; - //final pGe.sjdbOverhang value has been determined - sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; - if (outBAMcoord && limitBAMsortRAM==0) {//check limitBAMsortRAM if (pGe.gLoad!="NoSharedMemory") { ostringstream errOut; @@ -1233,9 +1230,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; - //genome parameters - genomeChrBinNbases=1LLU<logMain, EXIT_CODE_INPUT_FILES, *this); - }; - - char chrInChar[1000]; - - while (chrStreamIn.good()) { - string chrIn; - chrStreamIn.getline(chrInChar,1000); - chrIn=chrInChar; - if (chrIn=="") break; - chrName.push_back(chrIn); - }; - chrStreamIn.close(); - nChrReal=chrName.size(); - - inOut->logMain << "Number of real (reference) chromosomes= " << nChrReal <<"\n"<logMain, EXIT_CODE_INPUT_FILES, *this); - }; - - for (uint ii=0;ii> chrLength[ii]; - }; - chrStreamIn.close(); - - //load chr starts - chrStreamIn.open( (pGe.gDir+"/chrStart.txt").c_str() ); - if (chrStreamIn.fail()) { - ostringstream errOut; - errOut << "EXITING because of FATAL error, could not open file " << (pGe.gDir+"/chrStart.txt") <<"\n"; - errOut << "SOLUTION: re-generate genome files with STAR --runMode genomeGenerate\n"; - exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_INPUT_FILES, *this); - }; - - for (uint ii=0;ii<=nChrReal;ii++) { - chrStreamIn >> chrStart[ii]; - }; - chrStreamIn.close(); - - //log - for (uint ii=0; iilogMain << ii+1 <<"\t"<< chrName[ii] <<"\t"<=chrStart[ichr]) ichr++; - chrBin[ii]=ichr-1; - }; -}; diff --git a/Parameters.h b/Parameters.h index da01fb4..98e77be 100644 --- a/Parameters.h +++ b/Parameters.h @@ -39,13 +39,9 @@ class Parameters { //input string inputBAMfile; - //genome, SA, ... - + //genome + char genomeNumToNT[6]; ParametersGenome pGe; - vector chrStart, chrLength, chrLengthAll; - uint genomeInsertL; //total length of the sequence to be inserted on the fly - uint genomeInsertChrIndFirst; //index of the first inserted chromosome - uint genomeChrBinNbases, chrBinN, *chrBin; //binning,windows,anchors uint winBinChrNbits, winBinNbits, winAnchorDistNbins, winFlankNbins, winBinN; @@ -53,9 +49,6 @@ class Parameters { double winReadCoverageRelativeMin; uint winReadCoverageBasesMin; - uint *genomeSAindexStart;//starts of the L-mer indices in the SAindex, 1<=L<=pGe.gSAindexNbases - - char genomeNumToNT[6]; //read parameters uint readMapNumber; uint iReadAll; @@ -254,20 +247,11 @@ class Parameters { int annotScoreScale;//overall multiplication factor for the annotation string annotSignalFile;//binary file with annotation signal - //SJ database parameters - uint sjdbLength; //length of the donor/acceptor, length of the sj "chromosome" =2*pGe.sjdbOverhang+1 including spacer - - uint sjChrStart,sjdbN; //first sj-db chr - uint sjGstart; //start of the sj-db genome sequence - uint *sjDstart,*sjAstart,*sjStr, *sjdbStart, *sjdbEnd; //sjdb loci - uint8 *sjdbMotif; //motifs of annotated junctions - uint8 *sjdbShiftLeft, *sjdbShiftRight; //shifts of junctions - uint8 *sjdbStrand; //junctions strand, not used yet - - uint sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered - + uint sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered + + //quantification parameters - //input + //input struct { @@ -315,20 +299,7 @@ class Parameters { uint Lread; - //Genome parameters - uint nGenome, nSA, nSAbyte, nChrReal;//genome length, SA length, # of chromosomes, vector of chromosome start loci - uint nGenome2, nSA2, nSAbyte2, nChrReal2; //same for the 2nd pass - uint nSAi; //size of the SAindex - vector chrName, chrNameAll; - map chrNameIndex; - unsigned char GstrandBit, SAiMarkNbit, SAiMarkAbsentBit; //SA index bit for strand information - uint GstrandMask, SAiMarkAbsentMask, SAiMarkAbsentMaskC, SAiMarkNmask, SAiMarkNmaskC;//maske to remove strand bit from SA index, to remove mark from SAi index - - - Parameters(); - void chrInfoLoad(); //find nChr and chrStart from genome - void chrBinFill();//file chrBin array int readParsFromFile(ifstream*, ofstream*, int); //read parameters from one file int readPars(); // read parameters from all files int scanOneLine (string &lineIn, int inputLevel, int inputLevelRequested); diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 88b6355..7d18295 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -3,7 +3,7 @@ #include "Transcript.h" #include "ReadAlign.h" -ReadAlign::ReadAlign (Parameters& Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk) +ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin), mapGen(genomeIn), chunkTr(TrIn) {//allocate arrays winBin = new uintWinBin* [2]; diff --git a/ReadAlign.h b/ReadAlign.h index 3c1b4da..4391988 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -19,12 +19,12 @@ class ReadAlign { public: //methods - ReadAlign (Parameters& Pin, const Genome &genomeIn, Transcriptome *TrIn, int iChunk);//allocate arrays + ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk);//allocate arrays int oneRead(); //vars - Genome mapGen; //mapped-to-genome structure + Genome &mapGen; //mapped-to-genome structure uint iRead; char** Read1; diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index a91d5a9..e5e6c33 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -2,7 +2,7 @@ #include #include "ErrorWarning.h" -ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin) {//initialize chunk +ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin), mapGen(genomeIn) {//initialize chunk iThread=iChunk; @@ -13,7 +13,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome chunkTr=NULL; }; - RA = new ReadAlign(P, genomeIn, chunkTr, iChunk);//new local copy of RA for each chunk + RA = new ReadAlign(P, mapGen, chunkTr, iChunk);//new local copy of RA for each chunk RA->iRead=0; @@ -63,8 +63,8 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome RA->outBAMquant=NULL; }; - chunkOutSJ=new OutSJ (P.limitOutSJcollapsed, P); - chunkOutSJ1=new OutSJ (P.limitOutSJcollapsed, P); + chunkOutSJ=new OutSJ (P.limitOutSJcollapsed, P, mapGen); + chunkOutSJ1=new OutSJ (P.limitOutSJcollapsed, P, mapGen); RA->chunkOutSJ=chunkOutSJ; RA->chunkOutSJ1=chunkOutSJ1; diff --git a/ReadAlignChunk.h b/ReadAlignChunk.h index 475cab8..d2e4489 100644 --- a/ReadAlignChunk.h +++ b/ReadAlignChunk.h @@ -1,5 +1,5 @@ -#ifndef READ_ALIGN_CHUNK_DEF -#define READ_ALIGN_CHUNK_DEF +#ifndef CODE_ReadAlignChunk +#define CODE_ReadAlignChunk #include "IncludeDefine.h" #include "Parameters.h" @@ -40,5 +40,8 @@ class ReadAlignChunk {//chunk of reads and alignments void chunkFstreamOpen(string filePrefix, int iChunk, fstream &fstreamOut); void chunkFstreamCat (fstream &chunkOut, ofstream &allOut, bool mutexFlag, pthread_mutex_t &mutexVal); void chunkFilesCat(ostream *allOut, string filePrefix, uint &iC); + + Genome &mapGen; +private: }; #endif diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index de24f60..a3a6bf8 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -184,7 +184,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint samFLAG|=0x20; }; mateChr=trOut.Chr; - trChrStart=P.chrStart[mateChr]; + trChrStart=mapGen.chrStart[mateChr]; mateStart=trOut.exons[0][EX_G] - trChrStart; mateStrand= trOut.Str == (1-imate) ? 0 : 1; @@ -220,7 +220,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (flagPaired) {//paired reads samFLAG=0x0001; if (iExMate==trOut.nExons-1) {//single mate - if (mateChr>P.nChrReal) samFLAG|=0x0008; //not mapped as pair + if (mateChr>mapGen.nChrReal) samFLAG|=0x0008; //not mapped as pair } else {//properly paired samFLAG|=0x0002; //mapped as pair }; @@ -453,7 +453,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint //6: next refID Ref-ID of the next segment (􀀀1  mate refID < n ref) if (nMates>1) { pBAM[6]=trOut.Chr; - } else if (mateChr1) { pBAM[7]=trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G] - trChrStart; - } else if (mateChroutLocalChains << trAll[iw][itr]->maxScore<<"\t"<< trAll[iw][itr]->Chr<<"\t"<Str<<"\t"<nExons; for (uint ib=0;ibnExons;ib++) { - P.inOut->outLocalChains <<"\t"<< trAll[iw][itr]->exons[ib][EX_G]-P.chrStart[trAll[iw][itr]->Chr] \ + P.inOut->outLocalChains <<"\t"<< trAll[iw][itr]->exons[ib][EX_G]-mapGen.chrStart[trAll[iw][itr]->Chr] \ <<"\t"<< trAll[iw][itr]->exons[ib][EX_R] <<"\t"<< trAll[iw][itr]->exons[ib][EX_L]; }; P.inOut->outLocalChains <<"\n"; diff --git a/ReadAlign_chimericDetectionOld.cpp b/ReadAlign_chimericDetectionOld.cpp index 18c32bd..3d00ee5 100644 --- a/ReadAlign_chimericDetectionOld.cpp +++ b/ReadAlign_chimericDetectionOld.cpp @@ -87,7 +87,7 @@ bool ReadAlign::chimericDetectionOld() { }; chimScoreBest=chimScore; trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; - trChim[1].cStart = trChim[1].gStart - P.chrStart[trChim[1].Chr]; + trChim[1].cStart = trChim[1].gStart - mapGen.chrStart[trChim[1].Chr]; chimStrBest=chimStr1; } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one chimScoreNext=chimScore; @@ -353,7 +353,7 @@ bool ReadAlign::chimericDetectionOld() { }; - bamN+=alignBAM(trChim[itr], 1, 0, P.chrStart[trChim[itr].Chr], mateChr, mateStart-P.chrStart[mateChr], mateStrand, \ + bamN+=alignBAM(trChim[itr], 1, 0, mapGen.chrStart[trChim[itr].Chr], mateChr, mateStart-mapGen.chrStart[mateChr], mateStrand, \ alignType, NULL, P.outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1];//outBAMoneAlignNbytes[1] = 0 if SE is recorded }; @@ -372,7 +372,7 @@ bool ReadAlign::chimericDetectionOld() { bam_read1_fromArray(outBAMoneAlign[tagI], b); uint8_t* auxp=bam_aux_get(b,"NM"); uint32_t auxv=bam_aux2i(auxp); - string tagSA1="SAZ"+P.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + string tagSA1="SAZ"+mapGen.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end @@ -410,11 +410,11 @@ bool ReadAlign::chimericDetectionOld() { }; }; //junction + SAMp - chunkOutChimJunction << P.chrName[trChim[0].Chr] <<"\t"<< chimJ0 - P.chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \ - <<"\t"<< P.chrName[trChim[1].Chr] <<"\t"<< chimJ1 - P.chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \ + chunkOutChimJunction << mapGen.chrName[trChim[0].Chr] <<"\t"<< chimJ0 - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \ + <<"\t"<< mapGen.chrName[trChim[1].Chr] <<"\t"<< chimJ1 - mapGen.chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat0 <<"\t"<< chimRepeat1 <<"\t"<< readName+1 \ - <<"\t"<< trChim[0].exons[0][EX_G] - P.chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \ - <<"\t"<< trChim[1].exons[0][EX_G] - P.chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]) <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate + <<"\t"<< trChim[0].exons[0][EX_G] - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \ + <<"\t"<< trChim[1].exons[0][EX_G] - mapGen.chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]) <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate }; };//chimeric score };//chimeric search diff --git a/ReadAlign_createExtendWindowsWithAlign.cpp b/ReadAlign_createExtendWindowsWithAlign.cpp index 8c5460b..c04fd21 100644 --- a/ReadAlign_createExtendWindowsWithAlign.cpp +++ b/ReadAlign_createExtendWindowsWithAlign.cpp @@ -25,7 +25,7 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { }; if (iBin==0) break; }; - flagMergeLeft = flagMergeLeft && (P.chrBin[iBin>>P.winBinChrNbits]==P.chrBin[aBin>>P.winBinChrNbits]); + flagMergeLeft = flagMergeLeft && (mapGen.chrBin[iBin>>P.winBinChrNbits]==mapGen.chrBin[aBin>>P.winBinChrNbits]); if (flagMergeLeft) {//this align can be merged into the existing window iWin=wB[iBin]; iBinLeft=WC[iWin][WC_gStart]; @@ -44,7 +44,7 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { }; }; - flagMergeRight = flagMergeRight && (P.chrBin[iBin>>P.winBinChrNbits]==P.chrBin[aBin>>P.winBinChrNbits]); + flagMergeRight = flagMergeRight && (mapGen.chrBin[iBin>>P.winBinChrNbits]==mapGen.chrBin[aBin>>P.winBinChrNbits]); if (flagMergeRight) {//this align can be merged into the existing window while (wB[iBin]==wB[iBin+1]) ++iBin; //extend through all bins of the right window iBinRight=iBin; @@ -63,7 +63,7 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { if (!flagMergeLeft && !flagMergeRight) {//no merging, a new window was added wB[aBin]=iWin=nW; //add new window ID for now, may change it later - WC[iWin][WC_Chr]=P.chrBin[aBin >> P.winBinChrNbits]; + WC[iWin][WC_Chr]=mapGen.chrBin[aBin >> P.winBinChrNbits]; WC[iWin][WC_Str]=aStr; WC[iWin][WC_gEnd]=WC[iWin][WC_gStart]=aBin; ++nW; diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 01c544d..4f4e96e 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -60,7 +60,7 @@ int ReadAlign::mapOneRead() { //uint seedLength=min(splitR[1][ip] - Lmapped - istart*Lstart, P.seedSearchLmax); uint seedLength=splitR[1][ip] - Lmapped - istart*Lstart; - maxMappableLength2strands(Shift, seedLength, iDir, 0, P.nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple + maxMappableLength2strands(Shift, seedLength, iDir, 0, mapGen.nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple if (iDir==0 && istart==0 && Lmapped==0 && Shift+L == splitR[1][ip] ) {//this piece maps full length and does not need to be mapped from the opposite direction flagDirMap=false; }; @@ -72,7 +72,7 @@ int ReadAlign::mapOneRead() { uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart ) : \ ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1); //choose Shift for forward or reverse uint seedLength = min(P.seedSearchLmax, iDir==0 ? (splitR[0][ip] + splitR[1][ip]-Shift):(Shift+1) ); - maxMappableLength2strands(Shift, seedLength, iDir, 0, P.nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple + maxMappableLength2strands(Shift, seedLength, iDir, 0, mapGen.nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple }; diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index 2226e67..7ae3354 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -35,8 +35,8 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, //find SA boundaries uint Lind=Lmax; while (Lind>0) {//check the precense of the prefix for Lind - iSA1=mapGen.SAi[P.genomeSAindexStart[Lind-1]+ind1]; - if ((iSA1 & P.SAiMarkAbsentMaskC) == 0) {//prefix exists + iSA1=mapGen.SAi[mapGen.genomeSAindexStart[Lind-1]+ind1]; + if ((iSA1 & mapGen.SAiMarkAbsentMaskC) == 0) {//prefix exists break; } else {//this prefix does not exist, reduce Lind --Lind; @@ -44,10 +44,10 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, }; }; - if (P.genomeSAindexStart[Lind-1]+ind1+1 < P.genomeSAindexStart[Lind]) {//we are not at the end of the SA - iSA2=((mapGen.SAi[P.genomeSAindexStart[Lind-1]+ind1+1] & P.SAiMarkNmask) & P.SAiMarkAbsentMask) - 1; + if (mapGen.genomeSAindexStart[Lind-1]+ind1+1 < mapGen.genomeSAindexStart[Lind]) {//we are not at the end of the SA + iSA2=((mapGen.SAi[mapGen.genomeSAindexStart[Lind-1]+ind1+1] & mapGen.SAiMarkNmask) & mapGen.SAiMarkAbsentMask) - 1; } else { - iSA2=P.nSA-1; + iSA2=mapGen.nSA-1; }; @@ -56,15 +56,15 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, #ifdef SA_SEARCH_FULL //full search of the array even if the index search gave maxL maxL=0; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, mapGen.G, mapGen.SA, iSA1 & P.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(mapGen, Read1, pieceStart, pieceLength, iSA1 & mapGen.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); #else - if (Lind < P.pGe.gSAindexNbases && (iSA1 & P.SAiMarkNmaskC)==0 ) {//no need for SA search + if (Lind < P.pGe.gSAindexNbases && (iSA1 & mapGen.SAiMarkNmaskC)==0 ) {//no need for SA search indStartEnd[0]=iSA1; indStartEnd[1]=iSA2; Nrep=indStartEnd[1]-indStartEnd[0]+1; maxL=Lind; } else if (iSA1==iSA2) {//unique align already, just find maxL - if ((iSA1 & P.SAiMarkNmaskC)!=0) { + if ((iSA1 & mapGen.SAiMarkNmaskC)!=0) { ostringstream errOut; errOut << "BUG: in ReadAlign::maxMappableLength2strands"; exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); @@ -72,14 +72,14 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, indStartEnd[0]=indStartEnd[1]=iSA1; Nrep=1; bool comparRes; - maxL=compareSeqToGenome(Read1, pieceStart, pieceLength, Lind, mapGen.G, mapGen.SA, iSA1, dirR, comparRes, P); + maxL=compareSeqToGenome(mapGen, Read1, pieceStart, pieceLength, Lind, iSA1, dirR, comparRes, P); } else {//SA search, pieceLength>maxL - if ( (iSA1 & P.SAiMarkNmaskC)==0 ) {//no N in the prefix + if ( (iSA1 & mapGen.SAiMarkNmaskC)==0 ) {//no N in the prefix maxL=Lind; } else { maxL=0; }; - Nrep = maxMappableLength(Read1, pieceStart, pieceLength, mapGen.G, mapGen.SA, iSA1 & P.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(mapGen, Read1, pieceStart, pieceLength, iSA1 & mapGen.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); }; #endif diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index 89c63ff..88136d4 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -49,7 +49,7 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts for (uint iTr=0; iTrroStart = trMult[iTr]->roStr==0 ? trMult[iTr]->rStart : Lread - trMult[iTr]->rStart - trMult[iTr]->rLength; - trMult[iTr]->cStart=trMult[iTr]->gStart - P.chrStart[trMult[iTr]->Chr]; + trMult[iTr]->cStart=trMult[iTr]->gStart - mapGen.chrStart[trMult[iTr]->Chr]; }; // if (P.outMultimapperOrder.sortCoord) diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 4fcdc96..2cfa630 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -82,7 +82,7 @@ void ReadAlign::outputAlignments() { { for (uint itr=0;itrChrChrChr>=P.genomeInsertChrIndFirst) + if (trMult[itr]->Chr>=mapGen.genomeInsertChrIndFirst) { trMult[nTrOut]=trMult[itr]; trMult[nTrOut]->primaryFlag=false; @@ -146,7 +146,7 @@ void ReadAlign::outputAlignments() { if ((P.outBAMunsorted || P.outBAMcoord) && outSAMfilterYes) {//BAM output - alignBAM(*(trMult[iTr]), nTr, iTr, P.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); + alignBAM(*(trMult[iTr]), nTr, iTr, mapGen.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); if (P.outBAMunsorted) {//unsorted @@ -156,7 +156,7 @@ void ReadAlign::outputAlignments() { }; if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) {//keep pairs && paired reads && one of the mates not mapped in this transcript - alignBAM(*trMult[iTr], 0, 0, P.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, 4, mateMapped1, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + alignBAM(*trMult[iTr], 0, 0, mapGen.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, 4, mateMapped1, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); @@ -192,7 +192,7 @@ void ReadAlign::outputAlignments() { if ( (P.outBAMcoord || (P.outBAMunsorted && !P.outSAMunmapped.keepPairs) ) && outSAMfilterYes) {//BAM output - alignBAM(*trBest, 0, 0, P.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + alignBAM(*trBest, 0, 0, mapGen.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imate=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped if (P.outBAMcoord || P.outBAMunsorted || P.quant.trSAM.yes) {//BAM output - alignBAM(*trBest, 0, 0, P.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + alignBAM(*trBest, 0, 0, mapGen.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imateP.nChrReal) samFlagCommon+=0x0008; //not mapped as pair + if (mateChr>mapGen.nChrReal) samFlagCommon+=0x0008; //not mapped as pair } else {//paired align if (P.alignEndsProtrude.concordantPair || \ @@ -156,8 +156,8 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i samStreamCIGAR << "N"; samStreamSJmotif <<','<< trOut.canonSJ[ii-1] + (trOut.sjAnnot[ii-1]==0 ? 0 : SJ_SAM_AnnotatedMotifShift); //record junction type // samStreamSJannot <<','<< (int) trOut.sjAnnot[ii-1]; //record annotation type - samStreamSJintron <<','<< trOut.exons[ii-1][EX_G] + trOut.exons[ii-1][EX_L] + 1 - P.chrStart[trOut.Chr] <<','\ - << trOut.exons[ii][EX_G] - P.chrStart[trOut.Chr]; //record intron loci + samStreamSJintron <<','<< trOut.exons[ii-1][EX_G] + trOut.exons[ii-1][EX_L] + 1 - mapGen.chrStart[trOut.Chr] <<','\ + << trOut.exons[ii][EX_G] - mapGen.chrStart[trOut.Chr]; //record intron loci } else if (gapG>0) {//deletion: N samStreamCIGAR << gapG; samStreamCIGAR << "D"; @@ -211,14 +211,14 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i MAPQ=3; }; - *outStream << readName+1 <<"\t"<< ((samFLAG & P.outSAMflagAND) | P.outSAMflagOR) <<"\t"<< P.chrName[trOut.Chr] <<"\t"<< trOut.exons[iEx1][EX_G] + 1 - P.chrStart[trOut.Chr] + *outStream << readName+1 <<"\t"<< ((samFLAG & P.outSAMflagAND) | P.outSAMflagOR) <<"\t"<< mapGen.chrName[trOut.Chr] <<"\t"<< trOut.exons[iEx1][EX_G] + 1 - mapGen.chrStart[trOut.Chr] <<"\t"<< MAPQ <<"\t"<< CIGAR; if (nMates>1) { - *outStream <<"\t"<< "=" <<"\t"<< trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G]+ 1 - P.chrStart[trOut.Chr] + *outStream <<"\t"<< "=" <<"\t"<< trOut.exons[(imate==0 ? iExMate+1 : 0)][EX_G]+ 1 - mapGen.chrStart[trOut.Chr] <<"\t"<< (imate==0? "":"-") << trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; - } else if (mateChrChr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder); +// alignBAM(*alignG[0], 0, 0, mapGen.chrStart[alignG[0]->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder); // for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); // }; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 8b37c9c..7044442 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -4,7 +4,7 @@ #include "ReadAlign.h" #include "SequenceFuns.h" #include "stitchWindowAligns.h" -#include "sjSplitAlign.cpp" +#include "sjAlignSplit.cpp" #include "PackedArray.h" #include "alignSmithWaterman.h" #include "GlobalVariables.h" @@ -12,7 +12,7 @@ void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { - //zero-out winBin + //zero-out winBin memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); memset(winBin[1],255,sizeof(winBin[0][0])*P.winBinN); @@ -50,17 +50,17 @@ void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) {//scan through all alignments of this piece uint a1 = mapGen.SA[iSA]; - uint aStr = a1 >> P.GstrandBit; - a1 &= P.GstrandMask; //remove strand bit + uint aStr = a1 >> mapGen.GstrandBit; + a1 &= mapGen.GstrandMask; //remove strand bit //convert to positive strand if (aDir==1 && aStr==0) { aStr=1; } else if (aDir==0 && aStr==1) { - a1 = P.nGenome - (aLength+a1); + a1 = mapGen.nGenome - (aLength+a1); } else if (aDir==1 && aStr==1) { aStr=0; - a1 = P.nGenome - (aLength+a1); + a1 = mapGen.nGenome - (aLength+a1); }; //final strand @@ -68,9 +68,9 @@ void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { aStr=1-aStr; }; - if (a1>=P.sjGstart) {//this is sj align + if (a1>=mapGen.sjGstart) {//this is sj align uint a1D, aLengthD, a1A, aLengthA, sj1; - if (sjAlignSplit(a1, aLength, P, a1D, aLengthD, a1A, aLengthA, sj1)) {//align crosses the junction + if (sjAlignSplit(a1, aLength, mapGen, a1D, aLengthD, a1A, aLengthA, sj1)) {//align crosses the junction int addStatus=createExtendWindowsWithAlign(a1D, aStr);//add donor piece if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows @@ -96,14 +96,14 @@ void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { if (WC[iWin][WC_gStart]<=WC[iWin][WC_gEnd]) {//otherwise the window is dead uint wb=WC[iWin][WC_gStart]; - for (uint ii=0; ii0 && P.chrBin[(wb-1) >> P.winBinChrNbits]==WC[iWin][WC_Chr];ii++) { + for (uint ii=0; ii0 && mapGen.chrBin[(wb-1) >> P.winBinChrNbits]==WC[iWin][WC_Chr];ii++) { wb--; winBin[ WC[iWin][WC_Str] ][ wb ]=(uintWinBin) iWin; }; WC[iWin][WC_gStart] = wb; wb=WC[iWin][WC_gEnd]; - for (uint ii=0; ii> P.winBinChrNbits]==WC[iWin][WC_Chr];ii++) { + for (uint ii=0; ii> P.winBinChrNbits]==WC[iWin][WC_Chr];ii++) { wb++; winBin[ WC[iWin][WC_Str] ][ wb ]=(uintWinBin) iWin; }; @@ -140,8 +140,8 @@ void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) {//scan through all alignments uint a1 = mapGen.SA[iSA]; - uint aStr = a1 >> P.GstrandBit; - a1 &= P.GstrandMask; //remove strand bit + uint aStr = a1 >> mapGen.GstrandBit; + a1 &= mapGen.GstrandMask; //remove strand bit uint aRstart=PC[iP][PC_rStart]; //convert to positive strand @@ -150,10 +150,10 @@ void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { aRstart = Lread - (aLength+aRstart); } else if (aDir==0 && aStr==1) { aRstart = Lread - (aLength+aRstart); - a1 = P.nGenome - (aLength+a1); + a1 = mapGen.nGenome - (aLength+a1); } else if (aDir==1 && aStr==1) { aStr=0; - a1 = P.nGenome - (aLength+a1); + a1 = mapGen.nGenome - (aLength+a1); }; //final strand @@ -162,9 +162,9 @@ void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { }; - if (a1>=P.sjGstart) {//this is sj read + if (a1>=mapGen.sjGstart) {//this is sj read uint a1D, aLengthD, a1A, aLengthA, isj1; - if (sjAlignSplit(a1, aLength, P, a1D, aLengthD, a1A, aLengthA, isj1)) {//align crosses the junction + if (sjAlignSplit(a1, aLength, mapGen, a1D, aLengthD, a1A, aLengthA, isj1)) {//align crosses the junction assignAlignToWindow(a1D, aLengthD, aStr, aNrep, aFrag, aRstart, aAnchor, isj1); assignAlignToWindow(a1A, aLengthA, aStr, aNrep, aFrag, aRstart+aLengthD, aAnchor, isj1); diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 51a8699..b89f401 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -30,7 +30,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c score2=\ stitchAlignToTranscript(WA[iW][iS2][WA_rStart]+WA[iW][iS2][WA_Length]-1, WA[iW][iS2][WA_gStart]+WA[iW][iS2][WA_Length]-1,\ WA[iW][iS1][WA_rStart], WA[iW][iS1][WA_gStart], WA[iW][iS1][WA_Length], WA[iW][iS1][WA_iFrag], WA[iW][iS1][WA_sjA], \ - P, R, Q, mapGen.G, &trA1, outFilterMismatchNmaxTotal); + P, R, Q, mapGen, &trA1, outFilterMismatchNmaxTotal); if (P.outFilterBySJoutStage==2 && trA1.nExons>1) {//junctions have to be present in the filtered set P.sjnovel @@ -128,7 +128,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint iS1=seedChain[iSc], iS2=seedChain[iSc-1]; int scoreStitch= stitchAlignToTranscript(WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]-1, WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]-1,\ WA[iW][iS2][WA_rStart], WA[iW][iS2][WA_gStart], WA[iW][iS2][WA_Length], WA[iW][iS2][WA_iFrag], WA[iW][iS2][WA_sjA], \ - P, R, Q, mapGen.G, &trA, outFilterMismatchNmaxTotal); + P, R, Q, mapGen, &trA, outFilterMismatchNmaxTotal); // if (scoreStitch>0) { Score+=scoreStitch; // } else { diff --git a/STAR.cpp b/STAR.cpp index 28bb579..55f7e81 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -97,7 +97,7 @@ int main(int argInN, char* argIn[]) { //calculate genome-related parameters Transcriptome *mainTranscriptome=NULL; - mainGenome.Var=new Variation(P); + mainGenome.Var=new Variation(P, mainGenome.chrStart, mainGenome.chrNameIndex); if (P.pGe.gFastaFiles.at(0)!="-") @@ -109,8 +109,8 @@ int main(int argInN, char* argIn[]) { if (P.sjdbInsert.pass1) { - Parameters P1=P; - sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); + Genome mainGenome1=mainGenome;//not sure if I need to create the copy - mainGenome1 below should not be changed + sjdbInsertJunctions(P, mainGenome, mainGenome1, sjdbLoci); }; /////////////////////////////////////////////////////////////////////////////////////////////////START @@ -130,6 +130,8 @@ int main(int argInN, char* argIn[]) { if (P.twoPass.yes) {//2-pass //re-define P for the pass1 + Genome mainGenome1=mainGenome; + Parameters P1=P; //turn off unnecessary calculations P1.outSAMtype[0]="None"; @@ -177,7 +179,7 @@ int main(int argInN, char* argIn[]) { P.twoPass.pass2=true;//starting the 2nd pass P.twoPass.pass1sjFile=P.twoPass.dir+"/SJ.out.tab"; - sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); + sjdbInsertJunctions(P, mainGenome, mainGenome1, sjdbLoci); //reopen reads files P.closeReadsFiles(); @@ -201,12 +203,12 @@ int main(int argInN, char* argIn[]) { if (P.outSAMmode != "None") {//open SAM file and write header ostringstream samHeaderStream; - for (uint ii=0;ii> field1; - P.chrNameAll.push_back(field1.substr(3)); + mainGenome.chrNameAll.push_back(field1.substr(3)); stream1 >> field1; - P.chrLengthAll.push_back((uint) stoll(field1.substr(3))); + mainGenome.chrLengthAll.push_back((uint) stoll(field1.substr(3))); }; }; extrastream.close(); @@ -275,10 +277,10 @@ int main(int argInN, char* argIn[]) { *P.inOut->outSAM << P.samHeader; }; if (P.outBAMunsorted){ - outBAMwriteHeader(P.inOut->outBAMfileUnsorted,P.samHeader,P.chrNameAll,P.chrLengthAll); + outBAMwriteHeader(P.inOut->outBAMfileUnsorted,P.samHeader,mainGenome.chrNameAll,mainGenome.chrLengthAll); }; // if (P.outBAMcoord){ -// outBAMwriteHeader(P.inOut->outBAMfileCoord,P.samHeader,P.chrName,P.chrLength); +// outBAMwriteHeader(P.inOut->outBAMfileCoord,P.samHeader,mainGenome.chrName,mainGenome.chrLength); // }; if ( P.quant.trSAM.yes ) { @@ -342,7 +344,7 @@ int main(int argInN, char* argIn[]) { }; if (P.outBAMcoord && P.limitBAMsortRAM==0) {//make it equal ot the genome size - P.limitBAMsortRAM=P.nGenome+mainGenome.SA.lengthByte+mainGenome.SAi.lengthByte; + P.limitBAMsortRAM=mainGenome.nGenome+mainGenome.SA.lengthByte+mainGenome.SAi.lengthByte; }; //no need for genome anymore, free the memory @@ -401,7 +403,7 @@ int main(int argInN, char* argIn[]) { if (binS==0) continue; //empty bin if (ibin == nBins-1) {//last bin for unmapped reads - BAMbinSortUnmapped(ibin,P.runThreadN,P.outBAMsortTmpDir,P.inOut->outBAMfileCoord, P); + BAMbinSortUnmapped(ibin,P.runThreadN,P.outBAMsortTmpDir,P.inOut->outBAMfileCoord, P, mainGenome); } else { uint newMem=binS+binN*24; bool boolWait=true; @@ -413,7 +415,7 @@ int main(int argInN, char* argIn[]) { }; sleep(0.1); }; - BAMbinSortByCoordinate(ibin,binN,binS,P.runThreadN,P.outBAMsortTmpDir, P); + BAMbinSortByCoordinate(ibin,binN,binS,P.runThreadN,P.outBAMsortTmpDir, P, mainGenome); #pragma omp critical totalMem-=newMem;//"release" RAM }; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 0765ffb..022f9fd 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -6,7 +6,7 @@ inline uint medianUint2(uint a, uint b) { return a/2 + b/2 + (a%2 + b%2)/2; }; -uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, bool& compRes, Parameters& P) { +uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& compRes, Parameters& P) { // compare s to g, find the maximum identity length // s2[0] read sequence; s2[1] complementary sequence // S position to start search from in s2[0],s2[1] @@ -14,10 +14,11 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& register int64 ii; - uint SAstr=SA[iSA]; - bool dirG = (SAstr>>P.GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P.GstrandMask; + uint SAstr=mapGen.SA[iSA]; + bool dirG = (SAstr>>mapGen.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= mapGen.GstrandMask; + char *g=mapGen.G; if (dirR && dirG) {//forward on read, forward on genome char* s = s2[0] + S + L; @@ -41,7 +42,7 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& return N; //exact match } else if (dirR && !dirG) { char* s = s2[1] + S + L; - g += P.nGenome-1-SAstr - L; + g += mapGen.nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { if (s[ii]!=g[-ii]) @@ -79,7 +80,7 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& return N; } else {//if (!dirR && !dirG) char* s = s2[0] + S - L; - g += P.nGenome-1-SAstr - L; + g += mapGen.nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { if (s[-ii]!=g[-ii]) @@ -99,7 +100,7 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& }; }; -uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, char* g, PackedArray& SA, bool dirR, uint S, Parameters& P) { +uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S, Parameters& P) { // given SA index i3 and identity length L3, return the index of the farthest element with the same length, starting from i1,L1 or i1a,L1a, or i1b,L1b bool compRes; @@ -114,8 +115,8 @@ uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint }; while ( (i1b+1i1a+1) ) { //L1a is the target length, i1a...i1b is the initial range, i1c,L1c is the value in the middle uint i1c=medianUint2(i1a,i1b); - //uint L1c=identityLength(&g[SA[i3]+L1b],&g[SA[i1c]+L1b],L3-L1b)+L1b; - uint L1c=compareSeqToGenome(s,S,L3,L1b,g,SA,i1c,dirR,compRes, P); + //uint L1c=identityLength(&g[mapGen.SA[i3]+L1b],&g[mapGen.SA[i1c]+L1b],L3-L1b)+L1b; + uint L1c=compareSeqToGenome(mapGen,s,S,L3,L1b,i1c,dirR,compRes, P); if (L1c==L3) { i1a=i1c; } @@ -126,7 +127,7 @@ uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint return i1a; }; -uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters& P) { +uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters& P) { // find minimum mappable length of sequence s to the genome g with suffix array SA; length(s)=N; [i1 i2] is // returns number of mappings (1=unique);range indStartEnd; min mapped length = L // binary search in SA space @@ -135,11 +136,11 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint uint L1,L2,i3,L3,L1a,L1b,L2a,L2b,i1a,i1b,i2a,i2b; - L1=compareSeqToGenome(s,S,N,L,g,SA,i1,dirR,compRes, P); - L2=compareSeqToGenome(s,S,N,L,g,SA,i2,dirR,compRes, P); + L1=compareSeqToGenome(mapGen,s,S,N,L,i1,dirR,compRes, P); + L2=compareSeqToGenome(mapGen,s,S,N,L,i2,dirR,compRes, P); -// L1=identityLength(&s[L],&g[SA[i1]]); -// L2=identityLength(&s[L],&g[SA[i2]]); +// L1=identityLength(&s[L],&g[mapGen.SA[i1]]); +// L2=identityLength(&s[L],&g[mapGen.SA[i2]]); L= min(L1,L2); L1a=L1;L1b=L1;i1a=i1;i1b=i1; @@ -148,7 +149,7 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i3=i1;L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+1=i2 an not iteration of the loope below is ever made - while (i1+1>P.GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P.GstrandMask; - - - if (dirG) - {//forward on read, forward on genome - char* s = s2[0] + S + L; - char* g = G + SAstr + L; - for (ii=0;(uint) ii < N-L; ii++) - { - if (s[ii]!=g[ii]) - { - if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; - break; - }; - }; - L3=ii+L; - } else - { - char* s = s2[1] + S + L; - char* g = G + P.nGenome-1-SAstr - L; - for (ii=0; (uint) ii < N-L; ii++) - { - if (s[ii]!=g[-ii]) - { - char s1=s[ii],g1=g[-ii]; - if (s1<4) s1=3-s1; - if (g1<4) g1=3-g1; - if (s1>g1) {compRes=true;} else {compRes=false;}; - break; - }; - }; - L3=ii+L; - }; - - if (L3==N) { - L=N; - return i3; -// cerr << "Bug L3==N"<>P.GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P.GstrandMask; - + uint SAstr=mapGen.SA[iSA]; + bool dirG = (SAstr>>mapGen.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= mapGen.GstrandMask; + char *g=mapGen.G; if (dirG) {//forward on read, forward on genome char* s = s2[0] + S + L; @@ -324,7 +238,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray }; } else if (s[ii]==GENOME_spacingChar) {//this already implies the s[ii]==g[ii] - compRes=compareRefEnds (SAstr, gInsert, dirG, dirR, P); + compRes=compareRefEnds (mapGen, SAstr, gInsert, dirG, dirR, P); return ii+L; }; }; @@ -334,7 +248,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray else { char* s = s2[1] + S + L; - g += P.nGenome-1-SAstr - L; + g += mapGen.nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) { if (s[ii]!=g[-ii]) @@ -353,7 +267,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray break; } else if (s[ii]==GENOME_spacingChar) {//this already implies the s[ii]==g[ii] - compRes=compareRefEnds (SAstr, gInsert, dirG, dirR, P); + compRes=compareRefEnds (mapGen, SAstr, gInsert, dirG, dirR, P); return ii+L; }; }; @@ -362,7 +276,7 @@ uint compareSeqToGenome1(char** s2, uint S, uint N, uint L, char* g, PackedArray }; -uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, PackedArray& SA, bool strR, uint i1, uint i2, uint L, Parameters& P) +uint suffixArraySearch1(Genome &mapGen, char** s, uint S, uint N, uint64 gInsert, bool strR, uint i1, uint i2, uint L, Parameters& P) { // binary search in SA space // s[0],s[1] - query sequence, complementary sequence @@ -378,14 +292,14 @@ uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, Packe int compRes; - uint L1=compareSeqToGenome1(s,S,N,L,g,SA,i1,strR,gInsert,compRes, P); + uint L1=compareSeqToGenome1(mapGen,s,S,N,L,i1,strR,gInsert,compRes, P); if (compRes<0) {// the sequence is smaller than the first index of the SA, cannot proceed L=L1; return 0; }; - uint L2=compareSeqToGenome1(s,S,N,L,g,SA,i2,strR,gInsert,compRes, P); + uint L2=compareSeqToGenome1(mapGen, s,S,N,L,i2,strR,gInsert,compRes, P); if (compRes>0) {//the sequence is bigger than the last SA index, return a huge number L=L2; @@ -397,7 +311,7 @@ uint suffixArraySearch1(char** s, uint S, uint N, char* g, uint64 gInsert, Packe uint i3=i1,L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+1>P.GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P.GstrandMask; + uint SAstr=mapGen.SA[iSA]; + bool dirG = (SAstr>>mapGen.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= mapGen.GstrandMask; iL4=-1; register uint saind=0; if (dirG) { - register uint128 g1=*( (uint128*) (G+SAstr) ); + register uint128 g1=*( (uint128*) (mapGen.G+SAstr) ); for (int ii=0; ii>(8*(15-ii))); @@ -461,10 +375,7 @@ uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters& P, }; - - - -int64 funCalcSAi(char* G, uint iL) { +int64 funCalcSAi(char *G, uint iL) { int64 ind1=0; for (uint iL1=0;iL1<=iL;iL1++) { uint g=(uint) G[iL1]; diff --git a/SuffixArrayFuns.h b/SuffixArrayFuns.h index 5a8fb3b..62f0ada 100644 --- a/SuffixArrayFuns.h +++ b/SuffixArrayFuns.h @@ -1,17 +1,18 @@ -#ifndef SUFFIXARRAYSFUNS_DEF -#define SUFFIXARRAYSFUNS_DEF +#ifndef CODE_SuffixArrayFuns +#define CODE_SuffixArrayFuns #include "IncludeDefine.h" #include "Parameters.h" #include "PackedArray.h" +#include "Genome.h" uint medianUint2(uint, uint); -uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& SA, uint iSA, bool dirR, bool& comparRes, Parameters& P); -uint findMultRange(uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, char* g, PackedArray& SA, bool dirR, uint S, Parameters& P); -uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters& P); -void writePacked( char* a, uint jj, uint x); -uint readPacked(char* a, uint jj); -uint suffixArraySearch1(char** s2, uint S, uint N, char* G, uint64 gInsert, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters& P); -int64 funCalcSAi(char* G, uint iL); -uint funCalcSAiFromSA(char* G, PackedArray& SA, uint iSA, int L, Parameters& P, int & iL4); +uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& comparRes, Parameters& P); +uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S, Parameters& P); +uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters& P); +void writePacked(Genome &mapGen, char* a, uint jj, uint x); +uint readPacked(Genome &mapGen, char* a, uint jj); +uint suffixArraySearch1(Genome &mapGen, char** s2, uint S, uint N, uint64 gInsert, bool dirR, uint i1, uint i2, uint L, Parameters& P); +int64 funCalcSAi(char *G, uint iL); +uint funCalcSAiFromSA(Genome &mapGen, uint iSA, int L, Parameters& P, int & iL4); #endif diff --git a/Transcript.h b/Transcript.h index 3d87528..b11ea17 100644 --- a/Transcript.h +++ b/Transcript.h @@ -1,9 +1,10 @@ -#ifndef TRANSCRIPT_DEF -#define TRANSCRIPT_DEF +#ifndef CODE_Transcript +#define CODE_Transcript #include "IncludeDefine.h" #include "Parameters.h" #include "Variation.h" +#include "Genome.h" class Transcript { public: @@ -66,11 +67,10 @@ class Transcript { void resetMapG(uint); // reset map to 0 for Lread bases void add(Transcript*); // add void alignScore(char **Read1, char *G, Parameters &P); - int variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters &P); + int variationAdjust(const Genome &mapGen, char *R, char **Read1, char *G, Parameters &P); string generateCigarP(); //generates CIGAR private: - }; diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index 975c2e8..6df72fe 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -1,8 +1,10 @@ #include "Transcript.h" #include "serviceFuns.cpp" -int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, Parameters &P) +int Transcript::variationAdjust(const Genome &mapGen, char *R, char **Read1, char *G, Parameters &P) { + Variation &Var=*mapGen.Var; + if (!Var.yes) {//no variation return 0; @@ -21,7 +23,7 @@ int Transcript::variationAdjust(Variation &Var, char *R, char **Read1, char *G, while (isnpVar.snp.loci[isnp]) {//these SNPs overlap the block snpInd.push_back(isnp); //record snp index - snpLoci.push_back(Var.snp.loci[isnp]-Var.P.chrStart[Chr]); + snpLoci.push_back(Var.snp.loci[isnp]-mapGen.chrStart[Chr]); char ntR=R[exons[ie][EX_R]+Var.snp.loci[isnp]-exons[ie][EX_G]];//nt of the read in the SNP position, already trnasformed to + genome strand uint8 igt; diff --git a/Variation.cpp b/Variation.cpp index 177dcba..f6cb27a 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -4,10 +4,8 @@ #include "TimeFunctions.h" #include "serviceFuns.cpp" -Variation::Variation (Parameters &Pin) : P(Pin) -{ - if (!P.var.yes) - { +Variation::Variation (Parameters &Pin, vector &chrStartIn, map &chrNameIndexIn) : P(Pin), chrStart(chrStartIn), chrNameIndex(chrNameIndexIn) { + if (!P.var.yes) { yes=false; return; }; @@ -22,12 +20,10 @@ Variation::Variation (Parameters &Pin) : P(Pin) }; -void scanVCF(ifstream& vcf, bool load, Parameters& P, SNP& snp) -{ +void scanVCF(ifstream& vcf, bool load, Parameters& P, SNP& snp, vector &chrStart, map &chrNameIndex) { snp.N=0; uint nlines=0; - while (true) - { + while (true) { string chr,id, ref, alt, dummy, sample; uint pos; nlines++; @@ -48,7 +44,7 @@ void scanVCF(ifstream& vcf, bool load, Parameters& P, SNP& snp) { altV.insert(altV.begin(),ref);//add ref to the beginning - if (P.chrNameIndex.count(chr)==0) {//chr not in Genome + if (chrNameIndex.count(chr)==0) {//chr not in Genome if (!load) { P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": chromosome '"<logStdOut << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" < &chrStart, map &chrNameIndex); //create transcriptome structure, load and initialize parameters void loadVCF(string fileIn); //load VCF file vector>> sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1); //calculates snp loci in sjdb sequences @@ -44,6 +44,9 @@ class Variation string vcfFile; string varOutFileName; ofstream varOutStream;//output file for variations + + vector &chrStart; //this needs to be replaced with a structure that contains basic genome variables + map &chrNameIndex; }; #endif diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 8b0247c..e877ca0 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -115,7 +115,7 @@ inline uint funG2strLocus (uint SAstr, uint const N, char const GstrandBit, uint void genomeGenerate(Parameters &P) { //check parameters - if (P.pGe.sjdbOverhang<=0 && (P.pGe.sjdbFileChrStartEnd.at(0)!="-" || P.pGe.sjdbGTFfile!="-")) + if (mapGen.sjdbOverhang<=0 && (P.pGe.sjdbFileChrStartEnd.at(0)!="-" || P.pGe.sjdbGTFfile!="-")) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; @@ -125,7 +125,7 @@ void genomeGenerate(Parameters &P) { } if (P.pGe.sjdbFileChrStartEnd.at(0)=="-" && P.pGe.sjdbGTFfile=="-") { - if (P.parArray.at(P.pGe.sjdbOverhang_par)->inputLevel>0 && P.pGe.sjdbOverhang>0) + if (P.parArray.at(mapGen.sjdbOverhang_par)->inputLevel>0 && mapGen.sjdbOverhang>0) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; @@ -133,7 +133,7 @@ void genomeGenerate(Parameters &P) { errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; - P.pGe.sjdbOverhang=0; + mapGen.sjdbOverhang=0; }; //time @@ -149,7 +149,7 @@ void genomeGenerate(Parameters &P) { char *G=NULL, *G1=NULL; uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to find all the sizes - P.chrBinFill(); + mapGen.chrBinFill(); uint L=10000;//maximum length of genome suffix uint nG1alloc=(nGenomeReal + L)*2; @@ -161,7 +161,7 @@ void genomeGenerate(Parameters &P) { genomeScanFastaFiles(P,G,true); //load the genome sequence uint N = nGenomeReal; - P.nGenome=N; + mapGen.nGenome=N; uint N2 = N*2; ofstream & chrN = ofstrOpen(P.pGe.gDir+"/chrName.txt",ERROR_OUT, P); @@ -169,13 +169,13 @@ void genomeGenerate(Parameters &P) { ofstream & chrL = ofstrOpen(P.pGe.gDir+"/chrLength.txt",ERROR_OUT, P); ofstream & chrNL = ofstrOpen(P.pGe.gDir+"/chrNameLength.txt",ERROR_OUT, P); - for (uint ii=0;iilogMain << "Number of SA indices: "<< P.nSA << "\n"<logMain << "Number of SA indices: "<< mapGen.nSA << "\n"<1) saChunkSize=min(saChunkSize,P.nSA/(P.runThreadN-1)); + //uint saChunkN=((mapGen.nSA/saChunkSize+1)/P.runThreadN+1)*P.runThreadN;//ensure saChunkN is divisible by P.runThreadN + //saChunkSize=mapGen.nSA/saChunkN+100000;//final chunk size + if (P.runThreadN>1) saChunkSize=min(saChunkSize,mapGen.nSA/(P.runThreadN-1)); - uint saChunkN=P.nSA/saChunkSize;//estimate + uint saChunkN=mapGen.nSA/saChunkSize;//estimate uint* indPrefStart = new uint [saChunkN*2]; //start and stop, *2 just in case uint* indPrefChunkCount = new uint [saChunkN*2]; indPrefStart[0]=0; @@ -308,7 +308,7 @@ void genomeGenerate(Parameters &P) { //read chunks and pack into full SA1 SA2.allocateArray(); SA1.pointArray(SA2.charArray + SA2.lengthByte-SA1.lengthByte); //SA1 is shifted to have space for junction insertion - uint N2bit= 1LLU << P.GstrandBit; + uint N2bit= 1LLU << mapGen.GstrandBit; uint packedInd=0; #define SA_CHUNK_BLOCK_SIZE 10000000 @@ -342,10 +342,10 @@ void genomeGenerate(Parameters &P) { #endif delete [] saIn; - if (packedInd != P.nSA ) {// + if (packedInd != mapGen.nSA ) {// ostringstream errOut; errOut << "EXITING because of FATAL problem while generating the suffix array\n"; - errOut << "The number of indices read from chunks = "<logMain, EXIT_CODE_INPUT_FILES, P); }; @@ -377,12 +377,12 @@ void genomeGenerate(Parameters &P) { // // ifstream oldSAin("./DirTrue/SA"); // oldSAin.seekg (0, ios::end); -// P.nSAbyte=(uint) oldSAin.tellg(); +// mapGen.nSAbyte=(uint) oldSAin.tellg(); // oldSAin.clear(); // oldSAin.seekg (0, ios::beg); // -// P.nSA=(P.nSAbyte*8)/(P.GstrandBit+1); -// SAold.defineBits(P.GstrandBit+1,P.nSA); +// mapGen.nSA=(mapGen.nSAbyte*8)/(mapGen.GstrandBit+1); +// SAold.defineBits(mapGen.GstrandBit+1,mapGen.nSA); // SAold.allocateArray(); // // oldSAin.read(SAold.charArray,SAold.lengthByte); @@ -405,7 +405,7 @@ void genomeGenerate(Parameters &P) { mainGenome.SApass1=SA2; mainGenome.SAi=SAip; P.sjdbInsert.outDir=P.pGe.gDir; - P.sjdbN=0;//no junctions are loaded yet + mapGen.sjdbN=0;//no junctions are loaded yet P.twoPass.pass2=false; Parameters P1; @@ -416,11 +416,11 @@ void genomeGenerate(Parameters &P) { //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk //this is - to avoid valgrind complaints. Note that SA2 is allocated with plenty of space to spare. SA1=mainGenome.SA; - SA1.writePacked(P.nSA,0); + SA1.writePacked(mapGen.nSA,0); }; P.pGe.gFileSizes.clear(); - P.pGe.gFileSizes.push_back(P.nGenome); + P.pGe.gFileSizes.push_back(mapGen.nGenome); P.pGe.gFileSizes.push_back(SA1.lengthByte); //write genome parameters file @@ -432,7 +432,7 @@ void genomeGenerate(Parameters &P) { *P.inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <logMain << isa*100/P.nSA << "% " << flush; + for (uint isa=0; isalogMain << isa*100/mapGen.nSA << "% " << flush; uint SAstr=SA1[isa]; - bool dirG = (SAstr>>P.GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P.GstrandMask; - if (!dirG) SAstr=P.nGenome-1-SAstr; + bool dirG = (SAstr>>mapGen.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= mapGen.GstrandMask; + if (!dirG) SAstr=mapGen.nGenome-1-SAstr; uint indPref=0; for (uint iL=0; iL < P.pGe.gSAindexNbases; iL++) {//calculate index @@ -68,7 +68,7 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters & P, PackedArray & SAi if (g1>3) {//if N, this suffix does not belong in SAi for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { - SAi1[P.genomeSAindexStart[iL1]+ind0[iL1]] |= P.SAiMarkNmaskC; + SAi1[mapGen.genomeSAindexStart[iL1]+ind0[iL1]] |= mapGen.SAiMarkNmaskC; }; break; }; @@ -78,9 +78,9 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters & P, PackedArray & SAi indPref += (uint) g1; if ( indPref > ind0[iL] || isa==0 ) {//new && good index, record it - SAi1[P.genomeSAindexStart[iL]+indPref]=isa; + SAi1[mapGen.genomeSAindexStart[iL]+indPref]=isa; for (uint ii=ind0[iL]+1; iilogMain, EXIT_CODE_INPUT_FILES, P); }; }; - };//for (uint isa=0; isa>P.GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P.GstrandMask; - if (!dirG) SAstr=P.nGenome-1-SAstr; + bool dirG = (SAstr>>mapGen.GstrandBit) == 0; //forward or reverse strand of the genome + SAstr &= mapGen.GstrandMask; + if (!dirG) SAstr=mapGen.nGenome-1-SAstr; uint indPref1=0; */ @@ -152,7 +152,7 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray if (g1>3) {//if N, this suffix does not belong in SAi for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { - SAi1.writePacked(P.genomeSAindexStart[iL1]+ind0[iL1],SAi[P.genomeSAindexStart[iL1]+ind0[iL1]] | P.SAiMarkNmaskC); + SAi1.writePacked(mapGen.genomeSAindexStart[iL1]+ind0[iL1],SAi[mapGen.genomeSAindexStart[iL1]+ind0[iL1]] | mapGen.SAiMarkNmaskC); }; } else //relying on the true code to break iL cycle { @@ -161,9 +161,9 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray indPref1 += (uint) g1; if ( indPref1 > ind0a[iL] || isa==0 ) {//new && good index, record it - SAi1.writePacked(P.genomeSAindexStart[iL]+indPref1, isa); + SAi1.writePacked(mapGen.genomeSAindexStart[iL]+indPref1, isa); for (uint ii=ind0a[iL]+1; ii=P.nSA) + if (isa>=mapGen.nSA) {//reached the end of the SA - indFull=funCalcSAiFromSA(G,SA,P.nSA-1,P.pGe.gSAindexNbases,P,iL4); + indFull=funCalcSAiFromSA(G,SA,mapGen.nSA-1,P.pGe.gSAindexNbases,P,iL4); if (indFull==indFullPrev && iL4==iL4prev) { - isa=P.nSA;//no more indices, the last one is equal to the previous + isa=mapGen.nSA;//no more indices, the last one is equal to the previous return; }; }; {//binary search uint i1=isa-isaStep; - uint i2=min(isa,P.nSA-1); + uint i2=min(isa,mapGen.nSA-1); while (i1+10) + if (!flagRun && mapGen.chrLength.size()>0) {//previous chr records exist - P.chrStart.pop_back();//remove last record, it will be recorded again - N = P.chrStart.back()+P.chrLength.back(); - P.chrLength.pop_back();//remove last record, it will be recorded again + mapGen.chrStart.pop_back();//remove last record, it will be recorded again + N = mapGen.chrStart.back()+mapGen.chrLength.back(); + mapGen.chrLength.pop_back();//remove last record, it will be recorded again }; ifstream fileIn; @@ -44,18 +44,18 @@ uint genomeScanFastaFiles (Parameters &P, char* G, bool flagRun) {//scans fasta lineInStream.ignore(1,' '); string chrName1; lineInStream >> chrName1; - P.chrName.push_back(chrName1); + mapGen.chrName.push_back(chrName1); }; - if (!flagRun && P.chrStart.size()>0) P.chrLength.push_back(N-P.chrStart.at(P.chrStart.size()-1)); //true length of the chr + if (!flagRun && mapGen.chrStart.size()>0) mapGen.chrLength.push_back(N-mapGen.chrStart.at(mapGen.chrStart.size()-1)); //true length of the chr if (N>0) {//pad the chromosomes to bins boudnaries N = ( (N+1)/P.genomeChrBinNbases+1 )*P.genomeChrBinNbases; }; if (!flagRun) { - P.chrStart.push_back(N); - P.inOut->logMain << P.pGe.gFastaFiles.at(ii)<<" : chr # " << P.chrStart.size()-1 << " \""<logMain << P.pGe.gFastaFiles.at(ii)<<" : chr # " << mapGen.chrStart.size()-1 << " \""<logMain << timeMonthDayTime(rawtime) << " Finished inserting SA indices" <0 ) +// if ( iSeq0 ) // {//index missing from the old genome // uint iSeq1=iSeq; // int64 ind1=funCalcSAi(seq1[0]+indArray[2*iSeq+1],iL); -// while (ind1 < (int64)(ii-P.genomeSAindexStart[iL]) && indArray[2*iSeq]= (int64) (ii-P.genomeSAindexStart[iL]) ) {//this belongs to the next index +// if (funCalcSAi(seq1[0]+indArray[2*iSeq+1],iL) >= (int64) (ii-mapGen.genomeSAindexStart[iL]) ) {//this belongs to the next index // break; // }; // ++iSeq; @@ -246,7 +246,7 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // SAi.writePacked(ii,iSA1+iSeq); // // for (uint ii0=ind0+1; ii03) {//this iSA contains N, need to mark the previous -// for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { +// for (uint iL1=iL; iL1 < P.mapGen.gSAindexNbases; iL1++) { // ind1+=3; -// int64 ind2=P.genomeSAindexStart[iL1]+ind1; +// int64 ind2=mapGen.genomeSAindexStart[iL1]+ind1; // for (; ind2>=0; ind2--) {//find previous index that is not absent -// if ( (SAi[ind2] & P.SAiMarkAbsentMaskC)==0 ) { +// if ( (SAi[ind2] & mapGen.SAiMarkAbsentMaskC)==0 ) { // break; // }; // }; -// SAi.writePacked(ind2,SAi[ind2] | P.SAiMarkNmaskC); +// SAi.writePacked(ind2,SAi[ind2] | mapGen.SAiMarkNmaskC); // ind1 <<= 2; // }; // break; @@ -285,12 +285,12 @@ uint insertSeqSA(PackedArray & SA, PackedArray & SA1, PackedArray & SAi, char * // PackedArray SAio=SAi; // SAio.allocateArray(); // ifstream oldSAiin("./DirTrue/SAindex"); -// oldSAiin.read(SAio.charArray,8*(P.pGe.gSAindexNbases+2));//skip first bytes +// oldSAiin.read(SAio.charArray,8*(P.mapGen.gSAindexNbases+2));//skip first bytes // oldSAiin.read(SAio.charArray,SAio.lengthByte); // oldSAiin.close(); // -// for (uint iL=0; iL < P.pGe.gSAindexNbases; iL++) { -// for (uint ii=P.genomeSAindexStart[iL];iilogMain << timeMonthDayTime(rawtime) << " Finished SAi" < +#include #include @@ -32,25 +32,25 @@ -uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file, add junctions to P.sjdb +uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen) {//load gtf file, add junctions to P.sjdb //returns number of added junctions - if (P.pGe.sjdbOverhang>0 && P.pGe.sjdbGTFfile!="-") { + if (mapGen.sjdbOverhang>0 && mapGen.pGe.sjdbGTFfile!="-") { time_t rawTime; time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logMain, EXIT_CODE_INPUT_FILES, P); }; - if (P.chrNameIndex.size()==0) + if (mapGen.chrNameIndex.size()==0) { - for (uint ii=0;ii> chr1 >> ddd2 >> featureType; - if (chr1.substr(0,1)!="#" && featureType==P.pGe.sjdbGTFfeatureExon) { + if (chr1.substr(0,1)!="#" && featureType==mapGen.pGe.sjdbGTFfeatureExon) { exonN++; }; sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line @@ -69,7 +69,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file if (exonN==0) { ostringstream errOut; - errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << P.pGe.sjdbGTFfile <<"\n"; + errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << mapGen.pGe.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; errOut << " Make sure the GTF file is unzipped.\n"; errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; @@ -90,12 +90,12 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file istringstream oneLineStream (oneLine); oneLineStream >> chr1 >> ddd2 >> featureType; - if (chr1.substr(0,1)!="#" && featureType==P.pGe.sjdbGTFfeatureExon) {//exonic line, process + if (chr1.substr(0,1)!="#" && featureType==mapGen.pGe.sjdbGTFfeatureExon) {//exonic line, process - if (P.pGe.sjdbGTFchrPrefix!="-") chr1=P.pGe.sjdbGTFchrPrefix + chr1; + if (mapGen.pGe.sjdbGTFchrPrefix!="-") chr1=mapGen.pGe.sjdbGTFchrPrefix + chr1; - if (P.chrNameIndex.count(chr1)==0) {//chr not in Genome - P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<": chromosome '"<logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": chromosome '"<logMain << oneLine <<"\n"<> attr1; - if (attr1==P.pGe.sjdbGTFtagExonParentTranscript) { + if (attr1==mapGen.pGe.sjdbGTFtagExonParentTranscript) { oneLineStream >> trID; trID.erase(remove(trID.begin(),trID.end(),'"'),trID.end()); trID.erase(remove(trID.begin(),trID.end(),';'),trID.end()); - } else if (attr1==P.pGe.sjdbGTFtagExonParentGene) { + } else if (attr1==mapGen.pGe.sjdbGTFtagExonParentGene) { oneLineStream >> gID; gID.erase(remove(gID.begin(),gID.end(),'"'),gID.end()); gID.erase(remove(gID.begin(),gID.end(),';'),gID.end()); }; }; if (trID=="") {//no transcript ID - P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<": no transcript_id for line:\n"; + P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": no transcript_id for line:\n"; P.inOut->logMain << oneLine <<"\n"< (trID,(uint) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value @@ -140,7 +140,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file }; if (gID=="") {//no gene ID - P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<": no gene_id for line:\n"; + P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": no gene_id for line:\n"; P.inOut->logMain << oneLine <<"\n"< (gID,(uint) geneIDnumber.size()));//insert new element if necessary with a $ @@ -148,8 +148,8 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file }; exonLoci[GTF_exonTrID(exonN)]=transcriptIDnumber[trID]; - exonLoci[GTF_exonStart(exonN)]=ex1+P.chrStart[P.chrNameIndex[chr1]]-1; - exonLoci[GTF_exonEnd(exonN)]=ex2+P.chrStart[P.chrNameIndex[chr1]]-1; + exonLoci[GTF_exonStart(exonN)]=ex1+mapGen.chrStart[mapGen.chrNameIndex[chr1]]-1; + exonLoci[GTF_exonEnd(exonN)]=ex2+mapGen.chrStart[mapGen.chrNameIndex[chr1]]-1; exonLoci[GTF_exonGeID(exonN)]=geneIDnumber[gID]; ++exonN; @@ -159,7 +159,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file if (exonN==0) { ostringstream errOut; - errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << P.pGe.sjdbGTFfile <<"\n"; + errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << mapGen.pGe.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; @@ -254,11 +254,11 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file uint sjN=0; for (uint exI=1; exI> P.pGe.gChrBinNbits]; + uint chr1=mapGen.chrBin[exonLoci[GTF_exonStart(exI)] >> mapGen.pGe.gChrBinNbits]; if ( exonLoci[GTF_exonStart(exI)]<=exonLoci[GTF_exonEnd(exI-1)]+1 ) { - P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<": overlapping or touching exons:\n"; - P.inOut->logMain << P.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-P.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-P.chrStart[chr1] <<"\n"; - P.inOut->logMain << P.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-P.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-P.chrStart[chr1] <<"\n"; + P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": overlapping or touching exons:\n"; + P.inOut->logMain << mapGen.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-mapGen.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-mapGen.chrStart[chr1] <<"\n"; + P.inOut->logMain << mapGen.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-mapGen.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-mapGen.chrStart[chr1] <<"\n"; } else { sjLoci[sjN*3]=exonLoci[GTF_exonEnd(exI-1)]+1; sjLoci[sjN*3+1]=exonLoci[GTF_exonStart(exI)]-1; @@ -276,10 +276,10 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file uint sjdbN1=sjdbLoci.chr.size(); for (uint ii=0;ii> P.pGe.gChrBinNbits]; - sjdbLoci.chr.push_back(P.chrName[chr1]); - sjdbLoci.start.push_back(sjLoci[ii*3]+1-P.chrStart[chr1]); - sjdbLoci.end.push_back(sjLoci[ii*3+1]+1-P.chrStart[chr1]); + uint chr1=mapGen.chrBin[sjLoci[ii*3] >> mapGen.pGe.gChrBinNbits]; + sjdbLoci.chr.push_back(mapGen.chrName[chr1]); + sjdbLoci.start.push_back(sjLoci[ii*3]+1-mapGen.chrStart[chr1]); + sjdbLoci.end.push_back(sjLoci[ii*3+1]+1-mapGen.chrStart[chr1]); sjdbLoci.str.push_back(strandChar[sjLoci[ii*3+2]]); }; }; @@ -290,7 +290,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut) {//load gtf file }; sjdbList.close(); - P.inOut->logMain << "Processing pGe.sjdbGTFfile=" << P.pGe.sjdbGTFfile <<", found:\n"; + P.inOut->logMain << "Processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<", found:\n"; P.inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <> Log.timing.out"); - Junction oneSJ; + Junction oneSJ(RAchunk[0]->mapGen); char** sjChunks = new char* [P.runThreadN+1]; #define OUTSJ_limitScale 5 - OutSJ allSJ (P.limitOutSJcollapsed*OUTSJ_limitScale,P); + OutSJ allSJ (P.limitOutSJcollapsed*OUTSJ_limitScale,P,RAchunk[0]->mapGen); if (P.outFilterBySJoutStage!=1) {//chunkOutSJ for (int ic=0;icmapGen.sjdbOverhang) {//align crosses the junctions + isj=(a1-mapGen.sjGstart)/mapGen.sjdbLength; + aLengthD=mapGen.sjdbOverhang-sj1; + aLengthA=aLength-aLengthD; + a1D=mapGen.sjDstart[isj]+sj1; + a1A=mapGen.sjAstart[isj]; + return true; + } else { + return false; + }; +}; diff --git a/sjSplitAlign.cpp b/sjSplitAlign.cpp deleted file mode 100644 index f621d33..0000000 --- a/sjSplitAlign.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "IncludeDefine.h" -#include "Parameters.h" - -bool sjAlignSplit(uint a1,uint aLength,Parameters& P, uint &a1D, uint &aLengthD, uint &a1A, uint &aLengthA, uint &isj) { - uint sj1=(a1-P.sjGstart)%P.sjdbLength; - if (sj1P.pGe.sjdbOverhang) {//align crosses the junctions - isj=(a1-P.sjGstart)/P.sjdbLength; - aLengthD=P.pGe.sjdbOverhang-sj1; - aLengthA=aLength-aLengthD; - a1D=P.sjDstart[isj]+sj1; - a1A=P.sjAstart[isj]; - return true; - } else { - return false; - }; -}; diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 5b04046..cd9a72e 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -13,11 +13,11 @@ #include "funCompareUintAndSuffixes.h" -void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { +void sjdbBuildIndex (Parameters &P, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi, Genome &mapGen, Genome &mapGen1) { #define SPACER_CHAR GENOME_spacingChar - if (P.sjdbN==0) + if (mapGen.sjdbN==0) {//no junctions to insert return; }; @@ -27,10 +27,10 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr P.inOut->logMain << timeMonthDayTime(rawtime) << " ..... inserting junctions into the genome indices" <logStdOut << timeMonthDayTime(rawtime) << " ..... inserting junctions into the genome indices" < than any genome char + Gsj[ii*mapGen.sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char }; Gsj[nGsj*2]=SPACER_CHAR;//mark the end of the text @@ -41,23 +41,23 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr char* G1c=new char[nGsj*2+1]; complementSeqNumbers(Gsj, G1c, nGsj*2+1); - uint32* oldSJind=new uint32[P1.sjdbN]; + uint32* oldSJind=new uint32[mapGen1.sjdbN]; -// uint nIndicesSJ1=P.pGe.sjdbOverhang; - uint nIndicesSJ1=P.sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome +// uint nIndicesSJ1=mapGen.sjdbOverhang; + uint nIndicesSJ1=mapGen.sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome - uint64* indArray=new uint64[2*P.sjdbN*(nIndicesSJ1+1)*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndices per junction * 2 for reverse compl + uint64* indArray=new uint64[2*mapGen.sjdbN*(nIndicesSJ1+1)*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndices per junction * 2 for reverse compl uint64 sjNew=0; #pragma omp parallel num_threads(P.runThreadN) #pragma omp for schedule (dynamic,1000) reduction(+:sjNew) - for (uint isj=0; isj<2*P.sjdbN; isj++) {//find insertion points for each of the sequences + for (uint isj=0; isj<2*mapGen.sjdbN; isj++) {//find insertion points for each of the sequences char** seq1=new char*[2]; - seq1[0]=Gsj+isj*P.sjdbLength; - seq1[1]=G1c+isj*P.sjdbLength; + seq1[0]=Gsj+isj*mapGen.sjdbLength; + seq1[1]=G1c+isj*mapGen.sjdbLength; - uint isj1=isj=0 || seq1[0][istart]>3) {//no index for already included junctions, or suffices starting with N indArray[ind1]=-1; } else { - //indArray[ind1] = suffixArraySearch(seq1, istart, P.sjdbLength-istart1, G, SA, true, 0, P.nSA-1, 0, P) ; - indArray[ind1] = suffixArraySearch1(seq1, istart, 10000, G, -1LLU, SA, true, 0, P.nSA-1, 0, P) ; + //indArray[ind1] = suffixArraySearch(seq1, istart, mapGen.sjdbLength-istart1, G, SA, true, 0, mapGen.nSA-1, 0, P) ; + indArray[ind1] = suffixArraySearch1(mapGen, seq1, istart, 10000, -1LLU, true, 0, mapGen.nSA-1, 0, P) ; //-1LLU results in suffixes for the new junctions to be always included in SA *after* the suffixes of the old junctions //for identical suffixes, this may result in unstable ordering - indArray[ind1+1] = isj*P.sjdbLength+istart; + indArray[ind1+1] = isj*mapGen.sjdbLength+istart; }; }; }; sjNew = sjNew/2;//novel junctions were double counted on two strands time ( &rawtime ); - P.inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search: number of new junctions=" << sjNew <<", old junctions="<logMain << timeMonthDayTime(rawtime) << " Finished SA search: number of new junctions=" << sjNew <<", old junctions="<logMain, EXIT_CODE_GENOME_FILES, P); }; - SA2.defineBits(P.GstrandBit+1,P.nSA); - uint nGsjNew=sjNew*P.sjdbLength; //this is the actual number of bytes added to the genome, while nGsj is the total size of all junctions + SA2.defineBits(mapGen.GstrandBit+1,mapGen.nSA); + uint nGsjNew=sjNew*mapGen.sjdbLength; //this is the actual number of bytes added to the genome, while nGsj is the total size of all junctions - uint N2bit= 1LLU << P.GstrandBit; + uint N2bit= 1LLU << mapGen.GstrandBit; uint strandMask=~N2bit; /*testing PackedArray SAo; - SAo.defineBits(P.GstrandBit+1,P.nSA); + SAo.defineBits(mapGen.GstrandBit+1,mapGen.nSA); SAo.allocateArray(); ifstream oldSAin("./DirTrue/SA"); oldSAin.read(SAo.charArray,SAo.lengthByte); @@ -135,11 +135,11 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr */ uint isj=0, isa2=0; - for (uint isa=0;isa0 ) {//- strand - uint ind1s = P1.nGenome - (ind1 & strandMask); - if (ind1s>P.chrStart[P.nChrReal]) + uint ind1s = mapGen1.nGenome - (ind1 & strandMask); + if (ind1s>mapGen.chrStart[mapGen.nChrReal]) {//this index was an old sj, may need to shift it - uint sj1 = (ind1s-P.chrStart[P.nChrReal])/P.sjdbLength;//old junction index - ind1s += (oldSJind[sj1]-sj1)*P.sjdbLength; - ind1 = (P.nGenome - ind1s) | N2bit; + uint sj1 = (ind1s-mapGen.chrStart[mapGen.nChrReal])/mapGen.sjdbLength;//old junction index + ind1s += (oldSJind[sj1]-sj1)*mapGen.sjdbLength; + ind1 = (mapGen.nGenome - ind1s) | N2bit; } else { ind1+=nGsjNew; //reverse complementary indices are all shifted by the length of junctions }; } else {//+ strand - if (ind1>P.chrStart[P.nChrReal]) + if (ind1>mapGen.chrStart[mapGen.nChrReal]) {//this index was an old sj, may need to shift it - uint sj1 = (ind1-P.chrStart[P.nChrReal])/P.sjdbLength;//old junction index - ind1 += (oldSJind[sj1]-sj1)*P.sjdbLength; + uint sj1 = (ind1-mapGen.chrStart[mapGen.nChrReal])/mapGen.sjdbLength;//old junction index + ind1 += (oldSJind[sj1]-sj1)*mapGen.sjdbLength; }; }; @@ -188,7 +188,7 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr for (;isjlogMain << timeMonthDayTime(rawtime) << " Finished inserting junction indices" <0 ) + if ( iSJ0 ) {//index missing from the old genome uint iSJ1=iSJ; int64 ind1=funCalcSAi(Gsj+indArray[2*iSJ+1],iL); - while (ind1 < (int64)(ii-P.genomeSAindexStart[iL]) && indArray[2*iSJ]-1= (int64) (ii-P.genomeSAindexStart[iL]) ) {//this belongs to the next index + if (funCalcSAi(Gsj+indArray[2*iSJ+1],iL) >= (int64) (ii-mapGen.genomeSAindexStart[iL]) ) {//this belongs to the next index break; }; ++iSJ; @@ -247,7 +247,7 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr SAi.writePacked(ii,iSA1+iSJ); for (uint ii0=ind0+1; ii03) {//this iSA contains N, need to mark the previous - for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { + for (uint iL1=iL; iL1 < mapGen.pGe.gSAindexNbases; iL1++) { ind1+=3; - int64 ind2=P.genomeSAindexStart[iL1]+ind1; + int64 ind2=mapGen.genomeSAindexStart[iL1]+ind1; for (; ind2>=0; ind2--) {//find previous index that is not absent - if ( (SAi[ind2] & P.SAiMarkAbsentMaskC)==0 ) { + if ( (SAi[ind2] & mapGen.SAiMarkAbsentMaskC)==0 ) { break; }; }; - SAi.writePacked(ind2,SAi[ind2] | P.SAiMarkNmaskC); + SAi.writePacked(ind2,SAi[ind2] | mapGen.SAiMarkNmaskC); ind1 <<= 2; }; break; @@ -282,11 +282,11 @@ void sjdbBuildIndex (Parameters &P, Parameters &P1, char *Gsj, char *G, PackedAr P.inOut->logMain << timeMonthDayTime(rawtime) << " Finished SAi" <0 && sjdbLoci.chr.size()==0) + if (mapGen.sjdbN>0 && sjdbLoci.chr.size()==0) {//load from the saved genome, only if the loading did not happen already (if sjdb insertion happens at the 1st pass, sjdbLoci will be populated ifstream & sjdbStreamIn = ifstrOpen(P.pGe.gDir+"/sjdbList.out.tab", ERROR_OUT, "SOLUTION: re-generate the genome in pGe.gDir=" + P.pGe.gDir, P); sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); @@ -48,27 +48,27 @@ void sjdbInsertJunctions(Parameters & P, Parameters & P1, Genome & genome, SjdbC if (P.pGe.sjdbGTFfile!="-") {//load from GTF - loadGTF(sjdbLoci, P, P.sjdbInsert.outDir); + loadGTF(sjdbLoci, P, P.sjdbInsert.outDir, mapGen); sjdbLoci.priority.resize(sjdbLoci.chr.size(),20); time ( &rawtime ); P.inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P.pGe.sjdbGTFfile<<": "<logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <P.limitSjdbInsertNsj) + if (mapGen.sjdbN>P.limitSjdbInsertNsj) { ostringstream errOut; - errOut << "Fatal LIMIT error: the number of junctions to be inserted on the fly ="<logMain, EXIT_CODE_INPUT_FILES, P); }; //insert junctions into the genome and SA and SAi - sjdbBuildIndex (P, P1, Gsj, genome.G, genome.SA, (P.twoPass.pass2 ? genome.SApass2 : genome.SApass1), genome.SAi); + sjdbBuildIndex (P, Gsj, mapGen.G, mapGen.SA, (P.twoPass.pass2 ? mapGen.SApass2 : mapGen.SApass1), mapGen.SAi, mapGen, mapGen1); delete [] Gsj; //junction sequences have been added to G time ( &rawtime ); P.inOut->logMain << timeMonthDayTime(rawtime) << " ..... finished inserting junctions into genome" <=P.nChrReal) { + if (iChr>=mapGen.nChrReal) { ostringstream errOut; errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; errOut << "SOLUTION: fix your file(s) --sjdbFileChrStartEnd or --sjdbGTFfile, offending junciton:" <logMain << "WARNING: long repeat for junction # " << ii+1 <<" : " \ - << sjdbLoci.chr.at(ii) <<" "<0 && P.sjdbStart[nsj1-1]==sjdbSort[ii*3] && P.sjdbEnd[nsj1-1]==sjdbSort[ii*3+1] ) {//same loci on opposite strands + if ( nsj1>0 && mapGen.sjdbStart[nsj1-1]==sjdbSort[ii*3] && mapGen.sjdbEnd[nsj1-1]==sjdbSort[ii*3+1] ) {//same loci on opposite strands uint isj0=sjdbSort[(ii-1)*3+2]; if (sjdbLoci.priority.at(isj)sjdbLoci.priority.at(isj0)) {//new junction has higher priority nsj1--;//replace the old junction with the new one - } else if (P.sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') + } else if (mapGen.sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') {//new junction strand is not defined continue; - } else if (P.sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') + } else if (mapGen.sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') {//old junction strand is not defined nsj1--; //replace old with new - } else if (P.sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) + } else if (mapGen.sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) {//both are non-canonical (on opposite strand) - P.sjdbStrand[nsj1-1]=0;//do not record new junction, keep old with undefined strand + mapGen.sjdbStrand[nsj1-1]=0;//do not record new junction, keep old with undefined strand continue; - } else if ( (P.sjdbMotif[nsj1-1]>0 && sjdbMotif[isj]==0) ||(P.sjdbMotif[nsj1-1]%2 == (2-P.sjdbStrand[nsj1-1])) ){//both strands defined, both junctions canonical + } else if ( (mapGen.sjdbMotif[nsj1-1]>0 && sjdbMotif[isj]==0) ||(mapGen.sjdbMotif[nsj1-1]%2 == (2-mapGen.sjdbStrand[nsj1-1])) ){//both strands defined, both junctions canonical //old junction is canonical, new is not, OR old junction is on correct strand continue; } else { @@ -171,52 +171,52 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string o }; //record junction - P.sjdbStart[nsj1]=sjdbSort[ii*3]; - P.sjdbEnd[nsj1]=sjdbSort[ii*3+1]; - P.sjdbMotif[nsj1]=sjdbMotif[isj]; - P.sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; - P.sjdbShiftRight[nsj1]=sjdbShiftRight[isj]; + mapGen.sjdbStart[nsj1]=sjdbSort[ii*3]; + mapGen.sjdbEnd[nsj1]=sjdbSort[ii*3+1]; + mapGen.sjdbMotif[nsj1]=sjdbMotif[isj]; + mapGen.sjdbShiftLeft[nsj1]=sjdbShiftLeft[isj]; + mapGen.sjdbShiftRight[nsj1]=sjdbShiftRight[isj]; if (sjdbLoci.str.at(isj)=='+') { - P.sjdbStrand[nsj1]=1; + mapGen.sjdbStrand[nsj1]=1; } else if (sjdbLoci.str.at(isj)=='-') { - P.sjdbStrand[nsj1]=2; + mapGen.sjdbStrand[nsj1]=2; } else { - if (P.sjdbMotif[nsj1]==0) {//strand un-defined - P.sjdbStrand[nsj1]=0; + if (mapGen.sjdbMotif[nsj1]==0) {//strand un-defined + mapGen.sjdbStrand[nsj1]=0; } else { - P.sjdbStrand[nsj1]=2-P.sjdbMotif[nsj1]%2; + mapGen.sjdbStrand[nsj1]=2-mapGen.sjdbMotif[nsj1]%2; }; }; nsj1++; }; - P.sjdbN=nsj1; - P.sjDstart = new uint [P.sjdbN]; - P.sjAstart = new uint [P.sjdbN]; + mapGen.sjdbN=nsj1; + mapGen.sjDstart = new uint [mapGen.sjdbN]; + mapGen.sjAstart = new uint [mapGen.sjdbN]; ofstream sjdbInfo((outDir+"/sjdbInfo.txt").c_str()); ofstream sjdbList ((outDir+"/sjdbList.out.tab").c_str()); char strandChar[3]={'.','+','-'}; //first line is some general useful information - sjdbInfo << P.sjdbN <<"\t"<< P.pGe.sjdbOverhang <<"\n"; + sjdbInfo << mapGen.sjdbN <<"\t"<< mapGen.sjdbOverhang <<"\n"; uint sjGstart=0; - for (uint ii=0;ii> P.pGe.gChrBinNbits]; - sjdbList << P.chrName[chr1]<< "\t" << P.sjdbStart[ii]-P.chrStart[chr1] + 1 + (P.sjdbMotif[ii]>0 ? 0:P.sjdbShiftLeft[ii]) \ - << "\t"<< P.sjdbEnd[ii]-P.chrStart[chr1] + 1 + (P.sjdbMotif[ii]>0 ? 0:P.sjdbShiftLeft[ii]) \ - << "\t"<< strandChar[P.sjdbStrand[ii]]<<"\n"; + sjdbInfo << mapGen.sjdbStart[ii] <<"\t"<< mapGen.sjdbEnd[ii] <<"\t"<<(int) mapGen.sjdbMotif[ii] <<"\t"<<(int) mapGen.sjdbShiftLeft[ii] <<"\t"<<(int) mapGen.sjdbShiftRight[ii]<<"\t"<<(int) mapGen.sjdbStrand[ii] <<"\n"; + uint chr1=mapGen.chrBin[ mapGen.sjdbStart[ii] >> P.pGe.gChrBinNbits]; + sjdbList << mapGen.chrName[chr1]<< "\t" << mapGen.sjdbStart[ii]-mapGen.chrStart[chr1] + 1 + (mapGen.sjdbMotif[ii]>0 ? 0:mapGen.sjdbShiftLeft[ii]) \ + << "\t"<< mapGen.sjdbEnd[ii]-mapGen.chrStart[chr1] + 1 + (mapGen.sjdbMotif[ii]>0 ? 0:mapGen.sjdbShiftLeft[ii]) \ + << "\t"<< strandChar[mapGen.sjdbStrand[ii]]<<"\n"; }; sjdbInfo.close(); sjdbList.close(); diff --git a/sjdbPrepare.h b/sjdbPrepare.h index 42b0030..51d8030 100644 --- a/sjdbPrepare.h +++ b/sjdbPrepare.h @@ -5,6 +5,6 @@ #include "Parameters.h" #include "Genome.h" -void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string outDir, Genome &G, char *Gsj); +void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string outDir, Genome &mapGen, char *Gsj); #endif \ No newline at end of file diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index c501a9a..d387600 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -5,26 +5,27 @@ #include "binarySearch2.h" // #include "stitchGapIndel.cpp" -intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, char* Q, char* G, Transcript *trA, const uint outFilterMismatchNmaxTotal) { +intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, char* Q, Genome &mapGen, Transcript *trA, const uint outFilterMismatchNmaxTotal) { //stitch together A and B, extend in the gap, returns max score //Q is assumed modified already + char *G=mapGen.G; int Score=0; // int score2; if (sjAB!=((uint) -1) && trA->exons[trA->nExons-1][EX_sjA]==sjAB \ && trA->exons[trA->nExons-1][EX_iFrag]==iFragB && rBstart==rAend+1 && gAend+1exons[trA->nExons-1][EX_L]<=P.sjdbShiftLeft[sjAB]) ) { + if (mapGen.sjdbMotif[sjAB]==0 && (L<=mapGen.sjdbShiftRight[sjAB] || trA->exons[trA->nExons-1][EX_L]<=mapGen.sjdbShiftLeft[sjAB]) ) { return -1000006; //too large repeats around non-canonical junction }; trA->exons[trA->nExons][EX_L] = L; //new exon length trA->exons[trA->nExons][EX_R] = rBstart; //new exon r-start trA->exons[trA->nExons][EX_G] = gBstart; //new exon g-start - trA->canonSJ[trA->nExons-1]=P.sjdbMotif[sjAB]; //mark sj-db - trA->shiftSJ[trA->nExons-1][0]=P.sjdbShiftLeft[sjAB]; - trA->shiftSJ[trA->nExons-1][1]=P.sjdbShiftRight[sjAB]; + trA->canonSJ[trA->nExons-1]=mapGen.sjdbMotif[sjAB]; //mark sj-db + trA->shiftSJ[trA->nExons-1][0]=mapGen.sjdbShiftLeft[sjAB]; + trA->shiftSJ[trA->nExons-1][1]=mapGen.sjdbShiftRight[sjAB]; trA->sjAnnot[trA->nExons-1]=1; - trA->sjStr[trA->nExons-1]=P.sjdbStrand[sjAB];; + trA->sjStr[trA->nExons-1]=mapGen.sjdbStrand[sjAB];; trA->nExons++; trA->nMatch+=L; for (uint ii=rBstart;ii0) {//check if the junction is annotated + if (mapGen.sjdbN>0) {//check if the junction is annotated uint jS=gAend+jR+1, jE=gBstart1+jR;//intron start/end - int sjdbInd=binarySearch2(jS,jE,P.sjdbStart,P.sjdbEnd,P.sjdbN); + int sjdbInd=binarySearch2(jS,jE,mapGen.sjdbStart,mapGen.sjdbEnd,mapGen.sjdbN); if (sjdbInd<0) { if (Del>=P.alignIntronMin) { Score += P.scoreGap + jPen; //genome gap penalty + non-canonical penalty @@ -212,17 +213,17 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst // trA->shiftSJ[trA->nExons-1][1]=jjR; }; } else {//annotated - jCan=P.sjdbMotif[sjdbInd]; - if (P.sjdbMotif[sjdbInd]==0) {//shift to match annotations - if (L<=P.sjdbShiftLeft[sjdbInd] || trA->exons[trA->nExons-1][EX_L]<=P.sjdbShiftLeft[sjdbInd]) { + jCan=mapGen.sjdbMotif[sjdbInd]; + if (mapGen.sjdbMotif[sjdbInd]==0) {//shift to match annotations + if (L<=mapGen.sjdbShiftLeft[sjdbInd] || trA->exons[trA->nExons-1][EX_L]<=mapGen.sjdbShiftLeft[sjdbInd]) { return -1000006; }; - jR += (int) P.sjdbShiftLeft[sjdbInd]; - jjL=P.sjdbShiftLeft[sjdbInd]; - jjR=P.sjdbShiftRight[sjdbInd]; + jR += (int) mapGen.sjdbShiftLeft[sjdbInd]; + jjL=mapGen.sjdbShiftLeft[sjdbInd]; + jjR=mapGen.sjdbShiftRight[sjdbInd]; }; trA->sjAnnot[trA->nExons-1]=1; - trA->sjStr[trA->nExons-1]=P.sjdbStrand[sjdbInd]; + trA->sjStr[trA->nExons-1]=mapGen.sjdbStrand[sjdbInd]; Score += P.pGe.sjdbScore; }; } else {//no annotation diff --git a/stitchAlignToTranscript.h b/stitchAlignToTranscript.h index 71ec421..cea6b1f 100644 --- a/stitchAlignToTranscript.h +++ b/stitchAlignToTranscript.h @@ -1,6 +1,7 @@ #include "IncludeDefine.h" #include "Parameters.h" #include "Transcript.h" +#include "Genome.h" -intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, char* Q, char* G, Transcript *trA, uint outFilterMismatchNmaxTotal); +intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, char* Q, Genome &mapGen, Transcript *trA, uint outFilterMismatchNmaxTotal); diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 43222a7..d0a99db 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -6,7 +6,7 @@ #include "binarySearch2.h" void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ - uint Lread, uiWA* WA, char* R, char* Q, char* G, \ + uint Lread, uiWA* WA, char* R, char* Q, Genome &mapGen, \ Parameters& P, Transcript** wTr, uint* nWinTr, ReadAlign *RA) { //recursively stitch aligns for one gene //*nWinTr - number of transcripts for the current window @@ -41,7 +41,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if (trA.rStart>0) {// if transcript does not start at base, extend to the read start trAstep1.reset(); uint imate=trA.exons[0][EX_iFrag]; - if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, trA.rStart, tR2-trA.rStart+1, \ + if ( extendAlign(R, Q, mapGen.G, trA.rStart-1, trA.gStart-1, -1, -1, trA.rStart, tR2-trA.rStart+1, \ trA.nMM, RA->outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[imate][(int)(trA.Str!=imate)], &trAstep1) ) {//if could extend @@ -62,7 +62,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( tR2outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[imate][(int)(imate==trA.Str)], &trAstep1) ) {//if could extend @@ -81,8 +81,8 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; if (P.alignSoftClipAtReferenceEnds=="No" && \ - ( (trA.exons[trA.nExons-1][EX_G] + Lread-trA.exons[trA.nExons-1][EX_R]) > (P.chrStart[trA.Chr]+P.chrLength[trA.Chr]) || \ - trA.exons[0][EX_G]<(P.chrStart[trA.Chr]+trA.exons[0][EX_R]) ) ) { + ( (trA.exons[trA.nExons-1][EX_G] + Lread-trA.exons[trA.nExons-1][EX_R]) > (mapGen.chrStart[trA.Chr]+mapGen.chrLength[trA.Chr]) || \ + trA.exons[0][EX_G]<(mapGen.chrStart[trA.Chr]+trA.exons[0][EX_R]) ) ) { return; //no soft clipping past the ends of the chromosome }; @@ -235,7 +235,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; //Variation - Score+=trA.variationAdjust(*RA->mapGen.Var, R, RA->Read1, G, P); + Score+=trA.variationAdjust(mapGen, R, RA->Read1, mapGen.G, P); trA.maxScore=Score; @@ -310,7 +310,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui Transcript trAi=trA; //trA copy with this align included, to be used in the 1st recursive call of StitchAlign if (trA.nExons>0) {//stitch, a transcript has already been originated - dScore=stitchAlignToTranscript(tR2, tG2, WA[iA][WA_rStart], WA[iA][WA_gStart], WA[iA][WA_Length], WA[iA][WA_iFrag], WA[iA][WA_sjA], P, R, Q, G, &trAi, RA->outFilterMismatchNmaxTotal); + dScore=stitchAlignToTranscript(tR2, tG2, WA[iA][WA_rStart], WA[iA][WA_gStart], WA[iA][WA_Length], WA[iA][WA_iFrag], WA[iA][WA_sjA], P, R, Q, mapGen, &trAi, RA->outFilterMismatchNmaxTotal); //TODO check if the new stitching creates too many MM, quit this transcript if so } else { //this is the first align in the transcript @@ -337,7 +337,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( WA[iA][WA_Nrep]==1 ) trAi.nUnique++; //unique piece if ( WA[iA][WA_Anchor]>0 ) trAi.nAnchor++; //anchor piece piece - stitchWindowAligns(iA+1, nA, Score+dScore, WAincl, WA[iA][WA_rStart]+WA[iA][WA_Length]-1, WA[iA][WA_gStart]+WA[iA][WA_Length]-1, trAi, Lread, WA, R, Q, G, P, wTr, nWinTr, RA); + stitchWindowAligns(iA+1, nA, Score+dScore, WAincl, WA[iA][WA_rStart]+WA[iA][WA_Length]-1, WA[iA][WA_gStart]+WA[iA][WA_Length]-1, trAi, Lread, WA, R, Q, mapGen, P, wTr, nWinTr, RA); } else { }; @@ -345,7 +345,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //also run a transcript w/o including this align if (WA[iA][WA_Anchor]!=2 || trA.nAnchor>0) {//only allow exclusion if this is not the last anchor, or other anchors have been used WAincl[iA]=false; - stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, G, P, wTr, nWinTr, RA); + stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, mapGen.G, P, wTr, nWinTr, RA); }; return; }; From 507df1d5d7bbac95e090975d305df5052aafe1ba Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 15 Sep 2017 17:49:52 -0400 Subject: [PATCH 298/536] Compiles but seg-faults. --- Genome.cpp | 2 +- Genome.h | 17 +-- ...eGenerate.cpp => Genome_genomeGenerate.cpp | 135 +++++++++--------- Genome_insertSequences.cpp | 2 +- Makefile | 2 +- ReadAlign_stitchPieces.cpp | 2 +- STAR.cpp | 3 +- genomeParametersWrite.cpp | 30 ++-- genomeParametersWrite.h | 4 +- genomeSAindex.cpp | 56 ++++---- genomeSAindex.h | 7 +- genomeScanFastaFiles.cpp | 18 +-- genomeScanFastaFiles.h | 3 +- insertSeqSA.cpp | 2 +- sjdbInsertJunctions.cpp | 2 +- stitchWindowAligns.cpp | 2 +- stitchWindowAligns.h | 2 +- 17 files changed, 146 insertions(+), 143 deletions(-) rename genomeGenerate.cpp => Genome_genomeGenerate.cpp (76%) diff --git a/Genome.cpp b/Genome.cpp index 60b0e62..1dc8d8a 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -313,7 +313,7 @@ void Genome::genomeLoad(){//allocate and load Genome {//will insert sequences in the genome, now estimate the extra size uint oldlen=chrStart.back();//record the old length genomeInsertChrIndFirst=nChrReal; - genomeInsertL=genomeScanFastaFiles(P,G,false)-oldlen; + genomeInsertL=genomeScanFastaFiles(P, G, false, *this)-oldlen; }; try { diff --git a/Genome.h b/Genome.h index 4841127..e0dce3c 100644 --- a/Genome.h +++ b/Genome.h @@ -55,15 +55,16 @@ class Genome { void insertSequences(); - + void genomeGenerate(); + private: - Parameters &P; - key_t shmKey; - char *shmStart; - char *G1; //pointer -200 of G - SharedMemory * sharedMemory; - uint OpenStream(string name, ifstream & stream, uint size); - void HandleSharedMemoryException(const SharedMemoryException & exc, uint64 shmSize); + Parameters &P; + key_t shmKey; + char *shmStart; + char *G1; //pointer -200 of G + SharedMemory * sharedMemory; + uint OpenStream(string name, ifstream & stream, uint size); + void HandleSharedMemoryException(const SharedMemoryException & exc, uint64 shmSize); }; #endif diff --git a/genomeGenerate.cpp b/Genome_genomeGenerate.cpp similarity index 76% rename from genomeGenerate.cpp rename to Genome_genomeGenerate.cpp index e877ca0..7cd36da 100644 --- a/genomeGenerate.cpp +++ b/Genome_genomeGenerate.cpp @@ -112,10 +112,10 @@ inline uint funG2strLocus (uint SAstr, uint const N, char const GstrandBit, uint return SAstr; }; -void genomeGenerate(Parameters &P) { +void Genome::genomeGenerate() { //check parameters - if (mapGen.sjdbOverhang<=0 && (P.pGe.sjdbFileChrStartEnd.at(0)!="-" || P.pGe.sjdbGTFfile!="-")) + if (sjdbOverhang<=0 && (pGe.sjdbFileChrStartEnd.at(0)!="-" || pGe.sjdbGTFfile!="-")) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: for generating genome with annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; @@ -123,9 +123,9 @@ void genomeGenerate(Parameters &P) { errOut << "SOLUTION: re-run genome generation specifying non-zero --sjdbOverhang, which ideally should be equal to OneMateLength-1, or could be chosen generically as ~100\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); } - if (P.pGe.sjdbFileChrStartEnd.at(0)=="-" && P.pGe.sjdbGTFfile=="-") + if (pGe.sjdbFileChrStartEnd.at(0)=="-" && pGe.sjdbGTFfile=="-") { - if (P.parArray.at(mapGen.sjdbOverhang_par)->inputLevel>0 && mapGen.sjdbOverhang>0) + if (P.parArray.at(P.pGe.sjdbOverhang_par)->inputLevel>0 && sjdbOverhang>0) { ostringstream errOut; errOut << "EXITING because of FATAL INPUT PARAMETER ERROR: when generating genome without annotations (--sjdbFileChrStartEnd or --sjdbGTFfile options)\n"; @@ -133,7 +133,7 @@ void genomeGenerate(Parameters &P) { errOut << "SOLUTION: re-run genome generation without --sjdbOverhang option\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; - mapGen.sjdbOverhang=0; + sjdbOverhang=0; }; //time @@ -145,11 +145,11 @@ void genomeGenerate(Parameters &P) { *P.inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to generate Genome files\n" <logMain << "Number of SA indices: "<< mapGen.nSA << "\n"<logMain << "Number of SA indices: "<< nSA << "\n"<1) saChunkSize=min(saChunkSize,mapGen.nSA/(P.runThreadN-1)); + //uint saChunkN=((nSA/saChunkSize+1)/P.runThreadN+1)*P.runThreadN;//ensure saChunkN is divisible by P.runThreadN + //saChunkSize=nSA/saChunkN+100000;//final chunk size + if (P.runThreadN>1) saChunkSize=min(saChunkSize,nSA/(P.runThreadN-1)); - uint saChunkN=mapGen.nSA/saChunkSize;//estimate + uint saChunkN=nSA/saChunkSize;//estimate uint* indPrefStart = new uint [saChunkN*2]; //start and stop, *2 just in case uint* indPrefChunkCount = new uint [saChunkN*2]; indPrefStart[0]=0; @@ -275,7 +275,7 @@ void genomeGenerate(Parameters &P) { #pragma omp parallel for num_threads(P.runThreadN) ordered schedule(dynamic,1) for (int iChunk=0; iChunk < (int) saChunkN; iChunk++) {//start the chunk cycle: sort each chunk with qsort and write to a file uint* saChunk=new uint [indPrefChunkCount[iChunk]];//allocate local array for each chunk - for (uint ii=0,jj=0;ii=indPrefStart[iChunk] && p1logMain, EXIT_CODE_INPUT_FILES, P); }; @@ -377,12 +377,12 @@ void genomeGenerate(Parameters &P) { // // ifstream oldSAin("./DirTrue/SA"); // oldSAin.seekg (0, ios::end); -// mapGen.nSAbyte=(uint) oldSAin.tellg(); +// nSAbyte=(uint) oldSAin.tellg(); // oldSAin.clear(); // oldSAin.seekg (0, ios::beg); // -// mapGen.nSA=(mapGen.nSAbyte*8)/(mapGen.GstrandBit+1); -// SAold.defineBits(mapGen.GstrandBit+1,mapGen.nSA); +// nSA=(nSAbyte*8)/(GstrandBit+1); +// SAold.defineBits(GstrandBit+1,nSA); // SAold.allocateArray(); // // oldSAin.read(SAold.charArray,SAold.lengthByte); @@ -393,9 +393,9 @@ void genomeGenerate(Parameters &P) { // }; PackedArray SAip; - genomeSAindex(G,SA1,P,SAip); + genomeSAindex(G, SA1, P, SAip, *this); - if (P.pGe.sjdbFileChrStartEnd.at(0)!="-" || P.pGe.sjdbGTFfile!="-") + if (pGe.sjdbFileChrStartEnd.at(0)!="-" || pGe.sjdbGTFfile!="-") {//insert junctions SjdbClass sjdbLoci; @@ -404,35 +404,32 @@ void genomeGenerate(Parameters &P) { mainGenome.SA=SA1; mainGenome.SApass1=SA2; mainGenome.SAi=SAip; - P.sjdbInsert.outDir=P.pGe.gDir; - mapGen.sjdbN=0;//no junctions are loaded yet + P.sjdbInsert.outDir=pGe.gDir; + sjdbN=0;//no junctions are loaded yet P.twoPass.pass2=false; - Parameters P1; - P1=P; - - sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); + sjdbInsertJunctions(P, mainGenome, mainGenome, sjdbLoci); //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk //this is - to avoid valgrind complaints. Note that SA2 is allocated with plenty of space to spare. SA1=mainGenome.SA; - SA1.writePacked(mapGen.nSA,0); + SA1.writePacked(nSA,0); }; - P.pGe.gFileSizes.clear(); - P.pGe.gFileSizes.push_back(mapGen.nGenome); - P.pGe.gFileSizes.push_back(SA1.lengthByte); + pGe.gFileSizes.clear(); + pGe.gFileSizes.push_back(nGenome); + pGe.gFileSizes.push_back(SA1.lengthByte); //write genome parameters file - genomeParametersWrite(P.pGe.gDir+("/genomeParameters.txt"), P, ERROR_OUT); + genomeParametersWrite(pGe.gDir+("/genomeParameters.txt"), P, ERROR_OUT, *this); //write genome to disk time ( &rawTime ); P.inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <nextTrScore= nWinTr[iW1]==1 ? 0 : trAll[iW1][1]->maxScore; diff --git a/STAR.cpp b/STAR.cpp index 55f7e81..24ceeec 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -65,7 +65,8 @@ int main(int argInN, char* argIn[]) { {//continue } else if (P.runMode=="genomeGenerate") { - genomeGenerate(P); + Genome mainGenome(P); + mainGenome.genomeGenerate(); (void) sysRemoveDir (P.outFileTmp); P.inOut->logMain << "DONE: Genome generation, EXITING\n" << flush; exit(0); diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp index 972ae38..c259218 100644 --- a/genomeParametersWrite.cpp +++ b/genomeParametersWrite.cpp @@ -1,7 +1,7 @@ #include "genomeParametersWrite.h" #include "streamFuns.h" -void genomeParametersWrite(string fileName, Parameters& P, string errorOut) +void genomeParametersWrite(string fileName, Parameters& P, string errorOut, Genome &mapGen) {//write the genome information into the genomePar stream ofstream & genomePar = ofstrOpen(fileName, errorOut, P); @@ -9,28 +9,28 @@ void genomeParametersWrite(string fileName, Parameters& P, string errorOut) genomePar << "versionGenome\t" << P.versionSTAR <<"\n"; genomePar << "genomeFastaFiles\t"; - for (uint ii=0;ii3) {//if N, this suffix does not belong in SAi - for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { + for (uint iL1=iL; iL1 < mapGen.pGe.gSAindexNbases; iL1++) { SAi1[mapGen.genomeSAindexStart[iL1]+ind0[iL1]] |= mapGen.SAiMarkNmaskC; }; break; @@ -92,13 +92,13 @@ void genomeSAindex(char * G, PackedArray & SA, Parameters & P, PackedArray & SAi };//for (uint isa=0; isalogMain << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... completed Suffix Array index\n" <3) {//if N, this suffix does not belong in SAi - for (uint iL1=iL; iL1 < P.pGe.gSAindexNbases; iL1++) { + for (uint iL1=iL; iL1 < mapGen.pGe.gSAindexNbases; iL1++) { SAi1.writePacked(mapGen.genomeSAindexStart[iL1]+ind0[iL1],SAi[mapGen.genomeSAindexStart[iL1]+ind0[iL1]] | mapGen.SAiMarkNmaskC); }; } else //relying on the true code to break iL cycle @@ -175,13 +175,13 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray }; */ - uint indPref = indFull >> (2*(P.pGe.gSAindexNbases-1-iL)); + uint indPref = indFull >> (2*(mapGen.pGe.gSAindexNbases-1-iL)); // if (indPref!=indPref1) // cout<< iL <<" "<< isa <<" "<< indPref <<" "<=mapGen.nSA) {//reached the end of the SA - indFull=funCalcSAiFromSA(G,SA,mapGen.nSA-1,P.pGe.gSAindexNbases,P,iL4); + indFull=funCalcSAiFromSA(mapGen,mapGen.nSA-1,mapGen.pGe.gSAindexNbases,P,iL4); if (indFull==indFullPrev && iL4==iL4prev) { isa=mapGen.nSA;//no more indices, the last one is equal to the previous @@ -247,7 +247,7 @@ void funSAiFindNextIndex(Parameters & P, char * G, PackedArray & SA, uint isaSte while (i1+10) @@ -13,25 +13,25 @@ uint genomeScanFastaFiles (Parameters &P, char* G, bool flagRun) {//scans fasta }; ifstream fileIn; - for (uint ii=0;iilogMain, EXIT_CODE_INPUT_FILES, P); }; char cc=fileIn.peek(); if ( !fileIn.good() ) {// ostringstream errOut; - errOut << "EXITING because of INPUT ERROR: could not read from genomeFastaFile: " <logMain, EXIT_CODE_INPUT_FILES, P); }; if (cc!='>') { ostringstream errOut; - errOut << "EXITING because of INPUT ERROR: the file format of the genomeFastaFile: " <'.\n"; errOut << " Solution: check formatting of the fasta file. Make sure the file is uncompressed (unzipped).\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); @@ -50,12 +50,12 @@ uint genomeScanFastaFiles (Parameters &P, char* G, bool flagRun) {//scans fasta if (!flagRun && mapGen.chrStart.size()>0) mapGen.chrLength.push_back(N-mapGen.chrStart.at(mapGen.chrStart.size()-1)); //true length of the chr if (N>0) {//pad the chromosomes to bins boudnaries - N = ( (N+1)/P.genomeChrBinNbases+1 )*P.genomeChrBinNbases; + N = ( (N+1)/mapGen.genomeChrBinNbases+1 )*mapGen.genomeChrBinNbases; }; if (!flagRun) { mapGen.chrStart.push_back(N); - P.inOut->logMain << P.pGe.gFastaFiles.at(ii)<<" : chr # " << mapGen.chrStart.size()-1 << " \""<logMain << mapGen.pGe.gFastaFiles.at(ii)<<" : chr # " << mapGen.chrStart.size()-1 << " \""<logMain << timeMonthDayTime(rawtime) << " Finished SAi" <0) {//only allow exclusion if this is not the last anchor, or other anchors have been used WAincl[iA]=false; - stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, mapGen.G, P, wTr, nWinTr, RA); + stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, mapGen, P, wTr, nWinTr, RA); }; return; }; diff --git a/stitchWindowAligns.h b/stitchWindowAligns.h index befdd40..0507630 100644 --- a/stitchWindowAligns.h +++ b/stitchWindowAligns.h @@ -6,7 +6,7 @@ #include "ReadAlign.h" void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ - uint Lread, uiWA* WA, char* R, char* Q, char* G, \ + uint Lread, uiWA* WA, char* R, char* Q, Genome &mapGen, \ Parameters& P, Transcript** wTr, uint* nWinTr, ReadAlign *RA); //recursively stitch aligns for one gene //*nWinTr - number of transcripts for the current window From 3e0a85e86532d54a5d1df6afac50a662c6f195df Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 15 Sep 2017 18:36:51 -0400 Subject: [PATCH 299/536] Compiles and runs --- SuffixArrayFuns.cpp | 8 ++++---- SuffixArrayFuns.h | 2 +- genomeSAindex.cpp | 14 +++++++------- genomeSAindex.h | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 022f9fd..aefcf57 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -331,16 +331,16 @@ uint suffixArraySearch1(Genome &mapGen, char** s, uint S, uint N, uint64 gInsert return i2; //index at i2 is always bigger than the sequence }; -uint funCalcSAiFromSA(Genome &mapGen, uint iSA, int L, Parameters& P, int & iL4) +uint funCalcSAiFromSA(char* gSeq, PackedArray& gSA, Genome &mapGen, uint iSA, int L, Parameters& P, int & iL4) { - uint SAstr=mapGen.SA[iSA]; + uint SAstr=gSA[iSA]; bool dirG = (SAstr>>mapGen.GstrandBit) == 0; //forward or reverse strand of the genome SAstr &= mapGen.GstrandMask; iL4=-1; register uint saind=0; if (dirG) { - register uint128 g1=*( (uint128*) (mapGen.G+SAstr) ); + register uint128 g1=*( (uint128*) (gSeq+SAstr) ); for (int ii=0; ii>(8*(15-ii))); diff --git a/SuffixArrayFuns.h b/SuffixArrayFuns.h index 62f0ada..89516e1 100644 --- a/SuffixArrayFuns.h +++ b/SuffixArrayFuns.h @@ -14,5 +14,5 @@ void writePacked(Genome &mapGen, char* a, uint jj, uint x); uint readPacked(Genome &mapGen, char* a, uint jj); uint suffixArraySearch1(Genome &mapGen, char** s2, uint S, uint N, uint64 gInsert, bool dirR, uint i1, uint i2, uint L, Parameters& P); int64 funCalcSAi(char *G, uint iL); -uint funCalcSAiFromSA(Genome &mapGen, uint iSA, int L, Parameters& P, int & iL4); +uint funCalcSAiFromSA(char* gSeq, PackedArray& gSA, Genome &mapGen, uint iSA, int L, Parameters& P, int & iL4); #endif diff --git a/genomeSAindex.cpp b/genomeSAindex.cpp index 677a60c..c6ab77b 100644 --- a/genomeSAindex.cpp +++ b/genomeSAindex.cpp @@ -133,7 +133,7 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray uint isa=iSA1; int iL4; - uint indFull=funCalcSAiFromSA(mapGen,isa,mapGen.pGe.gSAindexNbases,P,iL4); + uint indFull=funCalcSAiFromSA(G,SA,mapGen,isa,mapGen.pGe.gSAindexNbases,P,iL4); while (isa<=iSA2) {//for all suffixes /* testing @@ -214,7 +214,7 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray }; //find next index not equal to the current one - funSAiFindNextIndex(P, isaStep, isa, indFull, iL4, mapGen);//indFull and iL4 have been already defined at the previous step + funSAiFindNextIndex(P, G, SA, isaStep, isa, indFull, iL4, mapGen);//indFull and iL4 have been already defined at the previous step // isa++; // indFull=funCalcSAiFromSA(G,SA,isa,mapGen.pGe.gSAindexNbases,P,iL4); };//isa cycle @@ -222,18 +222,18 @@ void genomeSAindexChunk(char * G, PackedArray & SA, Parameters & P, PackedArray }; -void funSAiFindNextIndex(Parameters & P, uint isaStep, uint & isa, uint & indFull, int & iL4, Genome &mapGen) +void funSAiFindNextIndex(Parameters & P, char * G, PackedArray & SA, uint isaStep, uint & isa, uint & indFull, int & iL4, Genome &mapGen) { uint indFullPrev=indFull; int iL4prev=iL4; isa+=isaStep; - while (isa=mapGen.nSA) {//reached the end of the SA - indFull=funCalcSAiFromSA(mapGen,mapGen.nSA-1,mapGen.pGe.gSAindexNbases,P,iL4); + indFull=funCalcSAiFromSA(G,SA,mapGen,mapGen.nSA-1,mapGen.pGe.gSAindexNbases,P,iL4); if (indFull==indFullPrev && iL4==iL4prev) { isa=mapGen.nSA;//no more indices, the last one is equal to the previous @@ -247,7 +247,7 @@ void funSAiFindNextIndex(Parameters & P, uint isaStep, uint & isa, uint & indFul while (i1+1 Date: Thu, 28 Sep 2017 16:56:40 -0400 Subject: [PATCH 300/536] Implemented the ability to input the reads from unmapped SAM/BAM file. --- Makefile | 2 +- Parameters.cpp | 29 +- Parameters.h | 5 +- Parameters_openReadsFiles.cpp | 16 +- ReadAlign.cpp | 1 + ReadAlign.h | 1 + ReadAlignChunk_processChunks.cpp | 76 +- ReadAlign_alignBAM.cpp | 56 +- ReadAlign_oneRead.cpp | 4 +- ReadAlign_outputAlignments.cpp | 2 + ReadAlign_outputTranscriptSAM.cpp | 11 +- STAR.cpp | 2 + parametersDefault | 6 + parametersDefault.xxd | 4092 +++++++++++++++-------------- readLoad.cpp | 15 +- readLoad.h | 2 +- 16 files changed, 2258 insertions(+), 2062 deletions(-) diff --git a/Makefile b/Makefile index 1de3982..2b5a34c 100644 --- a/Makefile +++ b/Makefile @@ -45,7 +45,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ - Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp \ + Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o \ GlobalVariables.cpp diff --git a/Parameters.cpp b/Parameters.cpp index 806573e..e997612 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -47,6 +47,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFileSizes", &genomeFileSizes)); //read + parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesType", &readFilesType)); parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesIn", &readFilesIn)); parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesCommand", &readFilesCommand)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); @@ -730,8 +731,32 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files + //read parameters + if (readFilesType.at(0)=="Fastx") { + readFilesTypeN=1; + } else if (readFilesType.at(0)=="SAM"){ + readFilesTypeN=10; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --readFilesType: "<logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (readFilesTypeN==1) { + readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files + } else if (readFilesTypeN==10) {//find the number of mates from the SAM file + if (readFilesType.size()==2 && readFilesType.at(1)=="SE") { + readNmates=1; + } else if (readFilesType.size()==2 && readFilesType.at(1)=="PE") { + readNmates=2; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: --readFilesType SAM requires specifying SE or PE reads"<<"\n"; + errOut <<"SOLUTION: specify --readFilesType SAM SE for single-end reads or --readFilesType SAM PE for paired-end reads\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; if (runMode=="alignReads" && genomeLoad!="Remove" && genomeLoad!="LoadAndExit") {//open reads files to check if they are present openReadsFiles(); diff --git a/Parameters.h b/Parameters.h index 999dd24..6672cfb 100644 --- a/Parameters.h +++ b/Parameters.h @@ -59,6 +59,8 @@ class Parameters { char genomeNumToNT[6]; //read parameters + vector readFilesType; + int readFilesTypeN; uint readMapNumber; uint iReadAll; int readFilesIndex; @@ -125,7 +127,7 @@ class Parameters { //SAM output string outBAMfileCoordName, outBAMfileUnsortedName, outQuantBAMfileName; - string samHeader, samHeaderHD, samHeaderSortedCoord; + string samHeader, samHeaderHD, samHeaderSortedCoord, samHeaderExtra; string outSAMmode, outSAMstrandField, outSAMorder, outSAMprimaryFlag; vector outSAMattributes, outSAMheaderHD, outSAMheaderPG; vector outSAMattrRGline,outSAMattrRGlineSplit,outSAMattrRG; @@ -352,6 +354,7 @@ class Parameters { void inputParameters (int argInN, char* argIn[]); //input parameters: default, from files, from command line void openReadsFiles(); void closeReadsFiles(); + void readSAMheader(const string readFilesCommandString, const vector readFilesNames); }; #endif // Parameters.h diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index 3729a4a..51f1f9e 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -5,13 +5,15 @@ void Parameters::openReadsFiles() { string readFilesCommandString(""); if (readFilesCommand.at(0)=="-") { - if (readFilesIn.at(0).find(',')readIn[ii].is_open() ) inOut->readIn[ii].close(); inOut->readIn[ii].open(readFilesIn.at(ii).c_str()); //try to open the Sequences file right away, exit if failed @@ -25,9 +27,7 @@ void Parameters::openReadsFiles() { vector readsCommandFileName; - readFilesNames.resize(readNmates); - - for (uint imate=0;imatereadIn[imate].open(readFilesInTmp.at(imate).c_str()); }; - if (readNmates==2 && readFilesNames.at(0).size() != readFilesNames.at(1).size()) { + if (readFilesIn.size()==2 && readFilesNames.at(0).size() != readFilesNames.at(1).size()) { ostringstream errOut; errOut <<"EXITING: because of fatal INPUT ERROR: number of input files for mate1: "<readNmates); outBAMoneAlignNbytes = new uint [P->readNmates+2]; //extra piece for chimeric reads outBAMoneAlign = new char* [P->readNmates+2]; //extra piece for chimeric reads diff --git a/ReadAlign.h b/ReadAlign.h index a6a2e05..fbfa6c5 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -66,6 +66,7 @@ class ReadAlign : public Genome uint clip3pNtotal[MAX_N_MATES], clip5pNtotal[MAX_N_MATES], clip3pAdapterN[MAX_N_MATES]; //total number of trimmed bases from 5p,3p int readFileType; //file type: 1=fasta; 2=fastq uint outFilterMismatchNmaxTotal; + vectorreadNameExtra; char dummyChar[4096]; char** Read0; diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index f40f470..044cc55 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -5,7 +5,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks noReadsLeft=false; //true if there no more reads left in the file - + bool newFile=false; //new file marker in the input stream while (!noReadsLeft) {//continue until the input EOF //////////////read a chunk from input files and store in memory if (P->outFilterBySJoutStage<2) {//read chunks from input file @@ -15,8 +15,58 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks uint chunkInSizeBytesTotal[2]={0,0}; while (chunkInSizeBytesTotal[0] < P->chunkInSizeBytes && chunkInSizeBytesTotal[1] < P->chunkInSizeBytes && P->inOut->readIn[0].good() && P->inOut->readIn[1].good()) { char nextChar=P->inOut->readIn[0].peek(); - if (P->iReadAll==P->readMapNumber) {//do nto read any more reads + if (P->iReadAll==P->readMapNumber) {//do not read any more reads break; + } else if (P->readFilesTypeN==10 && P->inOut->readIn[0].good() && P->outFilterBySJoutStage!=2) {//SAM input && not eof && not 2nd stage + + string str1; + + if (nextChar=='@') {//with SAM input linest that start with @ are headers + getline(P->inOut->readIn[0], str1); //read line and skip it + continue; + }; + + P->inOut->readIn[0] >> str1; + if (str1=="FILE") { + newFile=true; + } else { + P->iReadAll++; //increment read number + + uint imate1=0; + for (uint imate=0;imatereadNmates;imate++) { + if (imate>0) + P->inOut->readIn[0] >> str1; //for imate=0 str1 was already read + uint flag; + P->inOut->readIn[0] >>flag; //read name and flag + char passFilterIllumina=(flag & 0x800 ? 'Y' : 'N'); + + if (imate==1) {//2nd line is always opposite of the 1st one + imate1=1-imate1; + } else if (P->readNmates==2 && (flag & 0x80)) { + imate1=1; + } else { + imate1=0; + }; + + //read ID or number + if (P->outSAMreadID=="Number") { + chunkInSizeBytesTotal[imate1] += sprintf(chunkIn[imate1] + chunkInSizeBytesTotal[imate1], "@%llu", P->iReadAll); + } else { + chunkInSizeBytesTotal[imate1] += sprintf(chunkIn[imate1] + chunkInSizeBytesTotal[imate1], "@%s", str1.c_str()); + }; + + //iReadAll, passFilterIllumina, passFilterIllumina + chunkInSizeBytesTotal[imate1] += sprintf(chunkIn[imate1] + chunkInSizeBytesTotal[imate1], " %llu %c %i", P->iReadAll, passFilterIllumina, P->readFilesIndex); + + for (int ii=3; ii<=9; ii++) + P->inOut->readIn[0] >> str1; //skip fields until sequence + + string seq1,qual1; + P->inOut->readIn[0] >> seq1 >> qual1; + getline(P->inOut->readIn[0],str1); //str1 is now all SAM attributes + chunkInSizeBytesTotal[imate1] += sprintf(chunkIn[imate1] + chunkInSizeBytesTotal[imate1], "%s\n%s\n+\n%s\n", str1.c_str(), seq1.c_str(), qual1.c_str()); + }; + }; } else if (nextChar=='@') {//fastq, not multi-line P->iReadAll++; //increment read number for (uint imate=0; imatereadNmates; imate++) {//for all mates @@ -90,7 +140,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks }; chunkIn[imate][chunkInSizeBytesTotal[imate]]='\n'; chunkInSizeBytesTotal[imate] ++; - }; + }; } else if (nextChar==' ' || nextChar=='\n' || !P->inOut->readIn[0].good()) {//end of stream P->inOut->logMain << "Thread #" < \n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + }; + + if (newFile) { P->inOut->readIn[0] >> P->readFilesIndex; pthread_mutex_lock(&g_threadChunks.mutexLogMain); P->inOut->logMain << "Starting to map file # " << P->readFilesIndex<<"\n"; - for (uint imate=0; imatereadNmates; imate++) { + for (uint imate=0; imatereadFilesNames.size(); imate++) { P->inOut->logMain << "mate " <readFilesNames.at(imate).at(P->readFilesIndex) <<"\n"; P->inOut->readIn[imate].ignore(numeric_limits::max(),'\n'); }; P->inOut->logMain<readNmates==2) {//skip the FILE line for the second read -// getline(P->inOut->readIn[1],word1); -// }; - } else {//error - ostringstream errOut; - errOut << ERROR_OUT <<" EXITING because of FATAL ERROR in input reads: unknown file format: the read ID should start with @ or > \n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; + newFile=false; }; }; //TODO: check here that both mates are zero or non-zero diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index b7fbb09..ee680b9 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -55,6 +55,12 @@ int bamAttrArrayWrite(int32 attr, const char* tagName, char* attrArray ) { *( (int32*) (attrArray+3))=attr; return 3+sizeof(int32); }; +int bamAttrArrayWrite(float attr, const char* tagName, char* attrArray ) { + attrArray[0]=tagName[0];attrArray[1]=tagName[1]; + attrArray[2]='f'; + *( (float*) (attrArray+3))=attr; + return 3+sizeof(int32); +}; int bamAttrArrayWrite(char attr, const char* tagName, char* attrArray ) { attrArray[0]=tagName[0];attrArray[1]=tagName[1]; attrArray[2]='A'; @@ -84,6 +90,49 @@ int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray return 4+sizeof(int32)+sizeof(int32)*attr.size(); }; +int bamAttrArrayWriteSAMtags(string &attrStr, char *attrArray) {//write bam record into attrArray for string attribute attString + size_t pos1=0, pos2=0; + int nattr=0; + do {//cycle over multiple tags separated by tab + pos2 = attrStr.find('\t',pos1); + string attr1 = attrStr.substr(pos1, pos2-pos1); + pos1=pos2+1; + + if (attr1.empty()) + continue; //extra tab at the beginning, or consecutive tabs + + switch (attr1.at(3)) { + case 'i': + { + int32 a1=stol(attr1.substr(5)); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + break; + }; + case 'A': + { + char a1=attr1.at(5); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + break; + }; + break; + case 'Z': + { + string a1=attr1.substr(5); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + break; + }; + case 'f': + { + float a1=stof(attr1.substr(5)); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + break; + }; + }; + } while (pos2!= string::npos); + + return nattr; +}; + template int bamAttrArrayWriteInt(intType xIn, const char* tagName, char* attrArray, Parameters *P) {//adapted from samtools attrArray[0]=tagName[0];attrArray[1]=tagName[1]; @@ -215,7 +264,6 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWriteInt(trOut.nMM,"nM",attrOutArray+attrN,P); attrN+=bamAttrArrayWrite((to_string((uint) alignType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers if (!P->outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); - } else {//this mate is mapped if (flagPaired) {//paired reads samFLAG=0x0001; @@ -377,6 +425,12 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint }; }; }; + + if (P->readFilesTypeN==10) { + if (readNameExtra[Mate].size()<1) + cout << iReadAll <<" " <readNmates==2) {//read the 2nd mate - readStatus[1]=readLoad(*(readInStream[1]), P, 1, readLength[1], readLengthOriginal[1], readNameMates[1], Read0[1], Read1[0]+readLength[0]+1, Qual0[1], Qual1[0]+readLength[0]+1, clip3pNtotal[1], clip5pNtotal[1], clip3pAdapterN[1], iReadAll, readFilesIndex, readFilter); + readStatus[1]=readLoad(*(readInStream[1]), P, 1, readLength[1], readLengthOriginal[1], readNameMates[1], Read0[1], Read1[0]+readLength[0]+1, Qual0[1], Qual1[0]+readLength[0]+1, clip3pNtotal[1], clip5pNtotal[1], clip3pAdapterN[1], iReadAll, readFilesIndex, readFilter, readNameExtra[1]); if (readStatus[0]!=readStatus[1]) { ostringstream errOut; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 8c0e8a9..6eb3cbb 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -56,6 +56,8 @@ void ReadAlign::outputAlignments() { // if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutFilterBySJout); for (uint im=0;imreadNmates;im++) { chunkOutFilterBySJoutFiles[im] << readNameMates[im] <<" "<< iReadAll <<" "<< readFilter <<" "<< readFilesIndex; + if (!readNameExtra[im].empty()) + chunkOutFilterBySJoutFiles[im]<<" "<< readNameExtra[im]; chunkOutFilterBySJoutFiles[im] <<"\n"; chunkOutFilterBySJoutFiles[im] << Read0[im] <<"\n"; if (readFileType==2) {//fastq diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 40f02b8..3ee6845 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -49,6 +49,10 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i *outStream <<"\t"<< '0' <<"\t"<< Read0[imate] <<"\t"<< (readFileType==2 ? Qual0[imate]:"*") \ <<"\tNH:i:0" <<"\tHI:i:0" <<"\tAS:i:"<outSAMattrRG.empty()) *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); + + if (P->readFilesTypeN==10 && !readNameExtra[imate].empty()) {//SAM files as input - output extra attributes + *outStream << "\t" <readFilesTypeN==10 && !readNameExtra[imate].empty()) {//SAM files as input - output extra attributes + *outStream << "\t" << readNameExtra.at(imate); + }; + *outStream << "\n"; //done with one SAM line };//for (uint imate=0;imatecommandLine <<"\n"; + + samHeaderStream << P->samHeaderExtra; if (P->outSAMheaderHD.at(0)!="-") { P->samHeaderHD = P->outSAMheaderHD.at(0); diff --git a/parametersDefault b/parametersDefault index c885449..931cbb4 100644 --- a/parametersDefault +++ b/parametersDefault @@ -108,6 +108,12 @@ inputBAMfile - ### Read Parameters +readFilesType Fastx + string: format of input read files + Fastx ... FASTA or FASTQ + SAM SE ... SAM or BAM single-end reads; for BAM use --readFilesCommand samtools view + SAM PE ... SAM or BAM paired-end reads; for BAM use --readFilesCommand samtools view + readFilesIn Read1 Read2 string(s): paths to files that contain input read1 (and, if needed, read2) diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 672e42a..679c754 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -491,1290 +491,1388 @@ unsigned char parametersDefault[] = { 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, - 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, - 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, - 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, + 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, + 0x74, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x51, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x53, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, + 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x50, 0x45, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, + 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, + 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, + 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, + 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, - 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, - 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, - 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, - 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, - 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, - 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, - 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, - 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, - 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, - 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, - 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, - 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, - 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, + 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, + 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, + 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, + 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, + 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, + 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, + 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, + 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, - 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, + 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, + 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, + 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, + 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, + 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, - 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, - 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, - 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, - 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, - 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, - 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, - 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, - 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, + 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, + 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, + 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, + 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, + 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, + 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, + 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, - 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, - 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, - 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, - 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, - 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, - 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, - 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, - 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, - 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, + 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, + 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, - 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, - 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, - 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, + 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, + 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, + 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, + 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, + 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, - 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, + 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, + 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, + 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, + 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, + 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, - 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, - 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, + 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, + 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, + 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, - 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, + 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, + 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, - 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, - 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, - 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, - 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, - 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, - 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, - 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, - 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, + 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, + 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, 0x68, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, + 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, + 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, + 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, - 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, - 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, - 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, - 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, + 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, - 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, - 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, - 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, - 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, - 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, - 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, - 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, - 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, - 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, - 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, - 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, - 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, - 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, - 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, + 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, + 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, + 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, - 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, - 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, - 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, + 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, + 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, + 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, + 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, + 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, + 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, - 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, - 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, - 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, - 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, - 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, - 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, - 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, - 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, - 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, + 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, + 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, + 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, + 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, + 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, + 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, + 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, + 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, + 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, + 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, + 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, - 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, - 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, - 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, - 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, - 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, - 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, - 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, + 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, + 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, + 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, + 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, + 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, + 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, + 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, + 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, + 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, + 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, + 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, - 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, + 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, + 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, + 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, + 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, + 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, + 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, + 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, + 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, + 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, - 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, - 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, - 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, - 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, - 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, - 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, - 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, - 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, - 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, + 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, + 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, @@ -1789,853 +1887,785 @@ unsigned char parametersDefault[] = { 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, - 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, - 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, - 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, - 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, - 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, + 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, + 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, + 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, + 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, + 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, + 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, + 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, + 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, - 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, - 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, - 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, + 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, + 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, + 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, + 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, - 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, - 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, - 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, - 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, + 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, + 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, + 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, + 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, + 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, + 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, - 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, - 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, - 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, - 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, - 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, - 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, + 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, + 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, + 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, + 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, - 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, - 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, - 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, - 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, - 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, - 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, - 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, - 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, - 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, - 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, - 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, - 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, - 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, - 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, - 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, + 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, + 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, + 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, + 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, + 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, + 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, - 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, - 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, - 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, - 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, + 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, + 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, + 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, + 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, + 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, + 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, + 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, - 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, - 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, - 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, - 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, - 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, + 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, + 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, + 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, + 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, - 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, + 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, + 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, + 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, + 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, + 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, - 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, - 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, - 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, - 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, - 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, + 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, + 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 31646; +unsigned int parametersDefault_len = 32015; diff --git a/readLoad.cpp b/readLoad.cpp index 40b92e1..b7014eb 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -1,7 +1,7 @@ #include "readLoad.h" #include "ErrorWarning.h" -int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& LreadOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter){ +int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& LreadOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter, string &readNameExtra){ //load one read from a stream int readFileType=0; @@ -21,7 +21,18 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint }; readInStream >> iReadAll >> readFilter >> readFilesIndex; //extract read number - readInStream.ignore(DEF_readNameSeqLengthMax,'\n');//ignore the resit of the line - just in case + + getline(readInStream, readNameExtra); + if (!readNameExtra.empty()) { + size_t n1=readNameExtra.find_first_not_of(" \t"); + if (n1!=std::string::npos) { + readNameExtra=readNameExtra.substr(n1); + } else { + readNameExtra=""; + }; + }; + +// readInStream.ignore(DEF_readNameSeqLengthMax,'\n');//ignore the resit of the line - just in case readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence diff --git a/readLoad.h b/readLoad.h index f531f86..abf4f81 100644 --- a/readLoad.h +++ b/readLoad.h @@ -5,6 +5,6 @@ #include "Parameters.h" #include "SequenceFuns.h" -int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& readLengthPairOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter); +int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint& readLengthPairOriginal, char* readName, char* Seq, char* SeqNum, char* Qual, char* QualNum, uint &clip3pNtotal, uint &clip5pNtotal, uint &clip3pAdapterN, uint &iReadAll, uint &readFilesIndex, char &readFilter, string &readNameExtra); #endif From 4cddc6fd764153a60577852ce1edd690343cb680 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 3 Oct 2017 14:01:26 -0400 Subject: [PATCH 301/536] Added the missing .cpp file. --- Parameters_readSAMheader.cpp | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Parameters_readSAMheader.cpp diff --git a/Parameters_readSAMheader.cpp b/Parameters_readSAMheader.cpp new file mode 100644 index 0000000..6c1987e --- /dev/null +++ b/Parameters_readSAMheader.cpp @@ -0,0 +1,37 @@ +#include "Parameters.h" +#include "ErrorWarning.h" +#include +#include + +void Parameters::readSAMheader(const string readFilesCommandString, const vector readFilesNames) { + + if (readFilesCommandString=="") {//simply read from file + while (inOut->readIn[0].peek()=='@') { + string str1; + getline(inOut->readIn[0],str1); + if (str1.substr(1,2)!="HD" && str1.substr(1,2)!="SQ") { + samHeaderExtra += str1 + '\n'; + }; + }; + return; + }; + + string tmpFifo=outFileTmp+"tmp.fifo.header"; + remove(tmpFifo.c_str()); + mkfifo(tmpFifo.c_str(), S_IRUSR | S_IWUSR ); + + ifstream tmpFifoIn; + for (uint32 ii=0; ii " + tmpFifo + "&"; + system(com1.c_str()); + tmpFifoIn.open(tmpFifo); + while (tmpFifoIn.peek()=='@') { + string str1; + getline(tmpFifoIn,str1); + if (str1.substr(1,2)!="HD" && str1.substr(1,2)!="SQ") {//SQ and HD header lines cannot be imported from uSAM + samHeaderExtra += str1 + '\n'; + }; + }; + tmpFifoIn.close(); + }; +}; \ No newline at end of file From 8c57136c6f7cec5a9b30d5dea63d4d739649fe83 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 10 Oct 2017 17:05:28 -0400 Subject: [PATCH 302/536] Fixed a problem with --alignEndsProtrude implementation which prevented output of alignments with protruded ends. --- stitchAlignToTranscript.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index c54c9bf..7b66cef 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -336,8 +336,8 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst } else {//stitching was not accepted return -1000007; }; - } else if (gBstart+trA->exons[0][EX_R] >= trA->exons[0][EX_G] || trA->exons[0][EX_G] < trA->exons[0][EX_R]){//if (iFragA==iFragB) stitch aligns from different fragments - + } else if (gBstart+trA->exons[0][EX_R]+P->alignEndsProtrude.nBasesMax >= trA->exons[0][EX_G] || trA->exons[0][EX_G] < trA->exons[0][EX_R]){//if (iFragA==iFragB) stitch aligns from different fragments + //CHECK: this second confdition does not make sense if (P->alignMatesGapMax>0 && gBstart > trA->exons[trA->nExons-1][EX_G] + trA->exons[trA->nExons-1][EX_L] + P->alignMatesGapMax) { return -1000004; //gap between mates too large }; From 212bfab30a8ec0be29a59953a825f6f038225a48 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 13 Oct 2017 10:54:35 -0400 Subject: [PATCH 303/536] Implemented inserting consensus SNV into the reference. --- Parameters.cpp | 1 + Parameters.h | 1 + genomeGenerate.cpp | 42 + parametersDefault | 2 + parametersDefault.xxd | 4567 +++++++++++++++++++++-------------------- 5 files changed, 2335 insertions(+), 2278 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index e997612..9187548 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -45,6 +45,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSAsparseD", &genomeSAsparseD)); parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeSuffixLengthMax", &genomeSuffixLengthMax)); parArray.push_back(new ParameterInfoVector (-1, -1, "genomeFileSizes", &genomeFileSizes)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "genomeConsensusFile", &genomeConsensusFile)); //read parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesType", &readFilesType)); diff --git a/Parameters.h b/Parameters.h index 6672cfb..c27e4df 100644 --- a/Parameters.h +++ b/Parameters.h @@ -46,6 +46,7 @@ class Parameters { uint genomeInsertChrIndFirst; //index of the first inserted chromosome uint genomeSuffixLengthMax; //maximum length of the suffixes, has to be longer than read length vector genomeFileSizes; //size of the genome files + string genomeConsensusFile; //binning,windows,anchors uint genomeChrBinNbits, genomeChrBinNbases, chrBinN, *chrBin; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 145cdd6..8c75e4e 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -16,6 +16,7 @@ #include "serviceFuns.cpp" #include "streamFuns.h" +#include "SequenceFuns.h" char* globalG; uint globalL; @@ -159,6 +160,47 @@ void genomeGenerate(Parameters *P) { memset(G1,GENOME_spacingChar,nG1alloc);//initialize to K-1 all bytes genomeScanFastaFiles(P,G,true); //load the genome sequence + + if (P->genomeConsensusFile!="-") {//load consensus SNPs + ifstream &consIn=ifstrOpen(P->genomeConsensusFile, ERROR_OUT, "SOLUTION: check path and permission for the --genomeConsensusFile file" + P->genomeConsensusFile, P); + + map chrStartMap; + for (uint ii=0;iinChrReal;ii++) { + chrStartMap.insert(std::pair (P->chrName[ii], P->chrStart[ii])); + }; + + uint nInserted=0, nWrongChr=0, nWrongRef=0, nRefN=0; + while (consIn.good()) { + string chr1, refIn, altIn, dummy; + uint start1; + char ref1,alt1; + + consIn >> chr1 >> start1 >> dummy >> refIn >> altIn; + consIn.ignore(numeric_limits::max(),'\n'); + + convertNucleotidesToNumbers(refIn.c_str(),&ref1,1); + convertNucleotidesToNumbers(altIn.c_str(),&alt1,1); + --start1;//VCF positions are 1-based + + if (chrStartMap.count(chr1)==1) {//otherwise just skip + start1+=chrStartMap[chr1]; + if (G[start1]>3) + ++nRefN; + + if (G[start1]==ref1 || G[start1]>3) { + G[start1]=alt1; + ++nInserted; + } else { + ++nWrongRef; + P->inOut->logMain << "WARNING: reference allele in consensus file does not agree with reference genome base: "; + P->inOut->logMain << chr1 <<" "<< start1-chrStartMap[chr1] <<" "<< (int) G[start1]<<" "<< (int) ref1<<" "<< (int) alt1<<"\n"; + }; + } else { + ++nWrongChr; + }; + }; + P->inOut->logMain <<"Inserted consensus variants: " << nInserted <<", including reference N-base:"<< nRefN <<", wrong chromosome: " << nWrongChr<< ", wrong reference base: " << nWrongRef << endl; + }; uint N = nGenomeReal; P->nGenome=N; diff --git a/parametersDefault b/parametersDefault index 931cbb4..2c92923 100644 --- a/parametersDefault +++ b/parametersDefault @@ -57,6 +57,8 @@ genomeChainFiles - genomeFileSizes 0 uint(s)>0: genome files exact sizes in bytes. Typically, this should not be defined by the user. +genomeConsensusFile - + string: VCF file with consensus SNPs (i.e. alternative allele is the major (AF>0.5) allele) ### Genome Indexing Parameters - only used with --runMode genomeGenerate genomeChrBinNbits 18 diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 679c754..14a10b9 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -267,2405 +267,2416 @@ unsigned char parametersDefault[] = { 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x20, 0x2d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x0a, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, - 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, - 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x69, 0x67, 0x73, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, - 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x38, 0x2c, 0x20, 0x6c, 0x6f, - 0x67, 0x32, 0x5b, 0x6d, 0x61, 0x78, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x2c, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x29, 0x5d, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, - 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, - 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, - 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x20, 0x46, - 0x6f, 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x2d, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x77, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x34, 0x2c, - 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2f, 0x32, 0x20, 0x2d, 0x20, - 0x31, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, - 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, - 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, - 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, - 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, - 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, - 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, - 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, - 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, - 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, - 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, - 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, - 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, - 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, - 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, - 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, - 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x46, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, + 0x75, 0x73, 0x20, 0x53, 0x4e, 0x50, 0x73, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x20, 0x28, 0x41, + 0x46, 0x3e, 0x30, 0x2e, 0x35, 0x29, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x65, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x2d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, + 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, + 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, + 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6c, 0x61, + 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x73, 0x2c, 0x20, 0x69, + 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x28, + 0x31, 0x38, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x5b, 0x6d, 0x61, 0x78, + 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x52, 0x65, 0x61, + 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x5d, 0x29, 0x2e, 0x0a, + 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, + 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, + 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x64, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x69, 0x6e, 0x28, 0x31, 0x34, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x2f, 0x32, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x2e, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, + 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, + 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, + 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, + 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, + 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, + 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, + 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, - 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, - 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, - 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, - 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, - 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, - 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, - 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, - 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, - 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, - 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, - 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, - 0x74, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x51, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x53, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, - 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x50, 0x45, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, - 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, - 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, - 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, - 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, - 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, - 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, - 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, - 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, - 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, - 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, + 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, - 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, - 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, - 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, - 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, - 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, - 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, - 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, - 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, + 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, + 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, + 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, + 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, + 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, + 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, + 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, + 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, + 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, + 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, + 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, + 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, + 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, + 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, + 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x53, 0x45, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, + 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, + 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x50, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, + 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, + 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, + 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, + 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, + 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, + 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, + 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, + 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, + 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, + 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, - 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, - 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, - 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, - 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, - 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, - 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, - 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, - 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, - 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, + 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, + 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, + 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, + 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, + 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, - 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, + 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, + 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, + 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, + 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, + 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, + 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, + 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, + 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, + 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, + 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, - 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, - 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, - 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, + 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, - 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, - 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, - 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, - 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, - 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, - 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, - 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, - 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, - 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, + 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, - 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, - 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, - 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, - 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, + 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, + 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, + 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, + 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, + 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, + 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, + 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, + 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, + 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, - 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, - 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, + 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, + 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, - 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, - 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, - 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x63, 0x68, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, - 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, - 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, - 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, - 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, - 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, - 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, - 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, - 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, - 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, + 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, + 0x53, 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, - 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, - 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, - 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, - 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, - 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, - 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, - 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, - 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, - 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, - 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, - 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, - 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, - 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, - 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, - 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, - 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, - 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, - 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, - 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, + 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, + 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, - 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, - 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, - 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, - 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, - 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, - 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, - 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, + 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, + 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, + 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, - 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, - 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, - 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, - 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, + 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, + 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, + 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, + 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, + 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, - 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, - 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, - 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, - 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, - 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, - 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, - 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, - 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, - 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, - 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, - 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, - 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, + 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, + 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, + 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, + 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, + 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, + 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, + 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, + 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, + 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, + 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, + 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, + 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, + 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, + 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, + 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, + 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, + 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, + 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, + 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, + 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, + 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, + 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, + 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, + 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, - 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, - 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, + 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, + 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, + 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, + 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, + 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, + 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, + 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, + 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, + 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, + 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, + 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, - 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, + 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, + 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, + 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, + 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, + 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, + 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, - 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, - 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, - 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, - 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, - 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, - 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, - 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, - 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, + 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, - 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, - 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, - 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, - 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, - 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, + 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, + 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, - 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, - 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, - 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, - 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, - 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, - 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, + 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, + 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, - 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, - 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, + 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, - 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, - 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, - 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, - 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, - 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, - 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, - 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, - 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, + 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, + 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, + 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, + 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, + 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, + 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, + 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, + 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, + 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, + 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, - 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, - 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, - 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, + 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, + 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, + 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, + 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, + 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, - 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, - 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, - 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, + 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, + 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, + 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, + 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, + 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, + 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, + 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, - 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, - 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, + 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, + 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, + 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, + 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, + 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, + 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, - 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, - 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, - 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, - 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, - 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, - 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, + 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, + 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 32015; +unsigned int parametersDefault_len = 32141; From 0fb2cfc9097ec1e8514b8d1c631775f9499ae30c Mon Sep 17 00:00:00 2001 From: David Powell Date: Thu, 19 Oct 2017 22:08:54 +1100 Subject: [PATCH 304/536] Don't exit when fastq contains a zero-length read --- readLoad.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readLoad.cpp b/readLoad.cpp index b7014eb..01e9ffc 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -37,7 +37,7 @@ int readLoad(istream& readInStream, Parameters* P, uint iMate, uint& Lread, uint readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence Lread=(uint) readInStream.gcount(); - if (Lread<=1) { + if (Lread<1) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in reads input: short read sequence line: " << Lread <<"\n"; errOut << "Read Name="< Date: Thu, 9 Nov 2017 18:20:26 -0500 Subject: [PATCH 305/536] Modified BAM input to allow for reverse complemented sequences. --- ReadAlignChunk_processChunks.cpp | 6 +++++ ReadAlign_alignBAM.cpp | 4 +-- SequenceFuns.cpp | 43 ++++++++++++++++++++++++++++++++ SequenceFuns.h | 1 + 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 044cc55..22ad71d 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -2,6 +2,7 @@ #include "GlobalVariables.h" #include "ThreadControl.h" #include "ErrorWarning.h" +#include "SequenceFuns.h" void ReadAlignChunk::processChunks() {//read-map-write chunks noReadsLeft=false; //true if there no more reads left in the file @@ -63,6 +64,11 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks string seq1,qual1; P->inOut->readIn[0] >> seq1 >> qual1; + if (flag & 0x10) {//sequence reverse-coomplemented + revComplementNucleotides(seq1); + reverse(qual1.begin(),qual1.end()); + }; + getline(P->inOut->readIn[0],str1); //str1 is now all SAM attributes chunkInSizeBytesTotal[imate1] += sprintf(chunkIn[imate1] + chunkInSizeBytesTotal[imate1], "%s\n%s\n+\n%s\n", str1.c_str(), seq1.c_str(), qual1.c_str()); }; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index ee680b9..e79c542 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -427,8 +427,8 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint }; if (P->readFilesTypeN==10) { - if (readNameExtra[Mate].size()<1) - cout << iReadAll <<" " < vAttr1; if (outSAMattributes.at(0)=="None") { } else if (outSAMattributes.at(0)=="All"){ - vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI","ch"}; + vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI","MC","ch"}; } else if (outSAMattributes.at(0)=="Standard"){ vAttr1={"NH","HI","AS","nM"}; } else { @@ -903,7 +904,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (vAttr1.at(ii)== "ch") { outSAMattrOrder.push_back(ATTR_ch); outSAMattrOrderQuant.push_back(ATTR_ch); - outSAMattrPresent.ch=true; + outSAMattrPresent.ch=true; + } else if (vAttr1.at(ii)== "MC") { + outSAMattrOrder.push_back(ATTR_MC); + outSAMattrOrderQuant.push_back(ATTR_MC); + outSAMattrPresent.MC=true; } else if (vAttr1.at(ii)== "XS") { outSAMattrOrder.push_back(ATTR_XS); outSAMattrPresent.XS=true; diff --git a/Parameters.h b/Parameters.h index c27e4df..78da6a5 100644 --- a/Parameters.h +++ b/Parameters.h @@ -135,7 +135,7 @@ class Parameters { uint outSAMmultNmax,outSAMattrIHstart; string outSAMheaderCommentFile; int outSAMmapqUnique; - struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS,ch;} outSAMattrPresent, outSAMattrPresentQuant; + struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS,ch,MC;} outSAMattrPresent, outSAMattrPresentQuant; vector outSAMattrOrder, outSAMattrOrderQuant; int outBAMcompression; vector outSAMtype; diff --git a/ReadAlign.h b/ReadAlign.h index fbfa6c5..bb95b7c 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -44,7 +44,8 @@ class ReadAlign : public Genome char** outBAMoneAlign; uint* outBAMoneAlignNbytes; - ostringstream samStreamCIGAR, samStreamSJmotif, samStreamSJintron,samStreamSJannot; + ostringstream samStreamCIGAR, samStreamSJmotif, samStreamSJintron; + vector matesCIGAR; intScore maxScoreMate[MAX_N_MATES]; intScore *scoreSeedToSeed, *scoreSeedBest; @@ -137,6 +138,7 @@ class ReadAlign : public Genome bool chimericDetection(); void outputAlignments(); void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q, char *G);//stitches all seeds in one window: iW + void calcCIGAR(Transcript const &trOut, uint nMates, uint iExMate, uint leftMate); int oneRead(); uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); diff --git a/ReadAlign_CIGAR.cpp b/ReadAlign_CIGAR.cpp new file mode 100644 index 0000000..baf10d8 --- /dev/null +++ b/ReadAlign_CIGAR.cpp @@ -0,0 +1,62 @@ +#include "ReadAlign.h" + +uint ReadAlign::alignCIGAR +samStreamCIGAR.str(std::string()); + + uint trimL; + if (Str==0 && Mate==0) { + trimL=clip5pNtotal[Mate]; + } else if (Str==0 && Mate==1) { + trimL=clip3pNtotal[Mate]; + } else if (Str==1 && Mate==0) { + trimL=clip3pNtotal[Mate]; + } else { + trimL=clip5pNtotal[Mate]; + }; + + uint trimL1 = trimL + trOut.exons[iEx1][EX_R] - (trOut.exons[iEx1][EX_R]0) { + samStreamCIGAR << trimL1 << "S"; //initial trimming + }; + + for (uint ii=iEx1;ii<=iEx2;ii++) { + if (ii>iEx1) {//record gaps + uint gapG=trOut.exons[ii][EX_G]-(trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]); + uint gapR=trOut.exons[ii][EX_R]-trOut.exons[ii-1][EX_R]-trOut.exons[ii-1][EX_L]; + //it's possible to have a D or N and I at the same time + if (gapR>0){ + samStreamCIGAR << gapR; + samStreamCIGAR << "I"; + }; + if (trOut.canonSJ[ii-1]>=0 || trOut.sjAnnot[ii-1]==1) {//junction: N + samStreamCIGAR << gapG; + samStreamCIGAR << "N"; + samStreamSJmotif <<','<< trOut.canonSJ[ii-1] + (trOut.sjAnnot[ii-1]==0 ? 0 : SJ_SAM_AnnotatedMotifShift); //record junction type +// samStreamSJannot <<','<< (int) trOut.sjAnnot[ii-1]; //record annotation type + samStreamSJintron <<','<< trOut.exons[ii-1][EX_G] + trOut.exons[ii-1][EX_L] + 1 - P->chrStart[trOut.Chr] <<','\ + << trOut.exons[ii][EX_G] - P->chrStart[trOut.Chr]; //record intron loci + } else if (gapG>0) {//deletion: N + samStreamCIGAR << gapG; + samStreamCIGAR << "D"; + }; + }; + samStreamCIGAR << trOut.exons[ii][EX_L] << "M"; + }; + + string SJmotif = samStreamSJmotif.str(); + string SJintron = samStreamSJintron.str(); +// string SJannot = samStreamSJannot.str(); + + if (SJmotif.length()==0) {//no junctions recorded, mark with -1 + SJmotif=",-1"; + SJintron=",-1"; +// SJannot=",-1"; + }; + + uint trimR1=(trOut.exons[iEx1][EX_R] 0 ) { + samStreamCIGAR << trimR1 << "S"; //final trimming + }; + CIGAR=samStreamCIGAR.str(); \ No newline at end of file diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index e79c542..a5f7cd9 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -193,7 +193,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint uint iExMate=0; //last exon of the first mate uint16 samFLAG=0; - uint leftMate=0; //the mate (0 or 1) which is on the left + bool flagPaired = P->readNmates==2; @@ -209,6 +209,15 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint nMates=0; }; + uint leftMate=0; //the mate (0 or 1) which is on the left + if (flagPaired) { + leftMate=trOut.Str; + }; + + if (P->outSAMattrPresent.MC) { + calcCIGAR(trOut, nMates, iExMate, leftMate); + }; + for (uint imate=0;imate < (alignType<0 ? nMates:P->readNmates);imate++) { uint iEx1=0; @@ -298,7 +307,6 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint }; if (flagPaired) { - leftMate=Str; samFLAG|= (Mate==0 ? 0x0040 : 0x0080); if (flagPaired && nMates==1 && mateStrand==1) samFLAG|=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) }; @@ -417,6 +425,12 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWrite('1',"ch",attrOutArray+attrN); }; break; + case ATTR_MC: + if (nMates>1) + {//chimeric alignment + attrN+=bamAttrArrayWrite(matesCIGAR[1-imate],"MC",attrOutArray+attrN); + }; + break; default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM atrribute (tag): "<0) { + samStreamCIGAR << trimL1 << "S"; //initial trimming + }; + + for (uint ii=iEx1;ii<=iEx2;ii++) { + if (ii>iEx1) {//record gaps + uint gapG=trOut.exons[ii][EX_G]-(trOut.exons[ii-1][EX_G]+trOut.exons[ii-1][EX_L]); + uint gapR=trOut.exons[ii][EX_R]-trOut.exons[ii-1][EX_R]-trOut.exons[ii-1][EX_L]; + //it's possible to have a D or N and I at the same time + if (gapR>0){ + samStreamCIGAR << gapR; + samStreamCIGAR << "I"; + }; + if (trOut.canonSJ[ii-1]>=0 || trOut.sjAnnot[ii-1]==1) {//junction: N + samStreamCIGAR << gapG; + samStreamCIGAR << "N"; + } else if (gapG>0) {//deletion: N + samStreamCIGAR << gapG; + samStreamCIGAR << "D"; + }; + }; + samStreamCIGAR << trOut.exons[ii][EX_L] << "M"; + }; + + uint trimR1=(trOut.exons[iEx1][EX_R] 0 ) { + samStreamCIGAR << trimR1 << "S"; //final trimming + }; + matesCIGAR.push_back(samStreamCIGAR.str()); + }; +}; \ No newline at end of file diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 3ee6845..b18578b 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -97,16 +97,25 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i if (readFilter=='Y') samFlagCommon+=0x200; //not passing quality control - uint samFLAG; + uint Str= trOut.Str;//note that Strand = the mate on the left uint leftMate=0; //the mate (0 or 1) which is on the left + if (flagPaired) { + leftMate=Str; + }; + + if (P->outSAMattrPresent.MC) { + calcCIGAR(trOut, nMates, iExMate, leftMate); + }; + + uint samFLAG; + for (uint imate=0;imateoutSAMattrOrder.size();ii++) { switch (P->outSAMattrOrder[ii]) { case ATTR_NH: @@ -309,6 +318,11 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i case ATTR_RG: *outStream<< "\tRG:Z:" <outSAMattrRG.at(readFilesIndex); break; + case ATTR_MC: + if (nMates>1) { + *outStream<< "\tMC:Z:" < Date: Fri, 1 Dec 2017 11:43:43 -0500 Subject: [PATCH 307/536] Passes chr22 TestSuite tests. --- Genome_genomeGenerate.cpp | 54 +++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/Genome_genomeGenerate.cpp b/Genome_genomeGenerate.cpp index 7cd36da..f0af2d1 100644 --- a/Genome_genomeGenerate.cpp +++ b/Genome_genomeGenerate.cpp @@ -147,13 +147,12 @@ void Genome::genomeGenerate() { //define some parameters from input parameters genomeChrBinNbases=1LLU << pGe.gChrBinNbits; - char *G=NULL, *G1=NULL; - uint nGenomeReal=genomeScanFastaFiles(P,G,false,*this);//first scan the fasta file to find all the sizes + uint nGenomeReal=genomeScanFastaFiles(P,NULL,false,*this);//first scan the fasta file to find all the sizes chrBinFill(); uint L=10000;//maximum length of genome suffix uint nG1alloc=(nGenomeReal + L)*2; - G1=new char[nG1alloc]; + char *G1=new char[nG1alloc]; G=G1+L; memset(G1,GENOME_spacingChar,nG1alloc);//initialize to K-1 all bytes @@ -201,15 +200,13 @@ void Genome::genomeGenerate() { if (GstrandBit<32) GstrandBit=32; //TODO: use simple access function for SA GstrandMask = ~(1LLU<logMain << "Number of SA indices: "<< nSA << "\n"<logMain << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <logMain << "SA size in bytes: "<logMain << "SA size in bytes: "<logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" < Date: Thu, 7 Dec 2017 11:59:29 -0500 Subject: [PATCH 308/536] Implemented --readFilesPrefix option for specifying prefix (e.g. directory path) for the file names in --readFilesIn . Implemented read group ID output as the last column of the Chimeric.out.junction file. --- Parameters.cpp | 3 +++ Parameters.h | 14 ++++++++------ Parameters_openReadsFiles.cpp | 15 +++++++++------ ReadAlign_chimericDetection.cpp | 5 ++++- parametersDefault | 4 ++++ parametersDefault.xxd | 17 ++++++++++++++++- 6 files changed, 44 insertions(+), 14 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index ccb2e1a..d96378e 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -50,7 +50,9 @@ Parameters::Parameters() {//initalize parameters info //read parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesType", &readFilesType)); parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesIn", &readFilesIn)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "readFilesPrefix", &readFilesPrefix)); parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesCommand", &readFilesCommand)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); parArray.push_back(new ParameterInfoVector (-1, -1, "readNameSeparator", &readNameSeparator)); @@ -927,6 +929,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (outSAMattrRG.size()>0 && !outSAMattrPresent.RG) { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); + outSAMattrPresent.RG=true; inOut->logMain << "WARNING --outSAMattrRG defines a read group, therefore STAR will output RG attribute" < readFilesType; int readFilesTypeN; - uint readMapNumber; - uint iReadAll; - int readFilesIndex; - uint32 readFilesN; + string readFilesPrefix; vector readFilesIn, readFilesInTmp; + uint32 readFilesN; vector > readFilesNames; - uint readNmates; - string readMatesLengthsIn; vector readFilesCommand; + int readFilesIndex; pid_t readFilesCommandPID[MAX_N_MATES]; + uint readMapNumber; + uint iReadAll; + uint readNmates; + string readMatesLengthsIn; + vector readNameSeparator; vector readNameSeparatorChar; diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index 51f1f9e..d2bf289 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -16,10 +16,13 @@ void Parameters::openReadsFiles() { for (uint ii=0;iireadIn[ii].is_open() ) inOut->readIn[ii].close(); - inOut->readIn[ii].open(readFilesIn.at(ii).c_str()); //try to open the Sequences file right away, exit if failed + + string rfName=(readFilesPrefix=="-" ? "" : readFilesPrefix)+readFilesIn.at(ii); + + inOut->readIn[ii].open(rfName.c_str()); //try to open the Sequences file right away, exit if failed if (inOut->readIn[ii].fail()) { ostringstream errOut; - errOut <<"EXITING because of fatal input ERROR: could not open readFilesIn=" << readFilesIn.at(ii) <<"\n"; + errOut <<"EXITING because of fatal input ERROR: could not open readFilesIn=" << rfName <<"\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; @@ -51,16 +54,16 @@ void Parameters::openReadsFiles() { readFilesN=0; do {//cycle over multiple files separated by comma pos = readFilesInString.find(','); - string file1 = readFilesInString.substr(0, pos); + string rfName = (readFilesPrefix=="-" ? "" : readFilesPrefix) + readFilesInString.substr(0, pos); readFilesInString.erase(0, pos + 1); - readFilesNames.at(imate).push_back(file1); + readFilesNames.at(imate).push_back(rfName); - system(("ls -lL " + file1 + " > "+ outFileTmp+"/readFilesIn.info 2>&1").c_str()); + system(("ls -lL " + rfName + " > "+ outFileTmp+"/readFilesIn.info 2>&1").c_str()); ifstream readFilesIn_info((outFileTmp+"/readFilesIn.info").c_str()); inOut->logMain <chrName[trChim[1].Chr] <<"\t"<< chimJ1 - P->chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat0 <<"\t"<< chimRepeat1 <<"\t"<< readName+1 \ <<"\t"<< trChim[0].exons[0][EX_G] - P->chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \ - <<"\t"<< trChim[1].exons[0][EX_G] - P->chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]) <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate + <<"\t"<< trChim[1].exons[0][EX_G] - P->chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]);//<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate + if (P->outSAMattrPresent.RG) + chunkOutChimJunction <<"\t"<< P->outSAMattrRG.at(readFilesIndex); + chunkOutChimJunction << "\n"; }; };//chimeric score };//chimeric search diff --git a/parametersDefault b/parametersDefault index 2c92923..d21ce70 100644 --- a/parametersDefault +++ b/parametersDefault @@ -119,6 +119,10 @@ readFilesType Fastx readFilesIn Read1 Read2 string(s): paths to files that contain input read1 (and, if needed, read2) +readFilesPrefix - + string: preifx for the read files names, i.e. it will be added in front of the strings in --readFilesIn + -: no prefix + readFilesCommand - string(s): command line to execute for each of the input file. This command should generate FASTA or FASTQ text and send it to stdout For example: zcat - to uncompress .gz files, bzcat - to uncompress .bz2 files, etc. diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 14a10b9..32f2c31 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -542,6 +542,21 @@ unsigned char parametersDefault[] = { 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x72, 0x65, 0x69, 0x66, 0x78, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x3a, 0x20, 0x6e, 0x6f, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, @@ -2679,4 +2694,4 @@ unsigned char parametersDefault[] = { 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 32141; +unsigned int parametersDefault_len = 32321; From 4e21924b96e2b48897f10df3a91be9419f989d0b Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 21 Dec 2017 14:08:10 -0500 Subject: [PATCH 309/536] Fixed a bug in chimeric detection code which sometimes led to uninitialized memory access. The chimeric output may change for a very small number of reads. --- ReadAlign_chimericDetection.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index b7c811d..08ceead 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -202,7 +202,9 @@ bool ReadAlign::chimericDetection() { uint jR, jRbest=0; int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - for (jR=0; jRroStart0 ? jRmax-roStart0-1 : 0; + for (jR=0; jR Date: Thu, 21 Dec 2017 15:35:14 -0500 Subject: [PATCH 310/536] Implementing WASP algorithm. --- IncludeDefine.h | 11 +- Makefile | 5 +- Parameters.cpp | 79 +- Parameters.h | 9 +- ReadAlign.cpp | 4 +- ReadAlign.h | 10 + ReadAlignChunk.cpp | 3 + ReadAlign_alignBAM.cpp | 39 +- ReadAlign_oneRead.cpp | 3 +- Transcript.h | 9 +- Transcript_variationAdjust.cpp | 25 +- Variation.cpp | 5 +- parametersDefault | 17 +- parametersDefault.xxd | 3196 ++++++++++++++++---------------- 14 files changed, 1786 insertions(+), 1629 deletions(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index 1283759..e2ab13d 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -82,10 +82,13 @@ typedef uint8_t uint8; #define ATTR_jI 8 #define ATTR_XS 9 #define ATTR_RG 10 -#define ATTR_vL 11 -#define ATTR_vT 12 -#define ATTR_ch 13 -#define ATTR_MC 14 +#define ATTR_vG 11 +#define ATTR_vA 12 +#define ATTR_vW 13 +#define ATTR_ch 14 +#define ATTR_MC 15 +#define ATTR_rB 16 + //BAM definitions #define BAM_CIGAR_MaxSize 10000 diff --git a/Makefile b/Makefile index a2dd7be..83f1d99 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,8 @@ CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS) ########################################################################################################## OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ - Transcript.o Transcript_alignScore.o Transcript_variationAdjust.o Transcript_generateCigarP.o Chain.o \ + Transcript.o Transcript_alignScore.o Transcript_generateCigarP.o Chain.o \ + Transcript_variationAdjust.o Variation.o ReadAlign_waspMap.o \ ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ ReadAlignChunk.o ReadAlignChunk_processChunks.o ReadAlignChunk_mapChunk.o \ OutSJ.o outputSJ.o blocksOverlap.o ThreadControl.o sysRemoveDir.o \ @@ -51,7 +52,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o \ - Variation.o serviceFuns.o \ + serviceFuns.o \ GlobalVariables.cpp SOURCES := $(wildcard *.cpp) $(wildcard *.c) diff --git a/Parameters.cpp b/Parameters.cpp index 955f3ad..f2bae02 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -227,6 +227,10 @@ Parameters::Parameters() {//initalize parameters info //variation parArray.push_back(new ParameterInfoScalar (-1, -1, "varVCFfile", &var.vcfFile)); + //WASP + parArray.push_back(new ParameterInfoScalar (-1, -1, "waspOutputMode", &wasp.outputMode)); + + //quant parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quant.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quant.trSAM.bamCompression)); @@ -856,6 +860,29 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters var.yes=true; }; + //WASP + wasp.yes=false; + wasp.SAMtag=false; + if (wasp.outputMode=="SAMtag") { + wasp.yes=true; + wasp.SAMtag=true; + } else if (wasp.outputMode=="None") { + //nothing to do + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented --waspOutputMode option: "<logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (wasp.yes && !var.yes) { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: --waspOutputMode option requires VCF file: "<logMain, EXIT_CODE_PARAMETER, *this); + }; + + //outSAMattributes outSAMattrPresent.NH=false;//TODO re-write as class with constructor? outSAMattrPresent.HI=false; @@ -868,10 +895,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.RG=false; outSAMattrPresent.MC=false; outSAMattrPresent.XS=false; - outSAMattrPresent.vT=false; - outSAMattrPresent.vL=false; + outSAMattrPresent.vA=false; + outSAMattrPresent.vG=false; + outSAMattrPresent.vW=false; outSAMattrPresent.ch=false; - + outSAMattrPresent.rB=false; + //for quant SAM output only NH and HI flags outSAMattrPresentQuant=outSAMattrPresent; outSAMattrPresentQuant.NH=true; @@ -882,7 +911,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters vector vAttr1; if (outSAMattributes.at(0)=="None") { } else if (outSAMattributes.at(0)=="All"){ - vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI","MC","ch"}; + vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI","rB","MC","ch"}; } else if (outSAMattributes.at(0)=="Standard"){ vAttr1={"NH","HI","AS","nM"}; } else { @@ -914,16 +943,23 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (vAttr1.at(ii)== "jI") { outSAMattrOrder.push_back(ATTR_jI); outSAMattrPresent.jI=true; - } else if (vAttr1.at(ii)== "vT") { - outSAMattrOrder.push_back(ATTR_vT); - outSAMattrPresent.vT=true; - } else if (vAttr1.at(ii)== "vL") { - outSAMattrOrder.push_back(ATTR_vL); - outSAMattrPresent.vL=true; + } else if (vAttr1.at(ii)== "vA") { + outSAMattrOrder.push_back(ATTR_vA); + outSAMattrPresent.vA=true; + } else if (vAttr1.at(ii)== "vG") { + outSAMattrOrder.push_back(ATTR_vG); + outSAMattrPresent.vG=true; + } else if (vAttr1.at(ii)== "vW") { + outSAMattrOrder.push_back(ATTR_vW); + outSAMattrPresent.vW=true; } else if (vAttr1.at(ii)== "RG") { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); outSAMattrPresent.RG=true; + } else if (vAttr1.at(ii)== "rB") { + outSAMattrOrder.push_back(ATTR_rB); + outSAMattrOrderQuant.push_back(ATTR_rB); + outSAMattrPresent.rB=true; } else if (vAttr1.at(ii)== "ch") { outSAMattrOrder.push_back(ATTR_ch); outSAMattrOrderQuant.push_back(ATTR_ch); @@ -947,14 +983,20 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; - if (!var.yes && (outSAMattrPresent.vT | outSAMattrPresent.vL)) - { + if (!var.yes && (outSAMattrPresent.vA | outSAMattrPresent.vG)) { ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETER error: --outSAMattributes contains vT and/or vL tag(s), but --varVCFfile is not set\n"; - errOut <<"SOLUTION: re-run STAR with a --varVCFfile option, or without vT/vL tags in --outSAMattributes\n"; + errOut <<"EXITING because of fatal PARAMETER error: --outSAMattributes contains vA and/or vG tag(s), but --varVCFfile is not set\n"; + errOut <<"SOLUTION: re-run STAR with a --varVCFfile option, or without vA/vG tags in --outSAMattributes\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + + if (!wasp.yes && outSAMattrPresent.vW) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETER error: --outSAMattributes contains vW tag, but --waspOutputMode is not set\n"; + errOut <<"SOLUTION: re-run STAR with a --waspOutputMode option, or without vW tags in --outSAMattributes\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (outSAMattrRG.size()>0 && !outSAMattrPresent.RG) { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); @@ -972,6 +1014,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters inOut->logMain << "WARNING --outSAMstrandField=intronMotif, therefore STAR will output XS attribute" <logMain << "WARNING --waspOutputMode is set, therefore STAR will output vW attribute" < outSAMattrOrder, outSAMattrOrderQuant; int outBAMcompression; @@ -287,6 +287,13 @@ class Parameters { bool yes; string vcfFile; } var; + + struct + { + bool yes; + bool SAMtag; + string outputMode; + } wasp; //chimeric ParametersChimeric pCh; diff --git a/ReadAlign.cpp b/ReadAlign.cpp index db48d11..eea9c9a 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -4,8 +4,8 @@ #include "ReadAlign.h" ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) - : P(Pin), mapGen(genomeIn), chunkTr(TrIn) {//allocate arrays - + : P(Pin), mapGen(genomeIn), chunkTr(TrIn) {//allocate arrays + winBin = new uintWinBin* [2]; winBin[0] = new uintWinBin [P.winBinN]; diff --git a/ReadAlign.h b/ReadAlign.h index 022b369..9d1771f 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -45,6 +45,11 @@ class ReadAlign intScore maxScoreMate[MAX_N_MATES]; uint readFilesIndex; + + ReadAlign *waspRA; //ReadAlign for alternative WASP alignment + int waspType; //alignment ASE-WASP type + + private: Parameters& P; //pointer to the parameters, will be initialized on construction @@ -136,6 +141,7 @@ class ReadAlign Transcript* trMult[MAX_N_MULTMAP];//multimapping transcripts Transcript *alignTrAll;//alignments to transcriptome + void resetN();//resets the counters to 0 void multMapSelect(); @@ -166,6 +172,10 @@ class ReadAlign uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); + + void copyRead(ReadAlign&); + void waspMap(); + }; #endif diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index e5e6c33..661e4f2 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -14,6 +14,9 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome }; RA = new ReadAlign(P, mapGen, chunkTr, iChunk);//new local copy of RA for each chunk + if (P.wasp.yes) + RA->waspRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); + RA->iRead=0; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index c9927a6..9597458 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -73,7 +73,7 @@ int bamAttrArrayWrite(string &attr, const char* tagName, char* attrArray ) { memcpy(attrArray+3,attr.c_str(),attr.size()+1);//copy string data including \0 return 3+attr.size()+1; }; -int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray ) { +int bamAttrArrayWrite(const vector &attr, const char* tagName, char* attrArray ) { attrArray[0]=tagName[0];attrArray[1]=tagName[1]; attrArray[2]='B'; attrArray[3]='c'; @@ -81,7 +81,7 @@ int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray ) memcpy(attrArray+4+sizeof(int32),attr.data(),attr.size());//copy array data return 4+sizeof(int32)+attr.size(); }; -int bamAttrArrayWrite(vector &attr, const char* tagName, char* attrArray ) { +int bamAttrArrayWrite(const vector &attr, const char* tagName, char* attrArray ) { attrArray[0]=tagName[0];attrArray[1]=tagName[1]; attrArray[2]='B'; attrArray[3]='i'; @@ -420,19 +420,40 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint break; case ATTR_RG: attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); - break; - case ATTR_vL: + break; + case ATTR_rB: + { + vector rb; + for (uint ii=iEx1;ii<=iEx2;ii++) { + rb.push_back( (int32) trOut.exons[ii][EX_R]+1 ); + rb.push_back( (int32) trOut.exons[ii][EX_R]+trOut.exons[ii][EX_L]); + rb.push_back( (int32) (trOut.exons[ii][EX_G]-mapGen.chrStart[trOut.Chr]+1) ); + rb.push_back( (int32) (trOut.exons[ii][EX_G]-mapGen.chrStart[trOut.Chr]+trOut.exons[ii][EX_L]) ); + }; + attrN+=bamAttrArrayWrite(rb,"rB",attrOutArray+attrN); + }; + break; + case ATTR_vG: + { + const vector &v1=trOut.varGenCoord; + if (v1.size()>0) + attrN+=bamAttrArrayWrite(v1,"vG",attrOutArray+attrN); + break; + }; + case ATTR_vA: { - vector v1=trOut.snpLoci; - attrN+=bamAttrArrayWrite(v1,"vL",attrOutArray+attrN); + const vector &v1=trOut.varAllele; + if (v1.size()>0) + attrN+=bamAttrArrayWrite(v1,"vA",attrOutArray+attrN); break; }; - case ATTR_vT: + case ATTR_vW: { - vector v1=trOut.snpGt; - attrN+=bamAttrArrayWrite(v1,"vT",attrOutArray+attrN); + if (waspType>=0) + attrN+=bamAttrArrayWrite( (int32) waspType, "vW", attrOutArray+attrN ); break; }; + case ATTR_ch: if (alignType<=-10) {//chimeric alignment diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index 2d94a62..61b2bd2 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -69,7 +69,8 @@ int ReadAlign::oneRead() {//process one read: load, map, write //map the read mapOneRead(); - + waspMap(); + #ifdef OFF_BEFORE_OUTPUT #warning OFF_BEFORE_OUTPUT return 0; diff --git a/Transcript.h b/Transcript.h index b11ea17..d56539c 100644 --- a/Transcript.h +++ b/Transcript.h @@ -55,11 +55,10 @@ class Transcript { uint lIns; //total genomic insertion length uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment - - - vector snpInd; - vector snpLoci; - vector snpGt; + + vector varInd; + vector varGenCoord, varReadCoord ; + vector varAllele; Transcript(); //resets to 0 void reset(); //reset to 0 diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index 6df72fe..b1a2245 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -22,23 +22,25 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R, char **Read1, cha { while (isnpVar.snp.loci[isnp]) {//these SNPs overlap the block - snpInd.push_back(isnp); //record snp index - snpLoci.push_back(Var.snp.loci[isnp]-mapGen.chrStart[Chr]); + varInd.push_back(isnp); //record snp index + varGenCoord.push_back(Var.snp.loci[isnp]-mapGen.chrStart[Chr]); + + varReadCoord.push_back(exons[ie][EX_R]+Var.snp.loci[isnp]-exons[ie][EX_G]); + char ntR=R[varReadCoord.back()];//nt of the read in the SNP position, already trnasformed to + genome strand - char ntR=R[exons[ie][EX_R]+Var.snp.loci[isnp]-exons[ie][EX_G]];//nt of the read in the SNP position, already trnasformed to + genome strand uint8 igt; for (igt=1; igt<3; igt++) - {//1st or 2nd allele + {//1st or 2nd allele, =3 of none if (Var.snp.nt[isnp][igt]==ntR) { break; }; }; - if (ntR == Var.snp.nt[isnp][0]) - {//mark snp that agrees with the reference - igt*=10; - }; - snpGt.push_back(igt); + //if (ntR == Var.snp.nt[isnp][0]) + //{//mark snp that agrees with the reference + // igt*=10; + //}; + varAllele.push_back(igt); if (igt<3 && ntR != Var.snp.nt[isnp][0]) {//non-reference allele, correct nMM and score @@ -49,7 +51,8 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R, char **Read1, cha }; }; }; - + + #define VAR_noScoreCorrection #ifndef VAR_noScoreCorrection if (nMM1>0) {//one or more mismtaches need to be corrected @@ -60,7 +63,7 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R, char **Read1, cha dScore=2*(nMMold-nMM);//score only changes if the number of mismatches is reduced after SNP adjustment }; #else - #warning VAR_noScoreCorrection set: no variation scroe correction + #warning VAR_noScoreCorrection set: no variation score correction #endif return dScore; diff --git a/Variation.cpp b/Variation.cpp index f6cb27a..3301003 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -64,6 +64,7 @@ void scanVCF(ifstream& vcf, bool load, Parameters& P, SNP& snp, vector &c } else if (altV.at( atoi(&sample.at(0)) ).at(0)==ref.at(0) && altV.at( atoi(&sample.at(2)) ).at(0)==ref.at(0)) { //both alleles are reference, no need to do anything + //this is a strange case in VCF when ALT allele(s) are equal to REF } else { if (load) @@ -89,8 +90,8 @@ void Variation::loadVCF(string fileIn) { time_t rawTime; time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... Loading variations VCF GTF\n" <logMain << timeMonthDayTime(rawTime) <<" ..... loading variations VCF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... loading variations VCF\n" <=0: start value for the IH attribute. 0 may be required by some downstream software, such as Cufflinks or StringTie. @@ -625,3 +629,8 @@ twopassMode None twopass1readsN -1 int: number of reads to process for the 1st step. Use very large number (or default -1) to map all reads in the first step. + +### WASP parameters +waspOutputMode None + string: WASP allele-specific output type + SAMtag ... add WASP tags to the alignments that pass WASP filtering diff --git a/parametersDefault.xxd b/parametersDefault.xxd index fd1910d..5d3e644 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1101,1108 +1101,848 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, - 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, + 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, - 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, - 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x63, - 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, + 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, - 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, - 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, - 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, - 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, + 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, + 0x20, 0x6a, 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x74, 0x61, 0x67, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, + 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, - 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, - 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, - 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, - 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, - 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, - 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, - 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, - 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, - 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, - 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, - 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, - 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, - 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, - 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, + 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, + 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, + 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, + 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, + 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, + 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, + 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, + 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, + 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, + 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, + 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, - 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, - 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, - 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, - 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, + 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, + 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, - 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, - 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, - 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, - 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, - 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, - 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, - 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, - 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, - 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, - 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, - 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, - 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, - 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, - 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, - 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, - 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, + 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, - 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, - 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, - 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, + 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, + 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, + 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, + 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, + 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, + 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, + 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, + 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, + 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, + 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, + 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, - 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, + 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, + 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, + 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, + 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, + 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, + 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, + 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, - 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, - 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, - 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, + 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, + 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, + 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, + 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, + 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, - 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, - 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, - 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, - 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, + 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, + 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, - 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, - 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, - 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, - 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, - 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, - 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, - 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, - 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, - 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, - 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, - 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, - 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, - 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, @@ -2211,546 +1951,856 @@ unsigned char parametersDefault[] = { 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, + 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, + 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, + 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, + 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, + 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, + 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, + 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, + 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, + 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, + 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, + 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, + 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, + 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, - 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, + 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, + 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, + 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, + 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, - 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, - 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, - 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, - 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, - 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, - 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, + 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, + 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, + 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, - 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, - 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, - 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, - 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, - 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, - 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, - 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, - 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, - 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, + 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, + 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, + 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, + 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, + 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, + 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, + 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, - 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, + 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, - 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, + 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, + 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, + 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, - 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, + 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, + 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, - 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, - 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, + 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, + 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, + 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, + 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, + 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, + 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, + 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, - 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, - 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, - 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, - 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, - 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, - 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, - 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, + 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, + 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, + 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, + 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, + 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, - 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, - 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, - 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, - 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x2e, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, + 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a }; -unsigned int parametersDefault_len = 33029; +unsigned int parametersDefault_len = 33627; From a3a4a8e33cc46cd35f4d861f0776cc3757142c54 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 21 Dec 2017 15:37:05 -0500 Subject: [PATCH 311/536] Implementing WASP algorithm. --- ReadAlign_waspMap.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 ReadAlign_waspMap.cpp diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp new file mode 100644 index 0000000..f6bd749 --- /dev/null +++ b/ReadAlign_waspMap.cpp @@ -0,0 +1,55 @@ +#include "ReadAlign.h" + +void ReadAlign::waspMap() { + waspType=-1; + if (!P.wasp.yes || nTr>1 || trBest->varAllele.size()==0) + return; + + waspRA->copyRead(*this); + waspType=0; + + if (trBest->varAllele.size()==1) { + + int iv=0; + + char nt2=mapGen.Var->snp.nt[trBest->varInd.at(iv)][3-trBest->varAllele.at(iv)]; //the other allele + //we assume the het-vars are already excluded + char nt2c=3-nt2;//complement + + uint vr=trBest->varReadCoord.at(iv);//read coordinate + uint vrr=Lread-1-vr;//reverse coordinate + Read1[0][vr] =nt2; + Read1[1][vr] =nt2c; + Read1[2][vrr]=nt2c; + + waspRA->mapOneRead(); + + if (waspRA->nTr==1 && waspRA->trBest->nExons==trBest->nExons) { + for (uint ii=0; iinExons; ii++) { + uint r= + + for (uint jj=0; jj<=2; jj++) { + if (trBest->exons[ii][jj]!=waspRA->trBest->exons[ii][jj]) + return; + }; + }; + waspType=1; + }; + } else { + waspType=2; + }; + + return; +}; + +void ReadAlign::copyRead(ReadAlign &r) {//copy read information only + Read1=r.Read1; + Qual1=r.Qual1; + + Lread=r.Lread; + readLength[0]=r.readLength[0];readLength[1]=r.readLength[1]; + readLengthOriginal[0]=r.readLengthOriginal[0];readLengthOriginal[1]=r.readLengthOriginal[1]; + readLengthPairOriginal=r.readLengthPairOriginal; + outFilterMismatchNmaxTotal=r.outFilterMismatchNmaxTotal; + +}; \ No newline at end of file From 498bdbf760c470f5fe9211bed06b4a5fe49f5230 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 22 Dec 2017 17:18:16 -0500 Subject: [PATCH 312/536] Implementing WASP algorithm. --- ReadAlign_alignBAM.cpp | 2 +- ReadAlign_waspMap.cpp | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 9597458..66c9fb9 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -449,7 +449,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint }; case ATTR_vW: { - if (waspType>=0) + if (waspType!=-1) attrN+=bamAttrArrayWrite( (int32) waspType, "vW", attrOutArray+attrN ); break; }; diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp index a3354c0..783cad6 100644 --- a/ReadAlign_waspMap.cpp +++ b/ReadAlign_waspMap.cpp @@ -11,6 +11,11 @@ void ReadAlign::waspMap() { if (trBest->varAllele.size()==1) { int iv=0; + + if (trBest->varAllele.at(iv)>2) {//mismatched allele, i.e. !=A1 && !=A2 + waspType=-2; + return; + }; //we assume the homo-vars are already excluded char nt2=mapGen.Var->snp.nt[trBest->varInd.at(iv)][3-trBest->varAllele.at(iv)]; //the other allele @@ -38,7 +43,15 @@ void ReadAlign::waspMap() { waspType=1; }; } else { - waspType=2; + if (trBest->varAllele.size()==2 && trBest->varGenCoord.at(0)==trBest->varGenCoord.at(1)) { + if (trBest->varAllele.at(0)==trBest->varAllele.at(1)) { + waspType=2; + } else { + waspType=20; + }; + } else { + waspType=3; + }; }; return; From 04c1f11ffc72791923e6d37659f5d47e9329e1b4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 28 Dec 2017 14:26:10 -0500 Subject: [PATCH 313/536] Implementing WASP algorithm. --- ReadAlign.h | 2 +- ReadAlign_waspMap.cpp | 85 ++++++++++++++++++++++--------------------- 2 files changed, 45 insertions(+), 42 deletions(-) diff --git a/ReadAlign.h b/ReadAlign.h index 9d1771f..e4a6163 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -47,7 +47,7 @@ class ReadAlign uint readFilesIndex; ReadAlign *waspRA; //ReadAlign for alternative WASP alignment - int waspType; //alignment ASE-WASP type + int waspType, waspType1; //alignment ASE-WASP type and private: diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp index 783cad6..ceed515 100644 --- a/ReadAlign_waspMap.cpp +++ b/ReadAlign_waspMap.cpp @@ -7,53 +7,56 @@ void ReadAlign::waspMap() { waspRA->copyRead(*this); waspType=0; + + vector vA=trBest->varAllele; - if (trBest->varAllele.size()==1) { - - int iv=0; - - if (trBest->varAllele.at(iv)>2) {//mismatched allele, i.e. !=A1 && !=A2 - waspType=-2; - return; + vector> vvA {{}}; //all combinations + for (const auto& u : vA) {//cycle over vars, each time add new variant by adding 2 variants to each of the existing combinations + vector> r; //temp + for (const auto& x : vvA) { + for (const auto& y:{1,2}) { + r.push_back(x); + r.back().push_back(y); + }; }; + vvA=move(r); + }; - //we assume the homo-vars are already excluded - char nt2=mapGen.Var->snp.nt[trBest->varInd.at(iv)][3-trBest->varAllele.at(iv)]; //the other allele - uint vr=trBest->varReadCoord.at(iv);//read coordinate - - if (trBest->Str==1) {//variant was found on the - strand alignment - nt2=3-nt2; - vr=Lread-1-vr; - }; - waspRA->Read1[0][vr] =nt2; - waspRA->Read1[1][vr] =3-nt2; - waspRA->Read1[2][Lread-1-vr]=3-nt2; - - waspRA->mapOneRead(); - - if (waspRA->unmapType==-1 && waspRA->nTr==1 && waspRA->trBest->nExons==trBest->nExons) { - for (uint ii=0; iinExons; ii++) { -// uint r= - - for (uint jj=0; jj<=2; jj++) { - if (trBest->exons[ii][jj]!=waspRA->trBest->exons[ii][jj]) - return; + + for (const auto& vA1 : vvA) {//cycle over all combinations + + if (vA1==vA) + continue; //this combination was already mapped as the real read + + for (uint iv=0; ivsnp.nt[trBest->varInd.at(iv)][vA1.at(iv)]; //the other allele + uint vr=trBest->varReadCoord.at(iv);//read coordinate + + if (trBest->Str==1) {//variant was found on the - strand alignment + nt2=3-nt2; + vr=Lread-1-vr; }; + waspRA->Read1[0][vr] =nt2; + waspRA->Read1[1][vr] =3-nt2; + waspRA->Read1[2][Lread-1-vr]=3-nt2; }; - waspType=1; - }; - } else { - if (trBest->varAllele.size()==2 && trBest->varGenCoord.at(0)==trBest->varGenCoord.at(1)) { - if (trBest->varAllele.at(0)==trBest->varAllele.at(1)) { - waspType=2; + + waspRA->mapOneRead(); + + if (waspRA->unmapType==-1 && waspRA->nTr==1 && waspRA->trBest->nExons==trBest->nExons) { + for (uint ii=0; iinExons; ii++) { + for (uint jj=0; jj<=2; jj++) { + if (trBest->exons[ii][jj]!=waspRA->trBest->exons[ii][jj]) + return;//this combination maps to a different place, return with waspType 0 (set above) + }; + }; } else { - waspType=20; + return;//this combination does not map, or multi-maps, or has a different number of exons, return with waspType=0 (set above) }; - } else { - waspType=3; - }; - }; - + }; + waspType=1; //all combinations resulted in the same alignment return; }; @@ -68,4 +71,4 @@ void ReadAlign::copyRead(ReadAlign &r) {//copy read information only memcpy(Read1[ii],r.Read1[ii],Lread);//need to copy since it will be changed Qual1=r.Qual1; -}; \ No newline at end of file +}; From 210deaefc59a081fb56730e169e4eda052bb69a7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 1 Jan 2018 16:48:31 -0500 Subject: [PATCH 314/536] Added variant allele=4 for variant read base=N. Added various waspType values. --- ReadAlign_waspMap.cpp | 39 ++++++++++++++++++++++++++++------ Transcript_variationAdjust.cpp | 14 +++++++----- stitchAlignToTranscript.cpp | 2 +- 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp index ceed515..253c6d2 100644 --- a/ReadAlign_waspMap.cpp +++ b/ReadAlign_waspMap.cpp @@ -1,14 +1,30 @@ #include "ReadAlign.h" void ReadAlign::waspMap() { - waspType=-1; - if (!P.wasp.yes || nTr>1 || trBest->varAllele.size()==0) + if (!P.wasp.yes || nTr>1 || trBest->varAllele.size()==0) {//no variants, vW tag will not be output + waspType=-1; return; + } else if (nTr>1) {//multimapping read + waspType=2; + return; + } else if (trBest->varAllele.size()>10) {//multimapping read + waspType=7; + return; + }; + waspRA->copyRead(*this); - waspType=0; vector vA=trBest->varAllele; + + for (const auto& a : vA) { + if (a>3) {//read has N for the variant, drop it + waspType=3; + return; + }; + }; + + vector> vvA {{}}; //all combinations for (const auto& u : vA) {//cycle over vars, each time add new variant by adding 2 variants to each of the existing combinations @@ -45,15 +61,24 @@ void ReadAlign::waspMap() { waspRA->mapOneRead(); - if (waspRA->unmapType==-1 && waspRA->nTr==1 && waspRA->trBest->nExons==trBest->nExons) { + if (waspRA->unmapType!=-1) { + waspType=4; + return; + } else if (waspRA->nTr>1) { + waspType=5; + return; + } else if (waspRA->trBest->nExons!=trBest->nExons) { + waspType=6; + return; + } else { for (uint ii=0; iinExons; ii++) { for (uint jj=0; jj<=2; jj++) { - if (trBest->exons[ii][jj]!=waspRA->trBest->exons[ii][jj]) + if (trBest->exons[ii][jj]!=waspRA->trBest->exons[ii][jj]) { + waspType=6; return;//this combination maps to a different place, return with waspType 0 (set above) + }; }; }; - } else { - return;//this combination does not map, or multi-maps, or has a different number of exons, return with waspType=0 (set above) }; }; waspType=1; //all combinations resulted in the same alignment diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index b1a2245..b182117 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -29,17 +29,21 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R, char **Read1, cha char ntR=R[varReadCoord.back()];//nt of the read in the SNP position, already trnasformed to + genome strand uint8 igt; - for (igt=1; igt<3; igt++) - {//1st or 2nd allele, =3 of none - if (Var.snp.nt[isnp][igt]==ntR) - { - break; + if (ntR>3) { + igt=4; + } else { + for (igt=1; igt<3; igt++) {//1st or 2nd allele, =3 of none + if (Var.snp.nt[isnp][igt]==ntR) { + break; + }; }; }; + //if (ntR == Var.snp.nt[isnp][0]) //{//mark snp that agrees with the reference // igt*=10; //}; + varAllele.push_back(igt); if (igt<3 && ntR != Var.snp.nt[isnp][0]) diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 58886ae..9b53e75 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -267,7 +267,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst Score1+=( R[rAend+Ins+jR1]==G[gAend+jR1] ) ? -int(Q[rAend+Ins+jR1]):+int(Q[rAend+Ins+jR1]); }; - if (Score1>maxScore1) { + if (Score1>maxScore1) {//TODO: equal sign (>=) would flush insertions to the right. Also need to do it even if gGap<=0 maxScore1=Score1; jR=jR1; }; From 7316edcdf6822ec6f9b7ee07b89ff3992fee658c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 3 Jan 2018 14:49:41 -0500 Subject: [PATCH 315/536] Initial test release of WASP filtering. --- parametersDefault | 7 +- parametersDefault.xxd | 3225 +++++++++++++++++++++-------------------- 2 files changed, 1631 insertions(+), 1601 deletions(-) diff --git a/parametersDefault b/parametersDefault index fc06325..6e2832c 100644 --- a/parametersDefault +++ b/parametersDefault @@ -240,9 +240,10 @@ outSAMstrandField None outSAMattributes Standard string: a string of desired SAM attributes, in the order desired for the output SAM NH HI AS nM NM MD jM jI XS MC ch ... any combination in any order + None ... no attributes Standard ... NH HI AS nM All ... NH HI AS nM NM MD jM jI MC ch - None ... no attributes + rB ... alignment block read/genomic coordinates vW ... 0/1 - alignment does not pass / passes WASP filtering. Requires --waspOutputMode SAMtag . vG ... genomic coordiante of the variant overlapped by the read vR ... read coordinate of the variant @@ -631,6 +632,6 @@ twopass1readsN -1 ### WASP parameters -waspOutputMode None - string: WASP allele-specific output type +waspOutputMode None + string: WASP allele-specific output type. This is re-implemenation of the original WASP mappability filtering by Bryce van de Geijn, Graham McVicker, Yoav Gilad & Jonathan K Pritchard. Please cite the original WASP paper: Nature Methods 12, 1061–1063 (2015), https://www.nature.com/articles/nmeth.3582 . SAMtag ... add WASP tags to the alignments that pass WASP filtering diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 5d3e644..b396777 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1107,1700 +1107,1729 @@ unsigned char parametersDefault[] = { 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, - 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, - 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, - 0x20, 0x6a, 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, + 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, + 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, + 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x74, 0x61, 0x67, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, - 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, - 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, - 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, + 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, + 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x61, 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, + 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, + 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, - 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, - 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, + 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, + 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, - 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, - 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, - 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, - 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, - 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, - 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, - 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, + 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, + 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, + 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, + 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, + 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, + 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, + 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, + 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, + 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, + 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, + 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, - 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, - 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, - 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, - 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, - 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, - 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, - 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, - 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, - 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, - 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, - 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, - 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, + 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, + 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, + 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, + 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, + 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, + 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, + 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, + 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, + 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, + 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, + 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, - 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, - 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, - 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, + 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, + 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, + 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, + 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, + 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, - 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, - 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, - 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, + 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, + 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, - 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, - 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, - 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, - 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, - 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, - 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, + 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, + 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, + 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, + 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, - 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, + 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, + 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, + 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, + 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, - 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, - 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, - 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, - 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, - 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, - 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, + 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, + 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, - 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, - 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, - 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, + 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, - 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, - 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, + 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, - 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, - 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, + 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, + 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, + 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, + 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, + 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, + 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, - 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, + 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, - 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, - 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, + 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, + 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, + 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, + 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, + 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, - 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, + 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, + 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, + 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, + 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, - 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, - 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, - 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, + 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, + 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, + 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, + 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, + 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, - 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, - 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, - 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, - 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, - 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, - 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, - 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, - 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, + 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, - 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, - 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, + 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, + 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, + 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, - 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, + 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, + 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, + 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, - 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, - 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, - 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, - 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, - 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, - 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, - 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, - 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, - 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, + 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, + 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, + 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, + 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, + 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, + 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, - 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, - 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, - 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, - 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, - 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, - 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, - 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, - 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, - 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, + 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, - 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, + 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, + 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, + 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, - 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, - 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, - 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, - 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, - 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, - 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, + 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, - 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, - 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, - 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, - 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, + 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, + 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, + 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, + 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, - 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, - 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, - 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, - 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, - 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, + 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, + 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, - 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, - 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, + 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, + 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, + 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, + 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, + 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, + 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, + 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, + 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, + 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, + 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, + 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, + 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a }; -unsigned int parametersDefault_len = 33627; +unsigned int parametersDefault_len = 33977; From dd7566ef931b9ba7122f6260a6998c91b8804920 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 5 Jan 2018 00:28:52 -0500 Subject: [PATCH 316/536] For BAM to signal conversion, process alignments without NH tags as unique (i.e. NH=1). --- signalFromBAM.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/signalFromBAM.cpp b/signalFromBAM.cpp index 565787d..810e3ce 100644 --- a/signalFromBAM.cpp +++ b/signalFromBAM.cpp @@ -140,8 +140,13 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter //NH attribute uint8_t* aNHp=bam_aux_get(bamA,"NH"); - if (aNHp==NULL) continue; //do not process lines without NH field - uint32_t aNH=bam_aux2i(bam_aux_get(bamA,"NH")); //write a safer function allowing for lacking NH tag + uint32_t aNH; + if (aNHp==NULL) { + aNH=1; //no NH tag: assume NH=1 + //continue; //do not process lines without NH field + } else { + aNH=bam_aux2i(bam_aux_get(bamA,"NH")); //write a safer function allowing for lacking NH tag + }; if (aNH==0) continue; //do not process lines without NH=0 uint32_t aG=bamA->core.pos; uint32_t iStrand=0; From bbd1139979ebc442cf50f54a5cdb9bde877c96e2 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 9 Jan 2018 12:14:15 -0500 Subject: [PATCH 317/536] Implemented --outBAMsortingBinsN option to control the number of sorting bins. Icnreasing this number reduces the amount of RAM required for sorting. --- BAMbinSortUnmapped.cpp | 12 +- Parameters.cpp | 3 +- Parameters.h | 1 + STAR.cpp | 2 +- parametersDefault | 3 + parametersDefault.xxd | 2555 ++++++++++++++++++++-------------------- 6 files changed, 1294 insertions(+), 1282 deletions(-) diff --git a/BAMbinSortUnmapped.cpp b/BAMbinSortUnmapped.cpp index 24ac1bc..25f5e36 100644 --- a/BAMbinSortUnmapped.cpp +++ b/BAMbinSortUnmapped.cpp @@ -12,11 +12,11 @@ void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgz vector bamInFile; std::map startPos; - for (uint it=0; it bamSize(bamInFile.size(),0); + vector bamSize(bamInFile.size(),0);//record sizes //allocate arrays char **bamIn=new char* [bamInFile.size()]; @@ -25,13 +25,13 @@ void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgz for (uint it=0; it (-1, -1, "outSAMheaderCommentFile", &outSAMheaderCommentFile)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMcompression", &outBAMcompression)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMsortingThreadN", &outBAMsortingThreadN)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outBAMsortingBinsN", &outBAMsortingBinsN)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMfilter", &outSAMfilter.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmultNmax", &outSAMmultNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMattrIHstart", &outSAMattrIHstart)); @@ -601,7 +602,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { outBAMsortingThreadNactual=outBAMsortingThreadN; }; - outBAMcoordNbins=max(outBAMsortingThreadNactual*3,10); + outBAMcoordNbins=max((uint32)outBAMsortingThreadNactual*3,outBAMsortingBinsN); outBAMsortingBinStart= new uint64 [outBAMcoordNbins]; outBAMsortingBinStart[0]=1;//this initial value means that the bin sizes have not been determined yet diff --git a/Parameters.h b/Parameters.h index 98d74e3..b8261a1 100644 --- a/Parameters.h +++ b/Parameters.h @@ -135,6 +135,7 @@ class Parameters { vector outSAMtype; bool outBAMunsorted, outBAMcoord, outSAMbool; uint32 outBAMcoordNbins; + uint32 outBAMsortingBinsN;//user-defined number of bins for sorting string outBAMsortTmpDir; // string bamRemoveDuplicatesType; diff --git a/STAR.cpp b/STAR.cpp index bbcd1b2..836a6b2 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -375,7 +375,7 @@ int main(int argInN, char* argIn[]) { //check max size needed for sorting uint maxMem=0; - for (uint32 ibin=0; ibinchunkOutBAMcoord->binTotalBytes[ibin]+24*RAchunk[it]->chunkOutBAMcoord->binTotalN[ibin]; diff --git a/parametersDefault b/parametersDefault index 6e2832c..9985e7c 100644 --- a/parametersDefault +++ b/parametersDefault @@ -315,6 +315,9 @@ outBAMcompression 1 outBAMsortingThreadN 0 int: >=0: number of threads for BAM sorting. 0 will default to min(6,--runThreadN). +outBAMsortingBinsN 50 + int: >0: number of genome bins fo coordinate-sorting + ### BAM processing bamRemoveDuplicatesType - diff --git a/parametersDefault.xxd b/parametersDefault.xxd index b396777..d06f8ae 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1494,1342 +1494,1349 @@ unsigned char parametersDefault[] = { 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, - 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, - 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, - 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, - 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, - 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, - 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, + 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, - 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, - 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, - 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, - 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, + 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, + 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, + 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, + 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, - 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, - 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, - 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, - 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, + 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, + 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, - 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, - 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, - 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, + 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, + 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, + 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, - 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, - 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, - 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, + 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, + 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, + 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, - 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, - 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, - 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, - 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, - 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, - 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, - 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, + 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, + 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, - 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, + 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, + 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, + 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, + 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, + 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, + 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, + 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, + 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, + 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, - 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, - 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, - 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, - 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, - 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, + 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, + 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, + 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, + 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, + 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, + 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, + 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, + 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, + 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, - 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, - 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, + 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, - 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, - 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, - 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, - 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, + 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, + 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, - 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, - 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, - 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, - 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, - 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, - 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, + 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, + 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, + 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, + 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, + 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, + 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, - 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, - 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, - 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, - 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, - 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, - 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, - 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, + 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, + 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, + 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, + 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, - 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, - 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, + 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, + 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, + 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, + 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, - 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, + 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, + 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, + 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, + 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, - 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, - 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, - 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, - 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, - 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, - 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, - 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, - 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, - 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, - 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, - 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, - 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, - 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, - 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, - 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, - 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, - 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a + 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, + 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, + 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, + 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, + 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, + 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, + 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, + 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, + 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, + 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, + 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, + 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, + 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, + 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, + 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, + 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a }; -unsigned int parametersDefault_len = 33977; +unsigned int parametersDefault_len = 34063; From c889d3f273a33257e904fe3bba6cee09f5b608e6 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 17 Jan 2018 16:29:21 -0500 Subject: [PATCH 318/536] Fixed vW:i:2 type to mark multimappers that overlap variants. Recompiled executables. --- ReadAlign_waspMap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp index 253c6d2..755ad34 100644 --- a/ReadAlign_waspMap.cpp +++ b/ReadAlign_waspMap.cpp @@ -1,7 +1,7 @@ #include "ReadAlign.h" void ReadAlign::waspMap() { - if (!P.wasp.yes || nTr>1 || trBest->varAllele.size()==0) {//no variants, vW tag will not be output + if (!P.wasp.yes || trBest->varAllele.size()==0) {//no variants, vW tag will not be output waspType=-1; return; } else if (nTr>1) {//multimapping read From 3f51800616bb3458a8df1ccf8e71e77eb661e6e4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 23 Jan 2018 14:58:58 -0500 Subject: [PATCH 319/536] 2.5.4a --- Makefile | 2 +- VERSION | 2 +- sjdbPrepare.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 74896d2..027606f 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifneq ($(MAKECMDGOALS),STARforMac) ifneq ($(MAKECMDGOALS),STARforMacGDB) Depend.list: $(SOURCES) parametersDefault.xxd htslib echo $(SOURCES) - /bin/rm -f ./Depend.list + 'rm' -f ./Depend.list $(CXX) $(CXXFLAGS_common) -MM $^ >> Depend.list include Depend.list endif diff --git a/VERSION b/VERSION index ac42101..fdfdda9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.3a_modified" +#define STAR_VERSION "STAR_2.5.4a" diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index f0f75e4..99fb3d0 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -21,7 +21,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o if (iChr>=P->nChrReal) { ostringstream errOut; errOut << "EXITING because of FATAL error, the sjdb chromosome " << sjdbLoci.chr.at(ii) << " is not found among the genomic chromosomes\n"; - errOut << "SOLUTION: fix your file(s) --sjdbFileChrStartEnd, offending junciton:" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; chrOld=sjdbLoci.chr.at(ii); From ea90fe045fc228c4b497d0cf379cb12b26f3a4fc Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 25 Jan 2018 12:49:27 -0500 Subject: [PATCH 320/536] Fixed a problem with non-default --sjdbOverhang genome generation. --- Genome.cpp | 9 ++------- OutSJ.cpp | 9 ++++++--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 1dc8d8a..4d016bf 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -26,12 +26,7 @@ #define SHM_projectID 23 Genome::Genome (Parameters &Pin ): P(Pin), pGe(Pin.pGe), shmStart(NULL), sharedMemory(NULL) { - shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); - - //final pGe.sjdbOverhang value has been determined - sjdbOverhang = pGe.sjdbOverhang; - sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; - + shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); }; Genome::~Genome() @@ -166,9 +161,9 @@ void Genome::genomeLoad(){//allocate and load Genome exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; + sjdbOverhang = pGe.sjdbOverhang; sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; - P.inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<> P.pGe.gChrBinNbits]; + uint sjChr=mapGen.chrBin[*start >> mapGen.pGe.gChrBinNbits]; outStream << mapGen.chrName.at(sjChr) <<"\t"<< *start + 1 - mapGen.chrStart[sjChr] <<"\t"<<*start + *gap - mapGen.chrStart[sjChr] \ <<"\t"<< int(*strand) <<"\t"<< int(*motif) <<"\t"<< int (*annot) <<"\t"<< *countUnique <<"\t"<< *countMultiple \ <<"\t"<< *overhangLeft << endl; @@ -92,9 +92,12 @@ void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters& P) {//collapse }; if (*(isj1P+motifP) != *(isjP+motifP) ) { + uint s1=*(uint*)(isj1P+startP); + uint c1=mapGen.chrBin[ s1 >> mapGen.pGe.gChrBinNbits]; + stringstream errOut; errOut <<"EXITING becaues of BUG: different motifs for the same junction while collapsing junctions\n" \ - <<*(uint*)(isj1P+startP) <<" "<<*(uint32*)(isj1P+gapP) <<" "<logMain, EXIT_CODE_BUG, P);\ // *(isj1P+motifP) = *(isjP+motifP) ; From de4bffba22b79152358394d56684c9250ff6a09c Mon Sep 17 00:00:00 2001 From: Sascha Steinbiss Date: Fri, 26 Jan 2018 13:58:35 +0100 Subject: [PATCH 321/536] spelling fixes --- Genome.cpp | 4 ++-- parametersDefault | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index eb660f6..af20811 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -516,7 +516,7 @@ void Genome::genomeLoad(){//allocate and load Genome P->winBinNbits = (uint) floor( log2( max( max(4LLU,P->alignIntronMax), (P->alignMatesGapMax==0 ? 1000LLU : P->alignMatesGapMax) ) /4 ) + 0.5); P->winBinNbits = max( P->winBinNbits, (uint) floor(log2(P->nGenome/40000+1)+0.5) ); //ISSUE - to be fixed in STAR3: if alignIntronMax>0 but alignMatesGapMax==0, winBinNbits will be defined by alignIntronMax - P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" redefined winBinNbits="<< P->winBinNbits <inOut->logMain << "To accommodate alignIntronMax="<alignIntronMax<<" redefined winBinNbits="<< P->winBinNbits <winBinNbits > P->genomeChrBinNbits) { @@ -531,7 +531,7 @@ void Genome::genomeLoad(){//allocate and load Genome //redefine winFlankNbins,winAnchorDistNbins P->winFlankNbins=max(P->alignIntronMax,P->alignMatesGapMax)/(1LLU<winBinNbits)+1; P->winAnchorDistNbins=2*P->winFlankNbins; - P->inOut->logMain << "To accomodate alignIntronMax="<alignIntronMax<<" and alignMatesGapMax="<alignMatesGapMax<<\ + P->inOut->logMain << "To accommodate alignIntronMax="<alignIntronMax<<" and alignMatesGapMax="<alignMatesGapMax<<\ ", redefined winFlankNbins="<winFlankNbins<<" and winAnchorDistNbins="<winAnchorDistNbins<=0: minimum total (summed) score of the chimeric segments chimScoreDropMax 20 - int>=0: max drop (difference) of chimeric score (the sum of scores of all chimeric segements) from the read length + int>=0: max drop (difference) of chimeric score (the sum of scores of all chimeric segments) from the read length chimScoreSeparation 10 int>=0: minimum difference (separation) between the best chimeric score and the next one From 30a79fd0eeb9511ff35f3f01b8858de36ff24c93 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 29 Jan 2018 11:28:56 -0500 Subject: [PATCH 322/536] Implemented merging and re-mapping for overlapping mates. To control it, use --peOverlapNbasesMin and --peOverlapMMp oprions. --- Genome.cpp | 3 + Makefile | 5 +- Parameters.cpp | 65 +- Parameters.h | 7 + ParametersChimeric.h | 2 + ReadAlign.cpp | 15 +- ReadAlign.h | 35 +- ReadAlignChunk.cpp | 17 +- ReadAlign_chimericDetection.cpp | 25 +- ReadAlign_chimericDetectionOld.cpp | 650 +++---- ReadAlign_chimericDetectionOldOutput.cpp | 139 ++ ReadAlign_chimericDetectionPEmerged.cpp | 95 + ReadAlign_mapOneRead.cpp | 23 +- ReadAlign_mappedFilter.cpp | 21 + ReadAlign_multMapSelect.cpp | 6 +- ReadAlign_oneRead.cpp | 21 +- ReadAlign_outputAlignments.cpp | 12 - ReadAlign_peOverlapMergeMap.cpp | 211 +++ ReadAlign_stitchPieces.cpp | 10 +- STAR.cpp | 10 +- Transcript.cpp | 4 +- Transcript.h | 9 +- Transcript_alignScore.cpp | 2 + parametersDefault | 28 +- parametersDefault.xxd | 2121 +++++++++++----------- 25 files changed, 1955 insertions(+), 1581 deletions(-) create mode 100644 ReadAlign_chimericDetectionOldOutput.cpp create mode 100644 ReadAlign_chimericDetectionPEmerged.cpp create mode 100644 ReadAlign_mappedFilter.cpp create mode 100644 ReadAlign_peOverlapMergeMap.cpp diff --git a/Genome.cpp b/Genome.cpp index 4d016bf..ee9a958 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -27,6 +27,9 @@ Genome::Genome (Parameters &Pin ): P(Pin), pGe(Pin.pGe), shmStart(NULL), sharedMemory(NULL) { shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); + + sjdbOverhang = pGe.sjdbOverhang; //will be re-defined later if another value was used for the generated genome + sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; }; Genome::~Genome() diff --git a/Makefile b/Makefile index 692411d..35b4dc2 100644 --- a/Makefile +++ b/Makefile @@ -40,8 +40,9 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o ReadAlign_calcCIGAR.cpp \ ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ ReadAlign_stitchWindowSeeds.o \ - ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o \ - ChimericDetection.o ChimericDetection_chimericDetectionMult.o \ + ReadAlign_peOverlapMergeMap.o ReadAlign_mappedFilter.o \ + ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionOldOutput.o\ + ChimericDetection.o ChimericDetection_chimericDetectionMult.o ReadAlign_chimericDetectionPEmerged.o \ ChimericSegment.cpp ChimericAlign.cpp ChimericAlign_chimericJunctionOutput.o ChimericAlign_chimericStitching.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ Genome_genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ diff --git a/Parameters.cpp b/Parameters.cpp index 338e0f4..a465da6 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -197,7 +197,10 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoVector (-1, -1, "alignEndsProtrude", &alignEndsProtrude.in)); - + //peOverlap + parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapNbasesMin", &peOverlap.NbasesMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapMMp", &peOverlap.MMp)); + //chimeric parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &pCh.segmentMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &pCh.scoreMin)); @@ -1023,17 +1026,27 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //chimeric - if (pCh.out.type.at(0)=="WithinBAM") - { - pCh.out.bam=true; - } else if (pCh.out.type.at(0)=="SeparateSAMold") - { - pCh.out.bam=false; - } else{ - ostringstream errOut; - errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for the first word of --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); + pCh.out.bam=false; + pCh.out.junctions=false; + pCh.out.samOld=false; + pCh.out.bamHardClip=true;//default + for (const auto& type1 : pCh.out.type) { + if (type1=="WithinBAM") { + pCh.out.bam=true; + } else if (pCh.out.type.at(0)=="SeparateSAMold") { + pCh.out.samOld=true; + } else if (pCh.out.type.at(0)=="Junctions") { + pCh.out.junctions=true; + } else if (type1=="HardClip") { + pCh.out.bamHardClip=true; + } else if (type1=="SoftClip") { + pCh.out.bamHardClip=false; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); + }; }; if (pCh.out.bam && !outBAMunsorted && !outBAMcoord) { @@ -1047,28 +1060,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrOrder.push_back(ATTR_NM); inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <1) - { - if (pCh.out.type.at(1)=="HardClip") - { - pCh.out.bamHardClip=true; - } else if (pCh.out.type.at(1)=="SoftClip") - { - pCh.out.bamHardClip=false; - } else { - ostringstream errOut; - errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for the 2nd word of --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - }; - + pCh.filter.genomicN=false; for (uint ii=0; ii0) { + peOverlap.yes=true; + }; + //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" < type; bool bam; bool bamHardClip; + bool samOld; + bool junctions; } out; private: }; diff --git a/ReadAlign.cpp b/ReadAlign.cpp index eea9c9a..c355869 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -5,7 +5,9 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) : P(Pin), mapGen(genomeIn), chunkTr(TrIn) {//allocate arrays - + + readNmates=P.readNmates; + winBin = new uintWinBin* [2]; winBin[0] = new uintWinBin [P.winBinN]; @@ -112,7 +114,7 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, in void ReadAlign::resetN () {//reset resets the counters to 0 for a new read mapMarker=0; nA=0;nP=0;nW=0; - nTr=0;nTrMate=0;nextWinScore=0; + nTr=0;nTrMate=0; nUM[0]=0;nUM[1]=0; storedLmin=0; uniqLmax=0; uniqLmaxInd=0; multLmax=0; multLmaxN=0; multNminL=0; multNmin=0; multNmax=0; multNmaxL=0; chimN=0; @@ -125,12 +127,3 @@ void ReadAlign::resetN () {//reset resets the counters to 0 for a new read }; -void ReadAlign::outTxtMain(ofstream* outTxt, Transcript& t) { - - *outTxt << setw(10) << iRead+1 << setw(7) << nTr <<" "\ - << setw(7) << t.roStart << setw(7) << t.rLength << setw(12) << nW << setw(10)<< mapMarker << "\t" << t.maxScore << setw(7) << nextWinScore << setw(7) << t.nextTrScore <<" " \ - << setw(7) << t.nMatch << setw(7) << t.nMM <<" "\ - << setw(7) << t.nGap << setw(10) << t.lGap << setw(7) << t.nDel << setw(7) << t.lDel; - - *outTxt << "\n"; -}; diff --git a/ReadAlign.h b/ReadAlign.h index e4a6163..bf012c5 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -49,6 +49,7 @@ class ReadAlign ReadAlign *waspRA; //ReadAlign for alternative WASP alignment int waspType, waspType1; //alignment ASE-WASP type and + ReadAlign *peMergeRA; //ReadAlign for merged PE mates private: Parameters& P; //pointer to the parameters, will be initialized on construction @@ -98,6 +99,7 @@ class ReadAlign char* readName; char** Qual1; //modified QSs for scoring + uint readNmates; //split uint** splitR; uint Nsplit; @@ -124,25 +126,32 @@ class ReadAlign uint storedLmin, uniqLmax, uniqLmaxInd, multLmax, multLmaxN, multNmin, multNminL, multNmax, multNmaxL; uint nTr, nTrMate; // number of transcripts called - intScore maxScore, nextWinScore;//maximum alignment score, next best score - - Transcript trA, trA1, *trBest, *trNext, *trInit; //transcript, best tr, next best tr, initialized tr + intScore maxScore;//maximum alignment score + + Transcript trA, trA1, *trBest, *trInit; //transcript, best tr, next best tr, initialized tr Transcript ***trAll; //all transcripts for all windows uint *nWinTr; //number of recorded transcripts per window //old chimeric detection - uint chimN, chimRepeat, chimStr, chimMotif; + uint chimN, chimRepeat, chimStr; + int chimMotif; + uint chimRepeat0, chimRepeat1, chimJ0, chimJ1; Transcript trChim[MAX_N_CHIMERAS]; //new chimeric detection ChimericDetection *chimDet; - + bool chimRecord; //true if chimeric aligment was detected Transcript *alignC, *extendC, *polyAtailC; //alignment rules/conditions Transcript* trMult[MAX_N_MULTMAP];//multimapping transcripts Transcript *alignTrAll;//alignments to transcriptome - + struct { + bool yes; + uint nOv;//number of overlapping bases + uint ovS;//first read base of the overlap + } peOv;//PE mates overlap/merge/remap structure + void resetN();//resets the counters to 0 void multMapSelect(); int mapOneRead(); @@ -156,25 +165,31 @@ class ReadAlign void outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ *outStream, uint sjReadStartN ); string outputTranscriptCIGARp(Transcript const &trOut); - void outTxtMain(ofstream*,Transcript&); int createExtendWindowsWithAlign(uint a1, uint aStr); //extends and windows with one alignment void assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep, uint aFrag, uint aRstart,bool aAnchor, uint sjA); //assigns one alignment to a window - bool chimericDetection(); + void mappedFilter(); + void chimericDetection(); bool chimericDetectionOld(); + void chimericDetectionOldOutput(); bool chimericDetectionMult(); - + void chimericDetectionPEmerged(ReadAlign &seRa); +// void chimericDetectionPEmergedTrim(); + void outputAlignments(); void calcCIGAR(Transcript const &trOut, uint nMates, uint iExMate, uint leftMate); void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q);//stitches all seeds in one window: iW void stitchPieces(char **R, char **Q, uint Lread); - uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); void copyRead(ReadAlign&); void waspMap(); + void peOverlapMergeMap(); + void peMergeMates(); + void peOverlapSEtoPE(ReadAlign &seRA); + }; diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 661e4f2..d03b6d2 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -14,10 +14,13 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome }; RA = new ReadAlign(P, mapGen, chunkTr, iChunk);//new local copy of RA for each chunk - if (P.wasp.yes) + if (P.wasp.yes) { RA->waspRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); - - + }; + if (P.peOverlap.yes) { + RA->peMergeRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); + }; + RA->iRead=0; chunkIn=new char* [P.readNmates]; @@ -73,8 +76,12 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome RA->chunkOutSJ1=chunkOutSJ1; if (P.pCh.segmentMin>0) { - chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); - chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); + if (P.pCh.out.samOld) { + chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); + }; + if (P.pCh.out.junctions) { + chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); + }; }; if (P.outReadsUnmapped=="Fastx" ) { chunkFstreamOpen(P.outFileTmp + "/Unmapped.out.mate1.thread",iChunk, RA->chunkOutUnmappedReadsStream[0]); diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 302a17d..45eb3d9 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -13,8 +13,17 @@ //#include "GlobalVariables.h" //#include -bool ReadAlign::chimericDetection() { +void ReadAlign::chimericDetection() { + chimRecord=false; + + if (P.pCh.segmentMin==0) {//no chimeric detection requested + return; + }; + if (P.outFilterBySJoutStage>1) {//no chimeric output for stage=2. REVISIT: NOT SURE why + return; + }; + //output chains for out-of-STAR chimeric detection #ifdef OUTPUT_localChains { @@ -32,15 +41,17 @@ bool ReadAlign::chimericDetection() { }; #endif - bool chimRecord=false; - if (P.pCh.multimapNmax==0) - { + if (P.pCh.multimapNmax==0) { chimRecord=chimericDetectionOld(); - } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) //require big enough drop in the best score - { + chimericDetectionOldOutput(); + } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score chimRecord=chimDet->chimericDetectionMult(nW, readLength); }; - return chimRecord; + if ( chimRecord ) { + statsRA.chimericAll++; + }; + + return; };//END diff --git a/ReadAlign_chimericDetectionOld.cpp b/ReadAlign_chimericDetectionOld.cpp index a815bea..7130360 100644 --- a/ReadAlign_chimericDetectionOld.cpp +++ b/ReadAlign_chimericDetectionOld.cpp @@ -2,13 +2,10 @@ #include "Parameters.h" #include "Transcript.h" #include "ReadAlign.h" -#include "BAMfunctions.h" #include "blocksOverlap.h" bool ReadAlign::chimericDetectionOld() { - - bool chimRecord=false; - + //////////////////// chimeras //stich windows => chimeras //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows @@ -16,414 +13,287 @@ bool ReadAlign::chimericDetectionOld() { if (nTr>P.pCh.mainSegmentMultNmax && nTr!=2) {//multimapping main segment, nTr==2 is a special case to be checked later - return chimRecord; + return false; }; - if (P.pCh.segmentMin>0 && trBest->rLength >= P.pCh.segmentMin \ + if ( !(P.pCh.segmentMin>0 && trBest->rLength >= P.pCh.segmentMin \ && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ || trBest->exons[0][EX_R] >= P.pCh.segmentMin ) \ - && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) { - //there is unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif - int chimScoreBest=0,chimScoreNext=0; - trChim[0]=*trBest; - Transcript* trChim1=NULL; - - uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; - uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; - if (roStart1>readLength[0]) roStart1--; - if (roEnd1>readLength[0]) roEnd1--; - - uint chimStrBest=0; - if (trBest->intronMotifs[1]==0 && trBest->intronMotifs[2]==0) {//strand is undefined - chimStr=0; - } else if ( (trBest->Str==0) == (trBest->intronMotifs[1]>0)) {//strand the same as RNA - chimStr=1; - } else {//strand opposite to RNA - chimStr=2; - }; + && trBest->intronMotifs[0]==0 && (trBest->intronMotifs[1]==0 || trBest->intronMotifs[2]==0) ) ) { + //there sholud be unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif + return false; + }; + + int chimScoreBest=0,chimScoreNext=0; + trChim[0]=*trBest; + Transcript* trChim1=NULL; + + uint roStart1=trBest->Str==0 ? trBest->exons[0][EX_R] : Lread - trBest->exons[trBest->nExons-1][EX_R] - trBest->exons[trBest->nExons-1][EX_L]; + uint roEnd1=trBest->Str==0 ? trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] - 1 : Lread - trBest->exons[0][EX_R] - 1; + if (roStart1>readLength[0]) roStart1--; + if (roEnd1>readLength[0]) roEnd1--; + + uint chimStrBest=0; + if (trBest->intronMotifs[1]==0 && trBest->intronMotifs[2]==0) {//strand is undefined + chimStr=0; + } else if ( (trBest->Str==0) == (trBest->intronMotifs[1]>0)) {//strand the same as RNA + chimStr=1; + } else {//strand opposite to RNA + chimStr=2; + }; - for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) - if (trBest==trAll[iW][0] && iWt==0) continue; - if (trAll[iW][iWt]->intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions - uint chimStr1; - if (trAll[iW][iWt]->intronMotifs[1]==0 && trAll[iW][iWt]->intronMotifs[2]==0) {//strand is undefined - chimStr1=0; - } else if ( (trAll[iW][iWt]->Str==0) == (trAll[iW][iWt]->intronMotifs[1]>0)) {//strand the same as RNA - chimStr1=1; - } else {//strand opposite to RNA - chimStr1=2; - }; + for (uint iW=0; iW0) break; //for all windows except that of the best transcript - hceck only iWt=0 (best trnascripts) + if (trBest==trAll[iW][0] && iWt==0) continue; + if (trAll[iW][iWt]->intronMotifs[0]>0) continue; //do not stitch a window to itself, or to a window with non-canonical junctions + uint chimStr1; + if (trAll[iW][iWt]->intronMotifs[1]==0 && trAll[iW][iWt]->intronMotifs[2]==0) {//strand is undefined + chimStr1=0; + } else if ( (trAll[iW][iWt]->Str==0) == (trAll[iW][iWt]->intronMotifs[1]>0)) {//strand the same as RNA + chimStr1=1; + } else {//strand opposite to RNA + chimStr1=2; + }; - if (chimStr!=0 && chimStr1!=0 && chimStr!=chimStr1) continue; //chimeric segments have to have consitent strands + if (chimStr!=0 && chimStr1!=0 && chimStr!=chimStr1) continue; //chimeric segments have to have consitent strands - uint roStart2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[0][EX_R] : Lread - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L]; - uint roEnd2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] + trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L] - 1 : Lread - trAll[iW][iWt]->exons[0][EX_R] - 1; - if (roStart2>readLength[0]) roStart2--; - if (roEnd2>readLength[0]) roEnd2--; + uint roStart2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[0][EX_R] : Lread - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] - trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L]; + uint roEnd2=trAll[iW][iWt]->Str==0 ? trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_R] + trAll[iW][iWt]->exons[trAll[iW][iWt]->nExons-1][EX_L] - 1 : Lread - trAll[iW][iWt]->exons[0][EX_R] - 1; + if (roStart2>readLength[0]) roStart2--; + if (roEnd2>readLength[0]) roEnd2--; - uint chimOverlap = roStart2>roStart1 ? (roStart2>roEnd1 ? 0 : roEnd1-roStart2+1) : (roEnd2= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); + uint chimOverlap = roStart2>roStart1 ? (roStart2>roEnd1 ? 0 : roEnd1-roStart2+1) : (roEnd2= readLength[0]) || (roEnd2 < readLength[0] && roStart1 >= readLength[0]); - //segment lengths && (different mates || small gap between segments) - if (roEnd1 > P.pCh.segmentMin + roStart1 + chimOverlap && roEnd2> P.pCh.segmentMin + roStart2 + chimOverlap \ - && ( diffMates || ( (roEnd1 + P.pCh.segmentReadGapMax + 1) >= roStart2 && (roEnd2 + P.pCh.segmentReadGapMax + 1) >= roStart1 ) ) ) { + //segment lengths && (different mates || small gap between segments) + if (roEnd1 > P.pCh.segmentMin + roStart1 + chimOverlap && roEnd2> P.pCh.segmentMin + roStart2 + chimOverlap \ + && ( diffMates || ( (roEnd1 + P.pCh.segmentReadGapMax + 1) >= roStart2 && (roEnd2 + P.pCh.segmentReadGapMax + 1) >= roStart1 ) ) ) { - int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + int chimScore=trBest->maxScore + trAll[iW][iWt]->maxScore - (int)chimOverlap; //subtract overlap to avoid double counting - uint overlap1=0; - if (iWt>0 && chimScoreBest>0) - {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. - overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); - }; + uint overlap1=0; + if (iWt>0 && chimScoreBest>0) + {//overlap between chimeric candidate segment and the best chimeric segment so far. Maybe non-zero only if both are in the same window. + overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); + }; - if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { - trChim[1]=*trAll[iW][iWt]; - trChim1=trAll[iW][iWt]; - if (overlap1==0) - { - chimScoreNext=chimScoreBest; - }; - chimScoreBest=chimScore; - trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; - trChim[1].cStart = trChim[1].gStart - mapGen.chrStart[trChim[1].Chr]; - chimStrBest=chimStr1; - } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one - chimScoreNext=chimScore; + if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { + trChim[1]=*trAll[iW][iWt]; + trChim1=trAll[iW][iWt]; + if (overlap1==0) + { + chimScoreNext=chimScoreBest; }; + chimScoreBest=chimScore; + trChim[1].roStart = trChim[1].roStr ==0 ? trChim[1].rStart : Lread - trChim[1].rStart - trChim[1].rLength; + trChim[1].cStart = trChim[1].gStart - mapGen.chrStart[trChim[1].Chr]; + chimStrBest=chimStr1; + } else if (chimScore>chimScoreNext && overlap1==0) {//replace the nextscore if it's not the best one and is higher than the previous one + chimScoreNext=chimScore; }; - };//cycle over window transcripts - };//cycle over windows - - if (nTr>P.pCh.mainSegmentMultNmax) - {//check main segment for multi-aligns - //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment - if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) - { - return chimRecord; }; + };//cycle over window transcripts + };//cycle over windows + + if (nTr>P.pCh.mainSegmentMultNmax) {//check main segment for multi-aligns + //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment + if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) { + return false; }; + }; - - if (chimStr==0) chimStr=chimStrBest; - - chimN=0; - if (chimScoreNext + P.pCh.scoreSeparation < chimScoreBest) {//report only if chimera is unique - - if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); - - uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; - uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; - - uint chimRepeat0=0,chimRepeat1=0,chimJ0=0,chimJ1=0; - int chimMotif=0; - chimN=2; - if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one - chimN=0;//reject such chimeras - //good test example: - //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT - //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA - } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction - chimN=2; - chimRepeat=0; - chimMotif=-1; - if (trChim[0].Str==1) {//negative strand - chimJ0=trChim[0].exons[e0][EX_G]-1; - } else { - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; - if (trChim[1].Str==0) {//positive strand - chimJ1=trChim[1].exons[e1][EX_G]-1; - } else { - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + if (chimStr==0) chimStr=chimStrBest; + + chimN=0; + if (chimScoreNext + P.pCh.scoreSeparation >= chimScoreBest) {//report only if chimera is unique + return false; + }; + if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); + + uint e0 = trChim[0].Str==1 ? 0 : trChim[0].nExons-1; + uint e1 = trChim[1].Str==0 ? 0 : trChim[1].nExons-1; + + chimRepeat0=0;chimRepeat1=0;chimJ0=0;chimJ1=0;chimMotif=0; + + chimN=2; + if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one + return false;//reject such chimeras + //good test example: + //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT + //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA + } else if ( trChim[0].exons[e0][EX_iFrag] < trChim[1].exons[e1][EX_iFrag] ) {//mates bracket the chimeric junction + chimN=2; + chimRepeat=0; + chimMotif=-1; + if (trChim[0].Str==1) {//negative strand + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; + if (trChim[1].Str==0) {//positive strand + chimJ1=trChim[1].exons[e1][EX_G]-1; + } else { + chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; + }; + } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary + if (!(trChim[0].exons[e0][EX_L]>=P.pCh.junctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.pCh.junctionOverhangMin )) { + //large enough overhang required + return false; + }; + uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; + uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; + + uint jR, jRbest=0; + int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; + uint jRmax = roStart1+trChim[1].exons[e1][EX_L]; + jRmax = jRmax>roStart0 ? jRmax-roStart0-1 : 0; + for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read + chimN=0; + break; + }; + + char b01,b02,b11,b12; + if (trChim[0].Str==0) { + b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; + } else { + b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; + if (b01<4) b01=3-b01; + b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; + if (b02<4) b02=3-b02; + }; + if (trChim[1].Str==0) { + b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; + b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; + } else { + b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; + if (b11<4) b11=3-b11; + b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; + if (b12<4) b12=3-b12; + }; + + jMotif=0; + if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG + if (chimStr!=2) { + jMotif=1; }; - } else {//chimeric junctions is within one of the mates, check and shift chimeric junction if necessary - if (trChim[0].exons[e0][EX_L]>=P.pCh.junctionOverhangMin && trChim[1].exons[e1][EX_L]>=P.pCh.junctionOverhangMin ) {//large enough overhang required - uint roStart0 = trChim[0].Str==0 ? trChim[0].exons[e0][EX_R] : Lread - trChim[0].exons[e0][EX_R] - trChim[0].exons[e0][EX_L]; - uint roStart1 = trChim[1].Str==0 ? trChim[1].exons[e1][EX_R] : Lread - trChim[1].exons[e1][EX_R] - trChim[1].exons[e1][EX_L]; - - uint jR, jRbest=0; - int jScore=0,jMotif=0,jScoreBest=-999999,jScoreJ=0; - uint jRmax = roStart1+trChim[1].exons[e1][EX_L]; - jRmax = jRmax>roStart0 ? jRmax-roStart0-1 : 0; - for (jR=0; jR3 || b1>3) ) || bR>3) {//chimera is not called if there are Ns in the genome or in the read - chimN=0; - break; - }; - - char b01,b02,b11,b12; - if (trChim[0].Str==0) { - b01=mapGen.G[trChim[0].exons[e0][EX_G]+jR+1]; - b02=mapGen.G[trChim[0].exons[e0][EX_G]+jR+2]; - } else { - b01=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-1]; - if (b01<4) b01=3-b01; - b02=mapGen.G[trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]-1-jR-2]; - if (b02<4) b02=3-b02; - }; - if (trChim[1].Str==0) { - b11=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR-1]; - b12=mapGen.G[trChim[1].exons[e1][EX_G]-roStart1+roStart0+jR]; - } else { - b11=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR+1]; - if (b11<4) b11=3-b11; - b12=mapGen.G[trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]-1+roStart1-roStart0-jR]; - if (b12<4) b12=3-b12; - }; - - jMotif=0; - if (b01==2 && b02==3 && b11==0 && b12==2) {//GTAG - if (chimStr!=2) { - jMotif=1; - }; - } else if(b01==1 && b02==3 && b11==0 && b12==1) {//CTAC - if (chimStr!=1) { - jMotif=2; - }; - }; - - if (bR==b0 && bR!=b1) { - jScore++; - } else if (bR!=b0 && bR==b1) { - jScore--; - }; - - jScoreJ =jMotif==0 ? jScore + P.pCh.scoreJunctionNonGTAG : jScore ; - - if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { - chimMotif=jMotif; - jRbest=jR; - jScoreBest=jScoreJ; - }; - };//jR cycle - if (chimN>0) {//else the chimera was rejected because of mismatches - - //shift junction in trChim - if (trChim[0].Str==1) { - trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; - trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]-1; - } else { - trChim[0].exons[e0][EX_L]=jRbest+1; - chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; - }; - - if (trChim[1].Str==0) { - trChim[1].exons[e1][EX_R] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_G] +=roStart0+jRbest+1-roStart1; - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]-1; - } else { - trChim[1].exons[e1][EX_L]=roStart1+trChim[1].exons[e1][EX_L]-roStart0-jRbest-1; - chimJ1=trChim[1].exons[e1][EX_G]+trChim[1].exons[e1][EX_L]; - }; - //find repeats - char b0,b1; - uint jR; - for (jR=0;jR<100;jR++) {//forward check - if (trChim[0].Str==0) { - b0=mapGen.G[chimJ0+jR]; - } else { - b0=mapGen.G[chimJ0-jR]; - if (b0<4) b0=3-b0; - }; - - if (trChim[1].Str==0) { - b1=mapGen.G[chimJ1+1+jR]; - } else { - b1=mapGen.G[chimJ1-1-jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; - }; - chimRepeat1=jR; - for (jR=0;jR<100;jR++) {//reverse check - if (trChim[0].Str==0) { - b0=mapGen.G[chimJ0-1-jR]; - } else { - b0=mapGen.G[chimJ0+1+jR]; - if (b0<4) b0=3-b0; - }; - - if (trChim[1].Str==0) { - b1=mapGen.G[chimJ1-jR]; - } else { - b1=mapGen.G[chimJ1+jR]; - if (b1<4) b1=3-b1; - }; - if (b0!=b1) break; - }; - chimRepeat0=jR; - };//chimN>0 - };//large enough overhang - };//chimeric junction is within a mate - - //chimeric alignments output - if ( chimN==2 \ - && ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ - || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) ) - {// - if (chimMotif>=0 && \ - (trChim[0].exons[e0][EX_L] trChim[1].maxScore) ? 0 : 1; - chimType = 3; - trChim[chimRepresent].primaryFlag=true; - trChim[1-chimRepresent].primaryFlag=false; - }; + if (bR==b0 && bR!=b1) { + jScore++; + } else if (bR!=b0 && bR==b1) { + jScore--; + }; - if (P.pCh.out.bam) {//BAM output - int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; - uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering - uint mateChr,mateStart; - uint8_t mateStrand; - for (uint itr=0;itr=0) { - bam1_t *b; - b=bam_init1(); - bam_read1_fromArray(outBAMoneAlign[tagI], b); - uint8_t* auxp=bam_aux_get(b,"NM"); - uint32_t auxv=bam_aux2i(auxp); - string tagSA1="SAZ"+mapGen.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ - ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; - - memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end - outBAMoneAlignNbytes[ii]+=tagSA1.size()+1; - * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); - }; - - if (P.outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); - if (P.outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); - }; - }; + if ( jScoreJ > jScoreBest || (jScoreJ == jScoreBest && jMotif>0) ) { + chimMotif=jMotif; + jRbest=jR; + jScoreBest=jScoreJ; + }; + };//jR cycle + if (chimN==0) {//the chimera was rejected because of mismatches + return false; + }; + //shift junction in trChim + if (trChim[0].Str==1) { + trChim[0].exons[e0][EX_R] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_G] +=trChim[0].exons[e0][EX_L]-jRbest-1; + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]-1; + } else { + trChim[0].exons[e0][EX_L]=jRbest+1; + chimJ0=trChim[0].exons[e0][EX_G]+trChim[0].exons[e0][EX_L]; + }; - for (uint iTr=0;iTr (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) { + //chimera has to bw from different chr/strand, or far away + + if (chimMotif>=0 && \ + (trChim[0].exons[e0][EX_L] trChim[1].maxScore) ? 0 : 1; + chimType = 3; + trChim[chimRepresent].primaryFlag=true; + trChim[1-chimRepresent].primaryFlag=false; + }; + + if (P.pCh.out.bam) {//BAM output + int alignType, bamN=0, bamIsuppl=-1, bamIrepr=-1; + uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering + uint mateChr,mateStart; + uint8_t mateStrand; + for (uint itr=0;itr=0) { + bam1_t *b; + b=bam_init1(); + bam_read1_fromArray(outBAMoneAlign[tagI], b); + uint8_t* auxp=bam_aux_get(b,"NM"); + uint32_t auxv=bam_aux2i(auxp); + string tagSA1="SAZ"+mapGen.chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; + + memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end + outBAMoneAlignNbytes[ii]+=tagSA1.size()+1; + * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); + }; + + if (P.outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); + if (P.outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); + }; + }; + + + for (uint iTr=0;iTrreadLengthOriginal=readLengthOriginal; trInit->readLengthPairOriginal=readLengthPairOriginal; trInit->readLength=readLength; - trInit->readNmates=P.readNmates; + trInit->readNmates=readNmates; trInit->readName=readName; - trNext=trBest=trInit; + trBest=trInit; uint seedSearchStartLmax=min(P.seedSearchStartLmax,(uint) (P.seedSearchStartLmaxOverLread*(Lread-1))); // align all good pieces @@ -86,7 +86,6 @@ int ReadAlign::mapOneRead() { return 0; #endif - nTr=0;//nothing mapped yet if (LreadrLength=0; //min good piece length @@ -102,25 +101,7 @@ int ReadAlign::mapOneRead() { } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length stitchPieces(Read1, Qual1, Lread); - if (nW>0) multMapSelect(); //check all the windows and transcripts for multiple mappers }; - unmapType=-1;//mark as mapped - if ( nW==0 ) {//no good windows - statsRA.unmappedOther++; - unmapType=0; - } else if ( (trBest->maxScore < P.outFilterScoreMin) || (trBest->maxScore < (intScore) (P.outFilterScoreMinOverLread*(Lread-1))) \ - || (trBest->nMatch < P.outFilterMatchNmin) || (trBest->nMatch < (uint) (P.outFilterMatchNminOverLread*(Lread-1))) ) {//too short - statsRA.unmappedShort++; - unmapType=1; - } else if ( (trBest->nMM > outFilterMismatchNmaxTotal) || (double(trBest->nMM)/double(trBest->rLength)>P.outFilterMismatchNoverLmax) ) {//too many mismatches - statsRA.unmappedMismatch++; - unmapType=2; - } else if (nTr > P.outFilterMultimapNmax){//too multi - statsRA.unmappedMulti++; - unmapType=3; - }; - - return 0; }; diff --git a/ReadAlign_mappedFilter.cpp b/ReadAlign_mappedFilter.cpp new file mode 100644 index 0000000..f01a1b4 --- /dev/null +++ b/ReadAlign_mappedFilter.cpp @@ -0,0 +1,21 @@ +#include "ReadAlign.h" + +void ReadAlign::mappedFilter() {//filter mapped read, add to stats + unmapType=-1;//mark as mapped + if ( nW==0 ) {//no good windows + statsRA.unmappedOther++; + unmapType=0; + } else if ( (trBest->maxScore < P.outFilterScoreMin) || (trBest->maxScore < (intScore) (P.outFilterScoreMinOverLread*(Lread-1))) \ + || (trBest->nMatch < P.outFilterMatchNmin) || (trBest->nMatch < (uint) (P.outFilterMatchNminOverLread*(Lread-1))) ) {//too short + statsRA.unmappedShort++; + unmapType=1; + } else if ( (trBest->nMM > outFilterMismatchNmaxTotal) || (double(trBest->nMM)/double(trBest->rLength)>P.outFilterMismatchNoverLmax) ) {//too many mismatches + statsRA.unmappedMismatch++; + unmapType=2; + } else if (nTr > P.outFilterMultimapNmax){//too multi + statsRA.unmappedMulti++; + unmapType=3; + }; + + return; +}; \ No newline at end of file diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index 88136d4..e56060f 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -7,6 +7,11 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts of all windows + nTr=0; + if (nW==0) {//no good windows + return; + }; + maxScore=0; for (uint iW=0; iWmaxScore) maxScore = trAll[iW][0]->maxScore; @@ -18,7 +23,6 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); }; - nTr=0; for (uint iW=0; iWmaxScore + P.outFilterMultimapScoreRange) >= maxScore ) {//record this alignment diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index 61b2bd2..4c84190 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -44,7 +44,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write } else {//1 mate if (readStatus[0]==-1) {//finished with the stream - return -1; + return 0; }; Lread=readLength[0]; @@ -69,18 +69,29 @@ int ReadAlign::oneRead() {//process one read: load, map, write //map the read mapOneRead(); - waspMap(); + peOverlapMergeMap(); + multMapSelect(); + mappedFilter(); + + if (!peOv.yes) {//if the alignment was not mates merged - otherwise the chimeric detection was already done + chimericDetection(); + }; + + if (P.pCh.out.bam && chimRecord) {//chimeric alignment was recorded in main BAM files, and it contains the representative portion, so non-chimeric aligmnent is not output + return 0; + }; + + waspMap(); + #ifdef OFF_BEFORE_OUTPUT #warning OFF_BEFORE_OUTPUT return 0; #endif + //write out alignments outputAlignments(); - //debug -// cout <copyRead(*this); + peMergeRA->peMergeMates(); + peOv=peMergeRA->peOv; + + if (peOv.nOv==0) {//check if mates can be merged, if not - return + return; + }; + + //map SE + peMergeRA->mapOneRead(); + if (peMergeRA->nW==0 || peMergeRA->trBest->maxScore+peOv.nOv < trBest->maxScore) {//no windows, score of the merged align is less. This is a preliminary check, more accurate check is done with alignment score calculated after transforming the SE back to PE + return; + }; + + //convert best alignment SE to PE + trA=*trInit; + trA.peOverlapSEtoPE(peOv.nOv, *peMergeRA->trBest); + trA.alignScore(Read1,mapGen.G,P); + + if (trA.maxScoremaxScore || trA.nMM > outFilterMismatchNmaxTotal) {//merged-mate SE alignment has lower score than the PE + return; + }; + + peMergeRA->peOv=peOv; + //SE alignment is better, copy it to *this ReadAlign + peOverlapSEtoPE(*peMergeRA); + + //chimeric detection for SE + chimericDetectionPEmerged(*peMergeRA); + + peOv.yes=true; + return; +}; + +void ReadAlign::peMergeMates() { + + peOv.ovS=localSearch(Read1[0],readLength[0],Read1[0]+readLength[0]+1,readLength[1],P.peOverlap.MMp); + peOv.nOv=readLength[0]-peOv.ovS; + + if (peOv.nOv= len1) {//this exon is only in mate2, break this cycle + break; + }; + //record these exons for mate1 + + exons[iex][EX_iFrag]=t.Str; + exons[iex][EX_sjA]=t.exons[iex][EX_sjA]; + canonSJ[iex]=t.canonSJ[iex]; + sjAnnot[iex]=t.sjAnnot[iex]; + sjStr[iex]=t.sjStr[iex]; + shiftSJ[iex][0]=t.shiftSJ[iex][0]; + shiftSJ[iex][1]=t.shiftSJ[iex][1]; + + exons[iex][EX_R]=t.exons[iex][EX_R]; + exons[iex][EX_G]=t.exons[iex][EX_G]; + if (t.exons[iex][EX_R]+t.exons[iex][EX_L] < len1) {//exon is fully in mate1 + exons[iex][EX_L]=t.exons[iex][EX_L]; + } else { + exons[iex][EX_L]=len1-t.exons[iex][EX_R]; + }; + }; + + nExons=iex; + canonSJ[nExons-1]=-3; //marks "junction" between mates + + for (iex=0; iex=start2) {//exon is fully in mate2 + exons[nExons][EX_G]=t.exons[iex][EX_G]; + exons[nExons][EX_L]=t.exons[iex][EX_L]; + exons[nExons][EX_R]=t.exons[iex][EX_R]+nOv+1; + } else {//need to split the exon + exons[nExons][EX_G]=t.exons[iex][EX_G]+start2-t.exons[iex][EX_R]; + exons[nExons][EX_L]=t.exons[iex][EX_L]-start2+t.exons[iex][EX_R]; + exons[nExons][EX_R]=len1+1; + }; + ++nExons; + }; + + + + //copy scalar variables + for (uint ii=0;ii<4;ii++) { + intronMotifs[ii]=t.intronMotifs[ii]; + }; + sjMotifStrand=t.sjMotifStrand; + //iFrag; //do not need it + Chr=t.Chr; + Str=t.Str; + roStr=t.roStr; + gStart=t.gStart; + gLength=t.gLength; + cStart=t.cStart; + + rLength=0; + for (uint iex=0;iexpeOverlapSEtoPE(peOv.nOv, *seRA.trAll[iW][iTr]); + trAll[iW][iTr]->alignScore(Read1,mapGen.G,P); + if (trAll[iW][iTr]->maxScore > trAll[iW][0]->maxScore) { + swap(trAll[iW][iTr],trAll[iW][0]); + }; + }; + if (trAll[iW][0]->maxScore>bestScore) { + trBest=trAll[iW][0]; + bestScore=trBest->maxScore; + }; + }; + + return; +}; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 110ee3b..9804593 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -257,12 +257,10 @@ std::time(&timeStart); #ifdef OFF_BEFORE_STITCH #warning OFF_BEFORE_STITCH nW=0; - nTr=0; return; #endif //generate transcript for each window, choose the best - trInit->nWAmax=0; - trBest = trNext = trInit; //initialize next/best + trBest =trInit; //initialize next/best uint iW1=0;//index of non-empty windows uint trNtotal=0; //total number of recorded transcripts @@ -280,7 +278,6 @@ std::time(&timeStart); for (uint ii=0;iinWAmax=max(nWA[iW],trInit->nWAmax); trA=*trInit; //that one is initialized trA.Chr = WC[iW][WC_Chr]; trA.Str = WC[iW][WC_Str]; @@ -321,10 +318,8 @@ std::time(&timeStart); #else stitchWindowAligns(0, nWA[iW], 0, WAincl, 0, 0, trA, Lread, WA[iW], R[trA.roStr==0 ? 0:2], Q[trA.roStr], mapGen, P, trAll[iW1], nWinTr+iW1, this); #endif - trAll[iW1][0]->nextTrScore= nWinTr[iW1]==1 ? 0 : trAll[iW1][1]->maxScore; if (trAll[iW1][0]->maxScore > trBest->maxScore || (trAll[iW1][0]->maxScore == trBest->maxScore && trAll[iW1][0]->gLength < trBest->gLength ) ) { - trNext=trBest; trBest=trAll[iW1][0]; }; @@ -343,11 +338,8 @@ std::time(&timeStart); if (trBest->maxScore==0) {//no window was aligned (could happen if for all windows too many reads are multiples) mapMarker = MARKER_NO_GOOD_WINDOW; nW=0; - nTr=0; return; }; - nextWinScore=trNext->maxScore; - };//end of function diff --git a/STAR.cpp b/STAR.cpp index 836a6b2..8aae3d1 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -304,9 +304,13 @@ int main(int argInN, char* argIn[]) { }; if (P.pCh.segmentMin>0) { - P.inOut->outChimJunction.open((P.outFileNamePrefix + "Chimeric.out.junction").c_str()); - P.inOut->outChimSAM.open((P.outFileNamePrefix + "Chimeric.out.sam").c_str()); - P.inOut->outChimSAM << P.samHeader; + if (P.pCh.out.junctions) { + P.inOut->outChimJunction.open((P.outFileNamePrefix + "Chimeric.out.junction").c_str()); + }; + if (P.pCh.out.samOld) { + P.inOut->outChimSAM.open((P.outFileNamePrefix + "Chimeric.out.sam").c_str()); + P.inOut->outChimSAM << P.samHeader; + }; pthread_mutex_init(&g_threadChunks.mutexOutChimSAM, NULL); pthread_mutex_init(&g_threadChunks.mutexOutChimJunction, NULL); }; diff --git a/Transcript.cpp b/Transcript.cpp index d92082a..31fc4e7 100644 --- a/Transcript.cpp +++ b/Transcript.cpp @@ -14,11 +14,9 @@ void Transcript::reset() { // }; primaryFlag=false; - nWAmax=0; - rStart=0; roStart=0; rLength=0; gStart=0; gLength=0; //read and genomic coordinates - maxScore=0;nextTrScore=0; + maxScore=0; nMatch=0; nMM=0; diff --git a/Transcript.h b/Transcript.h index d56539c..3f91967 100644 --- a/Transcript.h +++ b/Transcript.h @@ -14,7 +14,7 @@ class Transcript { uint shiftSJ[MAX_N_EXONS][2]; //shift of the SJ coordinates due to genomic micro-repeats int canonSJ[MAX_N_EXONS]; //canonicity of each junction uint8 sjAnnot[MAX_N_EXONS]; //anotated or not - uint8 sjStr[MAX_N_EXONS]; //anotated or not + uint8 sjStr[MAX_N_EXONS]; //strand of the junction uint intronMotifs[3]; uint8 sjMotifStrand; @@ -36,17 +36,12 @@ class Transcript { bool primaryFlag; -// uint polyXlength[4], polyXnMM[4] ; - uint nWAmax; //number of genes, max number of alignments per gene, total number of alignments for this reads - uint nMatch;//min number of matches uint nMM;//max number of mismatches uint mappedLength; //total mapped length, sum of lengths of all blocks(exons) uint extendL; //extension length intScore maxScore; //maximum Score - intScore nextTrScore; //next after maximum Tr Score - uint nGap, lGap; //number of genomic gaps (>alignIntronMin) and their total length uint nDel; //number of genomic deletions (ie genomic gaps) @@ -68,7 +63,7 @@ class Transcript { void alignScore(char **Read1, char *G, Parameters &P); int variationAdjust(const Genome &mapGen, char *R, char **Read1, char *G, Parameters &P); string generateCigarP(); //generates CIGAR - + void peOverlapSEtoPE(uint ixMerge, Transcript &t); private: }; diff --git a/Transcript_alignScore.cpp b/Transcript_alignScore.cpp index 18dc4a7..20ec415 100644 --- a/Transcript_alignScore.cpp +++ b/Transcript_alignScore.cpp @@ -4,6 +4,7 @@ void Transcript::alignScore(char **Read1, char *G, Parameters &P) {//re-calculates score and number of mismatches maxScore=0; nMM=0; + nMatch=0; char* R=Read1[roStr==0 ? 0:2]; for (uint iex=0;iex3 || g1>3) {//nothing to do } else if (r1==g1) {//match ++maxScore; + ++nMatch; } else {//mismatch ++nMM; --maxScore; diff --git a/parametersDefault b/parametersDefault index 9985e7c..3f65e7b 100644 --- a/parametersDefault +++ b/parametersDefault @@ -370,23 +370,23 @@ outFilterMismatchNmax 10 int: alignment will be output only if it has no more mismatches than this value. outFilterMismatchNoverLmax 0.3 - float: alignment will be output only if its ratio of mismatches to *mapped* length is less than or equal to this value. + real: alignment will be output only if its ratio of mismatches to *mapped* length is less than or equal to this value. outFilterMismatchNoverReadLmax 1.0 - float: alignment will be output only if its ratio of mismatches to *read* length is less than or equal to this value. + real: alignment will be output only if its ratio of mismatches to *read* length is less than or equal to this value. outFilterScoreMin 0 int: alignment will be output only if its score is higher than or equal to this value. outFilterScoreMinOverLread 0.66 - float: same as outFilterScoreMin, but normalized to read length (sum of mates' lengths for paired-end reads) + real: same as outFilterScoreMin, but normalized to read length (sum of mates' lengths for paired-end reads) outFilterMatchNmin 0 int: alignment will be output only if the number of matched bases is higher than or equal to this value. outFilterMatchNminOverLread 0.66 - float: sam as outFilterMatchNmin, but normalized to the read length (sum of mates' lengths for paired-end reads). + real: sam as outFilterMatchNmin, but normalized to the read length (sum of mates' lengths for paired-end reads). outFilterIntronMotifs None string: filter alignment using their motifs @@ -466,7 +466,7 @@ seedSearchStartLmax 50 int>0: defines the search start point through the read - the read is split into pieces no longer than this value seedSearchStartLmaxOverLread 1.0 - float: seedSearchStartLmax normalized to read length (sum of mates' lengths for paired-end reads) + real: seedSearchStartLmax normalized to read length (sum of mates' lengths for paired-end reads) seedSearchLmax 0 int>=0: defines the maximum length of the seeds, if =0 max seed lengthis infinite @@ -509,7 +509,7 @@ alignSplicedMateMapLmin 0 int>0: minimum mapped length for a read mate that is spliced alignSplicedMateMapLminOverLmate 0.66 - float>0: alignSplicedMateMapLmin normalized to mate length + real>0: alignSplicedMateMapLmin normalized to mate length alignWindowsPerReadNmax 10000 int>0: max number of windows per read @@ -540,6 +540,13 @@ alignSoftClipAtReferenceEnds Yes Yes ... allow No ... prohibit, useful for compatibility with Cufflinks +### Paired-End reads +peOverlapNbasesMin 0 + int>=0: minimum number of overlap bases to trigger mates merging and realignment + +peOverlapMMp 0.1 + real, >=0 & <1: maximum proportion of mismatched bases in the overlap area + ### Windows, Anchors, Binning winAnchorMultimapNmax 50 @@ -555,19 +562,18 @@ winFlankNbins 4 int>0: log2(winFlank), where win Flank is the size of the left and right flanking regions for each window winReadCoverageRelativeMin 0.5 - float>=0: minimum relative coverage of the read sequence by the seeds in a window, for STARlong algorithm only. + real>=0: minimum relative coverage of the read sequence by the seeds in a window, for STARlong algorithm only. winReadCoverageBasesMin 0 int>0: minimum number of bases covered by the seeds in a window , for STARlong algorithm only. ### Chimeric Alignments -chimOutType SeparateSAMold +chimOutType Junctions string(s): type of chimeric output - 1st word: + Junctions ... Chimeric.out.junction SeparateSAMold ... output old SAM into separate Chimeric.out.sam file WithinBAM ... output into main aligned BAM files (Aligned.*.bam) - 2nd word: - WithinBAM HardClip ... hard-clipping in the CIGAR for supplemental chimeric alignments (defaultif no 2nd word is present) + WithinBAM HardClip ... (default) hard-clipping in the CIGAR for supplemental chimeric alignments (defaultif no 2nd word is present) WithinBAM SoftClip ... soft-clipping in the CIGAR for supplemental chimeric alignments chimSegmentMin 0 diff --git a/parametersDefault.xxd b/parametersDefault.xxd index d06f8ae..83887bc 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1726,170 +1726,197 @@ unsigned char parametersDefault[] = { 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, - 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, - 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x61, - 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, - 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, + 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, + 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, @@ -1904,939 +1931,933 @@ unsigned char parametersDefault[] = { 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, - 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, + 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, - 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, - 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, - 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, - 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, - 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, - 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, - 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, - 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, - 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, - 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, - 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, - 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, - 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, + 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, - 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, - 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, + 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, + 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, - 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, - 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, - 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, - 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, - 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, + 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, - 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, - 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, - 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, - 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, + 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, + 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, + 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, + 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, - 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, - 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, - 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, - 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, + 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, + 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, + 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, + 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, + 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, - 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, - 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, - 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, - 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, - 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, - 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, - 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, + 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, + 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, + 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, + 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, + 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, + 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, + 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, + 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, + 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, + 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, + 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, + 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, + 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, + 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, + 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, + 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, + 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, + 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, + 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, - 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, - 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, - 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, - 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, + 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, + 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, + 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, - 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, - 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, - 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, - 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, - 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, - 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, + 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, + 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, + 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, - 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, - 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, - 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, - 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, - 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, + 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, + 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, + 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, + 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, + 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, + 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, + 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, + 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, + 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, + 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, + 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, + 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, - 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, - 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, - 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, - 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, - 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, - 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, - 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, - 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, - 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, - 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a + 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, + 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, + 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, + 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, + 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a }; -unsigned int parametersDefault_len = 34063; +unsigned int parametersDefault_len = 34320; From 9c6df134c51880dac91fe314dd3afa0994d4d3b6 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 9 Feb 2018 10:52:58 -0500 Subject: [PATCH 323/536] 2.5.4b --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index fdfdda9..3b3536b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.5.4a" +#define STAR_VERSION "STAR_2.5.4b" From 35e536027dde9cffbcb1cc0d9ae27ed68cdb9f23 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 25 Feb 2018 15:50:25 -0500 Subject: [PATCH 324/536] Fixed a problem in the chimeric detection algorithm for overlapping PE reads. --- ReadAlign_oneRead.cpp | 2 +- ReadAlign_peOverlapMergeMap.cpp | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index 4c84190..df5a057 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -44,7 +44,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write } else {//1 mate if (readStatus[0]==-1) {//finished with the stream - return 0; + return -1; }; Lread=readLength[0]; diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index c34ea8e..7bf7236 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -54,13 +54,13 @@ void ReadAlign::peMergeMates() { return; }; - uint nMM=0; - for (uint ii=peOv.ovS; ii Date: Tue, 13 Mar 2018 18:12:04 -0400 Subject: [PATCH 325/536] Fixed some issues with the overlapping mates algorithm. --- ReadAlign_chimericDetectionOld.cpp | 9 ++++-- ReadAlign_peOverlapMergeMap.cpp | 47 +++++++++++++++++++++++------- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/ReadAlign_chimericDetectionOld.cpp b/ReadAlign_chimericDetectionOld.cpp index 7130360..6098a0a 100644 --- a/ReadAlign_chimericDetectionOld.cpp +++ b/ReadAlign_chimericDetectionOld.cpp @@ -78,7 +78,7 @@ bool ReadAlign::chimericDetectionOld() { overlap1=blocksOverlap(trChim[1],*trAll[iW][iWt]); }; - if (chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) { + if (chimScore > chimScoreBest) { trChim[1]=*trAll[iW][iWt]; trChim1=trAll[iW][iWt]; if (overlap1==0) @@ -96,6 +96,10 @@ bool ReadAlign::chimericDetectionOld() { };//cycle over window transcripts };//cycle over windows + if (!(chimScoreBest >= P.pCh.scoreMin && chimScoreBest+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1]) ) ) { + return false; + }; + if (nTr>P.pCh.mainSegmentMultNmax) {//check main segment for multi-aligns //this is nTr==2 - a special case: chimeras are allowed only if the 2nd chimeric segment is the next best alignment if ( trChim1!=trMult[0] && trChim1!=trMult[1] ) { @@ -107,6 +111,7 @@ bool ReadAlign::chimericDetectionOld() { chimN=0; if (chimScoreNext + P.pCh.scoreSeparation >= chimScoreBest) {//report only if chimera is unique + cout << " " << chimScoreBest << " " << chimScoreNext; return false; }; if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); @@ -291,7 +296,7 @@ bool ReadAlign::chimericDetectionOld() { //filter out linear junctions that are very close to chimeric junction return false; }; - + cout <<" chim+"; return true; }; diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index 7bf7236..6b365f8 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -8,30 +8,47 @@ void ReadAlign::peOverlapMergeMap() { if (!P.peOverlap.yes || P.readNmates!=2 ) {//no peOverlap return; }; + + //debug + cout << ">" << readName+1; + //merge PE mates into SE peMergeRA->copyRead(*this); peMergeRA->peMergeMates(); peOv=peMergeRA->peOv; + + if (peOv.nOv==0) {//check if mates can be merged, if not - return + cout <<"\n-1\n"; return; }; - + + //change parameters for SE mapping + //double P_alignSplicedMateMapLminOverLmate=P.alignSplicedMateMapLminOverLmate; + //P.alignSplicedMateMapLminOverLmate=P.alignSplicedMateMapLminOverLmate*peMergeRA->readLength[0]/(readLength[0]+readLength[1]); + //map SE peMergeRA->mapOneRead(); - if (peMergeRA->nW==0 || peMergeRA->trBest->maxScore+peOv.nOv < trBest->maxScore) {//no windows, score of the merged align is less. This is a preliminary check, more accurate check is done with alignment score calculated after transforming the SE back to PE + if (peMergeRA->nW==0) { // || peMergeRA->trBest->maxScore+peOv.nOv < trBest->maxScore) {//no windows, score of the merged align is less. This is a preliminary check, more accurate check is done with alignment score calculated after transforming the SE back to PE + cout <<" -2\n"; + for (uint ii=0;iiLread;ii++) { + cout <Read1[0][ii]]; + }; + cout << "\n"; + return; }; //convert best alignment SE to PE - trA=*trInit; - trA.peOverlapSEtoPE(peOv.nOv, *peMergeRA->trBest); - trA.alignScore(Read1,mapGen.G,P); + //trA=*trInit; + //trA.peOverlapSEtoPE(peOv.nOv, *peMergeRA->trBest); + //trA.alignScore(Read1,mapGen.G,P); - if (trA.maxScoremaxScore || trA.nMM > outFilterMismatchNmaxTotal) {//merged-mate SE alignment has lower score than the PE - return; - }; + //if (trA.maxScoremaxScore || trA.nMM > outFilterMismatchNmaxTotal) {//merged-mate SE alignment has lower score than the PE + // return; + //}; peMergeRA->peOv=peOv; //SE alignment is better, copy it to *this ReadAlign @@ -39,7 +56,17 @@ void ReadAlign::peOverlapMergeMap() { //chimeric detection for SE chimericDetectionPEmerged(*peMergeRA); - + + //debug + cout << "\n"; + for (uint ii=0;iiLread;ii++) { + cout <Read1[0][ii]]; + }; + cout << "\n"; + + + + //P.alignSplicedMateMapLminOverLmate=P_alignSplicedMateMapLminOverLmate; peOv.yes=true; return; }; @@ -82,7 +109,7 @@ void ReadAlign::peMergeMates() { }; }; - + return; }; From 920bbc56ffeaf6f43bc0f5fe91265b878a1d67a1 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 13 Mar 2018 19:05:35 -0400 Subject: [PATCH 326/536] Fixed some issues with the overlapping mates algorithm. --- ReadAlign_peOverlapMergeMap.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index 6b365f8..f8a244b 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -10,7 +10,7 @@ void ReadAlign::peOverlapMergeMap() { }; //debug - cout << ">" << readName+1; + //cout << ">" << readName+1; //merge PE mates into SE @@ -21,7 +21,7 @@ void ReadAlign::peOverlapMergeMap() { if (peOv.nOv==0) {//check if mates can be merged, if not - return - cout <<"\n-1\n"; + //cout <<"\n-1\n"; return; }; @@ -32,11 +32,11 @@ void ReadAlign::peOverlapMergeMap() { //map SE peMergeRA->mapOneRead(); if (peMergeRA->nW==0) { // || peMergeRA->trBest->maxScore+peOv.nOv < trBest->maxScore) {//no windows, score of the merged align is less. This is a preliminary check, more accurate check is done with alignment score calculated after transforming the SE back to PE - cout <<" -2\n"; - for (uint ii=0;iiLread;ii++) { - cout <Read1[0][ii]]; - }; - cout << "\n"; + //cout <<" -2\n"; + //for (uint ii=0;iiLread;ii++) { + // cout <Read1[0][ii]]; + //}; + //cout << "\n"; return; }; @@ -58,13 +58,11 @@ void ReadAlign::peOverlapMergeMap() { chimericDetectionPEmerged(*peMergeRA); //debug - cout << "\n"; - for (uint ii=0;iiLread;ii++) { - cout <Read1[0][ii]]; - }; - cout << "\n"; - - + //cout << "\n"; + //for (uint ii=0;iiLread;ii++) { + // cout <Read1[0][ii]]; + //}; + //cout << "\n"; //P.alignSplicedMateMapLminOverLmate=P_alignSplicedMateMapLminOverLmate; peOv.yes=true; From 347e0633198e7b659d7af74a27ae992d04dc8245 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 13 Mar 2018 19:33:36 -0400 Subject: [PATCH 327/536] Fixed some issues with the overlapping mates algorithm. --- ReadAlign_chimericDetectionOld.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReadAlign_chimericDetectionOld.cpp b/ReadAlign_chimericDetectionOld.cpp index 6098a0a..fe1f132 100644 --- a/ReadAlign_chimericDetectionOld.cpp +++ b/ReadAlign_chimericDetectionOld.cpp @@ -111,7 +111,7 @@ bool ReadAlign::chimericDetectionOld() { chimN=0; if (chimScoreNext + P.pCh.scoreSeparation >= chimScoreBest) {//report only if chimera is unique - cout << " " << chimScoreBest << " " << chimScoreNext; + //cout << " " << chimScoreBest << " " << chimScoreNext; return false; }; if (trChim[0].roStart > trChim[1].roStart) swap (trChim[0],trChim[1]); @@ -296,7 +296,7 @@ bool ReadAlign::chimericDetectionOld() { //filter out linear junctions that are very close to chimeric junction return false; }; - cout <<" chim+"; + //cout <<" chim+"; return true; }; From 048d9e7f1d7844515e9a733f22d3d4ec21a5bb22 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 19 Mar 2018 18:12:37 -0400 Subject: [PATCH 328/536] Fixed a bug in the overlapping mates algorithm. --- ReadAlign_peOverlapMergeMap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index f8a244b..281affa 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -72,7 +72,7 @@ void ReadAlign::peOverlapMergeMap() { void ReadAlign::peMergeMates() { peOv.ovS=localSearch(Read1[0],readLength[0],Read1[0]+readLength[0]+1,readLength[1],P.peOverlap.MMp); - peOv.nOv=readLength[0]-peOv.ovS; + peOv.nOv=min(readLength[1],readLength[0]-peOv.ovS); if (peOv.nOv Date: Thu, 22 Mar 2018 18:44:08 -0400 Subject: [PATCH 329/536] Fixed a bug in the overlapping mates algorithm related to protruding ends of the mates. --- ReadAlign.h | 1 + ReadAlign_chimericDetectionPEmerged.cpp | 4 +- ReadAlign_peOverlapMergeMap.cpp | 170 ++++++++++++++++-------- Transcript.h | 2 +- 4 files changed, 116 insertions(+), 61 deletions(-) diff --git a/ReadAlign.h b/ReadAlign.h index bf012c5..623f455 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -150,6 +150,7 @@ class ReadAlign bool yes; uint nOv;//number of overlapping bases uint ovS;//first read base of the overlap + uint mateStart[2];//mates starts in the merged read } peOv;//PE mates overlap/merge/remap structure void resetN();//resets the counters to 0 diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index 37010cd..3eea050 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -23,7 +23,7 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { //convert merged into PE for (uint ii=0; ii<2; ii++) { trChim[ii]=*trInit; - trChim[ii].peOverlapSEtoPE(peOv.nOv,seRA.trChim[ii]); + trChim[ii].peOverlapSEtoPE(peOv.mateStart,seRA.trChim[ii]); }; uint segLen[2][2], segEx[2]; @@ -92,4 +92,4 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { // // // -// }; \ No newline at end of file +// }; diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index 281affa..47f2670 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -45,15 +45,22 @@ void ReadAlign::peOverlapMergeMap() { //trA=*trInit; //trA.peOverlapSEtoPE(peOv.nOv, *peMergeRA->trBest); //trA.alignScore(Read1,mapGen.G,P); - //if (trA.maxScoremaxScore || trA.nMM > outFilterMismatchNmaxTotal) {//merged-mate SE alignment has lower score than the PE // return; //}; + //debug + //intScore oldScore=trBest->maxScore; + + //convert SE to PE *this ReadAlign peMergeRA->peOv=peOv; - //SE alignment is better, copy it to *this ReadAlign peOverlapSEtoPE(*peMergeRA); + //debug + //if (oldScore>trBest->maxScore || trBest->maxScoretrBest->maxScore) + // cout << readName << " "<< oldScore << " "<< peMergeRA->trBest->maxScore << " "<maxScore << endl; + + //chimeric detection for SE chimericDetectionPEmerged(*peMergeRA); @@ -71,13 +78,36 @@ void ReadAlign::peOverlapMergeMap() { void ReadAlign::peMergeMates() { - peOv.ovS=localSearch(Read1[0],readLength[0],Read1[0]+readLength[0]+1,readLength[1],P.peOverlap.MMp); - peOv.nOv=min(readLength[1],readLength[0]-peOv.ovS); - + uint s1=localSearch(Read1[0],readLength[0],Read1[0]+readLength[0]+1,readLength[1],P.peOverlap.MMp); + uint s0=localSearch(Read1[0]+readLength[0]+1,readLength[1],Read1[0],readLength[0],P.peOverlap.MMp); + + uint o1=min(readLength[1],readLength[0]-s1); + uint o0=min(readLength[0],readLength[1]-s0); + + peOv.nOv=max(o0,o1); + if (peOv.nOv=o0) { + peOv.mateStart[0]=0; + peOv.mateStart[1]=s1; + if (o10) { + memmove(Read1[0]+Lread, Read1[0], readLength[0]);//temp move 0 + memmove(Read1[0], Read1[0]+readLength[0]+1, readLength[1]); //move 1 into 0 + if (o0= len1) {//this exon is only in mate2, break this cycle - break; - }; - //record these exons for mate1 - - exons[iex][EX_iFrag]=t.Str; - exons[iex][EX_sjA]=t.exons[iex][EX_sjA]; - canonSJ[iex]=t.canonSJ[iex]; - sjAnnot[iex]=t.sjAnnot[iex]; - sjStr[iex]=t.sjStr[iex]; - shiftSJ[iex][0]=t.shiftSJ[iex][0]; - shiftSJ[iex][1]=t.shiftSJ[iex][1]; - - exons[iex][EX_R]=t.exons[iex][EX_R]; - exons[iex][EX_G]=t.exons[iex][EX_G]; - if (t.exons[iex][EX_R]+t.exons[iex][EX_L] < len1) {//exon is fully in mate1 - exons[iex][EX_L]=t.exons[iex][EX_L]; - } else { - exons[iex][EX_L]=len1-t.exons[iex][EX_R]; + uint mSta2[2]; + mSta2[0]=0;//mates starts in the PE read + mSta2[1]=mLen[0]+1; + + uint mSta[2]; + mSta[0]=mateStart[0];//mates starts in the merged SE read + mSta[1]=mateStart[1]; + if (t.Str==1) { + for (uint ii=0;ii<2;ii++) { + mSta[ii]=t.Lread-readLength[ii]-mSta[ii]; }; + swap(mSta[0],mSta[1]); }; + + uint mEnd[2]; + mEnd[0]=mSta[0]+mLen[0]; + mEnd[1]=mSta[1]+mLen[1]; + +// uint iex=0; +// for ( ; iex= mEnd[0] || t.exons[iex][EX_R]+t.exons[iex][EX_L] < mSta[0]) {//this exon is only in mate2, break this cycle +// break; +// }; +// //record these exons for mate1 +// +// exons[iex][EX_iFrag]=t.Str; +// exons[iex][EX_sjA]=t.exons[iex][EX_sjA]; +// canonSJ[iex]=t.canonSJ[iex]; +// sjAnnot[iex]=t.sjAnnot[iex]; +// sjStr[iex]=t.sjStr[iex]; +// shiftSJ[iex][0]=t.shiftSJ[iex][0]; +// shiftSJ[iex][1]=t.shiftSJ[iex][1]; +// +// exons[iex][EX_R]=t.exons[iex][EX_R]-mSta[0]; +// exons[iex][EX_G]=t.exons[iex][EX_G]; +// if (t.exons[iex][EX_R]+t.exons[iex][EX_L] < mEnd[0]) {//exon is fully in mate1 +// exons[iex][EX_L]=t.exons[iex][EX_L]; +// } else { +// exons[iex][EX_L]=mEnd[0]-t.exons[iex][EX_R]; +// }; +// }; - nExons=iex; - canonSJ[nExons-1]=-3; //marks "junction" between mates - - for (iex=0; iex=start2) {//exon is fully in mate2 - exons[nExons][EX_G]=t.exons[iex][EX_G]; - exons[nExons][EX_L]=t.exons[iex][EX_L]; - exons[nExons][EX_R]=t.exons[iex][EX_R]+nOv+1; - } else {//need to split the exon - exons[nExons][EX_G]=t.exons[iex][EX_G]+start2-t.exons[iex][EX_R]; - exons[nExons][EX_L]=t.exons[iex][EX_L]-start2+t.exons[iex][EX_R]; - exons[nExons][EX_R]=len1+1; + nExons=0; + for (uint imate=0; imate<2; imate++) {//cycle over mate 1,2 + for (uint iex=0; iex= mEnd[imate] || t.exons[iex][EX_R]+t.exons[iex][EX_L] <= mSta[imate]) {//this exon is only in mate2, do not record here + continue; + }; + + exons[nExons][EX_iFrag]=(imate==0 ? t.Str : 1-t.Str); + exons[nExons][EX_sjA]=t.exons[iex][EX_sjA]; + canonSJ[nExons]=t.canonSJ[iex]; + sjAnnot[nExons]=t.sjAnnot[iex]; + sjStr[nExons]=t.sjStr[iex]; + shiftSJ[nExons][0]=t.shiftSJ[iex][0]; + shiftSJ[nExons][1]=t.shiftSJ[iex][1]; + + //record these exons for mate2 + if (t.exons[iex][EX_R]>=mSta[imate]) {//exon left is inside the mate + exons[nExons][EX_G]=t.exons[iex][EX_G]; + exons[nExons][EX_L]=t.exons[iex][EX_L]; + exons[nExons][EX_R]=t.exons[iex][EX_R]-mSta[imate]+mSta2[imate]; + } else {//need to split the exon + exons[nExons][EX_R]=mSta2[imate];//exon starts at the mate start + uint delta=mSta[imate]-t.exons[iex][EX_R]; //shorten exon by this length + exons[nExons][EX_L]=t.exons[iex][EX_L]-delta; + exons[nExons][EX_G]=t.exons[iex][EX_G]+delta; + }; + + if (t.exons[iex][EX_R]+t.exons[iex][EX_L] > mEnd[imate]) {//exon right is to the left of the mate end, shorten the exon + exons[nExons][EX_L]-=t.exons[iex][EX_R]+t.exons[iex][EX_L]-mEnd[imate]; + }; + + ++nExons; }; - ++nExons; + canonSJ[nExons-1]=-3; //marks "junction" between mates }; - //copy scalar variables for (uint ii=0;ii<4;ii++) { intronMotifs[ii]=t.intronMotifs[ii]; @@ -220,7 +274,7 @@ void ReadAlign::peOverlapSEtoPE(ReadAlign &seRA) {//ReAdAlign: convert SE to PE for (uint iTr=0; iTrpeOverlapSEtoPE(peOv.nOv, *seRA.trAll[iW][iTr]); + trAll[iW][iTr]->peOverlapSEtoPE(peOv.mateStart, *seRA.trAll[iW][iTr]); trAll[iW][iTr]->alignScore(Read1,mapGen.G,P); if (trAll[iW][iTr]->maxScore > trAll[iW][0]->maxScore) { swap(trAll[iW][iTr],trAll[iW][0]); diff --git a/Transcript.h b/Transcript.h index 3f91967..62d19f4 100644 --- a/Transcript.h +++ b/Transcript.h @@ -63,7 +63,7 @@ class Transcript { void alignScore(char **Read1, char *G, Parameters &P); int variationAdjust(const Genome &mapGen, char *R, char **Read1, char *G, Parameters &P); string generateCigarP(); //generates CIGAR - void peOverlapSEtoPE(uint ixMerge, Transcript &t); + void peOverlapSEtoPE(uint* mSta, Transcript &t); private: }; From dfad0bec055324a96a1bf2ed024fa0c4c05c72db Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 26 Mar 2018 15:09:49 -0400 Subject: [PATCH 330/536] Fixed a bug in ReadAlign_stitchPieces.cpp. --- ReadAlign_peOverlapMergeMap.cpp | 2 +- ReadAlign_stitchPieces.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index 47f2670..fd4973e 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -270,7 +270,7 @@ void ReadAlign::peOverlapSEtoPE(ReadAlign &seRA) {//ReAdAlign: convert SE to PE intScore bestScore=0; trBest=NULL; for (uint iW=0; iWmaxScore > trBest->maxScore || (trAll[iW1][0]->maxScore == trBest->maxScore && trAll[iW1][0]->gLength < trBest->gLength ) ) { trBest=trAll[iW1][0]; }; From 364456bc8ab6f1d6a2df02f5e508044e63be5088 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 26 Mar 2018 18:41:07 -0400 Subject: [PATCH 331/536] Fixed bugs in the algorithm that finds the best alignment. --- ReadAlign_multMapSelect.cpp | 2 +- ReadAlign_peOverlapMergeMap.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index e56060f..94fffa5 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -12,7 +12,7 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts return; }; - maxScore=0; + maxScore=-10*Lread; for (uint iW=0; iWmaxScore) maxScore = trAll[iW][0]->maxScore; }; diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index fd4973e..ba2e9ed 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -267,7 +267,7 @@ void ReadAlign::peOverlapSEtoPE(ReadAlign &seRA) {//ReAdAlign: convert SE to PE memcpy((void*) nWinTr, (void*) seRA.nWinTr, nW*sizeof(*nWinTr)); uint trNtotal=0; - intScore bestScore=0; + intScore bestScore=-10*Lread; trBest=NULL; for (uint iW=0; iW Date: Fri, 30 Mar 2018 17:14:49 -0400 Subject: [PATCH 332/536] Fixed problems with merged PE chimeric output. --- ReadAlign_chimericDetectionOldOutput.cpp | 11 ++++++++++- ReadAlign_chimericDetectionPEmerged.cpp | 21 ++++++++++++++------- ReadAlign_peOverlapMergeMap.cpp | 9 ++++++--- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/ReadAlign_chimericDetectionOldOutput.cpp b/ReadAlign_chimericDetectionOldOutput.cpp index 8d1dfcc..c656fca 100644 --- a/ReadAlign_chimericDetectionOldOutput.cpp +++ b/ReadAlign_chimericDetectionOldOutput.cpp @@ -50,7 +50,16 @@ void ReadAlign::chimericDetectionOldOutput() { mateChr=-1;mateStart=-1;mateStrand=0;//no need fot mate info unless this is the supplementary alignment if (chimRepresent==(int)itr) { alignType=-10; //this is representative part of chimeric alignment, record is as normal; if encompassing chimeric junction, both are recorded as normal - bamIrepr=( (itr%2)==(trChim[itr].Str) && chimType!=3) ? bamN+1 : bamN;//this is the mate that is chimerically split + bamIrepr=bamN; + if (trChim[itr].exons[0][EX_iFrag]!=trChim[1-itr].exons[0][EX_iFrag]) {//the next mate is chimerically split + ++bamIrepr; + }; +// if (chimType==3) { +// bamIrepr=bamN; +// } else if (trChim[itr].exons[0][EX_iFrag]==trChim[1-itr].exons[0][EX_iFrag]) { +// +// }; +// bamIrepr=( (itr%2)==(trChim[itr].Str) && chimType!=3) ? bamN+1 : bamN;//this is the mate that is chimerically split } else {//"supplementary" chimeric segment alignType=P.pCh.out.bamHardClip ? ( ( itr%2==trChim[itr].Str ) ? -12 : -11) : -13 ; //right:left chimeric junction bamIsuppl=bamN; diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index 3eea050..11d0344 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -26,7 +26,8 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { trChim[ii].peOverlapSEtoPE(peOv.mateStart,seRA.trChim[ii]); }; - uint segLen[2][2], segEx[2]; + uint segLen[2][2]; //segment length [trChim][mate] + uint segEx[2];//last exon of the mate0 [trChim] uint segLmin=-1LLU, i1,i2; for (uint ii=0; ii<2; ii++) { segLen[ii][0]=0; @@ -42,19 +43,25 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { for (uint jj=0; jj<2; jj++) { if (segLen[ii][jj]maxScore; + intScore peScore=trBest->maxScore; //convert SE to PE *this ReadAlign peMergeRA->peOv=peOv; @@ -72,7 +71,11 @@ void ReadAlign::peOverlapMergeMap() { //cout << "\n"; //P.alignSplicedMateMapLminOverLmate=P_alignSplicedMateMapLminOverLmate; - peOv.yes=true; + + if (peScore<=trBest->maxScore || chimRecord) { + peOv.yes=true; + }; + return; }; From b2b565da140173b8ef02507095b5381f003f57ce Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 6 Apr 2018 15:18:38 -0400 Subject: [PATCH 333/536] Redefined TLEN in SAM output for overlapping mates, = distance between left-most and right-most bases without regard for mate or strand information. TLEN sign is + for the left-most mate and - for the other one. Added chimeric junction output for overlapping mates. --- ChimericDetection.cpp | 2 +- ChimericDetection.h | 6 +- ChimericDetection_chimericDetectionMult.cpp | 2 +- Genome.cpp | 35 ++++- ReadAlign.cpp | 1 + ReadAlign.h | 5 +- ReadAlignChunk.cpp | 18 ++- ReadAlignChunk_processChunks.cpp | 2 +- ReadAlign_alignBAM.cpp | 12 +- ReadAlign_chimericDetectionOldOutput.cpp | 6 +- ReadAlign_chimericDetectionPEmerged.cpp | 137 ++++++++------------ ReadAlign_peOverlapMergeMap.cpp | 2 + genomeParametersWrite.cpp | 1 + 13 files changed, 125 insertions(+), 104 deletions(-) diff --git a/ChimericDetection.cpp b/ChimericDetection.cpp index cc05d68..b8aeeff 100644 --- a/ChimericDetection.cpp +++ b/ChimericDetection.cpp @@ -1,6 +1,6 @@ #include "ChimericDetection.h" -ChimericDetection::ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream &ostreamChimJunctionIn, ReadAlign *RAin) +ChimericDetection::ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream *ostreamChimJunctionIn, ReadAlign *RAin) : P(Pin), trAll(trAll), nWinTr(nWinTr), Read1(Read1in), outGen(mapGenIn), ostreamChimJunction(ostreamChimJunctionIn), RA(RAin) { }; \ No newline at end of file diff --git a/ChimericDetection.h b/ChimericDetection.h index 49e40be..06e3a4a 100644 --- a/ChimericDetection.h +++ b/ChimericDetection.h @@ -16,9 +16,10 @@ class ChimericDetection { bool chimRecord; int chimScoreBest; - ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream &ostreamChimJunctionIn, ReadAlign *RA); + ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream *ostreamChimJunctionIn, ReadAlign *RA); bool chimericDetectionMult(uint nWin, uint *readLengthIn); - + fstream *ostreamChimJunction; + private: ReadAlign *RA; Parameters &P; @@ -27,7 +28,6 @@ class ChimericDetection { char** Read1; uint *readLength; Genome &outGen; - fstream &ostreamChimJunction; }; #endif \ No newline at end of file diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index de99108..957c6cb 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -108,7 +108,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) - cAit->chimericJunctionOutput(ostreamChimJunction, chimN); + cAit->chimericJunctionOutput(*ostreamChimJunction, chimN); }; if (chimN>0) diff --git a/Genome.cpp b/Genome.cpp index ee9a958..f1e71d0 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -91,10 +91,36 @@ void Genome::genomeLoad(){//allocate and load Genome uint L=200,K=6; Parameters P1; + + //some initializations before reading the parameters + GstrandBit=0; ifstream parFile((pGe.gDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { P.inOut->logMain << "Reading genome generation parameters:\n"; + + //read genome internal parameters + while (parFile.good()) { + string word1; + parFile >> word1; + if (word1=="###") { + parFile >> word1; + if (word1=="GstrandBit") { + uint gsb1=0; + parFile >> gsb1; + GstrandBit=(uint8) gsb1; + P.inOut->logMain << "### GstrandBit=" << (uint) GstrandBit <<"\n"; + } else { + P.inOut->logMain << "### " <logMain <waspRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); - }; - if (P.peOverlap.yes) { - RA->peMergeRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); - }; RA->iRead=0; @@ -80,7 +74,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); }; if (P.pCh.out.junctions) { - chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.junction.thread", iChunk, RA->chunkOutChimJunction); + chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.junction.thread", iChunk, *RA->chunkOutChimJunction); }; }; if (P.outReadsUnmapped=="Fastx" ) { @@ -91,6 +85,16 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate1.thread",iChunk, RA->chunkOutFilterBySJoutFiles[0]); if (P.readNmates==2) chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate2.thread",iChunk, RA->chunkOutFilterBySJoutFiles[1]); }; + + if (P.wasp.yes) { + RA->waspRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); + }; + if (P.peOverlap.yes) { + RA->peMergeRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); + delete RA->peMergeRA->chunkOutChimJunction; + RA->peMergeRA->chunkOutChimJunction=RA->chunkOutChimJunction;//point to the same out-stream + RA->peMergeRA->chimDet->ostreamChimJunction=RA->peMergeRA->chunkOutChimJunction; + }; }; /////////////// diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index f4896e7..1164cf6 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -216,7 +216,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks //the thread is finished mapping reads, concatenate the temp files into output files if (P.pCh.segmentMin>0) { chunkFstreamCat (RA->chunkOutChimSAM, P.inOut->outChimSAM, P.runThreadN>1, g_threadChunks.mutexOutChimSAM); - chunkFstreamCat (RA->chunkOutChimJunction, P.inOut->outChimJunction, P.runThreadN>1, g_threadChunks.mutexOutChimJunction); + chunkFstreamCat (*RA->chunkOutChimJunction, P.inOut->outChimJunction, P.runThreadN>1, g_threadChunks.mutexOutChimJunction); }; if (P.outReadsUnmapped=="Fastx" ) { for (uint ii=0;ii1) { + tLen=max(trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L],trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L])-min(trOut.exons[0][EX_G],trOut.exons[iExMate+1][EX_G]); + leftMostMate=(trOut.exons[0][EX_G]<=trOut.exons[iExMate+1][EX_G] ? 0 : 1); + }; uint leftMate=0; //the mate (0 or 1) which is on the left if (flagPaired) { @@ -561,9 +567,9 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint //8: tlen Template length (= TLEN) if (nMates>1) { - int32 tlen=trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; - if (imate>0) tlen=-tlen; - pBAM[8]=(uint32)tlen; + //int32 tlen=trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; + //if (imate>0) tlen=-tlen; + pBAM[8]=(imate==leftMostMate ? tLen : -tLen); } else { pBAM[8]=0; }; diff --git a/ReadAlign_chimericDetectionOldOutput.cpp b/ReadAlign_chimericDetectionOldOutput.cpp index c656fca..ad20739 100644 --- a/ReadAlign_chimericDetectionOldOutput.cpp +++ b/ReadAlign_chimericDetectionOldOutput.cpp @@ -135,14 +135,14 @@ void ReadAlign::chimericDetectionOldOutput() { }; }; //junction + SAMp - chunkOutChimJunction << mapGen.chrName[trChim[0].Chr] <<"\t"<< chimJ0 - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \ + *chunkOutChimJunction << mapGen.chrName[trChim[0].Chr] <<"\t"<< chimJ0 - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \ <<"\t"<< mapGen.chrName[trChim[1].Chr] <<"\t"<< chimJ1 - mapGen.chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat0 <<"\t"<< chimRepeat1 <<"\t"<< readName+1 \ <<"\t"<< trChim[0].exons[0][EX_G] - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \ <<"\t"<< trChim[1].exons[0][EX_G] - mapGen.chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]); if (P.outSAMattrPresent.RG) - chunkOutChimJunction <<"\t"<< P.outSAMattrRG.at(readFilesIndex); - chunkOutChimJunction <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate + *chunkOutChimJunction <<"\t"<< P.outSAMattrRG.at(readFilesIndex); + *chunkOutChimJunction <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate return; }; \ No newline at end of file diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index 11d0344..355d084 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -7,96 +7,73 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { if (P.pCh.segmentMin==0) {//no chimeric detection requested return; }; - - seRA.multMapSelect(); //this needs to be done for ChimericDetectionOld, may not need it for the new algorithm - seRA.mappedFilter(); - - chimRecord=seRA.chimericDetectionOld(); - if (!chimRecord) { - return; - }; - statsRA.chimericAll++; + if (P.pCh.multimapNmax==0) { -// seRA.chimericDetectionPEmergedTrim(); - - //convert merged into PE - for (uint ii=0; ii<2; ii++) { - trChim[ii]=*trInit; - trChim[ii].peOverlapSEtoPE(peOv.mateStart,seRA.trChim[ii]); - }; + seRA.multMapSelect(); //this needs to be done for ChimericDetectionOld, may not need it for the new algorithm + seRA.mappedFilter(); - uint segLen[2][2]; //segment length [trChim][mate] - uint segEx[2];//last exon of the mate0 [trChim] - uint segLmin=-1LLU, i1,i2; - for (uint ii=0; ii<2; ii++) { - segLen[ii][0]=0; - segLen[ii][1]=0; - for (uint iex=0; iexmaxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score + chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength); + }; + + if ( chimRecord ) { + statsRA.chimericAll++; + }; return; }; - -// void ReadAlign::chimericDetectionPEmergedTrim() { -// -// -// // uint roSE[2][2]; -// // -// // for (uint ii=0; ii<2; ii++) { -// // if (trChim[ii].Str==0) { -// // roSE[ii][0]=trChim[ii].exons[0][EX_R]; -// // roSE[ii][1]=trChim[ii].exons[trChim[ii].nExons-1][EX_R]+trChim[ii].exons[trChim[ii].nExons-1][EX_L]-1; -// // } else { -// // roSE[ii][1]=Lread-trChim[ii].exons[0][EX_R]-1; -// // roSE[ii][0]=Lread-(trChim[ii].exons[trChim[ii].nExons-1][EX_R]+trChim[ii].exons[trChim[ii].nExons-1][EX_L]); -// // }; -// // }; -// // -// // uint chR = roSE[0][1]+1;//length of the left segment on the original read -// // if (chR<(Lread-peOv.nOv)) {//no trimming necessay, chim-junctions is outside of overlap -// // return; -// // }; -// // -// // uint trim0=roSE[0][0]; -// // uint trim1=Lread-roSE[1][1]-1; -// // -// // uint seg0=min(chR-trim0, peOv.ovS+peOv.nOv) -// -// -// -// }; diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index fb9c88a..839e730 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -124,6 +124,8 @@ void ReadAlign::peMergeMates() { Lread=Lread-peOv.nOv-1; readLength[0]=Lread; readLength[1]=0; + readLengthOriginal[0]=Lread; + readLengthOriginal[1]=0; readNmates=1; //fill Read1[1,2] diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp index c259218..136edbf 100644 --- a/genomeParametersWrite.cpp +++ b/genomeParametersWrite.cpp @@ -6,6 +6,7 @@ void genomeParametersWrite(string fileName, Parameters& P, string errorOut, Geno ofstream & genomePar = ofstrOpen(fileName, errorOut, P); genomePar << "### "< Date: Fri, 6 Apr 2018 16:55:51 -0400 Subject: [PATCH 334/536] Fixed a problem with read name output in Chimeric.out.junction. --- ReadAlign_waspMap.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp index 755ad34..0348b9f 100644 --- a/ReadAlign_waspMap.cpp +++ b/ReadAlign_waspMap.cpp @@ -91,7 +91,8 @@ void ReadAlign::copyRead(ReadAlign &r) {//copy read information only readLengthOriginal[0]=r.readLengthOriginal[0];readLengthOriginal[1]=r.readLengthOriginal[1]; readLengthPairOriginal=r.readLengthPairOriginal; outFilterMismatchNmaxTotal=r.outFilterMismatchNmaxTotal; - + readName=r.readName; + for (uint ii=0;ii<=2;ii++) memcpy(Read1[ii],r.Read1[ii],Lread);//need to copy since it will be changed Qual1=r.Qual1; From 8bd8798f9ce7836c0530aabc8ce208c0d9f8861d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 10 Apr 2018 16:03:47 -0400 Subject: [PATCH 335/536] Implemented --outSAMtlen options to specify old (1) or new (2) TLEN definition. --- IncludeDefine.h | 3 + Parameters.cpp | 1 + Parameters.h | 2 + ReadAlign.h | 4 +- ReadAlign_alignBAM.cpp | 11 +- ReadAlign_mapOneRead.cpp | 2 +- ReadAlign_stitchPieces.cpp | 8 +- ReadAlign_stitchWindowSeeds.cpp | 14 +- extendAlign.cpp | 11 +- extendAlign.h | 2 +- parametersDefault | 5 + parametersDefault.xxd | 2690 ++++++++++++++++--------------- stitchAlignToTranscript.cpp | 44 +- stitchAlignToTranscript.h | 2 +- stitchWindowAligns.cpp | 14 +- stitchWindowAligns.h | 2 +- 16 files changed, 1430 insertions(+), 1385 deletions(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index e2ab13d..4d6952b 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -66,6 +66,9 @@ typedef uint8_t uint8; #define intSWscore int #define intScore int +#define scoreMatch 1 + + //cleaned //output #define BAMoutput_oneAlignMaxBytes 100000 diff --git a/Parameters.cpp b/Parameters.cpp index a465da6..c0f423a 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -106,6 +106,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMfilter", &outSAMfilter.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmultNmax", &outSAMmultNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMattrIHstart", &outSAMattrIHstart)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMtlen", &outSAMtlen)); //output SJ filtering diff --git a/Parameters.h b/Parameters.h index 6aafc0b..dac6905 100644 --- a/Parameters.h +++ b/Parameters.h @@ -128,6 +128,8 @@ class Parameters { string outSAMheaderCommentFile; int outSAMmapqUnique; + int outSAMtlen; + struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS,rB,vG,vA,vW,ch,MC;} outSAMattrPresent, outSAMattrPresentQuant; vector outSAMattrOrder, outSAMattrOrderQuant; diff --git a/ReadAlign.h b/ReadAlign.h index d3997ea..aa52ca3 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -181,8 +181,8 @@ class ReadAlign void outputAlignments(); void calcCIGAR(Transcript const &trOut, uint nMates, uint iExMate, uint leftMate); - void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, char *Q);//stitches all seeds in one window: iW - void stitchPieces(char **R, char **Q, uint Lread); + void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R);//stitches all seeds in one window: iW + void stitchPieces(char **R, uint Lread); uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 3488248..1457767 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -210,7 +210,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint }; uint tLen,leftMostMate; - if (nMates>1) { + if (nMates>1 && P.outSAMtlen==2) { tLen=max(trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L],trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L])-min(trOut.exons[0][EX_G],trOut.exons[iExMate+1][EX_G]); leftMostMate=(trOut.exons[0][EX_G]<=trOut.exons[iExMate+1][EX_G] ? 0 : 1); }; @@ -567,9 +567,12 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint //8: tlen Template length (= TLEN) if (nMates>1) { - //int32 tlen=trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; - //if (imate>0) tlen=-tlen; - pBAM[8]=(imate==leftMostMate ? tLen : -tLen); + if (P.outSAMtlen==1) { + int32 tlen=trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; + pBAM[8]=(imate==0 ? tlen : -tlen); + } else if (P.outSAMtlen==1) { + pBAM[8]=(imate==leftMostMate ? tLen : -tLen); + }; } else { pBAM[8]=0; }; diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 30a0050..42f7dfd 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -100,7 +100,7 @@ int ReadAlign::mapOneRead() { nW=0; } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length - stitchPieces(Read1, Qual1, Lread); + stitchPieces(Read1, Lread); }; return 0; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index aa8d798..baef07f 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -10,7 +10,7 @@ #include "GlobalVariables.h" #include -void ReadAlign::stitchPieces(char **R, char **Q, uint Lread) { +void ReadAlign::stitchPieces(char **R, uint Lread) { //zero-out winBin memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); @@ -295,7 +295,7 @@ std::time(&timeStart); #ifdef COMPILE_FOR_LONG_READS - stitchWindowSeeds(iW, iW1, NULL, R[trA.roStr==0 ? 0:2], Q[trA.roStr], mapGen.G); + stitchWindowSeeds(iW, iW1, NULL, R[trA.roStr==0 ? 0:2], mapGen.G); if (P.pCh.segmentMin>0) { for (uint ia=0;ia1) {//junctions have to be present in the filtered set P.sjnovel @@ -54,7 +54,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c } else {//extend to the left score2=WA[iW][iS1][WA_Length]; if ( WA[iW][iS1][WA_rStart]>0 \ - && extendAlign(R, Q, mapGen.G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + && extendAlign(R, mapGen.G, WA[iW][iS1][WA_rStart]-1, WA[iW][iS1][WA_gStart]-1, -1, -1, WA[iW][iS1][WA_rStart], 100000, 0, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; @@ -79,7 +79,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread-1 \ - && extendAlign(R, Q, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + && extendAlign(R, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[WA[iW][iS1][WA_iFrag]][1-trA.Str], &trA1) ) {//extend to the right scoreSeedBest[iS1]+=trA1.maxScore; @@ -128,7 +128,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint iS1=seedChain[iSc], iS2=seedChain[iSc-1]; int scoreStitch= stitchAlignToTranscript(WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]-1, WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]-1,\ WA[iW][iS2][WA_rStart], WA[iW][iS2][WA_gStart], WA[iW][iS2][WA_Length], WA[iW][iS2][WA_iFrag], WA[iW][iS2][WA_sjA], \ - P, R, Q, mapGen, &trA, outFilterMismatchNmaxTotal); + P, R, mapGen, &trA, outFilterMismatchNmaxTotal); // if (scoreStitch>0) { Score+=scoreStitch; // } else { @@ -142,7 +142,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c {//extend to the left trA1=*trInit; if ( trA.exons[0][EX_R]>0 \ - && extendAlign(R, Q, mapGen.G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, + && extendAlign(R, mapGen.G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, trA.exons[0][EX_R], 100000, 0, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, P.alignEndsType.ext[trA.exons[0][EX_iFrag]][trA.Str], &trA1) ) {//if could extend trA.add(&trA1); @@ -161,7 +161,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R, c uint tR2=WA[iW][iS1][WA_rStart]+WA[iW][iS1][WA_Length]; uint tG2=WA[iW][iS1][WA_gStart]+WA[iW][iS1][WA_Length]; if ( tR2 < Lread \ - && extendAlign(R, Q, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + && extendAlign(R, mapGen.G, tR2, tG2, +1, +1, Lread-tR2, 100000, scoreSeedBestMM[iS1], outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[trA.exons[trA.nExons-1][EX_iFrag]][1-trA.Str], &trA1) ) {//if could extend trA.add(&trA1); trA.exons[trA.nExons-1][EX_L] += trA1.extendL;//extend the length of the last exon diff --git a/extendAlign.cpp b/extendAlign.cpp index 3848707..c3a6144 100644 --- a/extendAlign.cpp +++ b/extendAlign.cpp @@ -3,7 +3,7 @@ #include "Transcript.h" #include "extendAlign.h" -bool extendAlign( char* R, char* Q, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, bool extendToEnd, Transcript* trA ) { +bool extendAlign( char* R, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, bool extendToEnd, Transcript* trA ) { // find the maximum score @@ -13,7 +13,6 @@ int Score=0, nMatch=0, nMM=0; trA->maxScore=0; R=R+rStart; -Q=Q+rStart; G=G+gStart; if (extendToEnd) {//end to end extension @@ -37,10 +36,10 @@ if (extendToEnd) {//end to end extension if (G[iG]==R[iS]) {//Match nMatch++; - Score += int(Q[iS]); + Score += scoreMatch; } else { nMM++; - Score -= int(Q[iS]); + Score -= scoreMatch; }; }; @@ -66,7 +65,7 @@ for (int i=0;i<(int) L;i++) { if (G[iG]==R[iS]) {//Match nMatch++; - Score += int(Q[iS]); + Score += scoreMatch; if (Score>trA->maxScore) {//record new maximum if (nMM+nMMprev <= min(pMMmax*double(Lprev+i+1), double(nMMmax)) ) {//check nMM, if too many mismatches - do not record this maximum. Do not break - there might be still hope to make a long extension trA->extendL=i+1; @@ -81,7 +80,7 @@ for (int i=0;i<(int) L;i++) { }; nMM++; - Score -= int(Q[iS]); + Score -= scoreMatch; }; }; diff --git a/extendAlign.h b/extendAlign.h index 853c559..1d07a19 100644 --- a/extendAlign.h +++ b/extendAlign.h @@ -2,5 +2,5 @@ #include "Parameters.h" #include "Transcript.h" -bool extendAlign( char* R, char* Q, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, bool extendToEnd, Transcript* trA ); +bool extendAlign( char* R, char* G, uint rStart, uint gStart, int dR, int dG, uint L, uint Lprev, uint nMMprev, uint nMMmax, double pMMmax, bool extendToEnd, Transcript* trA ); diff --git a/parametersDefault b/parametersDefault index 3f65e7b..ae09255 100644 --- a/parametersDefault +++ b/parametersDefault @@ -309,6 +309,11 @@ outSAMmultNmax -1 int: max number of multiple alignments for a read that will be output to the SAM/BAM files. -1 ... all alignments (up to --outFilterMultimapNmax) will be output +outSAMtlen 1 + int: calculation method for the TLEN field in the SAM/BAM files + 1 ... leftmost base of the (+)strand mate to rightmost base of the (-)mate. (+)sign for the (+)strand mate + 2 ... leftmost base of any mate to rightmost base of any mate. (+)sign for the mate with the leftmost base. This is different from 1 for overlapping mates with protruding ends + outBAMcompression 1 int: -1 to 10 BAM compression level, -1=default compression (6?), 0=no compression, 10=maximum compression diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 83887bc..15ca42d 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1473,1391 +1473,1427 @@ unsigned char parametersDefault[] = { 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, - 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, - 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, - 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, - 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, - 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, - 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, - 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, - 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, + 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, + 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, + 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, + 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, + 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, + 0x65, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, + 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, + 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, - 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, - 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, + 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, + 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, + 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, + 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, - 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, + 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, + 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, + 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, + 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, + 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, + 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, - 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, + 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, - 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, + 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, - 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, + 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, + 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, - 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, - 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, + 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, - 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, - 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, - 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, + 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, + 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, - 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, - 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, - 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, + 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, + 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, + 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, + 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, + 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, + 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, + 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, - 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, + 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, + 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, + 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, + 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, - 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, - 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, - 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, + 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, + 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, + 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, - 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, + 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, - 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, - 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, + 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, + 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, + 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, + 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, + 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, + 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, - 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, - 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, - 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, - 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, - 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, - 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, + 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, + 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x70, 0x65, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, + 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, + 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, + 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, - 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, - 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, - 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, - 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, - 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, - 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, - 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, - 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, - 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, + 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, + 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, + 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, - 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, - 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, - 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, - 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, - 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, - 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, - 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, - 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, - 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, - 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, - 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, - 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, + 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, + 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, + 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, + 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, + 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, + 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, + 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, + 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, - 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, - 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, - 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, - 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, - 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, - 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, - 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, - 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, - 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, - 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, + 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, + 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, + 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, + 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, + 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, - 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, - 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, - 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, - 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, - 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, - 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, - 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, - 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, - 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, - 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, - 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, - 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, - 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, - 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, + 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, + 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, + 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, + 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, + 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, + 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, + 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, + 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, + 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, + 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, + 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, + 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, - 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a }; -unsigned int parametersDefault_len = 34320; +unsigned int parametersDefault_len = 34746; diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 9b53e75..4c58a08 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -5,9 +5,9 @@ #include "binarySearch2.h" // #include "stitchGapIndel.cpp" -intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, char* Q, Genome &mapGen, Transcript *trA, const uint outFilterMismatchNmaxTotal) { + +intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, Genome &mapGen, Transcript *trA, const uint outFilterMismatchNmaxTotal) { //stitch together A and B, extend in the gap, returns max score - //Q is assumed modified already char *G=mapGen.G; int Score=0; @@ -28,7 +28,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->sjStr[trA->nExons-1]=mapGen.sjdbStrand[sjAB];; trA->nExons++; trA->nMatch+=L; - for (uint ii=rBstart;iisjAnnot[trA->nExons-1]=0; @@ -58,7 +58,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst L=rBend-rBstart+1; }; - for (uint ii=rBstart;ii<=rBend;ii++) Score+=int(Q[ii]); //add QS for mapped portions + for (uint ii=rBstart;ii<=rBend;ii++) Score+=scoreMatch; //add QS for mapped portions int gGap=gBstart-gAend-1; //could be < 0 for insertions int rGap=rBstart-rAend-1;//>0 always since we removed overlap @@ -81,14 +81,11 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst for (int ii=1;ii<=rGap;ii++) { if (G[gAend+ii]<4 && R[rAend+ii]<4) {//only score genome bases that are not Ns if ( R[rAend+ii]==G[gAend+ii] ) { - Score+=int(Q[rAend+ii]); + Score+=scoreMatch; nMatch++; - // if (Q[rAend+ii]>=P.Qgood) nMatchGood++; } else { - Score-=int(Q[rAend+ii]); -// trA->rMM[trA->nMM + nMM] = rAend+ii; + Score-=scoreMatch; nMM++; - // if (Q[rAend+ii]>=P.Qgood) nMMgood++; }; }; }; @@ -106,7 +103,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst int jR1=1; //junction location in R-space do { // 1. move left, until the score for MM is less than canonical advantage jR1--; - if ( R[rAend+jR1]!=G[gBstart1+jR1] && G[gBstart1+jR1]<4 && R[rAend+jR1]==G[gAend+jR1]) Score1 -= int(Q[rAend+jR1]); + if ( R[rAend+jR1]!=G[gBstart1+jR1] && G[gBstart1+jR1]<4 && R[rAend+jR1]==G[gAend+jR1]) Score1 -= scoreMatch; } while ( Score1+P.scoreStitchSJshift >= 0 && int(trA->exons[trA->nExons-1][EX_L]) + jR1 > 1);//>=P.alignSJoverhangMin); //also check that we are still within the exon int maxScore2=-999999; @@ -114,8 +111,8 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst int jPen=0; do { // 2. scan to the right to find the best junction locus // ?TODO? if genome base is N, how to score? - if ( R[rAend+jR1]==G[gAend+jR1] && R[rAend+jR1]!=G[gBstart1+jR1] ) Score1+=int(Q[rAend+jR1]); - if ( R[rAend+jR1]!=G[gAend+jR1] && R[rAend+jR1]==G[gBstart1+jR1] ) Score1-=int(Q[rAend+jR1]); + if ( R[rAend+jR1]==G[gAend+jR1] && R[rAend+jR1]!=G[gBstart1+jR1] ) Score1+=scoreMatch; + if ( R[rAend+jR1]!=G[gAend+jR1] && R[rAend+jR1]==G[gBstart1+jR1] ) Score1-=scoreMatch; int jCan1=-1; //this marks Deletion int jPen1=0; @@ -180,14 +177,14 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst if (G[g1]<4 && R[rAend+ii]<4) {//only penalize non-N bases if ( R[rAend+ii]==G[g1] ) { if (ii>=1 && ii <=rGap) {//only add +score and matches within the gap - Score+=int(Q[rAend+ii]); + Score+=scoreMatch; nMatch++; }; } else {//add -score and MM for all bases - Score-=int(Q[rAend+ii]); + Score-=scoreMatch; nMM++; if (ii<1 || ii>rGap) {//subtract previuosly presumed matches - Score-=int(Q[rAend+ii]); + Score-=scoreMatch; nMatch--; // if (ii<=jR) nMM--; }; @@ -256,15 +253,15 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst } else if (gGap<0) {//reduce the score jR=0; - for (int ii=0; ii<-gGap; ii++) Score -= int(Q[rBstart+ii]); + for (int ii=0; ii<-gGap; ii++) Score -= scoreMatch; } else {//stitch: define the exon boundary jR int Score1=0; int maxScore1=0; for (int jR1=1;jR1<=gGap;jR1++) {//scan to the right to find the best score if (G[gAend+jR1]<4) {//only penalize goog genome bases - Score1+=( R[rAend+jR1]==G[gAend+jR1] ) ? int(Q[rAend+jR1]):-int(Q[rAend+jR1]); - Score1+=( R[rAend+Ins+jR1]==G[gAend+jR1] ) ? -int(Q[rAend+Ins+jR1]):+int(Q[rAend+Ins+jR1]); + Score1+=( R[rAend+jR1]==G[gAend+jR1] ) ? scoreMatch:-scoreMatch; + Score1+=( R[rAend+Ins+jR1]==G[gAend+jR1] ) ? -scoreMatch:+scoreMatch; }; if (Score1>maxScore1) {//TODO: equal sign (>=) would flush insertions to the right. Also need to do it even if gGap<=0 @@ -278,10 +275,10 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst uint r1=rAend+ii+(ii<=jR ? 0:Ins); if (G[gAend+ii]<4 && R[r1]<4) { if ( R[r1]==G[gAend+ii] ) { - Score+=int(Q[r1]); + Score+=scoreMatch; nMatch++; } else {//add -score and MM for all bases - Score-=int(Q[r1]); + Score-=scoreMatch; nMM++; }; }; @@ -345,7 +342,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst //extend the fragments inside //note, that this always works, i.e. Score>0 - for (uint ii=rBstart;iinMatch, trA->nMM, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + if ( extendAlign(R, G, rAend+1, gAend+1, 1, 1, DEF_readSeqLengthMax, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[trA->exons[trA->nExons-1][EX_iFrag]][1], &trExtend) ) { trA->add(&trExtend); @@ -374,10 +371,9 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst trA->nMatch += L; trExtend.reset(); - //if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R], trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, //if end extension needs to be forced, use large length. Otherwise, only extend until the beginning of the transcript uint extlen=P.alignEndsType.ext[iFragB][1] ? DEF_readSeqLengthMax : gBstart-trA->exons[0][EX_G]+trA->exons[0][EX_R]; - if ( extendAlign(R, Q, G, rBstart-1, gBstart-1, -1, -1, extlen, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ + if ( extendAlign(R, G, rBstart-1, gBstart-1, -1, -1, extlen, trA->nMatch, trA->nMM, outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[iFragB][1], &trExtend) ) { trA->add(&trExtend); diff --git a/stitchAlignToTranscript.h b/stitchAlignToTranscript.h index cea6b1f..0365d9c 100644 --- a/stitchAlignToTranscript.h +++ b/stitchAlignToTranscript.h @@ -3,5 +3,5 @@ #include "Transcript.h" #include "Genome.h" -intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, char* Q, Genome &mapGen, Transcript *trA, uint outFilterMismatchNmaxTotal); +intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, Genome &mapGen, Transcript *trA, uint outFilterMismatchNmaxTotal); diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 7c1f80b..863fca4 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -6,7 +6,7 @@ #include "binarySearch2.h" void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ - uint Lread, uiWA* WA, char* R, char* Q, Genome &mapGen, \ + uint Lread, uiWA* WA, char* R, Genome &mapGen, \ Parameters& P, Transcript** wTr, uint* nWinTr, ReadAlign *RA) { //recursively stitch aligns for one gene //*nWinTr - number of transcripts for the current window @@ -41,7 +41,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if (trA.rStart>0) {// if transcript does not start at base, extend to the read start trAstep1.reset(); uint imate=trA.exons[0][EX_iFrag]; - if ( extendAlign(R, Q, mapGen.G, trA.rStart-1, trA.gStart-1, -1, -1, trA.rStart, tR2-trA.rStart+1, \ + if ( extendAlign(R, mapGen.G, trA.rStart-1, trA.gStart-1, -1, -1, trA.rStart, tR2-trA.rStart+1, \ trA.nMM, RA->outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[imate][(int)(trA.Str!=imate)], &trAstep1) ) {//if could extend @@ -62,7 +62,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if ( tR2outFilterMismatchNmaxTotal, P.outFilterMismatchNoverLmax, \ P.alignEndsType.ext[imate][(int)(imate==trA.Str)], &trAstep1) ) {//if could extend @@ -310,7 +310,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui Transcript trAi=trA; //trA copy with this align included, to be used in the 1st recursive call of StitchAlign if (trA.nExons>0) {//stitch, a transcript has already been originated - dScore=stitchAlignToTranscript(tR2, tG2, WA[iA][WA_rStart], WA[iA][WA_gStart], WA[iA][WA_Length], WA[iA][WA_iFrag], WA[iA][WA_sjA], P, R, Q, mapGen, &trAi, RA->outFilterMismatchNmaxTotal); + dScore=stitchAlignToTranscript(tR2, tG2, WA[iA][WA_rStart], WA[iA][WA_gStart], WA[iA][WA_Length], WA[iA][WA_iFrag], WA[iA][WA_sjA], P, R, mapGen, &trAi, RA->outFilterMismatchNmaxTotal); //TODO check if the new stitching creates too many MM, quit this transcript if so } else { //this is the first align in the transcript @@ -322,7 +322,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui trAi.nExons=1; //recorded first exon - for (uint ii=0;ii0 ) trAi.nAnchor++; //anchor piece piece - stitchWindowAligns(iA+1, nA, Score+dScore, WAincl, WA[iA][WA_rStart]+WA[iA][WA_Length]-1, WA[iA][WA_gStart]+WA[iA][WA_Length]-1, trAi, Lread, WA, R, Q, mapGen, P, wTr, nWinTr, RA); + stitchWindowAligns(iA+1, nA, Score+dScore, WAincl, WA[iA][WA_rStart]+WA[iA][WA_Length]-1, WA[iA][WA_gStart]+WA[iA][WA_Length]-1, trAi, Lread, WA, R, mapGen, P, wTr, nWinTr, RA); } else { }; @@ -345,7 +345,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //also run a transcript w/o including this align if (WA[iA][WA_Anchor]!=2 || trA.nAnchor>0) {//only allow exclusion if this is not the last anchor, or other anchors have been used WAincl[iA]=false; - stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, Q, mapGen, P, wTr, nWinTr, RA); + stitchWindowAligns(iA+1, nA, Score, WAincl, tR2, tG2, trA, Lread, WA, R, mapGen, P, wTr, nWinTr, RA); }; return; }; diff --git a/stitchWindowAligns.h b/stitchWindowAligns.h index 0507630..0091411 100644 --- a/stitchWindowAligns.h +++ b/stitchWindowAligns.h @@ -6,7 +6,7 @@ #include "ReadAlign.h" void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ - uint Lread, uiWA* WA, char* R, char* Q, Genome &mapGen, \ + uint Lread, uiWA* WA, char* R, Genome &mapGen, \ Parameters& P, Transcript** wTr, uint* nWinTr, ReadAlign *RA); //recursively stitch aligns for one gene //*nWinTr - number of transcripts for the current window From 9a31533ec5641a6744f7670371d72503bef584fb Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 10 Apr 2018 18:18:16 -0400 Subject: [PATCH 336/536] Implemented flushing of insertions to the right. This will prevent spurious multimapping for small number of reads. --- stitchAlignToTranscript.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 4c58a08..ea97284 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -250,11 +250,11 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst nIns=1; if (gGap==0) {//simple insertion, no need to stitch jR=0; - } else if (gGap<0) {//reduce the score - + } else if (gGap<0) {//overlapping seeds: reduce the score jR=0; - for (int ii=0; ii<-gGap; ii++) Score -= scoreMatch; - + for (int ii=0; ii<-gGap; ii++) { + Score -= scoreMatch; + }; } else {//stitch: define the exon boundary jR int Score1=0; int maxScore1=0; for (int jR1=1;jR1<=gGap;jR1++) {//scan to the right to find the best score @@ -264,13 +264,11 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst Score1+=( R[rAend+Ins+jR1]==G[gAend+jR1] ) ? -scoreMatch:+scoreMatch; }; - if (Score1>maxScore1) {//TODO: equal sign (>=) would flush insertions to the right. Also need to do it even if gGap<=0 + if (Score1>=maxScore1) {//equal sign (>=) flushes insertions to the right maxScore1=Score1; jR=jR1; }; }; - - for (int ii=1;ii<=gGap;ii++) {//score donor and acceptor uint r1=rAend+ii+(ii<=jR ? 0:Ins); if (G[gAend+ii]<4 && R[r1]<4) { @@ -285,6 +283,11 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; }; + for (; jR Date: Tue, 10 Apr 2018 18:32:12 -0400 Subject: [PATCH 337/536] Fixed --outSAMtlen option. --- ReadAlign_alignBAM.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 1457767..0594e75 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -209,7 +209,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint nMates=0; }; - uint tLen,leftMostMate; + uint tLen=0,leftMostMate=0; if (nMates>1 && P.outSAMtlen==2) { tLen=max(trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L],trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L])-min(trOut.exons[0][EX_G],trOut.exons[iExMate+1][EX_G]); leftMostMate=(trOut.exons[0][EX_G]<=trOut.exons[iExMate+1][EX_G] ? 0 : 1); @@ -570,8 +570,9 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (P.outSAMtlen==1) { int32 tlen=trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L]-trOut.exons[0][EX_G]; pBAM[8]=(imate==0 ? tlen : -tlen); - } else if (P.outSAMtlen==1) { - pBAM[8]=(imate==leftMostMate ? tLen : -tLen); + } else if (P.outSAMtlen==2) { + int32 tlen=(int32)tLen; + pBAM[8]=(imate==leftMostMate ? tlen : -tlen); }; } else { pBAM[8]=0; From bddc60a7332e6509db4f9d269a538f68779e7297 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 11 Apr 2018 17:32:02 -0400 Subject: [PATCH 338/536] Cleaned up compilation warnings. --- BAMbinSortUnmapped.cpp | 2 +- BAMbinSortUnmapped.h | 2 +- BAMfunctions.cpp | 2 +- ChimericAlign.h | 7 +- ChimericDetection.cpp | 2 +- ChimericDetection.h | 18 +- ChimericSegment.cpp | 2 +- ChimericSegment.h | 7 +- Genome.cpp | 2 +- Makefile | 4 +- OutSJ.cpp | 4 +- OutSJ.h | 2 +- Parameters.cpp | 65 +- Parameters.h | 12 +- ReadAlign.cpp | 2 +- ReadAlign_chimericDetectionPEmerged.cpp | 2 +- ReadAlign_maxMappableLength2strands.cpp | 6 +- ReadAlign_peOverlapMergeMap.cpp | 2 +- ReadAlign_stitchPieces.cpp | 4 +- ReadAlign_waspMap.cpp | 1 + STAR.cpp | 2 +- SuffixArrayFuns.cpp | 36 +- SuffixArrayFuns.h | 10 +- Transcript.h | 2 +- Transcript_variationAdjust.cpp | 6 +- Variation.cpp | 2 +- funCompareUintAndSuffixesMemcmp.cpp | 2 +- genomeSAindex.cpp | 14 +- genomeSAindex.h | 2 +- insertSeqSA.cpp | 2 +- outputSJ.cpp | 2 +- parametersDefault | 11 +- parametersDefault.xxd | 897 ++++++++++++------------ sjdbBuildIndex.cpp | 2 +- sortSuffixesBucket.cpp | 100 --- stitchAlignToTranscript.cpp | 10 +- stitchWindowAligns.cpp | 2 +- sysRemoveDir.cpp | 6 + 38 files changed, 594 insertions(+), 662 deletions(-) delete mode 100644 sortSuffixesBucket.cpp diff --git a/BAMbinSortUnmapped.cpp b/BAMbinSortUnmapped.cpp index 25f5e36..251cb09 100644 --- a/BAMbinSortUnmapped.cpp +++ b/BAMbinSortUnmapped.cpp @@ -2,7 +2,7 @@ #include "ErrorWarning.h" #include "BAMfunctions.h" -void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters &P, Genome &mapGen) { +void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, Parameters &P, Genome &mapGen) { BGZF *bgzfBin; bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P.outBAMcompression)).c_str()); diff --git a/BAMbinSortUnmapped.h b/BAMbinSortUnmapped.h index 530f72b..8167df7 100644 --- a/BAMbinSortUnmapped.h +++ b/BAMbinSortUnmapped.h @@ -6,6 +6,6 @@ #include SAMTOOLS_BGZF_H -void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters &P, Genome &mapGen); +void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, Parameters &P, Genome &mapGen); #endif diff --git a/BAMfunctions.cpp b/BAMfunctions.cpp index e1c5ea9..75e0569 100644 --- a/BAMfunctions.cpp +++ b/BAMfunctions.cpp @@ -91,7 +91,7 @@ void outBAMwriteHeader (BGZF* fp, const string &samh, const vector &chr template TintType bamAttributeInt(const char *bamAux, const char *attrName) {//not tested!!! - char *attrStart=strstr(bamAux,attrName); + const char *attrStart=strstr(bamAux,attrName); if (attrStart==NULL) return (TintType) -1; switch (attrStart[2]) { case ('c'): diff --git a/ChimericAlign.h b/ChimericAlign.h index dad4647..c99d944 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -30,10 +30,11 @@ class ChimericAlign bool stitchingDone; private: - ReadAlign *RA; Parameters &P; - ParametersChimeric &pCh; - Genome &mapGen; + ParametersChimeric &pCh; + Genome &mapGen; + ReadAlign *RA; + }; #endif \ No newline at end of file diff --git a/ChimericDetection.cpp b/ChimericDetection.cpp index b8aeeff..f00ffef 100644 --- a/ChimericDetection.cpp +++ b/ChimericDetection.cpp @@ -1,6 +1,6 @@ #include "ChimericDetection.h" ChimericDetection::ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &mapGenIn, fstream *ostreamChimJunctionIn, ReadAlign *RAin) - : P(Pin), trAll(trAll), nWinTr(nWinTr), Read1(Read1in), outGen(mapGenIn), ostreamChimJunction(ostreamChimJunctionIn), RA(RAin) + : P(Pin), RA(RAin), trAll(trAll), nWinTr(nWinTr), Read1(Read1in), outGen(mapGenIn), ostreamChimJunction(ostreamChimJunctionIn) { }; \ No newline at end of file diff --git a/ChimericDetection.h b/ChimericDetection.h index 06e3a4a..a0e2341 100644 --- a/ChimericDetection.h +++ b/ChimericDetection.h @@ -10,6 +10,15 @@ class ReadAlign; class ChimericDetection { + private: + Parameters &P; + ReadAlign *RA; + Transcript ***trAll; + uint nW, *nWinTr; + char** Read1; + Genome &outGen; + uint *readLength; + public: uint chimN; vector chimAligns; @@ -19,15 +28,6 @@ class ChimericDetection { ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream *ostreamChimJunctionIn, ReadAlign *RA); bool chimericDetectionMult(uint nWin, uint *readLengthIn); fstream *ostreamChimJunction; - - private: - ReadAlign *RA; - Parameters &P; - Transcript ***trAll; - uint nW, *nWinTr; - char** Read1; - uint *readLength; - Genome &outGen; }; #endif \ No newline at end of file diff --git a/ChimericSegment.cpp b/ChimericSegment.cpp index dabb71b..3516d17 100644 --- a/ChimericSegment.cpp +++ b/ChimericSegment.cpp @@ -1,6 +1,6 @@ #include "ChimericSegment.h" -ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), align(alignIn), pCh(Pin.pCh) +ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), pCh(Pin.pCh), align(alignIn) { if ( (align.intronMotifs[1]==0 && align.intronMotifs[2]==0) || (align.intronMotifs[1]>0 && align.intronMotifs[2]>0)) {//strand is undefined str=0; diff --git a/ChimericSegment.h b/ChimericSegment.h index 684c2a9..a1c0a47 100644 --- a/ChimericSegment.h +++ b/ChimericSegment.h @@ -9,12 +9,13 @@ class ChimericSegment {// public: - Transcript &align; //alignment - uint roS,roE,str; //start/end/strand in original read coordinates Parameters &P; ParametersChimeric &pCh; - ChimericSegment(Parameters &Pin, Transcript &alignIn); //allocate + + Transcript &align; //alignment + uint roS,roE,str; //start/end/strand in original read coordinates + ChimericSegment(Parameters &Pin, Transcript &alignIn); //allocate bool segmentCheck();//check if chimeric segment is good private: }; diff --git a/Genome.cpp b/Genome.cpp index f1e71d0..2f3491a 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -25,7 +25,7 @@ //arbitrary number for ftok function #define SHM_projectID 23 -Genome::Genome (Parameters &Pin ): P(Pin), pGe(Pin.pGe), shmStart(NULL), sharedMemory(NULL) { +Genome::Genome (Parameters &Pin ): pGe(Pin.pGe), P(Pin), shmStart(NULL), sharedMemory(NULL) { shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); sjdbOverhang = pGe.sjdbOverhang; //will be re-defined later if another value was used for the generated genome diff --git a/Makefile b/Makefile index 35b4dc2..cf53bc3 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ CXXFLAGSextra ?= CXX ?= g++ # pre-defined flags -LDFLAGS_shared := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -lrt +LDFLAGS_shared := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz LDFLAGS_Mac :=-pthread -lz htslib/libhts.a LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a @@ -46,7 +46,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO ChimericSegment.cpp ChimericAlign.cpp ChimericAlign_chimericJunctionOutput.o ChimericAlign_chimericStitching.o \ stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ Genome_genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ - Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o sortSuffixesBucket.o funCompareUintAndSuffixesMemcmp.o \ + Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o funCompareUintAndSuffixesMemcmp.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ diff --git a/OutSJ.cpp b/OutSJ.cpp index 9c2b271..a10be32 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -1,7 +1,7 @@ #include "OutSJ.h" #include "ErrorWarning.h" -OutSJ::OutSJ (uint nSJmax, Parameters &Pin, Genome &genomeIn) : P(Pin), mapGen(genomeIn), oneSJ(genomeIn) {//do I need P? +OutSJ::OutSJ (uint nSJmax, Parameters &Pin, Genome &genomeIn) : oneSJ(genomeIn), P(Pin), mapGen(genomeIn) {//do I need P? data = new char [oneSJ.dataSize*nSJmax]; //allocate big array of SJ loci and properties memset(data,0,oneSJ.dataSize*nSJmax); @@ -73,7 +73,7 @@ void Junction::junctionPointer(char* sjPoint, uint isj) {// overhangRight=(uint16*) (d1+overhangRightP); }; -void Junction::outputStream(ostream &outStream, Parameters& P) { +void Junction::outputStream(ostream &outStream) { uint sjChr=mapGen.chrBin[*start >> mapGen.pGe.gChrBinNbits]; outStream << mapGen.chrName.at(sjChr) <<"\t"<< *start + 1 - mapGen.chrStart[sjChr] <<"\t"<<*start + *gap - mapGen.chrStart[sjChr] \ <<"\t"<< int(*strand) <<"\t"<< int(*motif) <<"\t"<< int (*annot) <<"\t"<< *countUnique <<"\t"<< *countMultiple \ diff --git a/OutSJ.h b/OutSJ.h index 13821ad..37374f3 100644 --- a/OutSJ.h +++ b/OutSJ.h @@ -26,7 +26,7 @@ class Junction {//one junction Junction(Genome &genomeIn); void junctionPointer(char* sjPoint, uint isj); - void outputStream(ostream &outStream, Parameters& P); + void outputStream(ostream &outStream); void collapseOneSJ(char* isj1P, char* isjP, Parameters& P); private: diff --git a/Parameters.cpp b/Parameters.cpp index c0f423a..d11cbf3 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -197,6 +197,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSoftClipAtReferenceEnds", &alignSoftClipAtReferenceEnds)); parArray.push_back(new ParameterInfoVector (-1, -1, "alignEndsProtrude", &alignEndsProtrude.in)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignInsertionFlush", &alignInsertionFlush.in)); //peOverlap parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapNbasesMin", &peOverlap.NbasesMin)); @@ -1308,48 +1309,34 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //outSAMunmapped - outSAMunmapped.yes=false; - outSAMunmapped.within=false; - outSAMunmapped.keepPairs=false; - if (outSAMunmapped.mode.at(0)=="None") - {//nothing to do - } else if (outSAMunmapped.mode.at(0)=="Within") - { + if (outSAMunmapped.mode.at(0)=="None" && outSAMunmapped.mode.size()==1) { + outSAMunmapped.yes=false; + outSAMunmapped.within=false; + outSAMunmapped.keepPairs=false; + } else if (outSAMunmapped.mode.at(0)=="Within" && outSAMunmapped.mode.size()==1) { outSAMunmapped.yes=true; outSAMunmapped.within=true; - } else - { + outSAMunmapped.keepPairs=false; + } else if (outSAMunmapped.mode.at(0)=="Within" && outSAMunmapped.mode.at(1)=="KeepPairs") { + outSAMunmapped.yes=true; + outSAMunmapped.within=true; + outSAMunmapped.keepPairs=true; + } else { ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: unrecognized first word of --outSAMunmapped="<logMain, EXIT_CODE_PARAMETER, *this); }; - for (uint ii=1;iilogMain, EXIT_CODE_PARAMETER, *this); - }; - }; - alignEndsProtrude.nBasesMax=stoi(alignEndsProtrude.in.at(0),nullptr); - if (alignEndsProtrude.nBasesMax>0) - {//allow ends protrusion - if (alignEndsProtrude.in.at(1)=="ConcordantPair") - { + if (alignEndsProtrude.nBasesMax>0) {//allow ends protrusion + if (alignEndsProtrude.in.at(1)=="ConcordantPair") { alignEndsProtrude.concordantPair=true; - } else if (alignEndsProtrude.in.at(1)=="DiscordantPair") - { + } else if (alignEndsProtrude.in.at(1)=="DiscordantPair") { alignEndsProtrude.concordantPair=false; - } else - { + } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --alignEndsProtrude="<logMain, EXIT_CODE_PARAMETER, *this); + }; + + //peOverlap if (peOverlap.NbasesMin>0) { peOverlap.yes=true; diff --git a/Parameters.h b/Parameters.h index dac6905..05f9865 100644 --- a/Parameters.h +++ b/Parameters.h @@ -88,19 +88,23 @@ class Parameters { string alignSoftClipAtReferenceEnds; vector alignSJstitchMismatchNmax; - struct - { + struct { string in; bool ext[2][2]; } alignEndsType; - struct - { + struct { vector in; int nBasesMax; bool concordantPair; } alignEndsProtrude; + struct { + string in; + bool flushRight; + } alignInsertionFlush; + + //seed parameters uint seedMultimapNmax; //max number of multiple alignments per piece uint seedSearchLmax; //max length of the seed diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 5f3dc0c..978905f 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -4,7 +4,7 @@ #include "ReadAlign.h" ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) - : P(Pin), mapGen(genomeIn), chunkTr(TrIn) {//allocate arrays + : mapGen(genomeIn), P(Pin), chunkTr(TrIn) {//allocate arrays readNmates=P.readNmates; diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index 355d084..1cafc61 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -26,7 +26,7 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { uint segLen[2][2]; //segment length [trChim][mate] uint segEx[2];//last exon of the mate0 [trChim] - uint segLmin=-1LLU, i1,i2; + uint segLmin=-1LLU, i1=0,i2=0; for (uint ii=0; ii<2; ii++) { segLen[ii][0]=0; segLen[ii][1]=0; diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index 7ae3354..e2a1549 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -56,7 +56,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, #ifdef SA_SEARCH_FULL //full search of the array even if the index search gave maxL maxL=0; - Nrep = maxMappableLength(mapGen, Read1, pieceStart, pieceLength, iSA1 & mapGen.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(mapGen, Read1, pieceStart, pieceLength, iSA1 & mapGen.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd); #else if (Lind < P.pGe.gSAindexNbases && (iSA1 & mapGen.SAiMarkNmaskC)==0 ) {//no need for SA search indStartEnd[0]=iSA1; @@ -72,14 +72,14 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, indStartEnd[0]=indStartEnd[1]=iSA1; Nrep=1; bool comparRes; - maxL=compareSeqToGenome(mapGen, Read1, pieceStart, pieceLength, Lind, iSA1, dirR, comparRes, P); + maxL=compareSeqToGenome(mapGen, Read1, pieceStart, pieceLength, Lind, iSA1, dirR, comparRes); } else {//SA search, pieceLength>maxL if ( (iSA1 & mapGen.SAiMarkNmaskC)==0 ) {//no N in the prefix maxL=Lind; } else { maxL=0; }; - Nrep = maxMappableLength(mapGen, Read1, pieceStart, pieceLength, iSA1 & mapGen.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd, P); + Nrep = maxMappableLength(mapGen, Read1, pieceStart, pieceLength, iSA1 & mapGen.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd); }; #endif diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index 839e730..ac1d3e1 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -231,7 +231,7 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig //copy scalar variables - for (uint ii=0;ii<4;ii++) { + for (uint ii=0;ii<3;ii++) { intronMotifs[ii]=t.intronMotifs[ii]; }; sjMotifStrand=t.sjMotifStrand; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index baef07f..a7deebb 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -295,7 +295,7 @@ std::time(&timeStart); #ifdef COMPILE_FOR_LONG_READS - stitchWindowSeeds(iW, iW1, NULL, R[trA.roStr==0 ? 0:2], mapGen.G); + stitchWindowSeeds(iW, iW1, NULL, R[trA.roStr==0 ? 0:2]); if (P.pCh.segmentMin>0) { for (uint ia=0;ia> vvA {{}}; //all combinations for (const auto& u : vA) {//cycle over vars, each time add new variant by adding 2 variants to each of the existing combinations + (void) u; //to avoid unused warning vector> r; //temp for (const auto& x : vvA) { for (const auto& y:{1,2}) { diff --git a/STAR.cpp b/STAR.cpp index 8aae3d1..676877f 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -411,7 +411,7 @@ int main(int argInN, char* argIn[]) { if (binS==0) continue; //empty bin if (ibin == nBins-1) {//last bin for unmapped reads - BAMbinSortUnmapped(ibin,P.runThreadN,P.outBAMsortTmpDir,P.inOut->outBAMfileCoord, P, mainGenome); + BAMbinSortUnmapped(ibin,P.runThreadN,P.outBAMsortTmpDir, P, mainGenome); } else { uint newMem=binS+binN*24; bool boolWait=true; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index aefcf57..3ef3cb0 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -6,7 +6,7 @@ inline uint medianUint2(uint a, uint b) { return a/2 + b/2 + (a%2 + b%2)/2; }; -uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& compRes, Parameters& P) { +uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& compRes) { // compare s to g, find the maximum identity length // s2[0] read sequence; s2[1] complementary sequence // S position to start search from in s2[0],s2[1] @@ -100,7 +100,7 @@ uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint }; }; -uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S, Parameters& P) { +uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S) { // given SA index i3 and identity length L3, return the index of the farthest element with the same length, starting from i1,L1 or i1a,L1a, or i1b,L1b bool compRes; @@ -116,7 +116,7 @@ uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, while ( (i1b+1i1a+1) ) { //L1a is the target length, i1a...i1b is the initial range, i1c,L1c is the value in the middle uint i1c=medianUint2(i1a,i1b); //uint L1c=identityLength(&g[mapGen.SA[i3]+L1b],&g[mapGen.SA[i1c]+L1b],L3-L1b)+L1b; - uint L1c=compareSeqToGenome(mapGen,s,S,L3,L1b,i1c,dirR,compRes, P); + uint L1c=compareSeqToGenome(mapGen,s,S,L3,L1b,i1c,dirR,compRes); if (L1c==L3) { i1a=i1c; } @@ -127,7 +127,7 @@ uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, return i1a; }; -uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters& P) { +uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd) { // find minimum mappable length of sequence s to the genome g with suffix array SA; length(s)=N; [i1 i2] is // returns number of mappings (1=unique);range indStartEnd; min mapped length = L // binary search in SA space @@ -136,8 +136,8 @@ uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i uint L1,L2,i3,L3,L1a,L1b,L2a,L2b,i1a,i1b,i2a,i2b; - L1=compareSeqToGenome(mapGen,s,S,N,L,i1,dirR,compRes, P); - L2=compareSeqToGenome(mapGen,s,S,N,L,i2,dirR,compRes, P); + L1=compareSeqToGenome(mapGen,s,S,N,L,i1,dirR,compRes); + L2=compareSeqToGenome(mapGen,s,S,N,L,i2,dirR,compRes); // L1=identityLength(&s[L],&g[mapGen.SA[i1]]); // L2=identityLength(&s[L],&g[mapGen.SA[i2]]); @@ -149,7 +149,7 @@ uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i i3=i1;L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+10) {//the sequence is bigger than the last SA index, return a huge number L=L2; @@ -311,7 +311,7 @@ uint suffixArraySearch1(Genome &mapGen, char** s, uint S, uint N, uint64 gInsert uint i3=i1,L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+1>mapGen.GstrandBit) == 0; //forward or reverse strand of the genome diff --git a/SuffixArrayFuns.h b/SuffixArrayFuns.h index 89516e1..02af280 100644 --- a/SuffixArrayFuns.h +++ b/SuffixArrayFuns.h @@ -7,12 +7,12 @@ #include "Genome.h" uint medianUint2(uint, uint); -uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& comparRes, Parameters& P); -uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S, Parameters& P); -uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd, Parameters& P); +uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& comparRes); +uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S); +uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd); void writePacked(Genome &mapGen, char* a, uint jj, uint x); uint readPacked(Genome &mapGen, char* a, uint jj); -uint suffixArraySearch1(Genome &mapGen, char** s2, uint S, uint N, uint64 gInsert, bool dirR, uint i1, uint i2, uint L, Parameters& P); +uint suffixArraySearch1(Genome &mapGen, char** s2, uint S, uint N, uint64 gInsert, bool dirR, uint i1, uint i2, uint L); int64 funCalcSAi(char *G, uint iL); -uint funCalcSAiFromSA(char* gSeq, PackedArray& gSA, Genome &mapGen, uint iSA, int L, Parameters& P, int & iL4); +uint funCalcSAiFromSA(char* gSeq, PackedArray& gSA, Genome &mapGen, uint iSA, int L, int & iL4); #endif diff --git a/Transcript.h b/Transcript.h index 62d19f4..6916997 100644 --- a/Transcript.h +++ b/Transcript.h @@ -61,7 +61,7 @@ class Transcript { void resetMapG(uint); // reset map to 0 for Lread bases void add(Transcript*); // add void alignScore(char **Read1, char *G, Parameters &P); - int variationAdjust(const Genome &mapGen, char *R, char **Read1, char *G, Parameters &P); + int variationAdjust(const Genome &mapGen, char *R); string generateCigarP(); //generates CIGAR void peOverlapSEtoPE(uint* mSta, Transcript &t); private: diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index b182117..1a3f6a4 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -1,7 +1,7 @@ #include "Transcript.h" #include "serviceFuns.cpp" -int Transcript::variationAdjust(const Genome &mapGen, char *R, char **Read1, char *G, Parameters &P) +int Transcript::variationAdjust(const Genome &mapGen, char *R) { Variation &Var=*mapGen.Var; @@ -20,7 +20,7 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R, char **Read1, cha int32 isnp=binarySearch1b (exons[ie][EX_G], Var.snp.loci, Var.snp.N); if (isnp>=0) { - while (isnpVar.snp.loci[isnp]) + while ((uint)isnpVar.snp.loci[isnp]) {//these SNPs overlap the block varInd.push_back(isnp); //record snp index varGenCoord.push_back(Var.snp.loci[isnp]-mapGen.chrStart[Chr]); @@ -67,7 +67,7 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R, char **Read1, cha dScore=2*(nMMold-nMM);//score only changes if the number of mismatches is reduced after SNP adjustment }; #else - #warning VAR_noScoreCorrection set: no variation score correction + //#warning VAR_noScoreCorrection set: no variation score correction #endif return dScore; diff --git a/Variation.cpp b/Variation.cpp index 3301003..6c603de 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -134,7 +134,7 @@ void Variation::loadVCF(string fileIn) void SNP::snpOnBlocks(uint blockStart, uint blockL, int blockShift, vector>> &snpV) { int32 isnp=binarySearch1b (blockStart, loci, N); - while (isnp=mapGen.nSA) {//reached the end of the SA - indFull=funCalcSAiFromSA(G,SA,mapGen,mapGen.nSA-1,mapGen.pGe.gSAindexNbases,P,iL4); + indFull=funCalcSAiFromSA(G,SA,mapGen,mapGen.nSA-1,mapGen.pGe.gSAindexNbases,iL4); if (indFull==indFullPrev && iL4==iL4prev) { isa=mapGen.nSA;//no more indices, the last one is equal to the previous @@ -247,7 +247,7 @@ void funSAiFindNextIndex(Parameters & P, char * G, PackedArray & SA, uint isaSte while (i1+1 //for memset -#include //fro cout - debug - -#define GENOME_charN 6 -//max number of characters in the text (genome), presently 0-5 - -void sortSuffixesBucket(char *G, void *ind, int indN, int indSkip) -{ - - //boundaries of unsorted intervals - int *uB1=new int[indN/2]; - int *uB2=new int[indN/2]; - int *uuB1=new int[indN/2]; - int *uuB2=new int[indN/2]; - - int uN; - - if (false) //TODO implement flag to switch this option - {//no initial bucketing - uB1[0]=0; - uB2[0]=indN; - uN=1;//number of unsorted intervals - } else - {//initial bucketing according to the ind - uN=0; - uint64_t iprev=*(uint64_t*)(ind+0*indSkip); - int un=1; - for (int id=1; id1) - { - uB1[uN]=id-un; - uB2[uN]=id; - uN++; - un=1; - }; - iprev=*(uint64_t*)(ind+id*indSkip); - }; - }; - }; - - char *ind1=new char[indN*indSkip];//array to store sorted indices - int charShift=0;//character position to be sorted - int charStart[GENOME_charN]; - int charCount[GENOME_charN]; - - while (uN>0) - { - int uuN=0; - for (int iu=0; iu0 && charCount[ic]<(uB2[iu]-uB1[iu]) ) needToSort=true; //need to sort only if at least one char > 0 and more than one chars in this bucket - if (charCount[ic]>1) - { - uuB1[uuN]=charStart[ic]; - uuB2[uuN]=charStart[ic+1]; - uuN++; - }; - }; - - if (needToSort) - {//otherwise it's either all sorted or all unsorted, no need to move indexes in either case - for (int id=uB1[iu]; id=maxScore1) {//equal sign (>=) flushes insertions to the right + if (Score1>maxScore1 || (Score1==maxScore1 && P.alignInsertionFlush.flushRight)) {//equal sign (>=) flushes insertions to the right maxScore1=Score1; jR=jR1; }; @@ -283,9 +283,11 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; }; - for (; jRRead1, mapGen.G, P); + Score+=trA.variationAdjust(mapGen, R); trA.maxScore=Score; diff --git a/sysRemoveDir.cpp b/sysRemoveDir.cpp index 2f8f553..3a3be9f 100644 --- a/sysRemoveDir.cpp +++ b/sysRemoveDir.cpp @@ -5,6 +5,12 @@ #include int removeFileOrDir(const char *fpath,const struct stat *sb, int typeflag, struct FTW *ftwbuf) { + + {//to avoid unused variable warning + (void) sb; + (void) ftwbuf; + }; + if (typeflag==FTW_F) {//file remove(fpath); } else if (typeflag==FTW_DP) {//dir From 4816bc91ca767be45e6b5f07138730ddab95f7e2 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 20 Apr 2018 19:01:23 -0400 Subject: [PATCH 339/536] --chimScoreJunctionNonGTAG is now added to chimeric score for thresholding with --chimScoreMin and --chimScoreDropMax; large negative number will prohibit non-GTAG chimeric junctions. Fixed a bug in the --alignInsertionFlush Right option. --- ReadAlign_chimericDetectionOld.cpp | 10 +- parametersDefault | 14 +- parametersDefault.xxd | 3410 ++++++++++++++-------------- stitchAlignToTranscript.cpp | 5 +- 4 files changed, 1732 insertions(+), 1707 deletions(-) diff --git a/ReadAlign_chimericDetectionOld.cpp b/ReadAlign_chimericDetectionOld.cpp index fe1f132..1c3e897 100644 --- a/ReadAlign_chimericDetectionOld.cpp +++ b/ReadAlign_chimericDetectionOld.cpp @@ -224,9 +224,17 @@ bool ReadAlign::chimericDetectionOld() { jScoreBest=jScoreJ; }; };//jR cycle - if (chimN==0) {//the chimera was rejected because of mismatches + if ( chimN==0 ) {//the chimera was rejected because of mismatches return false; }; + + if (chimMotif==0) {//non-canonical chimera + chimScoreBest += 1+P.pCh.scoreJunctionNonGTAG; //+1 + if ( !(chimScoreBest >= P.pCh.scoreMin && chimScoreBest+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1])) ) { + return false; + }; + }; + //shift junction in trChim if (trChim[0].Str==1) { diff --git a/parametersDefault b/parametersDefault index 244dd3a..c20e9bc 100644 --- a/parametersDefault +++ b/parametersDefault @@ -243,11 +243,12 @@ outSAMattributes Standard None ... no attributes Standard ... NH HI AS nM All ... NH HI AS nM NM MD jM jI MC ch - rB ... alignment block read/genomic coordinates - vW ... 0/1 - alignment does not pass / passes WASP filtering. Requires --waspOutputMode SAMtag . + vA ... variant allele vG ... genomic coordiante of the variant overlapped by the read + vW ... 0/1 - alignment does not pass / passes WASP filtering. Requires --waspOutputMode SAMtag . + Unsupported/undocumented: + rB ... alignment block read/genomic coordinates vR ... read coordinate of the variant - vA ... variant allele outSAMattrIHstart 1 int>=0: start value for the IH attribute. 0 may be required by some downstream software, such as Cufflinks or StringTie. @@ -545,10 +546,11 @@ alignSoftClipAtReferenceEnds Yes No ... prohibit, useful for compatibility with Cufflinks alignInsertionFlush None - string: None ... insertions are not flushed + string: how to flush ambiguous insertion positions + None ... insertions are not flushed Right ... insertions are flushed to the right -### Paired-End reads +### Paired-End reads: presently unsupported/undocumented peOverlapNbasesMin 0 int>=0: minimum number of overlap bases to trigger mates merging and realignment @@ -614,7 +616,7 @@ chimMainSegmentMultNmax 10 int>=1: maximum number of multi-alignments for the main chimeric segment. =1 will prohibit multimapping main segments. chimMultimapNmax 0 - int>=0: maximum number of multi-alignments for the chimera + int>=0: maximum number of chimeric multi-alignments 0 ... use the old scheme for chimeric detection which only considered unique alignments chimMultimapScoreRange 1 diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 2c10f7c..de21bf2 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1123,1792 +1123,1804 @@ unsigned char parametersDefault[] = { 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, 0x20, - 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, - 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x61, 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x6c, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, - 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, - 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, - 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, + 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, + 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, + 0x61, 0x67, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, - 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, - 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, - 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, + 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, + 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, + 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, + 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, + 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, - 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, - 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, - 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, - 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, - 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, - 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, - 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, - 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, - 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, - 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, - 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, - 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, - 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, - 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, - 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, - 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, + 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, + 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, + 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, + 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, + 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, + 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, + 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, + 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, + 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, + 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, + 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, - 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, - 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, - 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, - 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, - 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, - 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, - 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, - 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, - 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, - 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, - 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, - 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, - 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, - 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, - 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, - 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, - 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, - 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, + 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, + 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, + 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, + 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, + 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, + 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, + 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, + 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, + 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, + 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, + 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, + 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, + 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, + 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, + 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, + 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, + 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, + 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, + 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, + 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, + 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, - 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, - 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, - 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, - 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, + 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, + 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, + 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, + 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, + 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, + 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, + 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, + 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, + 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, + 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, + 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, - 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, - 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, - 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, - 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, + 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, - 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, - 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, + 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, - 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, - 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, - 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, - 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, - 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, - 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, - 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, - 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, + 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, + 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, + 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, + 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, - 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, - 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, - 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, + 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, - 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, - 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, + 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, - 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, - 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, - 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, - 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, - 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, - 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, - 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, - 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, - 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, - 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, - 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, - 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, - 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, + 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, + 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, + 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, + 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, + 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, + 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, + 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, - 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, - 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, - 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, - 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, - 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, - 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, - 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, + 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, - 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, - 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, - 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, - 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, - 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, - 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, - 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x45, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x70, 0x65, 0x4f, - 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, - 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, - 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, - 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, - 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, - 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, - 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, - 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, - 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, + 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, + 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, + 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, + 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, + 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, + 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, + 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, + 0x75, 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, + 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, + 0x20, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, + 0x64, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, + 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, + 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, + 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, + 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, + 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, + 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, + 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, + 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, + 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, + 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, - 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, - 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, - 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, - 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, - 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, - 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, - 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, + 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, + 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, + 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, + 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, - 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, + 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, - 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, - 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, - 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, + 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, + 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, + 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, + 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, + 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, + 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, - 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, - 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, - 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, - 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, - 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, - 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, - 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, - 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, - 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, - 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, - 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, - 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, - 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, - 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, - 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, - 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, - 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, + 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, + 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, + 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, + 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, + 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, + 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, + 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, + 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, + 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, + 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, + 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, + 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, + 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, + 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a }; -unsigned int parametersDefault_len = 34924; +unsigned int parametersDefault_len = 35066; diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index bd8b9c0..09c3168 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -284,11 +284,14 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; if (P.alignInsertionFlush.flushRight) { - for (; (uint)jR Date: Mon, 23 Apr 2018 12:55:22 -0400 Subject: [PATCH 340/536] WASP filtering switched off for the 1st pass of the 2-pass mapping. --- STAR.cpp | 2 ++ Variation.cpp | 76 ++++++++++++++++----------------------------------- 2 files changed, 25 insertions(+), 53 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index 676877f..22da2b7 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -155,6 +155,8 @@ int main(int argInN, char* argIn[]) { P1.readMapNumber=P.twoPass.pass1readsN; // P1.inOut->logMain.open((P1.outFileNamePrefix + "Log.out").c_str()); + P1.wasp.outputMode="None"; //no WASP filtering on the 1st pass + g_statsAll.resetN(); time(&g_statsAll.timeStartMap); P.inOut->logProgress << timeMonthDayTime(g_statsAll.timeStartMap) <<"\tStarted 1st pass mapping\n" < &c nlines++; vcf >> chr; - if (!vcf.good()) - { + if (!vcf.good()) { break; }; - if (chr.at(0)!='#') - { + if (chr.at(0)!='#') { vcf >> pos >> id >> ref >> alt >> dummy >> dummy >> dummy >> dummy >> sample; vector altV(3); - if (ref.size()==1 && splitString(alt,',',altV)==1) - { + if (ref.size()==1 && splitString(alt,',',altV)==1) { altV.insert(altV.begin(),ref);//add ref to the beginning if (chrNameIndex.count(chr)==0) {//chr not in Genome - if (!load) - { + if (!load) { P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": chromosome '"<3 && sample.at(3)!=':') - { - if (!load) - { + } else if (sample.size()<3) { + //undefined genotype + } else if (sample.size()>3 && sample.at(3)!=':') { + if (!load) { P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": more than 2 alleles per sample for line number "< &c }; -void Variation::loadVCF(string fileIn) -{ +void Variation::loadVCF(string fileIn) { time_t rawTime; time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... loading variations VCF\n" <logMain << timeMonthDayTime(rawTime) <<" ..... Loaded VCF data, found "< > nt1=snp.nt; - for (uint ii=0;iilogMain << timeMonthDayTime(rawTime) <<" ..... Finished sorting VCF data"<>> &snpV) -{ +void SNP::snpOnBlocks(uint blockStart, uint blockL, int blockShift, vector>> &snpV) { int32 isnp=binarySearch1b (blockStart, loci, N); - while ((uint)isnp snp1; snp1[0]=(int) (loci[isnp]-blockStart)+blockShift; snp1[1]=(int) nt[isnp][ii+1]; @@ -150,12 +124,10 @@ void SNP::snpOnBlocks(uint blockStart, uint blockL, int blockShift, vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1) -{ +vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1) { vector>> snpV(2); - if (!yes) - {//no variation, return 1 empty element + if (!yes) {//no variation, return 1 empty element vector>> snpV1(1); return snpV1; }; @@ -163,11 +135,9 @@ vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint s snp.snpOnBlocks(sjStart-sjdbOverhang1, sjdbOverhang1, 0, snpV); snp.snpOnBlocks(sjEnd+1, sjdbOverhang1, sjdbOverhang1, snpV); - if (snpV.at(0).empty() && snpV.at(1).empty()) - { + if (snpV.at(0).empty() && snpV.at(1).empty()) { snpV.pop_back(); - } else if (snpV.at(0) == snpV.at(1)) - { + } else if (snpV.at(0) == snpV.at(1)) { snpV.pop_back(); }; From 969af455f6c98443ff6995745e3c1fd22ff4143c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 23 Apr 2018 13:23:06 -0400 Subject: [PATCH 341/536] Recompiled Linux executables. --- stitchAlignToTranscript.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 09c3168..5692eeb 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -284,12 +284,12 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; if (P.alignInsertionFlush.flushRight) { - for (; (uint)jR Date: Mon, 23 Apr 2018 18:34:30 -0400 Subject: [PATCH 342/536] Manual, README, RELEASEnotes, CHANGES --- parametersDefault | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/parametersDefault b/parametersDefault index c20e9bc..7f94b3d 100644 --- a/parametersDefault +++ b/parametersDefault @@ -14,9 +14,9 @@ sysShell - - ... the default shell is executed, typically /bin/sh. This was reported to fail on some Ubuntu systems - then you need to specify path to bash. ### Run Parameters - runMode alignReads - string: type of the run: + string: type of the run. + alignReads ... map reads genomeGenerate ... generate genome files inputAlignmentsFromBAM ... input alignments from BAM. Presently only works with --outWigType and --bamRemoveDuplicates. @@ -35,7 +35,6 @@ runRNGseed 777 ### Genome Parameters - genomeDir ./GenomeDir/ string: path to the directory where genome files are stored (for --runMode alignReads) or will be generated (for --runMode generateGenome) @@ -113,7 +112,6 @@ inputBAMfile - string: path to BAM input file, to be used with --runMode inputAlignmentsFromBAM ### Read Parameters - readFilesType Fastx string: format of input read files Fastx ... FASTA or FASTQ @@ -158,7 +156,6 @@ clip3pAfterAdapterNbases 0 ### Limits - limitGenomeGenerateRAM 31000000000 int>0: maximum available RAM (bytes) for genome generation @@ -325,7 +322,6 @@ outBAMsortingBinsN 50 int: >0: number of genome bins fo coordinate-sorting ### BAM processing - bamRemoveDuplicatesType - string: mark duplicates in the BAM file, for now only works with (i) sorted BAM fed with inputBAMfile, and (ii) for paired-end alignments only - ... no duplicate removal/marking @@ -654,3 +650,5 @@ twopass1readsN -1 waspOutputMode None string: WASP allele-specific output type. This is re-implemenation of the original WASP mappability filtering by Bryce van de Geijn, Graham McVicker, Yoav Gilad & Jonathan K Pritchard. Please cite the original WASP paper: Nature Methods 12, 1061–1063 (2015), https://www.nature.com/articles/nmeth.3582 . SAMtag ... add WASP tags to the alignments that pass WASP filtering + + From db557a2117791575355e76301a981ff935df7573 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 26 Apr 2018 18:54:15 -0400 Subject: [PATCH 343/536] Fixed a bug that accidentally turns on --peOverlap* option and causes seg-fault. --- Parameters.cpp | 6 +- VERSION | 2 +- parametersDefault.xxd | 5241 ++++++++++++++++++++--------------------- 3 files changed, 2625 insertions(+), 2624 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index d11cbf3..4272c4a 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1217,8 +1217,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (pGe.gLoad!="NoSharedMemory") { ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with pGe.gLoad<<"<logMain, EXIT_CODE_PARAMETER, *this); }; twoPass.yes=true; @@ -1359,6 +1359,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //peOverlap if (peOverlap.NbasesMin>0) { peOverlap.yes=true; + } else { + peOverlap.yes=false; }; //////////////////////////////////////////////// diff --git a/VERSION b/VERSION index bcc4e5b..261b3a1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.0a" +#define STAR_VERSION "STAR_2.6.0b" diff --git a/parametersDefault.xxd b/parametersDefault.xxd index de21bf2..d9ddaea 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -58,12 +58,12 @@ unsigned char parametersDefault[] = { 0x79, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, - 0x0a, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, @@ -140,1796 +140,1823 @@ unsigned char parametersDefault[] = { 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, + 0x73, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, + 0x66, 0x6f, 0x72, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, + 0x66, 0x6f, 0x72, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, + 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, - 0x28, 0x66, 0x6f, 0x72, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, + 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x28, 0x66, 0x6f, 0x72, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, - 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, - 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, - 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, - 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, - 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, - 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x28, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x61, 0x6c, - 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x28, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x28, 0x6e, 0x65, 0x77, 0x29, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x2d, 0x69, 0x6e, 0x73, 0x29, - 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, - 0x74, 0x6f, 0x76, 0x65, 0x72, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x69, 0x66, 0x74, - 0x4f, 0x76, 0x65, 0x72, 0x20, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, - 0x29, 0x3e, 0x30, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, - 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x46, - 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x20, 0x53, 0x4e, 0x50, 0x73, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x20, 0x28, 0x41, 0x46, - 0x3e, 0x30, 0x2e, 0x35, 0x29, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, - 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x2d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, - 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, - 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, - 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x73, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, - 0x38, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x5b, 0x6d, 0x61, 0x78, 0x28, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x2f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x52, 0x65, 0x61, 0x64, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x5d, 0x29, 0x2e, 0x0a, 0x0a, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, - 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, - 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, - 0x6c, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x64, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, - 0x6e, 0x28, 0x31, 0x34, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, - 0x2f, 0x32, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, - 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, - 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, - 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, - 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, - 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, - 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, - 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, - 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, - 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, - 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, - 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, - 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, + 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, + 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, + 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, + 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, + 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, + 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, + 0x41, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, + 0x79, 0x20, 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, + 0x65, 0x20, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x73, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x28, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x28, 0x6e, 0x65, 0x77, 0x29, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x2d, 0x69, 0x6e, 0x73, 0x29, 0x2e, + 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, + 0x6f, 0x76, 0x65, 0x72, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, + 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x4f, + 0x76, 0x65, 0x72, 0x20, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, + 0x3e, 0x30, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, + 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, + 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x46, 0x69, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, - 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, - 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, - 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, - 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, - 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, - 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, - 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, - 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, - 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, - 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, - 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, - 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, - 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, - 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x0a, 0x76, 0x61, 0x72, 0x56, 0x43, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x20, 0x53, 0x4e, 0x50, 0x73, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, + 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x20, 0x28, 0x41, 0x46, 0x3e, + 0x30, 0x2e, 0x35, 0x29, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x29, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x2d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6c, 0x61, 0x72, 0x67, + 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x73, 0x2c, 0x20, 0x69, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x38, + 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x5b, 0x6d, 0x61, 0x78, 0x28, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x52, 0x65, 0x61, 0x64, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x5d, 0x29, 0x2e, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, + 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, + 0x28, 0x31, 0x34, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2f, + 0x32, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, + 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, + 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, + 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, + 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, + 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, + 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, + 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, + 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, + 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, + 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, + 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, + 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, + 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, + 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x46, 0x61, 0x73, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, + 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, + 0x76, 0x61, 0x72, 0x56, 0x43, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, - 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x73, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, + 0x73, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x53, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, - 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, - 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x51, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x50, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x4d, 0x20, 0x53, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, - 0x69, 0x65, 0x77, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x65, 0x69, 0x66, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x72, - 0x6f, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, - 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, - 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, - 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, - 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, - 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x69, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x50, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, + 0x77, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, - 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, - 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, - 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, - 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, - 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, - 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, - 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, - 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, - 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x65, 0x69, 0x66, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x64, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6e, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, + 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, + 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, + 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, + 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, + 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, + 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, + 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, + 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, + 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, + 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, + 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, + 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, + 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, + 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, - 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, - 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, - 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, - 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, - 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, - 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, + 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, + 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, + 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, - 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, + 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, + 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, + 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, + 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, - 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, + 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, - 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, - 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, - 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, - 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, - 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, + 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, + 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, + 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, + 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, + 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, + 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, + 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, + 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, + 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, + 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, + 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, - 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, + 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, + 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, + 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, - 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, - 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, - 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, - 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, - 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, + 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, + 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, + 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, + 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, + 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, - 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, - 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, + 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, - 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, - 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, + 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, - 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, - 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, - 0x4d, 0x43, 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, - 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, - 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, - 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, - 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, - 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, - 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, - 0x61, 0x67, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, + 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, + 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, + 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, 0x20, + 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, + 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, - 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, - 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, - 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, - 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, - 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, + 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, + 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, + 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x61, 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, + 0x2d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, + 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, - 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, - 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, - 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, + 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, + 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, + 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, + 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, + 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, - 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, + 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, + 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, - 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, - 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, - 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, - 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, - 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, - 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, - 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, - 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, - 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, - 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, - 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, - 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, - 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, - 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, - 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, - 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, - 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, - 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, - 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, - 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, - 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, - 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, - 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, - 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, - 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, - 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, - 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, - 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, - 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, - 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, - 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, - 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, - 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, - 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, - 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, - 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, - 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, + 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, - 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, - 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, - 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, - 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, - 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, + 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, + 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, + 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, + 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, + 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, + 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, + 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, + 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, + 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, + 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, + 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, + 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, + 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, + 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, + 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, + 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, + 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, + 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, + 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, + 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, + 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, + 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, + 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, + 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, + 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, + 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, + 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, + 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, + 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, + 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, + 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, - 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, - 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, + 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, + 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, - 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, - 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, + 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, + 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, + 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, + 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, - 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, - 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, - 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, - 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, + 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, @@ -1944,983 +1971,955 @@ unsigned char parametersDefault[] = { 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, - 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, - 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, - 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, - 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, - 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, - 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, - 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, + 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, + 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, - 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, - 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, + 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, - 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, - 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, - 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, - 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, - 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, - 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, - 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, - 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, - 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, + 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, + 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, + 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, + 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, + 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, + 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, - 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, - 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, - 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, - 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, - 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, - 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, - 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, - 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, - 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, - 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, - 0x75, 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, + 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, + 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, + 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, - 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, - 0x20, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, - 0x64, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, - 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, - 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, - 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, - 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, - 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, - 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x75, + 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x70, 0x65, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, + 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, + 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, - 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, - 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, - 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, - 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, + 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, - 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, - 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, - 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, - 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, + 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, + 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, + 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, + 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, - 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, - 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, + 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, - 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, - 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, - 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, + 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, + 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, + 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, + 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, - 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, - 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, + 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, + 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, + 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, + 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, + 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, + 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, + 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, + 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, + 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, + 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, - 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, - 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, - 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, - 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, - 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, - 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, - 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, - 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, + 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, + 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, + 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, + 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, + 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, + 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, + 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, + 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, + 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, + 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, + 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, + 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, + 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, - 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, - 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, - 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, - 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, - 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, - 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, - 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, - 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, - 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, - 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, - 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, - 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, - 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, - 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, - 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, - 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, - 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, - 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, + 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, + 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 35066; +unsigned int parametersDefault_len = 35064; From e89c1efc8aafd4a42d160640caeaf785142ec090 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 2 May 2018 17:22:28 -0400 Subject: [PATCH 344/536] Fixed a few bugs detected by valgrind. --- Parameters.cpp | 29 +++++++++++- ReadAlign_chimericDetectionOldOutput.cpp | 60 +++++++++++++----------- ReadAlign_peOverlapMergeMap.cpp | 29 +++++++----- VERSION | 2 +- Variation.cpp | 5 +- Variation.h | 4 +- 6 files changed, 82 insertions(+), 47 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 4272c4a..6d260fd 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -887,7 +887,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --varVCFfile /path/to/file.vcf\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + + + if (wasp.yes && outSAMtype.at(0)!="BAM") { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: --waspOutputMode requires output to BAM file\n"; + errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --outSAMtype BAM ... \n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; //outSAMattributes outSAMattrPresent.NH=false;//TODO re-write as class with constructor? @@ -1050,7 +1057,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + if (pCh.out.bam && !outBAMunsorted && !outBAMcoord) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; @@ -1058,6 +1065,24 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + if (pCh.multimapNmax>0 && (pCh.out.bam || pCh.out.samOld)) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax > 0 (new chimeric detection) presently only works with --chimOutType Junctions\n"; + errOut <<"SOLUTION: re-run with --chimOutType Junctions\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (peOverlap.NbasesMin > 0) { + if (pCh.multimapNmax == 0 && (pCh.out.junctions || pCh.out.samOld)) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax 0 (default old chimeric detection) and --peOverlapNbasesMin > 0 (merging ovelrapping mates) presently only works with --chimOutType WithinBAM\n"; + errOut <<"SOLUTION: re-run with --chimOutType WithinBAM\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + + if (pCh.out.bam && !outSAMattrPresent.NM) { outSAMattrOrder.push_back(ATTR_NM); inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <peMergeMates(); peOv=peMergeRA->peOv; - - if (peOv.nOv==0) {//check if mates can be merged, if not - return //cout <<"\n-1\n"; + peOv.yes=false; return; }; @@ -74,6 +73,8 @@ void ReadAlign::peOverlapMergeMap() { if (peScore<=trBest->maxScore || chimRecord) { peOv.yes=true; + } else { + peOv.yes=false; }; return; @@ -202,12 +203,13 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig exons[nExons][EX_iFrag]=(imate==0 ? t.Str : 1-t.Str); exons[nExons][EX_sjA]=t.exons[iex][EX_sjA]; - canonSJ[nExons]=t.canonSJ[iex]; - sjAnnot[nExons]=t.sjAnnot[iex]; - sjStr[nExons]=t.sjStr[iex]; - shiftSJ[nExons][0]=t.shiftSJ[iex][0]; - shiftSJ[nExons][1]=t.shiftSJ[iex][1]; - + if (nExons>0 && iex>0) { + canonSJ[nExons-1]=t.canonSJ[iex-1]; + sjAnnot[nExons-1]=t.sjAnnot[iex-1]; + sjStr[nExons-1]=t.sjStr[iex-1]; + shiftSJ[nExons-1][0]=t.shiftSJ[iex-1][0]; + shiftSJ[nExons-1][1]=t.shiftSJ[iex-1][1]; + }; //record these exons for mate2 if (t.exons[iex][EX_R]>=mSta[imate]) {//exon left is inside the mate exons[nExons][EX_G]=t.exons[iex][EX_G]; @@ -227,8 +229,11 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig ++nExons; }; canonSJ[nExons-1]=-3; //marks "junction" between mates - }; - + sjAnnot[nExons-1]=0; + sjStr[nExons-1]=0; + shiftSJ[nExons-1][0]=0; + shiftSJ[nExons-1][1]=0; + }; //copy scalar variables for (uint ii=0;ii<3;ii++) { diff --git a/VERSION b/VERSION index 261b3a1..feb72fc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.0b" +#define STAR_VERSION "STAR_2.6.0a_modified" diff --git a/Variation.cpp b/Variation.cpp index f8fd0ac..6b485bb 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -12,8 +12,9 @@ Variation::Variation (Parameters &Pin, vector &chrStartIn, map &chrStart; //this needs to be replaced with a structure that contains basic genome variables map &chrNameIndex; From 25d0e249c84857e72712302c194333a926206513 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 2 May 2018 18:08:39 -0400 Subject: [PATCH 345/536] 2.6.0b --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index feb72fc..261b3a1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.0a_modified" +#define STAR_VERSION "STAR_2.6.0b" From 5ff558510a9e317c9b2f273a8b1689a15b499fa1 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 3 May 2018 18:31:37 -0400 Subject: [PATCH 346/536] Fixed another bug in the peOverlap algorithm. --- Parameters.cpp | 121 ++++++++++++++++---------------- ReadAlign_peOverlapMergeMap.cpp | 22 +++--- VERSION | 2 +- 3 files changed, 71 insertions(+), 74 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 6d260fd..3a372b2 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1039,75 +1039,76 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters pCh.out.junctions=false; pCh.out.samOld=false; pCh.out.bamHardClip=true;//default - for (const auto& type1 : pCh.out.type) { - if (type1=="WithinBAM") { - pCh.out.bam=true; - } else if (pCh.out.type.at(0)=="SeparateSAMold") { - pCh.out.samOld=true; - } else if (pCh.out.type.at(0)=="Junctions") { - pCh.out.junctions=true; - } else if (type1=="HardClip") { - pCh.out.bamHardClip=true; - } else if (type1=="SoftClip") { - pCh.out.bamHardClip=false; - } else { - ostringstream errOut; - errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); + if (pCh.segmentMin>0) {//only if chimeric detection is activated + for (const auto& type1 : pCh.out.type) { + if (type1=="WithinBAM") { + pCh.out.bam=true; + } else if (pCh.out.type.at(0)=="SeparateSAMold") { + pCh.out.samOld=true; + } else if (pCh.out.type.at(0)=="Junctions") { + pCh.out.junctions=true; + } else if (type1=="HardClip") { + pCh.out.bamHardClip=true; + } else if (type1=="SoftClip") { + pCh.out.bamHardClip=false; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); + }; }; - }; - if (pCh.out.bam && !outBAMunsorted && !outBAMcoord) { - ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; - errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - - if (pCh.multimapNmax>0 && (pCh.out.bam || pCh.out.samOld)) { - ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax > 0 (new chimeric detection) presently only works with --chimOutType Junctions\n"; - errOut <<"SOLUTION: re-run with --chimOutType Junctions\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - - if (peOverlap.NbasesMin > 0) { - if (pCh.multimapNmax == 0 && (pCh.out.junctions || pCh.out.samOld)) { + if (pCh.out.bam && !outBAMunsorted && !outBAMcoord) { ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax 0 (default old chimeric detection) and --peOverlapNbasesMin > 0 (merging ovelrapping mates) presently only works with --chimOutType WithinBAM\n"; - errOut <<"SOLUTION: re-run with --chimOutType WithinBAM\n"; + errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; + errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - }; - - - - if (pCh.out.bam && !outSAMattrPresent.NM) { - outSAMattrOrder.push_back(ATTR_NM); - inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <0 && (pCh.out.bam || pCh.out.samOld)) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax > 0 (new chimeric detection) presently only works with --chimOutType Junctions\n"; + errOut <<"SOLUTION: re-run with --chimOutType Junctions\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (peOverlap.NbasesMin > 0) { + if (pCh.multimapNmax == 0 && (pCh.out.junctions || pCh.out.samOld)) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax 0 (default old chimeric detection) and --peOverlapNbasesMin > 0 (merging ovelrapping mates) presently only works with --chimOutType WithinBAM\n"; + errOut <<"SOLUTION: re-run with --chimOutType WithinBAM\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + + + if (pCh.out.bam && !outSAMattrPresent.NM) { + outSAMattrOrder.push_back(ATTR_NM); + inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <logMain, EXIT_CODE_PARAMETER, *this); + if (pCh.filter.stringIn.at(ii)=="banGenomicN") + { + pCh.filter.genomicN=true; + } + else if (pCh.filter.stringIn.at(ii)=="None") + {//nothing to do + } + else + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized value of --chimFilter="<logMain, EXIT_CODE_PARAMETER, *this); + }; }; }; - alignEndsType.ext[0][0]=false; alignEndsType.ext[0][1]=false; alignEndsType.ext[1][0]=false; diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index 31c67b7..0469ab3 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -3,10 +3,9 @@ void ReadAlign::peOverlapMergeMap() { - if (!P.peOverlap.yes || P.readNmates!=2 ) {//no peOverlap - peOv.yes=false; return; + peOv.yes=false; }; //debug @@ -17,10 +16,10 @@ void ReadAlign::peOverlapMergeMap() { peMergeRA->copyRead(*this); peMergeRA->peMergeMates(); peOv=peMergeRA->peOv; + peOv.yes=false; if (peOv.nOv==0) {//check if mates can be merged, if not - return //cout <<"\n-1\n"; - peOv.yes=false; return; }; @@ -36,7 +35,6 @@ void ReadAlign::peOverlapMergeMap() { // cout <Read1[0][ii]]; //}; //cout << "\n"; - return; }; @@ -71,10 +69,8 @@ void ReadAlign::peOverlapMergeMap() { //P.alignSplicedMateMapLminOverLmate=P_alignSplicedMateMapLminOverLmate; - if (peScore<=trBest->maxScore || chimRecord) { + if (peScore<=trBest->maxScore || chimRecord) {//otherwise peOv.yes=false peOv.yes=true; - } else { - peOv.yes=false; }; return; @@ -203,12 +199,12 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig exons[nExons][EX_iFrag]=(imate==0 ? t.Str : 1-t.Str); exons[nExons][EX_sjA]=t.exons[iex][EX_sjA]; - if (nExons>0 && iex>0) { - canonSJ[nExons-1]=t.canonSJ[iex-1]; - sjAnnot[nExons-1]=t.sjAnnot[iex-1]; - sjStr[nExons-1]=t.sjStr[iex-1]; - shiftSJ[nExons-1][0]=t.shiftSJ[iex-1][0]; - shiftSJ[nExons-1][1]=t.shiftSJ[iex-1][1]; + if (iex=mSta[imate]) {//exon left is inside the mate diff --git a/VERSION b/VERSION index 261b3a1..7bab342 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.0b" +#define STAR_VERSION "STAR_2.6.0b_modified" From 811e5ab62911112b98c9bb15f3e50cd5f686f134 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 7 May 2018 13:08:30 -0400 Subject: [PATCH 347/536] Fixed the problem with Ns in the overlap region for the peOverlap algorithm. --- ReadAlign_peOverlapMergeMap.cpp | 4 ++-- STAR.cpp | 12 ++++++++++++ SequenceFuns.cpp | 26 ++++++++++++++++++++++++++ SequenceFuns.h | 2 ++ 4 files changed, 42 insertions(+), 2 deletions(-) diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index 0469ab3..a6bd9ab 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -78,8 +78,8 @@ void ReadAlign::peOverlapMergeMap() { void ReadAlign::peMergeMates() { - uint s1=localSearch(Read1[0],readLength[0],Read1[0]+readLength[0]+1,readLength[1],P.peOverlap.MMp); - uint s0=localSearch(Read1[0]+readLength[0]+1,readLength[1],Read1[0],readLength[0],P.peOverlap.MMp); + uint s1=localSearchNisMM(Read1[0],readLength[0],Read1[0]+readLength[0]+1,readLength[1],P.peOverlap.MMp); + uint s0=localSearchNisMM(Read1[0]+readLength[0]+1,readLength[1],Read1[0],readLength[0],P.peOverlap.MMp); uint o1=min(readLength[1],readLength[0]-s1); uint o0=min(readLength[0],readLength[1]-s0); diff --git a/STAR.cpp b/STAR.cpp index 22da2b7..3d87733 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -48,6 +48,18 @@ void usage() { int main(int argInN, char* argIn[]) { + + //debug +// uint nn=4000000000; +// uint* dummy=new uint[nn]; +// std::cout <<"Allocated"<nMatchBest || (nMatch==nMatchBest && nMM Date: Thu, 10 May 2018 18:45:47 -0400 Subject: [PATCH 348/536] Fixed problems with WASP filtering. --- Parameters.cpp | 4 ++-- ReadAlign_waspMap.cpp | 4 +++- VERSION | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 3a372b2..000141c 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1043,9 +1043,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters for (const auto& type1 : pCh.out.type) { if (type1=="WithinBAM") { pCh.out.bam=true; - } else if (pCh.out.type.at(0)=="SeparateSAMold") { + } else if (type1=="SeparateSAMold") { pCh.out.samOld=true; - } else if (pCh.out.type.at(0)=="Junctions") { + } else if (type1=="Junctions") { pCh.out.junctions=true; } else if (type1=="HardClip") { pCh.out.bamHardClip=true; diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp index 7b58427..b1dce67 100644 --- a/ReadAlign_waspMap.cpp +++ b/ReadAlign_waspMap.cpp @@ -61,7 +61,9 @@ void ReadAlign::waspMap() { }; waspRA->mapOneRead(); - + waspRA->multMapSelect(); + waspRA->mappedFilter(); + if (waspRA->unmapType!=-1) { waspType=4; return; diff --git a/VERSION b/VERSION index 7bab342..b6c5c78 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.0b_modified" +#define STAR_VERSION "STAR_2.6.0c" From 2f632bd65ba56c0dc3ebbacfbdc6f0de5084a6b4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 14 Jun 2018 11:47:43 -0400 Subject: [PATCH 349/536] Fixed valgrind error. --- ReadAlign_peOverlapMergeMap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index a6bd9ab..e0a0178 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -4,8 +4,8 @@ void ReadAlign::peOverlapMergeMap() { if (!P.peOverlap.yes || P.readNmates!=2 ) {//no peOverlap - return; peOv.yes=false; + return; }; //debug From c6c2cd9ce5c1a184f0ba4d956bc142561fceb807 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 14 Jun 2018 17:50:51 -0400 Subject: [PATCH 350/536] Process substitution can now be used with zipped VCF files, e.g. --varVCFfile <(zcat vcf.gz) . Fixed a but with --outTmpDir and fifo files. --- Parameters.cpp | 2 +- Variation.cpp | 30 +++++++++++------------------- Variation.h | 3 ++- 3 files changed, 14 insertions(+), 21 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 000141c..9872221 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -453,7 +453,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outFileTmp=outFileNamePrefix +"_STARtmp/"; sysRemoveDir (outFileTmp); } else { - outFileTmp=outTmpDir; + outFileTmp=outTmpDir + "/"; }; if (mkdir (outFileTmp.c_str(),runDirPerm)!=0) { diff --git a/Variation.cpp b/Variation.cpp index 6b485bb..d667cee 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -21,7 +21,7 @@ Variation::Variation (Parameters &Pin, vector &chrStartIn, map &chrStart, map &chrNameIndex) { +void scanVCF(ifstream& vcf, Parameters& P, SNP& snp, vector &chrStart, map &chrNameIndex) { snp.N=0; uint nlines=0; while (true) { @@ -43,27 +43,20 @@ void scanVCF(ifstream& vcf, bool load, Parameters& P, SNP& snp, vector &c altV.insert(altV.begin(),ref);//add ref to the beginning if (chrNameIndex.count(chr)==0) {//chr not in Genome - if (!load) { - P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": chromosome '"<logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": chromosome '"<3 && sample.at(3)!=':') { - if (!load) { - P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": more than 2 alleles per sample for line number "<logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": more than 2 alleles per sample for line number "< nt1={convertNt01234( ref.at(0) ), convertNt01234( altV.at( atoi(&sample.at(0)) ).at(0) ), convertNt01234( altV.at( atoi(&sample.at(2)) ).at(0) )}; + snp.nt.push_back(nt1); snp.N++; }; }; @@ -80,14 +73,13 @@ void Variation::loadVCF(string fileIn) { *P.inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... loading variations VCF\n" <logMain << timeMonthDayTime(rawTime) <<" ..... Loaded VCF data, found "< lociV; //snp coordinates vector // SNPnt* nt; //reference and alternative bases // char **nt; //reference and alternative bases // char *nt1; //1D array to store nt From 5cd05b3764ec5413e7f75cfb3742a69944c95ac5 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 13 Jul 2018 18:59:13 -0400 Subject: [PATCH 351/536] Fixed the problem with alignment scoring with peOverlap option which may cause seg-faults in rare cases. --- ReadAlign_peOverlapMergeMap.cpp | 2 +- Transcript_alignScore.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index e0a0178..32d0d62 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -274,7 +274,7 @@ void ReadAlign::peOverlapSEtoPE(ReadAlign &seRA) {//ReAdAlign: convert SE to PE uint trNtotal=0; intScore bestScore=-10*Lread; - trBest=NULL; + trBest=trAll[0][0];//just to initialize for (uint iW=0; iW Date: Fri, 20 Jul 2018 18:52:16 -0400 Subject: [PATCH 352/536] Fixed another problem with alignment scoring with peOverlap option which may cause seg-faults in rare cases. --- ReadAlign_peOverlapMergeMap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index 32d0d62..dc3f368 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -274,7 +274,7 @@ void ReadAlign::peOverlapSEtoPE(ReadAlign &seRA) {//ReAdAlign: convert SE to PE uint trNtotal=0; intScore bestScore=-10*Lread; - trBest=trAll[0][0];//just to initialize + trBest=trArray;//just to initialize - to the 0th spot in the trArray for (uint iW=0; iW Date: Thu, 9 Aug 2018 18:42:28 -0400 Subject: [PATCH 353/536] Fixed a bug with multiple RG lines when inputting reads in SAM format. Fixed a bug causing seg-faults with sharead memory and --outStd options. --- BAMbinSortByCoordinate.cpp | 7 ++ BAMbinSortUnmapped.cpp | 7 ++ InOutStreams.cpp | 5 +- Parameters.cpp | 111 +++++++++++++++---------------- Parameters_readSAMheader.cpp | 3 +- ReadAlignChunk_processChunks.cpp | 2 +- STAR.cpp | 8 +-- VERSION | 2 +- 8 files changed, 78 insertions(+), 67 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index 335ce2d..5c50411 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -49,6 +49,13 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st BGZF *bgzfBin; bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P.outBAMcompression)).c_str()); + if (bgzfBin==NULL) { + ostringstream errOut; + errOut <<"EXITING because of fatal ERROR: could not open temporary bam file: " << dirBAMsort+"/b"+to_string((uint) iBin) << "\n"; + errOut <<"SOLUTION: check that the disk is not full, increase the max number of open files with Linux command ulimit -n before running STAR"; + exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); + }; + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,mapGen.chrNameAll,mapGen.chrLengthAll); //send ordered aligns to bgzf one-by-one for (uint ia=0;ialogMain, EXIT_CODE_PARAMETER, P); + }; + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,mapGen.chrNameAll,mapGen.chrLengthAll); diff --git a/InOutStreams.cpp b/InOutStreams.cpp index f280de9..0034ef9 100644 --- a/InOutStreams.cpp +++ b/InOutStreams.cpp @@ -23,12 +23,13 @@ InOutStreams::~InOutStreams() { logFinal.flush(); outLocalChains.flush(); - logStdOutFile.close(); + //logStdOutFile.close(); //do not want to close these log files, as some destructors (e.g. ~SharedMemory) might still write there + //logMain.close(); + outSAMfile.close(); outChimSAM.close(); outChimJunction.close(); logProgress.close(); - logMain.close(); logFinal.close(); outLocalChains.close(); diff --git a/Parameters.cpp b/Parameters.cpp index 9872221..2d15fbd 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -777,6 +777,60 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; + //two-pass + if (parArray.at(twoPass.pass1readsN_par)->inputLevel>0 && twoPass.mode=="None") + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: --twopass1readsN is defined, but --twoPassMode is not defined\n"; + errOut << "SOLUTION: to activate the 2-pass mode, use --twopassMode Basic"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + twoPass.yes=false; + twoPass.pass2=false; + if (twoPass.mode!="None") {//2-pass parameters + if (runMode!="alignReads") + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: 2-pass mapping option can only be used with --runMode alignReads\n"; + errOut << "SOLUTION: remove --twopassMode option"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (twoPass.mode!="Basic") + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized value of --twopassMode="<logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (twoPass.pass1readsN==0) + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: --twopass1readsN = 0 in the 2-pass mode\n"; + errOut << "SOLUTION: for the 2-pass mode, specify --twopass1readsN > 0. Use a very large number or -1 to map all reads in the 1st pass.\n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (pGe.gLoad!="NoSharedMemory") { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with --genomeLoad "<logMain, EXIT_CODE_PARAMETER, *this); + }; + twoPass.yes=true; + twoPass.dir=outFileNamePrefix+"_STARpass1/"; + sysRemoveDir (twoPass.dir); + if (mkdir (twoPass.dir.c_str(),runDirPerm)!=0) { + ostringstream errOut; + errOut <<"EXITING because of fatal ERROR: could not make pass1 directory: "<< twoPass.dir<<"\n"; + errOut <<"SOLUTION: please check the path and writing permissions \n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + + // openReadFiles depends on twoPass for reading SAM header if (runMode=="alignReads" && pGe.gLoad!="Remove" && pGe.gLoad!="LoadAndExit") {//open reads files to check if they are present openReadsFiles(); @@ -924,7 +978,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters vector vAttr1; if (outSAMattributes.at(0)=="None") { } else if (outSAMattributes.at(0)=="All"){ - vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI","rB","MC","ch"}; + vAttr1={"NH","HI","AS","nM","NM","MD","jM","jI","MC","ch"}; } else if (outSAMattributes.at(0)=="Standard"){ vAttr1={"NH","HI","AS","nM"}; } else { @@ -1203,61 +1257,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; - - //two-pass - if (parArray.at(twoPass.pass1readsN_par)->inputLevel>0 && twoPass.mode=="None") - { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: --twopass1readsN is defined, but --twoPassMode is not defined\n"; - errOut << "SOLUTION: to activate the 2-pass mode, use --twopassMode Basic"; - exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - - - - twoPass.yes=false; - if (twoPass.mode!="None") {//2-pass parameters - if (runMode!="alignReads") - { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: 2-pass mapping option can only be used with --runMode alignReads\n"; - errOut << "SOLUTION: remove --twopassMode option"; - exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - - if (twoPass.mode!="Basic") - { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: unrecognized value of --twopassMode="<logMain, EXIT_CODE_PARAMETER, *this); - }; - - if (twoPass.pass1readsN==0) - { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: --twopass1readsN = 0 in the 2-pass mode\n"; - errOut << "SOLUTION: for the 2-pass mode, specify --twopass1readsN > 0. Use a very large number or -1 to map all reads in the 1st pass.\n"; - exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - - if (pGe.gLoad!="NoSharedMemory") { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with --genomeLoad "<logMain, EXIT_CODE_PARAMETER, *this); - }; - twoPass.yes=true; - twoPass.dir=outFileNamePrefix+"_STARpass1/"; - sysRemoveDir (twoPass.dir); - if (mkdir (twoPass.dir.c_str(),runDirPerm)!=0) { - ostringstream errOut; - errOut <<"EXITING because of fatal ERROR: could not make pass1 directory: "<< twoPass.dir<<"\n"; - errOut <<"SOLUTION: please check the path and writing permissions \n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - //sjdb insert on the fly sjdbInsert.pass1=false; diff --git a/Parameters_readSAMheader.cpp b/Parameters_readSAMheader.cpp index 6c1987e..a216fc5 100644 --- a/Parameters_readSAMheader.cpp +++ b/Parameters_readSAMheader.cpp @@ -28,7 +28,8 @@ void Parameters::readSAMheader(const string readFilesCommandString, const vector while (tmpFifoIn.peek()=='@') { string str1; getline(tmpFifoIn,str1); - if (str1.substr(1,2)!="HD" && str1.substr(1,2)!="SQ") {//SQ and HD header lines cannot be imported from uSAM + if (str1.substr(1,2)!="HD" && str1.substr(1,2)!="SQ" && (!twoPass.pass2) ) { + //SQ and HD header lines cannot be imported from uSAM; do not record the header again in the 2nd pass samHeaderExtra += str1 + '\n'; }; }; diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 1164cf6..656c75b 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -16,7 +16,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks uint chunkInSizeBytesTotal[2]={0,0}; while (chunkInSizeBytesTotal[0] < P.chunkInSizeBytes && chunkInSizeBytesTotal[1] < P.chunkInSizeBytes && P.inOut->readIn[0].good() && P.inOut->readIn[1].good()) { char nextChar=P.inOut->readIn[0].peek(); - if (P.iReadAll==P.readMapNumber) {//do nto read any more reads + if (P.iReadAll==P.readMapNumber) {//do not read any more reads break; } else if (P.readFilesTypeN==10 && P.inOut->readIn[0].good() && P.outFilterBySJoutStage!=2) {//SAM input && not eof && not 2nd stage diff --git a/STAR.cpp b/STAR.cpp index 3d87733..55c090e 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -103,10 +103,7 @@ int main(int argInN, char* argIn[]) { if (P.pGe.gLoad=="LoadAndExit" || P.pGe.gLoad=="Remove") { return 0; - }; - - P.twoPass.pass2=false; //this is the 1st pass - + }; //calculate genome-related parameters Transcriptome *mainTranscriptome=NULL; @@ -164,7 +161,7 @@ int main(int argInN, char* argIn[]) { P1.outFileNamePrefix=P.twoPass.dir; - P1.readMapNumber=P.twoPass.pass1readsN; + P1.readMapNumber=min(P.twoPass.pass1readsN, P.readMapNumber); // P1.inOut->logMain.open((P1.outFileNamePrefix + "Log.out").c_str()); P1.wasp.outputMode="None"; //no WASP filtering on the 1st pass @@ -488,7 +485,6 @@ int main(int argInN, char* argIn[]) { P.closeReadsFiles();//this will kill the readFilesCommand processes if necessary //mainGenome.~Genome(); //need explicit call because of the 'delete P.inOut' below, which will destroy P.inOut->logStdOut - ///@todo create Destructor to destroy P.inOut delete P.inOut; //to close files return 0; diff --git a/VERSION b/VERSION index b6c5c78..529f4f6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.0c" +#define STAR_VERSION "STAR_2.6.0c_mod1" From c29d310b8385bea0fa3470a544bab56b689c8c54 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 12 Aug 2018 10:52:06 -0400 Subject: [PATCH 354/536] Fixed the problem with control characters (ASCII<32) in genome and input read sequences. They used to be converted to N, now they are removed. Fixed the GtstrandBit problem. Another attempt to fix seg-faults with shared memory and --outStd options. --- Genome.cpp | 12 +++++------ Genome.h | 7 ++++--- Genome_genomeGenerate.cpp | 4 +++- STAR.cpp | 4 ++++ SequenceFuns.cpp | 43 ++++++++++++++++++++++++++++++++------- SequenceFuns.h | 3 ++- VERSION | 2 +- genomeParametersWrite.cpp | 2 +- genomeScanFastaFiles.cpp | 36 ++++++++++++-------------------- readLoad.cpp | 13 ++++++++---- sjdbBuildIndex.cpp | 8 ++++++-- 11 files changed, 85 insertions(+), 49 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index c506639..20f57d5 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -32,12 +32,12 @@ Genome::Genome (Parameters &Pin ): pGe(Pin.pGe), P(Pin), shmStart(NULL), sharedM sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; }; -Genome::~Genome() -{ - if (sharedMemory != NULL) - delete sharedMemory; - sharedMemory = NULL; -} +// Genome::~Genome() +// { +// if (sharedMemory != NULL) +// delete sharedMemory; +// sharedMemory = NULL; +// } void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array diff --git a/Genome.h b/Genome.h index e0dce3c..39a8df3 100644 --- a/Genome.h +++ b/Genome.h @@ -45,8 +45,10 @@ class Genome { uint genomeInsertL; //total length of the sequence to be inserted on the fly uint genomeInsertChrIndFirst; //index of the first inserted chromosome + SharedMemory * sharedMemory; + Genome (Parameters &Pin ); - ~Genome(); + //~Genome(); void freeMemory(); void genomeLoad(); @@ -61,8 +63,7 @@ class Genome { Parameters &P; key_t shmKey; char *shmStart; - char *G1; //pointer -200 of G - SharedMemory * sharedMemory; + char *G1; //pointer -200 of G uint OpenStream(string name, ifstream & stream, uint size); void HandleSharedMemoryException(const SharedMemoryException & exc, uint64 shmSize); diff --git a/Genome_genomeGenerate.cpp b/Genome_genomeGenerate.cpp index f613e56..600dbb6 100644 --- a/Genome_genomeGenerate.cpp +++ b/Genome_genomeGenerate.cpp @@ -238,8 +238,10 @@ void Genome::genomeGenerate() { }; }; - GstrandBit = (uint) floor(log(N+P.limitSjdbInsertNsj*sjdbLength)/log(2))+1; + GstrandBit = (char) (uint) floor(log(N+P.limitSjdbInsertNsj*sjdbLength)/log(2))+1; if (GstrandBit<32) GstrandBit=32; //TODO: use simple access function for SA + P.inOut->logMain <<"Estimated genome size="<logMain << "GstrandBit=" << int(GstrandBit) <<"\n"; GstrandMask = ~(1LLU<logStdOut + if (mainGenome.sharedMemory != NULL) {//need explicit call because this destructor will write to files which are deleted by 'delete P.inOut' below + delete mainGenome.sharedMemory; + mainGenome.sharedMemory = NULL; + }; delete P.inOut; //to close files diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index 845a528..fca9ad5 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -127,19 +127,48 @@ void nuclPackBAM(char* ReadsIn, char* ReadsOut, uint Lread) {//pack nucleotides }; }; -void convertNucleotidesToNumbers(const char* R0, char* R1, uint Lread) {//transform sequence from ACGT into 0-1-2-3 code +void convertNucleotidesToNumbers(const char* R0, char* R1, const uint Lread) {//transform sequence from ACGT into 0-1-2-3 code for (uint jj=0;jjlogMain << mapGen.pGe.gFastaFiles.at(ii)<<" : chr # " << mapGen.chrStart.size()-1 << " \""<=32) + ++N; + }; + }; + }; }; fileIn.close(); }; - if (!flagRun) mapGen.chrLength.push_back(N-mapGen.chrStart.at(mapGen.chrStart.size()-1)); //true length of the last chr + if (!flagRun) + mapGen.chrLength.push_back(N-mapGen.chrStart.at(mapGen.chrStart.size()-1)); //true length of the last chr N = ( (N+1)/mapGen.genomeChrBinNbases+1)*mapGen.genomeChrBinNbases; - if (!flagRun) - { + if (!flagRun) { mapGen.nChrReal=mapGen.chrStart.size(); mapGen.chrStart.push_back(N); //last chromosome end+1 for (uint ii=0;iilogMain << "Unexpected character: char="<< G[jj] << " int="<=32) { + Seq[Lread]=Seq[ii]; + ++Lread; + }; + }; + if (Lread<1) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in reads input: short read sequence line: " << Lread <<"\n"; @@ -46,9 +53,6 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint errOut << "DEF_readSeqLengthMax="<logMain, EXIT_CODE_INPUT_FILES, P); }; - --Lread;//do not count /n in the read length - LreadOriginal=Lread; - if (Lread>DEF_readSeqLengthMax) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in reads input: Lread>=" << Lread << " while DEF_readSeqLengthMax=" << DEF_readSeqLengthMax <<"\n"; @@ -74,6 +78,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint // }; // LreadOriginal=Lread; + LreadOriginal=Lread; if ( Lread>(P.clip5pNbases[iMate]+P.clip3pNbases[iMate]) ) { Lread=Lread-(P.clip5pNbases[iMate]+P.clip3pNbases[iMate]); } else { diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index e787977..f8cf78d 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -109,9 +109,13 @@ void sjdbBuildIndex (Parameters &P, char *Gsj, char *G, PackedArray &SA, PackedA mapGen.nGenome=mapGen.chrStart[mapGen.nChrReal]+nGsj; mapGen.nSA+=nInd; - uint GstrandBit1 = (uint) floor(log(mapGen.nGenome)/log(2))+1; + char GstrandBit1 = (char) (uint) floor(log(mapGen.nGenome)/log(2))+1; if (GstrandBit1<32) GstrandBit1=32; //TODO: use simple access function for SA - if ( GstrandBit1 != mapGen.GstrandBit) + + P.inOut->logMain <<"Genome size with junctions="<logMain <<"GstrandBit1="< mapGen.GstrandBit) {//too many junctions were added - GstrandBit changed ostringstream errOut; errOut << "EXITING because of FATAL ERROR: cannot insert junctions on the fly because of strand GstrandBit problem\n"; From 63d626f852cebfbb24953c4a20f1d7edb65c8361 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 13 Aug 2018 16:27:29 -0400 Subject: [PATCH 355/536] Implemented --chimOutJunctionFormat 1 option to output some metadata (command lines and basic mapping statistics) at the end of Chimeric.out.junction file. Fixed a bug in merging mates (--peOverlap*) algorithm that was causing rare seg-faults. --- Parameters.cpp | 1 + ParametersChimeric.h | 2 + ReadAlign_peOverlapMergeMap.cpp | 13 +- STAR.cpp | 4 +- Stats.cpp | 9 + Stats.h | 1 + VERSION | 2 +- Variation.cpp | 8 + parametersDefault | 7 +- parametersDefault.xxd | 838 ++++++++++++++++---------------- stitchAlignToTranscript.cpp | 2 +- 11 files changed, 469 insertions(+), 418 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 2d15fbd..6988f68 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -217,6 +217,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMultimapNmax", &pCh.multimapNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimMultimapScoreRange", &pCh.multimapScoreRange)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimNonchimScoreDropMin", &pCh.nonchimScoreDropMin)); + parArray.push_back(new ParameterInfoVector (-1, -1, "chimOutJunctionFormat", &pCh.outJunctionFormat)); //sjdb parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &pGe.sjdbFileChrStartEnd)); diff --git a/ParametersChimeric.h b/ParametersChimeric.h index a26f356..ded96cc 100644 --- a/ParametersChimeric.h +++ b/ParametersChimeric.h @@ -12,6 +12,8 @@ class ParametersChimeric uint mainSegmentMultNmax; uint multimapScoreRange, multimapNmax, nonchimScoreDropMin; + + vector outJunctionFormat; struct { diff --git a/ReadAlign_peOverlapMergeMap.cpp b/ReadAlign_peOverlapMergeMap.cpp index dc3f368..911c8bf 100644 --- a/ReadAlign_peOverlapMergeMap.cpp +++ b/ReadAlign_peOverlapMergeMap.cpp @@ -94,18 +94,17 @@ void ReadAlign::peMergeMates() { if (o1>=o0) { peOv.mateStart[0]=0; peOv.mateStart[1]=s1; - if (o10) { - memmove(Read1[0]+Lread, Read1[0], readLength[0]);//temp move 0 - memmove(Read1[0], Read1[0]+readLength[0]+1, readLength[1]); //move 1 into 0 - if (o0outChimJunction, P.pCh.outJunctionFormat, "#", P.commandLine); + g_statsAll.progressReport(P.inOut->logProgress); P.inOut->logProgress << "ALL DONE!\n"<logFinal.open((P.outFileNamePrefix + "Log.final.out").c_str()); g_statsAll.reportFinal(P.inOut->logFinal); *P.inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... finished successfully\n" <logMain << "ALL DONE!\n"<logMain << "ALL DONE!\n" << flush; if (P.outTmpKeep=="None") { sysRemoveDir (P.outFileTmp); diff --git a/Stats.cpp b/Stats.cpp index 8b87ceb..ff990da 100644 --- a/Stats.cpp +++ b/Stats.cpp @@ -139,4 +139,13 @@ void Stats::reportFinal(ofstream &streamOut) { }; +void Stats::writeLines(ofstream &streamOut, const vector outType, const string commStr, const string outStr) { + for (const auto& tt : outType) { + if (tt==1) { + if (outStr!="") + streamOut << commStr <<" "<< outStr <<"\n"; + streamOut << commStr <<" "<< "Nreads " << readN <<"\t"<< "NreadsUnique " << mappedReadsU <<"\t"<< "NreadsMulti " << mappedReadsM << "\n"; + }; + }; +}; diff --git a/Stats.h b/Stats.h index 9c5f0f7..d0e4d39 100644 --- a/Stats.h +++ b/Stats.h @@ -33,5 +33,6 @@ class Stats { void progressReportHeader(ofstream &progressStream); void progressReport(ofstream &progressStream) ; void reportFinal(ofstream &streamOut); + void writeLines(ofstream &streamOut, const vector outType, const string commStr, const string outStr);// write commented lines to text files with stats }; #endif diff --git a/VERSION b/VERSION index f1deba9..aaeb5b7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.0c_08-11" +#define STAR_VERSION "STAR_2.6.0c_08-13" diff --git a/Variation.cpp b/Variation.cpp index d667cee..07d9cbd 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -3,6 +3,7 @@ #include "SequenceFuns.h" #include "TimeFunctions.h" #include "serviceFuns.cpp" +#include "ErrorWarning.h" Variation::Variation (Parameters &Pin, vector &chrStartIn, map &chrNameIndexIn) : P(Pin), chrStart(chrStartIn), chrNameIndex(chrNameIndexIn) { if (!P.var.yes) { @@ -83,6 +84,13 @@ void Variation::loadVCF(string fileIn) { time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Loaded VCF data, found "<logMain, EXIT_CODE_INPUT_FILES, P); + }; + uint *s1=new uint[2*snp.N]; for (uint ii=0;ii=0: minimum number of overlap bases to trigger mates merging and realignment -peOverlapMMp 0.1 +peOverlapMMp 0.01 real, >=0 & <1: maximum proportion of mismatched bases in the overlap area ### Windows, Anchors, Binning @@ -621,6 +621,11 @@ chimMultimapScoreRange 1 chimNonchimScoreDropMin 20 int>=0: to trigger chimeric detection, the drop in the best non-chimeric alignment score with respect to the read lenght has to be smaller than this value +chimOutJunctionFormat 0 + int: formatting type for the Chimeric.out.junction file + 0 ... no comment lines/headers + 1 ... comment lines at the end of the file: command line and Nreads: total, unique, multi + ### Quantification of Annotations quantMode - string(s): types of quantification requested diff --git a/parametersDefault.xxd b/parametersDefault.xxd index d9ddaea..6c5b981 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2496,430 +2496,454 @@ unsigned char parametersDefault[] = { 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, - 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, - 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, - 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, - 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, - 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, - 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, + 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, + 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, + 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, + 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, + 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, + 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, + 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, + 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, - 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, - 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, + 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, - 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, - 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, - 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, + 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, - 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, - 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, - 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, - 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, - 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, + 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, + 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, - 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, - 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, - 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, + 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, + 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, + 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, + 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, + 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, - 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, - 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, 0x20, - 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, - 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, + 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, + 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2c, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, - 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, - 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, - 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, - 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, - 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, + 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, + 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, + 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, + 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, + 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, - 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, - 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, - 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, - 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, + 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, + 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, + 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, + 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, + 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, + 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, + 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, + 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, + 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, + 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, - 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, - 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, - 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, - 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, - 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, - 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, - 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, - 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, - 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, - 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, - 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, - 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, - 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x0a + 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, + 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, + 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, + 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, + 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, + 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 35064; +unsigned int parametersDefault_len = 35345; diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 5692eeb..0e6b9e6 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -294,7 +294,7 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBst }; }; Score += Ins*P.scoreInsBase + P.scoreInsOpen; - jCan=-3; + jCan=-2; //marks insertion though it's not used below }; //different types of gaps selection From f92f55fc349ee60582b83ac158c8025534d275f3 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 14 Aug 2018 16:47:50 -0400 Subject: [PATCH 356/536] Fixed a bug that caused serious problems with --sjdbInsertSave All option. Added STAR version to Chimeric.out.junction. --- Genome_genomeGenerate.cpp | 3 --- STAR.cpp | 2 +- VERSION | 2 +- sjdbInsertJunctions.cpp | 7 +++++++ 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Genome_genomeGenerate.cpp b/Genome_genomeGenerate.cpp index 600dbb6..fce7a7f 100644 --- a/Genome_genomeGenerate.cpp +++ b/Genome_genomeGenerate.cpp @@ -447,9 +447,6 @@ void Genome::genomeGenerate() { sjdbInsertJunctions(P, *this, mainGenome1, sjdbLoci); - //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk - //this is - to avoid valgrind complaints. Note that SApass1 is allocated with plenty of space to spare. - SA.writePacked(nSA,0); }; pGe.gFileSizes.clear(); diff --git a/STAR.cpp b/STAR.cpp index 861ccf6..df13c56 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -467,7 +467,7 @@ int main(int argInN, char* argIn[]) { //collapse splice junctions from different threads/chunks, and output them outputSJ(RAchunk,P); - g_statsAll.writeLines(P.inOut->outChimJunction, P.pCh.outJunctionFormat, "#", P.commandLine); + g_statsAll.writeLines(P.inOut->outChimJunction, P.pCh.outJunctionFormat, "#", STAR_VERSION + P.commandLine); g_statsAll.progressReport(P.inOut->logProgress); P.inOut->logProgress << "ALL DONE!\n"<logMain << timeMonthDayTime(rawtime) << " ..... finished inserting junctions into genome" < Date: Tue, 14 Aug 2018 18:33:57 -0400 Subject: [PATCH 357/536] Ready for 2.6.1a --- STAR.cpp | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index df13c56..c419d65 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -467,7 +467,7 @@ int main(int argInN, char* argIn[]) { //collapse splice junctions from different threads/chunks, and output them outputSJ(RAchunk,P); - g_statsAll.writeLines(P.inOut->outChimJunction, P.pCh.outJunctionFormat, "#", STAR_VERSION + P.commandLine); + g_statsAll.writeLines(P.inOut->outChimJunction, P.pCh.outJunctionFormat, "#", STAR_VERSION + string(" ") + P.commandLine); g_statsAll.progressReport(P.inOut->logProgress); P.inOut->logProgress << "ALL DONE!\n"< Date: Sat, 18 Aug 2018 16:26:57 +0200 Subject: [PATCH 358/536] fix spelling issues --- Genome.cpp | 2 +- ReadAlign_stitchWindowSeeds.cpp | 2 +- parametersDefault | 2 +- stitchWindowAligns.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 20f57d5..f82c5c0 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -547,7 +547,7 @@ void Genome::genomeLoad(){//allocate and load Genome P.winBinNbits = (uint) floor( log2( max( max(4LLU,P.alignIntronMax), (P.alignMatesGapMax==0 ? 1000LLU : P.alignMatesGapMax) ) /4 ) + 0.5); P.winBinNbits = max( P.winBinNbits, (uint) floor(log2(nGenome/40000+1)+0.5) ); //ISSUE - to be fixed in STAR3: if alignIntronMax>0 but alignMatesGapMax==0, winBinNbits will be defined by alignIntronMax - P.inOut->logMain << "To accomodate alignIntronMax="<logMain, EXIT_CODE_PARAMETER, *this); }; + if ( (outSAMfilter.KeepOnlyAddedReferences || outSAMfilter.KeepAllAddedReferences) && pGe.gFastaFiles.at(0)=="-" ) { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: --outSAMfilter KeepOnlyAddedReferences OR KeepAllAddedReferences options can only be used if references are added on-the-fly with --genomeFastaFiles" <<"\n"; + errOut <<"SOLUTION: use default --outSAMfilter None, OR add references with --genomeFataFiles\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (outMultimapperOrder.mode=="Old_2.4") { outMultimapperOrder.random=false; diff --git a/STAR.cpp b/STAR.cpp index c419d65..475b373 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -403,57 +403,68 @@ int main(int argInN, char* argIn[]) { errOut <<"EXITING because of fatal ERROR: not enough memory for BAM sorting: \n"; errOut <<"SOLUTION: re-run STAR with at least --limitBAMsortRAM " <logMain, EXIT_CODE_PARAMETER, P); - }; - - - uint totalMem=0; -// P.inOut->logMain << "Started sorting BAM ..." <chunkOutBAMcoord->binTotalN[ibin]; - binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]; + } else if(maxMem==0) { + P.inOut->logMain << "WARNING: nothing to sort - no output alignments" <logMain, EXIT_CODE_PARAMETER, P); }; + outBAMwriteHeader(bgzfOut,P.samHeaderSortedCoord,mainGenome.chrNameAll,mainGenome.chrLengthAll); + bgzf_close(bgzfOut); + } else {//sort + uint totalMem=0; + #pragma omp parallel num_threads(P.outBAMsortingThreadNactual) + #pragma omp for schedule (dynamic,1) + for (uint32 ibin1=0; ibin1chunkOutBAMcoord->binTotalN[ibin]; + binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]; + }; - if (binS==0) continue; //empty bin - - if (ibin == nBins-1) {//last bin for unmapped reads - BAMbinSortUnmapped(ibin,P.runThreadN,P.outBAMsortTmpDir, P, mainGenome); - } else { - uint newMem=binS+binN*24; - bool boolWait=true; - while (boolWait) { - #pragma omp critical - if (totalMem+newMem < P.limitBAMsortRAM) { - boolWait=false; - totalMem+=newMem; + if (binS==0) continue; //empty bin + + if (ibin == nBins-1) {//last bin for unmapped reads + BAMbinSortUnmapped(ibin,P.runThreadN,P.outBAMsortTmpDir, P, mainGenome); + } else { + uint newMem=binS+binN*24; + bool boolWait=true; + while (boolWait) { + #pragma omp critical + if (totalMem+newMem < P.limitBAMsortRAM) { + boolWait=false; + totalMem+=newMem; + }; + sleep(0.1); + }; + BAMbinSortByCoordinate(ibin,binN,binS,P.runThreadN,P.outBAMsortTmpDir, P, mainGenome); + #pragma omp critical + totalMem-=newMem;//"release" RAM }; - sleep(0.1); }; - BAMbinSortByCoordinate(ibin,binN,binS,P.runThreadN,P.outBAMsortTmpDir, P, mainGenome); - #pragma omp critical - totalMem-=newMem;//"release" RAM - }; - }; - //concatenate all BAM files, using bam_cat - char **bamBinNames = new char* [nBins]; - vector bamBinNamesV; - for (uint32 ibin=0; ibin bamBinNamesV; + for (uint32 ibin=0; ibin Date: Thu, 6 Sep 2018 11:26:51 -0400 Subject: [PATCH 360/536] Preparing for 2.6.1b --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index f48b90c..c9110d7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.1a_08-27" +#define STAR_VERSION "STAR_2.6.1b" From df39b26c768e062cb243de317f622a661cd3fb29 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 1 Oct 2018 17:28:57 -0400 Subject: [PATCH 361/536] Enforced the consistent choice of supplementary chimeric alignments for overlapping mates. --- ReadAlign_chimericDetectionPEmerged.cpp | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index 1cafc61..0a18ab3 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -39,7 +39,7 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { }; }; for (uint jj=0; jj<2; jj++) { - if (segLen[ii][jj]trChim[ii-1].exons[0][EX_G])) { segLmin=segLen[ii][jj]; i1=ii;//trChim of the shortest segment length i2=jj;//mate of the shortest segment length diff --git a/VERSION b/VERSION index c9110d7..a40901a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.1b" +#define STAR_VERSION "STAR_2.6.1b_10-01" From 9286e15327bf0180b8fe71c355b26f2b0e1e2b6e Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 3 Oct 2018 17:24:14 -0400 Subject: [PATCH 362/536] Changed back internal binary encoding for N in the genome to 4. --- SequenceFuns.cpp | 4 ++-- readLoad.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index fca9ad5..4008dcd 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -139,7 +139,7 @@ void convertNucleotidesToNumbers(const char* R0, char* R1, const uint Lread) {// case (84): case(116): R1[jj]=char(3);break;//T default: - R1[jj]=char(9);//anything else + R1[jj]=char(4);//anything else is converted to N }; }; }; @@ -160,7 +160,7 @@ uint convertNucleotidesToNumbersRemoveControls(const char* R0, char* R1, const u if (int(R0[jj]) < 32) {//control characters are skipped continue; } else {//all non-control non-ACGT characters are convreted to N - R1[jj]=char(9);//anything else + R1[jj]=char(4);//anything else }; }; ++iR1; diff --git a/readLoad.cpp b/readLoad.cpp index 0638bcc..8a50d2d 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -84,7 +84,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint } else { Lread=0; }; - convertNucleotidesToNumbers(Seq+P.clip5pNbases[iMate],SeqNum,Lread); + convertNucleotidesToNumbersRemoveControls(Seq+P.clip5pNbases[iMate],SeqNum,Lread); //clip the adapter if (P.clip3pAdapterSeq.at(iMate).length()>0) { From 106aa1b264a320257fbf9add88e2e45eab797a84 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 3 Oct 2018 17:27:33 -0400 Subject: [PATCH 363/536] Implementing single cell pipeline. --- Parameters.cpp | 29 ++++++++++-- Parameters.h | 14 +++++- ReadAlignChunk_processChunks.cpp | 75 +++++++++++++++++--------------- parametersDefault | 9 ++++ parametersDefault.xxd | 30 ++++++++++++- 5 files changed, 114 insertions(+), 43 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index b0c673c..ab95548 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -236,7 +236,6 @@ Parameters::Parameters() {//initalize parameters info //WASP parArray.push_back(new ParameterInfoScalar (-1, -1, "waspOutputMode", &wasp.outputMode)); - //quant parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quant.mode)); @@ -248,6 +247,10 @@ Parameters::Parameters() {//initalize parameters info twoPass.pass1readsN_par=parArray.size()-1; parArray.push_back(new ParameterInfoScalar (-1, -1, "twopassMode", &twoPass.mode)); + //solo + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloType", &pSolo.typeStr)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBlen", &pSolo.cbL)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); // //SW parameters // parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); @@ -785,7 +788,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + readNmatesIn=readNmates; + //two-pass if (parArray.at(twoPass.pass1readsN_par)->inputLevel>0 && twoPass.mode=="None") { @@ -950,7 +954,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --varVCFfile /path/to/file.vcf\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - if (wasp.yes && outSAMtype.at(0)!="BAM") { ostringstream errOut; @@ -1397,6 +1400,26 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters peOverlap.yes=false; }; + //solo + if (pSolo.typeStr=="None") { + pSolo.type=0; + } else if (pSolo.typeStr=="10XchromiumV2") { + pSolo.type=1; + pSolo.bL=pSolo.cbL+pSolo.umiL; + readNmates=1; //output mates TODO: check that readNmatesIn==2 + } else { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --soloType="<logMain, EXIT_CODE_PARAMETER, *this); + }; + + // + outSAMreadIDnumber=false; + if (outSAMreadID=="Number") { + outSAMreadIDnumber=true; + }; + //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" < readNameSeparator; vector readNameSeparatorChar; string outSAMreadID; + bool outSAMreadIDnumber; vector clip5pNbases, clip3pNbases, clip3pAfterAdapterNbases; vector clip3pAdapterMMp; @@ -302,13 +303,22 @@ class Parameters { string vcfFile; } var; - struct + struct { bool yes; bool SAMtag; string outputMode; } wasp; + struct { + //bool yes; + string typeStr; + int type; + uint32 cbL; //cell barcode length + uint32 umiL; //umi length + uint32 bL; //total barcode length + } pSolo; + //chimeric ParametersChimeric pCh; diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 656c75b..03a6d27 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -18,6 +18,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks char nextChar=P.inOut->readIn[0].peek(); if (P.iReadAll==P.readMapNumber) {//do not read any more reads break; + //} else if (P.pSolo.type==1 && P.inOut->readIn[0].good() && P.outFilterBySJoutStage!=2) } else if (P.readFilesTypeN==10 && P.inOut->readIn[0].good() && P.outFilterBySJoutStage!=2) {//SAM input && not eof && not 2nd stage string str1; @@ -74,43 +75,45 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks }; }; } else if (nextChar=='@') {//fastq, not multi-line - P.iReadAll++; //increment read number - for (uint imate=0; imatereadIn[imate] >> dummy1; //skip the first field of the read name - } else { - P.inOut->readIn[imate] >> (chunkIn[imate] + chunkInSizeBytesTotal[imate]); - chunkInSizeBytesTotal[imate] += strlen(chunkIn[imate] + chunkInSizeBytesTotal[imate]); - }; - - //read the second field of the read name line - char passFilterIllumina='N'; - if (P.inOut->readIn[imate].peek()!='\n') {//2nd field exists - string field2; - P.inOut->readIn[imate] >> field2; - passFilterIllumina='N'; - if (field2.length()>=3 && field2.at(2)=='Y') passFilterIllumina='Y'; - }; - - //ignore the rest of the read name + P.iReadAll++; //increment read number + if (P.outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping, read ID from the 1st read + string readID; + P.inOut->readIn[0] >> readID; + if (P.outSAMreadIDnumber) { + readID="@"+to_string(P.iReadAll); + }; + //read the second field of the read name line + char passFilterIllumina='N'; + if (P.inOut->readIn[0].peek()!='\n') {//2nd field exists + string field2; + P.inOut->readIn[0] >> field2; + if (field2.length()>=3 && field2.at(1)==':' && field2.at(2)=='Y' && field2.at(3)==':' ) + passFilterIllumina='Y'; + }; + readID += ' '+ to_string(P.iReadAll)+' '+passFilterIllumina+' '+to_string(P.readFilesIndex); + //ignore the rest of the read name for both mates + for (uint imate=0; imatereadIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); - - chunkInSizeBytesTotal[imate] += sprintf(chunkIn[imate] + chunkInSizeBytesTotal[imate], " %llu %c %i \n", P.iReadAll, passFilterIllumina, P.readFilesIndex); - - iline=1; + + if (P.pSolo.type==1) { + string seq1; + P.inOut->readIn[1] >> seq1; + if (seq1.size() != P.pSolo.bL) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR in input read file: the total length of barcode sequence is " << seq1.size() << " not equal to expected " <logMain, EXIT_CODE_INPUT_FILES, P); + }; }; - //do not need to worry about 2nd stage, that's read directly from the files -// else {//2nd stage of 2-stage mapping -// read index and file index are already recorded with the read name, simply copy it -// P.inOut->readIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); -// }; - for (;iline<4;iline++) {//TODO ignore the 3rd line of fastq + + //copy the same readID to both mates + for (uint imate=0; imatereadIn[imate].getline(chunkIn[imate] + chunkInSizeBytesTotal[imate], DEF_readNameSeqLengthMax+1 ); chunkInSizeBytesTotal[imate] += P.inOut->readIn[imate].gcount(); chunkIn[imate][chunkInSizeBytesTotal[imate]-1]='\n'; @@ -118,7 +121,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks }; } else if (nextChar=='>') {//fasta, can be multiline, which is converted to single line P.iReadAll++; //increment read number - for (uint imate=0; imate0: cell barcode length + +soloUMIlen 10 + int>0: UMI length \ No newline at end of file diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 6c5b981..dd84ed8 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2944,6 +2944,32 @@ unsigned char parametersDefault[] = { 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x0a + 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x73, 0x6f, 0x6c, 0x6f, + 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, + 0x6c, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, + 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x58, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x56, 0x32, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x30, 0x58, 0x20, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x20, 0x43, 0x68, 0x72, 0x6f, + 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x56, 0x65, 0x72, 0x69, 0x73, 0x6f, 0x6e, + 0x20, 0x32, 0x20, 0x63, 0x68, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, + 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, + 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, + 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68 }; -unsigned int parametersDefault_len = 35345; +unsigned int parametersDefault_len = 35661; From 808b3413a22eb7ca30eff7ac1fe0f4a40cbc7dd7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 5 Oct 2018 16:03:14 -0400 Subject: [PATCH 364/536] Implementing solo. --- Parameters.cpp | 17 ++++------------- Parameters.h | 12 ++++-------- ParametersSolo.cpp | 16 ++++++++++++++++ ParametersSolo.h | 23 +++++++++++++++++++++++ ReadAlignChunk_processChunks.cpp | 11 ++++++++--- ReadAlign_outputAlignments.cpp | 5 +++-- SoloReads.cpp | 12 ++++++++++++ SoloReads.h | 24 ++++++++++++++++++++++++ 8 files changed, 94 insertions(+), 26 deletions(-) create mode 100644 ParametersSolo.cpp create mode 100644 ParametersSolo.h create mode 100644 SoloReads.cpp create mode 100644 SoloReads.h diff --git a/Parameters.cpp b/Parameters.cpp index ab95548..f7cfbf8 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -73,6 +73,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSJoneRead", &limitOutSJoneRead)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitBAMsortRAM", &limitBAMsortRAM)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitSjdbInsertNsj", &limitSjdbInsertNsj)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitNreadSoft", &limitNreadSoft)); //output @@ -251,7 +252,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "soloType", &pSolo.typeStr)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBlen", &pSolo.cbL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBwhitelist", &pSolo.soloCBwhitelist)); + // //SW parameters // parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); // parArray.push_back(new ParameterInfoScalar (-1, -1, "swWinCoverageMinP", &swWinCoverageMinP)); @@ -1401,18 +1403,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //solo - if (pSolo.typeStr=="None") { - pSolo.type=0; - } else if (pSolo.typeStr=="10XchromiumV2") { - pSolo.type=1; - pSolo.bL=pSolo.cbL+pSolo.umiL; - readNmates=1; //output mates TODO: check that readNmatesIn==2 - } else { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --soloType="<logMain, EXIT_CODE_PARAMETER, *this); - }; + pSolo.initialize(); // outSAMreadIDnumber=false; diff --git a/Parameters.h b/Parameters.h index af1b955..d73e04c 100644 --- a/Parameters.h +++ b/Parameters.h @@ -9,6 +9,7 @@ #include #include #include "ParametersChimeric.h" +#include "ParametersSolo.h" #include "ParametersGenome.h" class Parameters { @@ -249,6 +250,7 @@ class Parameters { uint limitOutSJoneRead, limitOutSJcollapsed; uint limitBAMsortRAM; uint limitSjdbInsertNsj; + uint limitNreadsSoft; // penalties intScore scoreGap, scoreGapNoncan, scoreGapGCAG, scoreGapATAC, scoreDelBase, scoreDelOpen, scoreInsBase, scoreInsOpen; @@ -310,14 +312,8 @@ class Parameters { string outputMode; } wasp; - struct { - //bool yes; - string typeStr; - int type; - uint32 cbL; //cell barcode length - uint32 umiL; //umi length - uint32 bL; //total barcode length - } pSolo; + //solo + ParametersSolo pSolo; //chimeric ParametersChimeric pCh; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp new file mode 100644 index 0000000..cd4b7e1 --- /dev/null +++ b/ParametersSolo.cpp @@ -0,0 +1,16 @@ +#include "ParametersSolo.h" + +ParametersSolo::initialize(Parameters *pPin) : pP (pPin) { + if (typeStr=="None") { + type=0; + } else if (typeStr=="10XchromiumV2") { + type=1; + bL=cbL+umiL; + readNmates=1; //output mates TODO: check that readNmatesIn==2 + } else { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --soloType="<logMain, EXIT_CODE_PARAMETER, *this); + }; +} \ No newline at end of file diff --git a/ParametersSolo.h b/ParametersSolo.h new file mode 100644 index 0000000..44f2b6c --- /dev/null +++ b/ParametersSolo.h @@ -0,0 +1,23 @@ +#ifndef CODE_ParametersSolo +#define CODE_ParametersSolo + +#include "IncludeDefine.h" +class Parameters; + +class ParametersSolo { +public: + string typeStr; + int type; + uint32 cbL; //cell barcode length + uint32 umiL; //umi length + uint32 bL; //total barcode length + string soloCBwhitelist; + + const uint64 bufferSize=1048576; + initialize(Parameters *pPin); + +private: + Parameters *pP; +}; + +#endif \ No newline at end of file diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 03a6d27..88e0d89 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -95,7 +95,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks for (uint imate=0; imatereadIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); - if (P.pSolo.type==1) { + if (P.pSolo.type==1) {//record barcode sequence string seq1; P.inOut->readIn[1] >> seq1; if (seq1.size() != P.pSolo.bL) { @@ -105,11 +105,16 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks errOut << "SOLUTION: make sure that the barcode read is the second in --readFilesIn and check that is has the correct formatting\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; + readID += ' ' + seq1; + for (uint ii=0; ii<3; ii++) + P.inOut->readIn[1].ignore(DEF_readNameSeqLengthMax,'\n');//skip to the end of this line, and two more TODO record qualities }; //copy the same readID to both mates - for (uint imate=0; imate=0 && P.outReadsUnmapped=="Fastx" ){//output to fasta/q files for (uint im=0;im1) chunkOutUnmappedReadsStream[im] <<"\t"<< int(mateMapped[0]) << int(mateMapped[1]); + chunkOutUnmappedReadsStream[im] << readNameMates[im] <<" "<1) + chunkOutUnmappedReadsStream[im] <<" "<< int(mateMapped[0]) << int(mateMapped[1]); chunkOutUnmappedReadsStream[im] <<"\n"; chunkOutUnmappedReadsStream[im] << Read0[im] <<"\n"; if (readFileType==2) {//fastq diff --git a/SoloReads.cpp b/SoloReads.cpp new file mode 100644 index 0000000..a07bfbf --- /dev/null +++ b/SoloReads.cpp @@ -0,0 +1,12 @@ +#include "SoloReads.h" +SoloReads::SoloReads(Parameters Pin) : P(Pin), pSolo(P.pSolo) { + if (pSolo==0) + return; + //allocate arrays +// reads.nMax=P.limitNreadsSoft/P.runNthreads; +// read.cb=new uint32[nMax]; +// read.umi=new uint32[nMax]; +// read.gene=new uint32[nMax]; +// reads.N=0; + +}; \ No newline at end of file diff --git a/SoloReads.h b/SoloReads.h new file mode 100644 index 0000000..bb4ca51 --- /dev/null +++ b/SoloReads.h @@ -0,0 +1,24 @@ +#ifndef CODE_SoloReads +#define CODE_SoloReads +#include "IncludeDefine.h" + +class SoloReads { +public: +// struct {//uncollapsed read barcodes +// uint64 nMax;//size of arrays below +// uint64 N; //number of reads recorded +// uint32* cb; +// uint32* umi; +// uint32* gene; //gene +// } reads; + + ofstream strUn + SoloReads (Parameters &Pin); + +private: + Parameters &P; + ParametersSolo &pSolo; + +}; + +#endif From 20e31cff573059008225f9977d1a9b852a9af694 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 17 Oct 2018 08:42:44 -0400 Subject: [PATCH 365/536] Preparing for 2.6.1c --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a40901a..df5a105 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.1b_10-01" +#define STAR_VERSION "STAR_2.6.1c" From 3b6743b4c8b56c44492b6741d2edd84e295334ef Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 22 Oct 2018 10:17:29 -0400 Subject: [PATCH 366/536] Solo: CB matching to whitelist. --- Makefile | 1 + Parameters.cpp | 4 +- ParametersSolo.cpp | 56 +- ParametersSolo.h | 10 +- SequenceFuns.cpp | 11 + SequenceFuns.h | 2 + Solo.cpp | 12 + Solo.h | 23 + parametersDefault | 7 +- parametersDefault.xxd | 4058 +++++++++++++++++++++-------------------- serviceFuns.cpp | 14 + 11 files changed, 2166 insertions(+), 2032 deletions(-) create mode 100644 Solo.cpp create mode 100644 Solo.h diff --git a/Makefile b/Makefile index cf53bc3..b0b7839 100644 --- a/Makefile +++ b/Makefile @@ -51,6 +51,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ + ParametersSolo.o \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o \ serviceFuns.o \ diff --git a/Parameters.cpp b/Parameters.cpp index f7cfbf8..432560d 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -73,7 +73,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSJoneRead", &limitOutSJoneRead)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitBAMsortRAM", &limitBAMsortRAM)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitSjdbInsertNsj", &limitSjdbInsertNsj)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "limitNreadSoft", &limitNreadSoft)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitNreadsSoft", &limitNreadsSoft)); //output @@ -1403,7 +1403,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //solo - pSolo.initialize(); + pSolo.initialize(this); // outSAMreadIDnumber=false; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index cd4b7e1..833f13e 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -1,16 +1,62 @@ #include "ParametersSolo.h" +#include "Parameters.h" +#include "ErrorWarning.h" +#include "streamFuns.h" +#include "SequenceFuns.h" +#include "serviceFuns.cpp" -ParametersSolo::initialize(Parameters *pPin) : pP (pPin) { +#include + +void ParametersSolo::initialize(Parameters *pPin) { + pP=pPin; + if (typeStr=="None") { type=0; } else if (typeStr=="10XchromiumV2") { type=1; bL=cbL+umiL; - readNmates=1; //output mates TODO: check that readNmatesIn==2 + pP->readNmates=1; //output mates TODO: check that readNmatesIn==2 } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --soloType="<logMain, EXIT_CODE_PARAMETER, *this); - }; -} \ No newline at end of file + exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + + //load the CB whitlist and create unordered_map + ifstream & cbWlStream = ifstrOpen(soloCBwhitelist, ERROR_OUT, "SOLUTION: check the path and permissions of the CB whitelist file: " + soloCBwhitelist, *pP); + string seq1; + while (!cbWlStream.eof()) { + cbWlStream >> seq1; + if (seq1.size() != cbL) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR in input CB whitelist file: "<< soloCBwhitelist <<" the total length of barcode sequence is " << seq1.size() << " not equal to expected " <inOut->logMain, EXIT_CODE_INPUT_FILES, *pP); + }; + uint32 cb1; + //convert to 2-bit format + if (convertNuclStrToInt32(seq1,cb1)) { + //cbWL.insert(cb1); + cbWL.push_back(cb1); + } else { + pP->inOut->logMain << "WARNING: CB whitelist sequence contains non-ACGT and is ignored: " << seq1 <); + + time_t rawTime; + time(&rawTime); + pP->inOut->logMain << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <inOut->logStdOut << timeMonthDayTime(rawTime) << " Finished reading CB whitelist sequences: " << cbWL.size() <inOut->logStdOut << timeMonthDayTime(rawTime) <<" "<< nn < +#include + #include "IncludeDefine.h" class Parameters; @@ -13,8 +16,11 @@ class ParametersSolo { uint32 bL; //total barcode length string soloCBwhitelist; - const uint64 bufferSize=1048576; - initialize(Parameters *pPin); +// std::set cbWL; + std::vector cbWL; + + static const uint64 bufferSize=1048576; + void initialize(Parameters *pPin); private: Parameters *pP; diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index 4008dcd..66f5044 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -193,6 +193,17 @@ char convertNt01234(const char R0) {//transform sequence from ACGT into 0-1-2-3 }; }; +bool convertNuclStrToInt32(const string S, uint32 &intOut) { + intOut=0; + for (uint ii=0; ii3) + return false; + intOut += nt<<(2*ii); + }; + return true; +}; + uint chrFind(uint Start, uint i2, uint* chrStart) {// find chromosome from global locus uint i1=0, i3; while (i1+1=0: maximum number of junction to be inserted to the genome on the fly at the mapping stage, including those from annotations and those detected in the 1st step of the 2-pass run +limitNreadsSoft -1 + int: soft limit on the number of reads ### Output: general outFileNamePrefix ./ @@ -665,4 +667,7 @@ soloCBlen 16 int>0: cell barcode length soloUMIlen 10 - int>0: UMI length \ No newline at end of file + int>0: UMI length + +soloCBwhitelist - + string: file with whitelist of cell barcodes \ No newline at end of file diff --git a/parametersDefault.xxd b/parametersDefault.xxd index dd84ed8..2ca6a96 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -792,1169 +792,1216 @@ unsigned char parametersDefault[] = { 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, - 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x53, 0x6f, 0x66, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, + 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, - 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, - 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, + 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, + 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, + 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, - 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, - 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, + 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, + 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, - 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, - 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, - 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, - 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, - 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, - 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, - 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, - 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, - 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, + 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, + 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, + 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, + 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, + 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, - 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, - 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, - 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, 0x20, - 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, - 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, + 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, - 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, - 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, - 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x61, 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, - 0x2d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, - 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, - 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, + 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, + 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, + 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, + 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, - 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, - 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, - 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, - 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, - 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, + 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, + 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, + 0x6a, 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, - 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, + 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, + 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, + 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, + 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, - 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, - 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, + 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, - 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, - 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, - 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, - 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, - 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, - 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, - 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, - 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, - 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, + 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, + 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, + 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, - 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, - 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, - 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, - 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, - 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, + 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, + 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, + 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, + 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, + 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, + 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, + 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, + 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, - 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, + 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, + 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, + 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, + 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, + 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, + 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, + 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, - 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, - 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, - 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, + 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, - 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, - 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, - 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, - 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, + 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, + 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, + 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, + 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, - 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, - 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, - 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, - 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, + 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, + 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, + 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, + 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, + 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, + 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, + 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, + 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, + 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, + 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, + 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, - 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, + 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, + 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, + 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, + 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, - 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, + 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, + 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, + 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, - 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, + 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, - 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, - 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, - 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, - 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, - 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, - 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, - 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, + 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, + 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, - 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, - 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, - 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, - 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, + 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, + 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, + 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, - 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, - 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, + 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, + 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, + 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, @@ -1987,989 +2034,956 @@ unsigned char parametersDefault[] = { 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, - 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, - 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, + 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, + 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, + 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, - 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, - 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, + 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, + 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, + 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, - 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, - 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, + 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, + 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, + 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, + 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, + 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, + 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, - 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, - 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, + 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, + 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, + 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, - 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, + 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, + 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, + 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, + 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, + 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, + 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, + 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, + 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, + 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x59, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, - 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, - 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, + 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, - 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, - 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, + 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, + 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, - 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x75, - 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x70, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x70, 0x65, - 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, - 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, - 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, - 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, - 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, - 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x75, 0x6e, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x70, + 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, + 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, + 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, + 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, + 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, + 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, + 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, + 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, - 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, - 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, - 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, - 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, - 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, - 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, - 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, - 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, - 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, - 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, + 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, + 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, + 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, + 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, + 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, - 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, + 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, - 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, + 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, + 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, + 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, + 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, + 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, + 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2c, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, + 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, - 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, - 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, - 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, - 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, - 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, - 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, - 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, - 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, - 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, - 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, + 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, - 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, - 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, - 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, - 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, - 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, - 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, - 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, - 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, - 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, - 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, - 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, - 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, - 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x73, 0x6f, 0x6c, 0x6f, - 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, - 0x6c, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, - 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, + 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, + 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, + 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, + 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, + 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, + 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, + 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, + 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, + 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, + 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, + 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, + 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, + 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, + 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, + 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x73, 0x6f, 0x6c, + 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, + 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x58, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x56, 0x32, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x30, 0x58, 0x20, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x20, 0x43, 0x68, 0x72, + 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x56, 0x65, 0x72, 0x69, 0x73, 0x6f, + 0x6e, 0x20, 0x32, 0x20, 0x63, 0x68, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, + 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, + 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x58, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x56, 0x32, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x30, 0x58, 0x20, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x20, 0x43, 0x68, 0x72, 0x6f, - 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x56, 0x65, 0x72, 0x69, 0x73, 0x6f, 0x6e, - 0x20, 0x32, 0x20, 0x63, 0x68, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, - 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, - 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, - 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68 + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, + 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73 }; -unsigned int parametersDefault_len = 35661; +unsigned int parametersDefault_len = 35826; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index ac73834..44053a4 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -9,7 +9,21 @@ template for (uint ii=0;ii int funCompareNumbers (const void *a, const void *b) { + uint va= *((numT*) a); + uint vb= *((numT*) b); + if (va>vb) { + return 1; + } else if (va==vb) { + return 0; + } else { + return -1; + }; +}; + + inline int funCompareUint1 (const void *a, const void *b) { uint va= *((uint*) a); uint vb= *((uint*) b); From a9ec2766ff1fc450ef873f25ac8edb94e9724385 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 27 Oct 2018 16:22:10 -0400 Subject: [PATCH 367/536] Binary search for CB matches. --- Makefile | 2 +- Parameters.cpp | 16 +++- Parameters.h | 20 ++-- ParametersSolo.cpp | 24 +++-- ReadAlign.cpp | 4 +- ReadAlign.h | 3 + ReadAlignChunk_processChunks.cpp | 13 +-- ReadAlign_outputAlignments.cpp | 138 ++++++++++----------------- Transcriptome.h | 3 +- Transcriptome_geneCountsAddAlign.cpp | 40 +++----- parametersDefault | 6 ++ parametersDefault.xxd | 31 +++++- serviceFuns.cpp | 31 ++++++ 13 files changed, 191 insertions(+), 140 deletions(-) diff --git a/Makefile b/Makefile index b0b7839..faeec86 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ - ParametersSolo.o \ + ParametersSolo.o SoloCB.o SoloCB_readCB.o \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o \ serviceFuns.o \ diff --git a/Parameters.cpp b/Parameters.cpp index 432560d..47f3ae8 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -56,6 +56,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); parArray.push_back(new ParameterInfoVector (-1, -1, "readNameSeparator", &readNameSeparator)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "readStrand", &pReads.strandString)); //input from BAM @@ -75,7 +76,6 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "limitSjdbInsertNsj", &limitSjdbInsertNsj)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitNreadsSoft", &limitNreadsSoft)); - //output parArray.push_back(new ParameterInfoScalar (-1, 2, "outFileNamePrefix", &outFileNamePrefix)); parArray.push_back(new ParameterInfoScalar (-1, 2, "outTmpDir", &outTmpDir)); @@ -1405,6 +1405,20 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //solo pSolo.initialize(this); + //read parameters + if (pReads.strandString=="Unstranded") { + pReads.strand=0; + } else if (pReads.strandString=="Forward") { + pReads.strand=1; + } else if (pReads.strandString=="Reverse") { + pReads.strand=2; + } else { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --readStrand="<logMain, EXIT_CODE_PARAMETER, *this); + }; + // outSAMreadIDnumber=false; if (outSAMreadID=="Number") { diff --git a/Parameters.h b/Parameters.h index d73e04c..047f553 100644 --- a/Parameters.h +++ b/Parameters.h @@ -90,6 +90,11 @@ class Parameters { string alignSoftClipAtReferenceEnds; vector alignSJstitchMismatchNmax; + struct { + string strandString; + int32 strand; + } pReads; + struct { string in; bool ext[2][2]; @@ -148,8 +153,7 @@ class Parameters { // string bamRemoveDuplicatesType; // uint bamRemoveDuplicatesMate2basesN; - struct - { + struct { string mode; bool yes; bool markMulti; @@ -160,30 +164,26 @@ class Parameters { uint64 *outBAMsortingBinStart; //genomic starts for bins for sorting BAM files uint16 outSAMflagOR, outSAMflagAND; - struct - { + struct { vector mode; bool yes; bool within;//output unmapped reads within SAM/BAM files bool keepPairs;//keep mates together } outSAMunmapped; - struct - { + struct { vector mode; bool yes; bool KeepOnlyAddedReferences; bool KeepAllAddedReferences; } outSAMfilter; - struct - { + struct { string mode; bool random; } outMultimapperOrder; - struct - { + struct { bool yes; uint NbasesMin; double MMp; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 833f13e..7e718cb 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -49,14 +49,20 @@ void ParametersSolo::initialize(Parameters *pPin) { time_t rawTime; time(&rawTime); pP->inOut->logMain << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <inOut->logStdOut << timeMonthDayTime(rawTime) << " Finished reading CB whitelist sequences: " << cbWL.size() <inOut->logStdOut << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <inOut->logStdOut << timeMonthDayTime(rawTime) <<" "<< nn <=0) { +// ++nn; +// }; +// +// // nn+=cbWL.count(a); +// }; +// time(&rawTime); +// *pP->inOut->logStdOut << timeMonthDayTime(rawTime) <<" "<< nn < #include @@ -53,6 +54,8 @@ class ReadAlign ChimericDetection *chimDet; + SoloCB *soloCB; //counts reads per CB and outputs CB/UMI/gene into file, per thread + private: Parameters& P; //pointer to the parameters, will be initialized on construction diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 88e0d89..042a09a 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -18,7 +18,6 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks char nextChar=P.inOut->readIn[0].peek(); if (P.iReadAll==P.readMapNumber) {//do not read any more reads break; - //} else if (P.pSolo.type==1 && P.inOut->readIn[0].good() && P.outFilterBySJoutStage!=2) } else if (P.readFilesTypeN==10 && P.inOut->readIn[0].good() && P.outFilterBySJoutStage!=2) {//SAM input && not eof && not 2nd stage string str1; @@ -91,23 +90,25 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks passFilterIllumina='Y'; }; readID += ' '+ to_string(P.iReadAll)+' '+passFilterIllumina+' '+to_string(P.readFilesIndex); + //ignore the rest of the read name for both mates for (uint imate=0; imatereadIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); - + if (P.pSolo.type==1) {//record barcode sequence string seq1; - P.inOut->readIn[1] >> seq1; + getline(P.inOut->readIn[1],seq1); if (seq1.size() != P.pSolo.bL) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in input read file: the total length of barcode sequence is " << seq1.size() << " not equal to expected " <logMain, EXIT_CODE_INPUT_FILES, P); }; readID += ' ' + seq1; - for (uint ii=0; ii<3; ii++) - P.inOut->readIn[1].ignore(DEF_readNameSeqLengthMax,'\n');//skip to the end of this line, and two more TODO record qualities + P.inOut->readIn[1].ignore(DEF_readNameSeqLengthMax,'\n');//skip to the end of 3rd ("+") line + getline(P.inOut->readIn[1],seq1); //read qualities + readID += ' ' + seq1; }; //copy the same readID to both mates diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 7af5927..c21a8f7 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -53,35 +53,27 @@ void ReadAlign::outputAlignments() { if (outFilterPassed) { uint nTrOut=nTr; //number of aligns to output bool outSAMfilterYes=true; - if (P.outSAMfilter.yes) - { - if (P.outSAMfilter.KeepOnlyAddedReferences) - { + if (P.outSAMfilter.yes) { + if (P.outSAMfilter.KeepOnlyAddedReferences) { for (uint itr=0;itrChrChrChr>=mapGen.genomeInsertChrIndFirst) - { + for (uint itr=0;itrChr>=mapGen.genomeInsertChrIndFirst) { trMult[nTrOut]=trMult[itr]; trMult[nTrOut]->primaryFlag=false; ++nTrOut; }; }; - if (nTrOut==0) - { + if (nTrOut==0) { outSAMfilterYes=false; - } else - { + } else { trMult[0]->primaryFlag=true; }; }; @@ -98,11 +90,10 @@ void ReadAlign::outputAlignments() { errOut << "EXITING because of a BUG: nTr=0 in outputAlignments.cpp"; exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_BUG, P); }; - + nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files - for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; //mateMapped[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; @@ -112,39 +103,30 @@ void ReadAlign::outputAlignments() { mateMapped1[trMult[iTr]->exons[0][EX_iFrag]]=true; mateMapped1[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; - if (P.outSAMbool && outSAMfilterYes) - {//SAM output + if (P.outSAMbool && outSAMfilterYes) {//SAM output outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); - if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) - {//keep pairs && paired reads && one of the mates not mapped in this transcript + if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) {//keep pairs && paired reads && one of the mates not mapped in this transcript outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, outSAMstream); }; }; - if ((P.outBAMunsorted || P.outBAMcoord) && outSAMfilterYes) - {//BAM output + if ((P.outBAMunsorted || P.outBAMcoord) && outSAMfilterYes) {//BAM output alignBAM(*(trMult[iTr]), nTr, iTr, mapGen.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); - if (P.outBAMunsorted) - {//unsorted - for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; - if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) - {//keep pairs && paired reads && one of the mates not mapped in this transcript + if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) {//keep pairs && paired reads && one of the mates not mapped in this transcript alignBAM(*trMult[iTr], 0, 0, mapGen.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, 4, mateMapped1, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; }; }; - if (P.outBAMcoord) - {//coordinate sorted - for (uint imate=0; imatecoordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; }; @@ -155,99 +137,85 @@ void ReadAlign::outputAlignments() { mateMapped[trBest->exons[0][EX_iFrag]]=true; mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; - if (P.readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) - { + if (P.readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) { unmapType=4; }; - if (unmapType==4 && P.outSAMunmapped.yes) - {//output unmapped end for single-end alignments - if (P.outSAMbool && !P.outSAMunmapped.keepPairs && outSAMfilterYes) - { + if (unmapType==4 && P.outSAMunmapped.yes) {//output unmapped end for single-end alignments + if (P.outSAMbool && !P.outSAMunmapped.keepPairs && outSAMfilterYes) { outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); }; - if ( (P.outBAMcoord || (P.outBAMunsorted && !P.outSAMunmapped.keepPairs) ) && outSAMfilterYes) - {//BAM output + if ( (P.outBAMcoord || (P.outBAMunsorted && !P.outSAMunmapped.keepPairs) ) && outSAMfilterYes) {//BAM output alignBAM(*trBest, 0, 0, mapGen.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; - if (P.outBAMcoord) - {//KeepPairs option does not affect for sorted BAM since we do not want multiple entries for the same unmapped read + if (P.outBAMcoord) {//KeepPairs option does not affect for sorted BAM since we do not want multiple entries for the same unmapped read outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); }; }; }; }; - if (P.outSJfilterReads=="All" || nTr==1) - { + if (P.outSJfilterReads=="All" || nTr==1) { uint sjReadStartN=chunkOutSJ->N; - for (uint iTr=0;iTrgeneCountsAddAlign(nTr, trMult); + vector readGene; + if ( P.quant.geCount.yes ) { + chunkTr->geneCountsAddAlign(nTr, trMult, readGene); }; - if ( P.quant.trSAM.yes ) - {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused + if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll); }; + + soloCB->readCB(readNameExtra.at(0), nTr, readGene); + }; }; - if (unmapType>=0) - { + if (unmapType>=0) { statsRA.unmappedAll++; }; if ( P.outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped - if (P.outBAMcoord || P.outBAMunsorted || P.quant.trSAM.yes) - {//BAM output + if (P.outBAMcoord || P.outBAMunsorted || P.quant.trSAM.yes) {//BAM output alignBAM(*trBest, 0, 0, mapGen.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); - for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; - if (P.quant.trSAM.yes) - { + if (P.quant.trSAM.yes) { outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; - if (P.outBAMcoord) - { + if (P.outBAMcoord) { outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); }; }; }; - if (P.outSAMbool) - {//output SAM + if (P.outSAMbool) {//output SAM outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); }; }; if (unmapType>=0 && P.outReadsUnmapped=="Fastx" ){//output to fasta/q files - for (uint im=0;im1) - chunkOutUnmappedReadsStream[im] <<" "<< int(mateMapped[0]) << int(mateMapped[1]); - chunkOutUnmappedReadsStream[im] <<"\n"; - chunkOutUnmappedReadsStream[im] << Read0[im] <<"\n"; - if (readFileType==2) {//fastq - chunkOutUnmappedReadsStream[im] << "+\n"; - chunkOutUnmappedReadsStream[im] << Qual0[im] <<"\n"; - }; - }; + for (uint im=0;im1) + chunkOutUnmappedReadsStream[im] <<" "<< int(mateMapped[0]) << int(mateMapped[1]); + chunkOutUnmappedReadsStream[im] <<"\n"; + chunkOutUnmappedReadsStream[im] << Read0[im] <<"\n"; + if (readFileType==2) {//fastq + chunkOutUnmappedReadsStream[im] << "+\n"; + chunkOutUnmappedReadsStream[im] << Qual0[im] <<"\n"; + }; + }; }; }; diff --git a/Transcriptome.h b/Transcriptome.h index 5003c27..c5161ad 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -12,9 +12,10 @@ class Transcriptome { //methods: Transcriptome (Parameters &Pin); //create transcriptome structure, load and initialize parameters uint32 quantAlign (Transcript &aG, Transcript *aTall);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr - void geneCountsAddAlign(uint nA, Transcript **aAll); //add one alignment to gene counts + void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure void quantsOutput(); //output quantification files + string trInfoDir; vector trID, geID; //transcript/gene IDs diff --git a/Transcriptome_geneCountsAddAlign.cpp b/Transcriptome_geneCountsAddAlign.cpp index 7f33818..298327a 100644 --- a/Transcriptome_geneCountsAddAlign.cpp +++ b/Transcriptome_geneCountsAddAlign.cpp @@ -1,18 +1,18 @@ #include "Transcriptome.h" #include "serviceFuns.cpp" -void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignments from one read to gene counts +void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1) { + + gene1.assign(quants->geneCounts.nType,-1); + if (nA>1) { quants->geneCounts.cMulti++; } else { Transcript& a=*aAll[0];//one unique alignment only - vector gene1(quants->geneCounts.nType,-1); - int64 e1=-1; - for (int ib=a.nExons-1; ib>=0; ib--) - {//scan through all blocks of the alignments + for (int ib=a.nExons-1; ib>=0; ib--) {//scan through all blocks of the alignments uint64 g1=a.exons[ib][EX_G]+a.exons[ib][EX_L]-1;//end of the block @@ -27,43 +27,33 @@ void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll) {//add alignm // }; // }; - while (e1>=0 && exG.eMax[e1]>=a.exons[ib][EX_G]) - {//these exons may overlap this block - if (exG.e[e1]>=a.exons[ib][EX_G]) - {//this exon overlaps the block + while (e1>=0 && exG.eMax[e1]>=a.exons[ib][EX_G]) {//these exons may overlap this block + if (exG.e[e1]>=a.exons[ib][EX_G]) {//this exon overlaps the block uint str1=(uint)exG.str[e1]-1; - for (int itype=0; itypegeneCounts.nType; itype++) - { + for (int itype=0; itypegeneCounts.nType; itype++) { //str1<2 (i.e. strand=0) requirement means that genes w/o strand will accept reads from both strands if ( itype==1 && a.Str!=str1 && str1<2) continue; //same strand if ( itype==2 && a.Str==str1 && str1<2) continue; //reverse strand - if (gene1.at(itype)==-1) - {//first gene overlapping this read + if (gene1.at(itype)==-1) {//first gene overlapping this read gene1[itype]=exG.g[e1]; - } else if (gene1.at(itype)==-2) - { - continue;//this align was already founf to be ambig for this strand + } else if (gene1.at(itype)==-2) { + continue;//this align was already found to be ambig for this strand } else if (gene1.at(itype)!=(int32)exG.g[e1]) {//another gene overlaps this read gene1[itype]=-2;//mark ambiguous };//otherwise it's the same gene }; }; - --e1;// go to the previous exon }; }; - for (int itype=0; itypegeneCounts.nType; itype++) - { - if (gene1.at(itype)==-1) - { + for (int itype=0; itypegeneCounts.nType; itype++) { + if (gene1.at(itype)==-1) { quants->geneCounts.cNone[itype]++; - } else if (gene1.at(itype)==-2) - { + } else if (gene1.at(itype)==-2) { quants->geneCounts.cAmbig[itype]++; - } else - { + } else { quants->geneCounts.gCount[itype][gene1.at(itype)]++; }; }; diff --git a/parametersDefault b/parametersDefault index 11f720e..681e7dc 100644 --- a/parametersDefault +++ b/parametersDefault @@ -139,6 +139,12 @@ readMatesLengthsIn NotEqual readNameSeparator / string(s): character(s) separating the part of the read names that will be trimmed in output (read name after space is always trimmed) +readStrand Unstranded + string: library strandedness type + Unstranded ... unstranded library + Forward ... 1st read strand same as RNA (i.e. 2nd cDNA synthesis strand) + Reverse ... 1st read opposite to RNA (i.e. 1st cDNA synthesis strand) + clip3pNbases 0 int(s): number(s) of bases to clip from 3p of each mate. If one value is given, it will be assumed the same for both mates. diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 2ca6a96..eca32b4 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -631,6 +631,35 @@ unsigned char parametersDefault[] = { 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x75, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x63, 0x44, 0x4e, 0x41, 0x20, + 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x73, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, + 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6f, + 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x52, + 0x4e, 0x41, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x63, 0x44, 0x4e, 0x41, 0x20, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, + 0x73, 0x69, 0x73, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, @@ -2986,4 +3015,4 @@ unsigned char parametersDefault[] = { 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73 }; -unsigned int parametersDefault_len = 35826; +unsigned int parametersDefault_len = 36174; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 44053a4..11d7cfb 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -158,4 +158,35 @@ inline int32 binarySearch1b(argType x, argType *X, int32 N) return i2; }; +template +inline int32 binarySearchExact(argType x, argType *X, int32 N) { + //binary search in the sorted list + //check the boundaries first + //returns -1 if no match found + //if X are not all distinct, no guarantee which element is returned + + if (x>X[N-1] || xi1+1) {//binary search + i3=(i1+i2)/2; + if (X[i3]>=x) { + i2=i3; + } else { + i1=i3; + }; + }; + + if (x==X[i2]) { + return i2; + } else if (x==X[i1]) { + return i1; + } else { + return -1; + }; +}; + + #endif From 4c74adaa45c4596b63a28a18026c3c87d49963e8 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 27 Oct 2018 16:23:04 -0400 Subject: [PATCH 368/536] Binary search for CB matches. --- SoloCB.cpp | 15 +++++++++++++++ SoloCB.h | 21 +++++++++++++++++++++ SoloCB_readCB.cpp | 27 +++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 SoloCB.cpp create mode 100644 SoloCB.h create mode 100644 SoloCB_readCB.cpp diff --git a/SoloCB.cpp b/SoloCB.cpp new file mode 100644 index 0000000..f14b693 --- /dev/null +++ b/SoloCB.cpp @@ -0,0 +1,15 @@ +#include "SoloCB.h" +#include "streamFuns.h" + +SoloCB::SoloCB(Parameters &Pin, int iChunk) : P(Pin), pSolo(P.pSolo) { + if (pSolo.type==0) + return; + + cbReadCount = new uint32[pSolo.cbWL.size()]; + for (uint32 ii=0; ii &readGene); + +private: + Parameters &P; + ParametersSolo &pSolo; + +}; + +#endif diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp new file mode 100644 index 0000000..09c6898 --- /dev/null +++ b/SoloCB_readCB.cpp @@ -0,0 +1,27 @@ +#include "SoloCB.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +void SoloCB::readCB(const string &readNameExtra, const uint nTr, const vector &readGene) { + if (pSolo.type==0) + return; + +// if (nTr > 1) //unique mappers only for now +// maps return; + + int32 rG=readGene.at(P.pReads.strand); + +// if (rG < 0) //only non-ambiguous genes for now +// return; + + uint32 cbB; + if (!convertNuclStrToInt32(readNameExtra.substr(0,pSolo.cbL),cbB)) + return; //non-ACGT symbols + + int32 cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + + if (cbI>=0) { + *strU_0 << cbI <<' '< Date: Mon, 29 Oct 2018 15:20:16 -0400 Subject: [PATCH 369/536] Implementing gene from transcript alignment --- ReadAlign_quantTranscriptome.cpp | 39 ++++++++++++------------------- SoloCB_readCB.cpp | 40 ++++++++++++++++++++++---------- Transcriptome_quantAlign.cpp | 15 ++++-------- 3 files changed, 48 insertions(+), 46 deletions(-) diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 4baf28b..29ba390 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -8,8 +8,7 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript uint nAlignT=0; for (uint iag=0; iagnDel>0 || alignG[iag]->nIns>0) ) - {//prevent indels if requested + if (!P.quant.trSAM.indel && (alignG[iag]->nDel>0 || alignG[iag]->nIns>0) ) {//prevent indels if requested continue; }; if (!P.quant.trSAM.singleEnd && (P.readNmates==2 && alignG[iag]->exons[0][EX_iFrag]==alignG[iag]->exons[alignG[iag]->nExons-1][EX_iFrag]) ) @@ -19,8 +18,7 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript uint nMM1=0; char* R=Read1[alignG[iag]->roStr==0 ? 0:2]; - if (!P.quant.trSAM.softClip) - {//soft clipping not allowed, extend them if possible + if (!P.quant.trSAM.softClip) {//soft clipping not allowed, extend them if possible for (uint32 iab=0; iabnExons; iab++) { uint left1=0,right1=0;//how many bases to move left or right if (iab==0) { @@ -28,12 +26,10 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript } else if (alignG[iag]->canonSJ[iab-1]==-3) { left1=alignG[iag]->exons[iab][EX_R]-readLength[alignG[iag]->exons[iab-1][EX_iFrag]]-1; }; - if (iab==alignG[iag]->nExons-1) - {//last block of left mates + if (iab==alignG[iag]->nExons-1) {//last block of left mates right1=Lread-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; - } else if (alignG[iag]->canonSJ[iab]==-3) - {//last block of the right mate (i.e. whole read) + } else if (alignG[iag]->canonSJ[iab]==-3) {//last block of the right mate (i.e. whole read) right1=readLength[alignG[iag]->exons[iab][EX_iFrag]]-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; }; @@ -52,23 +48,18 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript alignG[iag]->exons[iab][EX_L] += left1+right1; }; - if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P.outFilterMismatchNoverLmax*(Lread-1)) ) ) - {//extension of soft clips yielded too many mismatches, no output + if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P.outFilterMismatchNoverLmax*(Lread-1)) ) ) { + //extension of soft clips yielded too many mismatches, no output continue; }; }; -// if (alignG[iag]->mappedLength==(readLength[0]+readLength[1]) && alignG[iag]->nDel==0) {//remove transcripts that contain indels of soft-clipping //TODO make this optional nAlignT += Tr->quantAlign(*alignG[iag],alignT+nAlignT); -// }; }; alignT[int(rngUniformReal0to1(rngMultOrder)*nAlignT)].primaryFlag=true; for (uint iatr=0;iatrunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iatr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nAlignT); @@ -76,15 +67,15 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript }; //not used anymore, at Colin Dewey's request -// if (nAlignT==0 && P.outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped -// uint unmapType=5; -// bool mateMapped[2]={false,false}; -// alignBAM(*alignG[0], 0, 0, mapGen.chrStart[alignG[0]->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder); -// for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); -// }; -// -// }; + // if (nAlignT==0 && P.outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped + // uint unmapType=5; + // bool mateMapped[2]={false,false}; + // alignBAM(*alignG[0], 0, 0, mapGen.chrStart[alignG[0]->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder); + // for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); + // }; + // + // }; return nAlignT; }; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 09c6898..3ecd916 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -6,22 +6,38 @@ void SoloCB::readCB(const string &readNameExtra, const uint nTr, const vector 1) //unique mappers only for now -// maps return; - int32 rG=readGene.at(P.pReads.strand); + +// if (nTr > 1) //unique mappers only for now +// return; + + if (nTr > 1) + rG=-3; + // if (rG < 0) //only non-ambiguous genes for now // return; - uint32 cbB; - if (!convertNuclStrToInt32(readNameExtra.substr(0,pSolo.cbL),cbB)) - return; //non-ACGT symbols - - int32 cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); - - if (cbI>=0) { - *strU_0 << cbI <<' '<=0) { + *strU_1 << cbI <<' '<< readNameExtra.at(pSolo.cbL+pSolo.umiL+1+ii/2) <<' '; + }; + }; + }; + *strU_1 << rG <<' '<< umiB <<'\n'; }; -}; \ No newline at end of file +}; diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 92bc05e..e652c51 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -44,33 +44,28 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui case -999: //last exon if (trStr1==2) {//convert align coordinates if on the -strand uint32 trlength=exLenCum1[exN1-1]+exSE1[2*exN1-1]-exSE1[2*exN1-2]+1; //transcript length - for (uint32 iex=0; iex(aG.exons[iab+1][EX_G]-trS1, exSE1, 2*exN1); From f8767ad16766fc095aff33a63d7fe97a393845fe Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 29 Oct 2018 15:58:50 -0400 Subject: [PATCH 370/536] Implementing gene from transcript alignment 2 --- Parameters.cpp | 18 +- ReadAlign.h | 2 +- ReadAlign_outputAlignments.cpp | 3 +- ReadAlign_quantTranscriptome.cpp | 18 +- Transcriptome.cpp | 2 - Transcriptome.h | 2 +- Transcriptome_quantAlign.cpp | 3 +- parametersDefault | 6 +- parametersDefault.xxd | 294 ++++++++++++++++--------------- 9 files changed, 183 insertions(+), 165 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 47f3ae8..977b05a 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1242,19 +1242,19 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters for (uint32 ii=0; ii-2) { + if (outStd=="BAM_Quant") { + outFileNamePrefix="-"; + } else { + outQuantBAMfileName=outFileNamePrefix + "Aligned.toTranscriptome.out.bam"; + }; + inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); }; - inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); - if (quant.trSAM.ban=="IndelSoftclipSingleend") - { + if (quant.trSAM.ban=="IndelSoftclipSingleend") { quant.trSAM.indel=false; quant.trSAM.softClip=false; quant.trSAM.singleEnd=false; - } else if (quant.trSAM.ban=="Singleend") - { + } else if (quant.trSAM.ban=="Singleend") { quant.trSAM.indel=true; quant.trSAM.softClip=true; quant.trSAM.singleEnd=false; diff --git a/ReadAlign.h b/ReadAlign.h index 47ee48f..6295ed8 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -187,7 +187,7 @@ class ReadAlign void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R);//stitches all seeds in one window: iW void stitchPieces(char **R, uint Lread); - uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT); + uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT, vector &readTranscripts); void copyRead(ReadAlign&); void waspMap(); diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index c21a8f7..8f25d35 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -171,8 +171,9 @@ void ReadAlign::outputAlignments() { chunkTr->geneCountsAddAlign(nTr, trMult, readGene); }; + vector readTranscripts={}; if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused - quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll); + quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts); }; soloCB->readCB(readNameExtra.at(0), nTr, readGene); diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 29ba390..9dd139a 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -4,7 +4,7 @@ #include "serviceFuns.cpp" #include -uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT) { +uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT, vector &readTranscripts) { uint nAlignT=0; for (uint iag=0; iagquantAlign(*alignG[iag],alignT+nAlignT); + nAlignT += Tr->quantAlign(*alignG[iag],alignT+nAlignT, readTranscripts); }; - alignT[int(rngUniformReal0to1(rngMultOrder)*nAlignT)].primaryFlag=true; + if (P.quant.trSAM.bamCompression>-2) {//output Aligned.toTranscriptome.bam + alignT[int(rngUniformReal0to1(rngMultOrder)*nAlignT)].primaryFlag=true; - for (uint iatr=0;iatrunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iatr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nAlignT); + for (uint iatr=0;iatrunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iatr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nAlignT); + }; }; }; - + //not used anymore, at Colin Dewey's request // if (nAlignT==0 && P.outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped // uint unmapType=5; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 5f48d8e..274ca7f 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -40,8 +40,6 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ P.inOut->logMain << "Loaded exon database, nEx="< &alignTranscripts);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure void quantsOutput(); //output quantification files diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index e652c51..7b952d4 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -91,7 +91,7 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui return 0; //this should not happen }; -uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall) { +uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts) { uint32 nAtr=0; //number of alignments to the transcriptome //binary search through transcript starts @@ -109,6 +109,7 @@ uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall) { aTall[nAtr].Chr = tr1; aTall[nAtr].Str = trStr[tr1]==1 ? aG.Str : 1-aG.Str; //TODO strandedness ++nAtr; + readTranscripts.push_back(tr1); }; }; } while (trEmax[tr1]>=aGend && tr1>0); diff --git a/parametersDefault b/parametersDefault index 681e7dc..a291aa2 100644 --- a/parametersDefault +++ b/parametersDefault @@ -642,7 +642,11 @@ quantMode - GeneCounts ... count reads per gene quantTranscriptomeBAMcompression 1 1 - int: -1 to 10 transcriptome BAM compression level, -1=default compression (6?), 0=no compression, 10=maximum compression + int: -2 to 10 transcriptome BAM compression level + -2 ... no BAM output + -1 ... default compression (6?) + 0 ... no compression + 10 ... maximum compression quantTranscriptomeBan IndelSoftclipSingleend string: prohibit various alignment type diff --git a/parametersDefault.xxd b/parametersDefault.xxd index eca32b4..558b81c 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2868,151 +2868,163 @@ unsigned char parametersDefault[] = { 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, + 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, - 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, - 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, - 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, - 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, - 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, - 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, - 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, - 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, - 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, - 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, - 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, - 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, - 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, - 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, - 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, - 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, - 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, - 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, - 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, - 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x73, 0x6f, 0x6c, - 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, - 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x58, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x56, 0x32, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x30, 0x58, 0x20, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x20, 0x43, 0x68, 0x72, - 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x56, 0x65, 0x72, 0x69, 0x73, 0x6f, - 0x6e, 0x20, 0x32, 0x20, 0x63, 0x68, 0x65, 0x6d, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, - 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, - 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, + 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, + 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, + 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, + 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, + 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, + 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, + 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, + 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, + 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, + 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, + 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, + 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, + 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, + 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, + 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, + 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, + 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, + 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, + 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x58, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, + 0x6d, 0x56, 0x32, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, + 0x30, 0x58, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x20, + 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x56, 0x65, 0x72, + 0x69, 0x73, 0x6f, 0x6e, 0x20, 0x32, 0x20, 0x63, 0x68, 0x65, 0x6d, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, + 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, - 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73 + 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, + 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73 }; -unsigned int parametersDefault_len = 36174; +unsigned int parametersDefault_len = 36321; From 2fa56ca88224b93be16e99e60f3a13348e62fe16 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 30 Oct 2018 12:04:43 -0400 Subject: [PATCH 371/536] Fixed the bug causing inconsistent output for mate1/2 in the Unmapped files. --- ReadAlignChunk_processChunks.cpp | 8 +++++++- VERSION | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 656c75b..6b3f202 100644 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -219,9 +219,15 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks chunkFstreamCat (*RA->chunkOutChimJunction, P.inOut->outChimJunction, P.runThreadN>1, g_threadChunks.mutexOutChimJunction); }; if (P.outReadsUnmapped=="Fastx" ) { + if (P.runThreadN>1) + pthread_mutex_lock(&g_threadChunks.mutexOutUnmappedFastx); + for (uint ii=0;iichunkOutUnmappedReadsStream[ii],P.inOut->outUnmappedReadsStream[ii], P.runThreadN>1, g_threadChunks.mutexOutUnmappedFastx); + chunkFstreamCat (RA->chunkOutUnmappedReadsStream[ii],P.inOut->outUnmappedReadsStream[ii], false, g_threadChunks.mutexOutUnmappedFastx); }; + + if (P.runThreadN>1) + pthread_mutex_unlock(&g_threadChunks.mutexOutUnmappedFastx); }; }; if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexLogMain); diff --git a/VERSION b/VERSION index df5a105..a4d43c1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.1c" +#define STAR_VERSION "STAR_2.6.1c_2018-10-30" From a942b94195db4261e8930c505b956c347cdde06b Mon Sep 17 00:00:00 2001 From: Alex Dobin Date: Tue, 30 Oct 2018 12:09:37 -0400 Subject: [PATCH 372/536] Solo: implemented gene from transcripts. --- Parameters.cpp | 6 +++++- Parameters.h | 1 + ReadAlign.h | 4 ++-- ReadAlign_outputAlignments.cpp | 9 +++++---- ReadAlign_quantTranscriptome.cpp | 4 ++-- STAR.cpp | 2 +- SoloCB.cpp | 7 +++++++ SoloCB.h | 13 ++++++++++++- SoloCB_readCB.cpp | 30 +++++++++++++++++++----------- Transcriptome.cpp | 13 +++++++++++-- Transcriptome.h | 3 ++- Transcriptome_quantAlign.cpp | 5 ++--- 12 files changed, 69 insertions(+), 28 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 977b05a..8229642 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1242,7 +1242,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters for (uint32 ii=0; ii-2) { + + if (quant.trSAM.bamCompression>-2) + quant.trSAM.bamYes=true; + + if (quant.trSAM.bamYes) { if (outStd=="BAM_Quant") { outFileNamePrefix="-"; } else { diff --git a/Parameters.h b/Parameters.h index 047f553..53eaf23 100644 --- a/Parameters.h +++ b/Parameters.h @@ -283,6 +283,7 @@ class Parameters { struct { bool yes; + bool bamYes; bool indel; bool softClip; bool singleEnd; diff --git a/ReadAlign.h b/ReadAlign.h index 6295ed8..c8d745f 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -28,7 +28,7 @@ class ReadAlign Genome &mapGen; //mapped-to-genome structure uint iRead; - char** Read1; + char **Read1; Stats statsRA; //mapping statistics @@ -187,7 +187,7 @@ class ReadAlign void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R);//stitches all seeds in one window: iW void stitchPieces(char **R, uint Lread); - uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT, vector &readTranscripts); + uint quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT, vector &readTranscripts, set &readTrGenes); void copyRead(ReadAlign&); void waspMap(); diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 8f25d35..718dff0 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -166,17 +166,18 @@ void ReadAlign::outputAlignments() { }; }; - vector readGene; + vector readGenes; if ( P.quant.geCount.yes ) { - chunkTr->geneCountsAddAlign(nTr, trMult, readGene); + chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); }; vector readTranscripts={}; + set readTrGenes={}; if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused - quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts); + quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); }; - soloCB->readCB(readNameExtra.at(0), nTr, readGene); + soloCB->readCB(readNameExtra.at(0), nTr, readGenes, readTranscripts, readTrGenes); }; }; diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 9dd139a..1c7f061 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -4,7 +4,7 @@ #include "serviceFuns.cpp" #include -uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT, vector &readTranscripts) { +uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT, vector &readTranscripts, set &readTrGenes) { uint nAlignT=0; for (uint iag=0; iagquantAlign(*alignG[iag],alignT+nAlignT, readTranscripts); + nAlignT += Tr->quantAlign(*alignG[iag],alignT+nAlignT, readTranscripts, readTrGenes); }; if (P.quant.trSAM.bamCompression>-2) {//output Aligned.toTranscriptome.bam diff --git a/STAR.cpp b/STAR.cpp index 475b373..c9fe9c9 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -298,7 +298,7 @@ int main(int argInN, char* argIn[]) { // outBAMwriteHeader(P.inOut->outBAMfileCoord,P.samHeader,mainGenome.chrName,mainGenome.chrLength); // }; - if ( P.quant.trSAM.yes ) { + if ( P.quant.trSAM.bamYes ) { samHeaderStream.str(""); vector trlength; for (uint32 ii=0;iitrID.size();ii++) { diff --git a/SoloCB.cpp b/SoloCB.cpp index f14b693..59af683 100644 --- a/SoloCB.cpp +++ b/SoloCB.cpp @@ -5,6 +5,13 @@ SoloCB::SoloCB(Parameters &Pin, int iChunk) : P(Pin), pSolo(P.pSolo) { if (pSolo.type==0) return; + for (uint32 ii=0; ii &readGene); + void readCB(const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes); private: Parameters &P; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 3ecd916..55a1495 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -2,21 +2,28 @@ #include "serviceFuns.cpp" #include "SequenceFuns.h" -void SoloCB::readCB(const string &readNameExtra, const uint nTr, const vector &readGene) { +void SoloCB::readCB(const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes) { if (pSolo.type==0) return; - int32 rG=readGene.at(P.pReads.strand); - +// int32 rG=readGene.at(P.pReads.strand); // if (nTr > 1) //unique mappers only for now // return; - if (nTr > 1) - rG=-3; - + if (readTrGenes.size()==0) { + stats.V[stats.nNoGene]++; + return; + } else if (readTrGenes.size()>1) { + stats.V[stats.nAmbigGene]++; + if (nTr>1) + stats.V[stats.nAmbigGeneMultimap]++; + return; + }; -// if (rG < 0) //only non-ambiguous genes for now -// return; + //debug + if (readGenes.size()==1 && readGenes.at(0)!=*readTrGenes.begin()) + cout <logMain << "Loaded exon database, nEx="<> exG.nEx; + for (uint32 ii=0;iigene info. TODO this is wasteful, add one gene column to transcriptInfo.tab + string dummy1; + uint32 ig,it; + exinfo1 >> dummy1 >> dummy1 >> dummy1 >> ig >> it; + trGene[it]=ig; + }; + exinfo1.close(); }; if ( P.quant.geCount.yes ) {//load exon-gene structures @@ -74,8 +85,6 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ geStream >> geID[ii]; }; geStream.close(); - - }; }; diff --git a/Transcriptome.h b/Transcriptome.h index b619baf..0ce4b06 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -11,7 +11,7 @@ class Transcriptome { //methods: Transcriptome (Parameters &Pin); //create transcriptome structure, load and initialize parameters - uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &alignTranscripts);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr + uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readTrGenes);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure void quantsOutput(); //output quantification files @@ -29,6 +29,7 @@ class Transcriptome { uint8 *trStr; //transcript strand uint32 *exSE; //exons start/end uint32 *exLenCum; //cumulative length of previous exons + uint32 *trGene; //transcript to gene correspondence struct {//exon-gene structure for GeneCounts uint64 nEx;//number of exons/genes diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 7b952d4..1b18430 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -24,8 +24,6 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui aG.canonSJ[aG.nExons-1]=-999; //marks the last exons for (uint32 iab=0; iabexSE1[2*ex1+1]+trS1+1) {//block extends past exon end return 0; }; @@ -91,7 +89,7 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui return 0; //this should not happen }; -uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts) { +uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readTrGenes) { uint32 nAtr=0; //number of alignments to the transcriptome //binary search through transcript starts @@ -110,6 +108,7 @@ uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall, vector=aGend && tr1>0); From 16b1149aa527e2844951e904bbea43e1aebe7c34 Mon Sep 17 00:00:00 2001 From: Alex Dobin Date: Tue, 30 Oct 2018 18:15:55 -0400 Subject: [PATCH 373/536] Solo: implementing post-map aggregation. --- ReadAlignChunk.cpp | 2 +- ReadAlign_outputAlignments.cpp | 2 +- Solo.cpp | 4 +++- Solo.h | 30 +++++++++++++++++------------- SoloCB.h | 2 +- SoloCB_readCB.cpp | 13 +++++++------ 6 files changed, 30 insertions(+), 23 deletions(-) diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 5dc3b1b..083954c 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -55,7 +55,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome RA->outBAMcoord=NULL; }; - if ( P.quant.trSAM.yes ) { + if ( P.quant.trSAM.bamYes ) { chunkOutBAMquant = new BAMoutput (P.inOut->outQuantBAMfile,P); RA->outBAMquant = chunkOutBAMquant; } else { diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 718dff0..2704c54 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -177,7 +177,7 @@ void ReadAlign::outputAlignments() { quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); }; - soloCB->readCB(readNameExtra.at(0), nTr, readGenes, readTranscripts, readTrGenes); + soloCB->readCB(iReadAll, readNameExtra.at(0), nTr, readGenes, readTranscripts, readTrGenes); }; }; diff --git a/Solo.cpp b/Solo.cpp index a07bfbf..e733305 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -1,7 +1,9 @@ -#include "SoloReads.h" +#include "Solo.h" SoloReads::SoloReads(Parameters Pin) : P(Pin), pSolo(P.pSolo) { if (pSolo==0) return; + + soloCBall = new SoloCB(P,-1); //allocate arrays // reads.nMax=P.limitNreadsSoft/P.runNthreads; // read.cb=new uint32[nMax]; diff --git a/Solo.h b/Solo.h index 2715e85..07bcc87 100644 --- a/Solo.h +++ b/Solo.h @@ -1,20 +1,24 @@ #ifndef CODE_Solo #define CODE_Solo #include "IncludeDefine.h" +#include "ReadAlignChunk.h" +#include "SoloCB.h" -class Solo { - public: - struct {//uncollapsed read barcodes - uint64 nMax;//size of arrays below - uint64 N; //number of reads recorded - uint32* cb; - uint32* umi; - uint32* gene; //gene - } reads; - - Solo (Parameters &Pin); - - private: +class Solo { +public: +// struct {//uncollapsed read barcodes +// uint64 nMax;//size of arrays below +// uint64 N; //number of reads recorded +// uint32* cb; +// uint32* umi; +// uint32* gene; //gene +// } reads; + SoloCB *soloCBall; + + Solo(Parameters &Pin); + soloPostMap(ReadAlignChunk **RAchunk); + +private: Parameters &P; ParametersSolo &pSolo; diff --git a/SoloCB.h b/SoloCB.h index 6484e64..7feabbb 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -21,7 +21,7 @@ class SoloCB { ofstream *strU_1; //uniqe mappers, CB with 1MM off whitelist SoloCB (Parameters &Pin, int iChunk); - void readCB(const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes); + void readCB(const uint64 &iReadAll, const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes); private: Parameters &P; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 55a1495..e0b4115 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -2,13 +2,11 @@ #include "serviceFuns.cpp" #include "SequenceFuns.h" -void SoloCB::readCB(const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes) { +void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes) { if (pSolo.type==0) return; // int32 rG=readGene.at(P.pReads.strand); -// if (nTr > 1) //unique mappers only for now -// return; if (readTrGenes.size()==0) { stats.V[stats.nNoGene]++; @@ -36,16 +34,19 @@ void SoloCB::readCB(const string &readNameExtra, const uint nTr, const vector=0) { + if (cbI>=0) {Yvvdzvk40 + *strU_1 << cbI <<' '<< readNameExtra.at(pSolo.cbL+pSolo.umiL+1+ii/2) <<' '; + cbReadCount[cbI]++; }; }; }; - *strU_1 << *readTrGenes.begin() <<' '<< umiB <<'\n'; + *strU_1 << *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; }; }; From fc1f88ae6a9a1347bf46c3558e1c16db1011fce5 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 3 Nov 2018 15:28:48 -0400 Subject: [PATCH 374/536] Implementing UMI collapsing. --- Genome_genomeGenerate.cpp | 6 ++--- Makefile | 2 +- Parameters.cpp | 1 + ParametersSolo.cpp | 3 ++- STAR.cpp | 12 +++++---- Solo.cpp | 19 ++++++--------- Solo.h | 27 ++++++++++++--------- SoloCB.cpp | 40 ++++++++++++++++++++++++------ SoloCB.h | 17 ++++++------- SoloCB_readCB.cpp | 51 ++++++++++++++++++++++++++++++--------- Transcriptome.cpp | 29 ++++++++++++++-------- loadGTF.cpp | 14 +++++------ serviceFuns.cpp | 49 +++++++++++++++++++++++-------------- streamFuns.cpp | 12 +++++++-- streamFuns.h | 7 +++--- 15 files changed, 186 insertions(+), 103 deletions(-) diff --git a/Genome_genomeGenerate.cpp b/Genome_genomeGenerate.cpp index fce7a7f..b866e1c 100644 --- a/Genome_genomeGenerate.cpp +++ b/Genome_genomeGenerate.cpp @@ -245,11 +245,9 @@ void Genome::genomeGenerate() { GstrandMask = ~(1LLU<inOut->logMain << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <inOut->logStdOut << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <inOut->logStdOut << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <chunkTr); + soloMain.soloPostMap(RAchunk); + + if ( P.quant.geCount.yes ) {//output gene quantifications + for (int ichunk=1; ichunkchunkTr->quants->addQuants(*(RAchunk[ichunk]->chunkTr->quants)); }; RAchunk[0]->chunkTr->quantsOutput(); diff --git a/Solo.cpp b/Solo.cpp index e733305..81c7676 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -1,14 +1,9 @@ #include "Solo.h" -SoloReads::SoloReads(Parameters Pin) : P(Pin), pSolo(P.pSolo) { - if (pSolo==0) + +Solo::Solo(Parameters &Pin, Transcriptome &inTrans) : P(Pin), pSolo(P.pSolo), Trans(inTrans) { + if (pSolo.type==0) return; - - soloCBall = new SoloCB(P,-1); - //allocate arrays -// reads.nMax=P.limitNreadsSoft/P.runNthreads; -// read.cb=new uint32[nMax]; -// read.umi=new uint32[nMax]; -// read.gene=new uint32[nMax]; -// reads.N=0; - -}; \ No newline at end of file + + soloCBsum = new SoloCB(P,-1); + soloCBall = new SoloCB*[P.runThreadN]; +}; diff --git a/Solo.h b/Solo.h index 07bcc87..91d35fa 100644 --- a/Solo.h +++ b/Solo.h @@ -3,25 +3,28 @@ #include "IncludeDefine.h" #include "ReadAlignChunk.h" #include "SoloCB.h" +#include "Transcriptome.h" class Solo { public: -// struct {//uncollapsed read barcodes -// uint64 nMax;//size of arrays below -// uint64 N; //number of reads recorded -// uint32* cb; -// uint32* umi; -// uint32* gene; //gene -// } reads; - SoloCB *soloCBall; + + SoloCB *soloCBsum, **soloCBall; - Solo(Parameters &Pin); - soloPostMap(ReadAlignChunk **RAchunk); - + uint64 nReadsMapped, nCB; //total number of mapped reads + + uint32 *rGeneUMI;//mapped reads sorted by CB + uint32 *indCB;//index of detected CBs in the whitelist + uint32 *rCBn;//number of reads for detected CBs in the whitelist + uint32 **rCBp;//array of pointers to each CB sub-array + + Solo(Parameters &Pin, Transcriptome &inTrans); + void soloPostMap(ReadAlignChunk **RAchunk); + void collapseUMI(uint32 iCB); + private: Parameters &P; ParametersSolo &pSolo; - + Transcriptome &Trans; }; #endif diff --git a/SoloCB.cpp b/SoloCB.cpp index 59af683..abded5d 100644 --- a/SoloCB.cpp +++ b/SoloCB.cpp @@ -7,16 +7,42 @@ SoloCB::SoloCB(Parameters &Pin, int iChunk) : P(Pin), pSolo(P.pSolo) { for (uint32 ii=0; ii=0) + strU_0 = &fstrOpen(P.outFileTmp+"/soloCB_U_0_"+std::to_string(iChunk),ERROR_OUT, P); + //strU_1 = &ofstrOpen(P.outFileTmp+"/soloCB_U_1_"+std::to_string(iChunk),ERROR_OUT, P); -}; \ No newline at end of file +}; + +void SoloCB::addSoloCB(const SoloCB &soloCBin) { + for (uint32 ii=0; iiflush(); + strU_0->seekg(0,ios::beg); + + uint32 cb1, g1, umi1; + for (uint64 ii=0; ii> cb1 >> g1 >> umi1; + strU_0->ignore(1000000000,'\n'); //in case more fields were output, may remove this + cbP[cb1][0]=g1; + cbP[cb1][1]=umi1; + cbP[cb1]+=2; + }; +}; diff --git a/SoloCB.h b/SoloCB.h index 7feabbb..c278276 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -8,21 +8,20 @@ class SoloCB { uint32* cbReadCount; struct { - enum {nNoGene,nAmbigGene,nAmbigGeneMultimap,nNinBarcode,nStats}; + enum {nNoGene,nAmbigGene,nAmbigGeneMultimap,nNinBarcode,nTooMany,nNoMatch,nExactMatch,nMatch,nStats}; uint64 V[nStats]; -// uint64 nNoGene; -// uint64 nAmbigGene; -// uint64 nAmbigGeneMultimap; -// -// uint64 nNinBarcode; + vector names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nTooMany","nNoMatch","nExactMatch","nMatch"}; } stats; - ofstream *strU_0; //uniqe mappers, CB matches whitelist - ofstream *strU_1; //uniqe mappers, CB with 1MM off whitelist + fstream *strU_0; //uniqe mappers, CB matches whitelist + //ofstream *strU_1; //uniqe mappers, CB with 1MM off whitelist SoloCB (Parameters &Pin, int iChunk); void readCB(const uint64 &iReadAll, const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes); - + void addSoloCB(const SoloCB &soloCBin); + void statsOut(ofstream &streamOut); + void readCBgeneUMIfromFiles(uint32 ** cbP); + private: Parameters &P; ParametersSolo &pSolo; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index e0b4115..0f6eb65 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -18,10 +18,10 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u return; }; - //debug + /*debug if (readGenes.size()==1 && readGenes.at(0)!=*readTrGenes.begin()) cout <=0) { +// *strU_1 << cbI <<' '<< readNameExtra.at(pSolo.cbL+pSolo.umiL+1+ii/2) <<' '; +// cbReadCount[cbI]++; +// }; +// }; +// }; +// *strU_1 << *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; +// }; + + //simple procedure: accept only if one WL CB exists with 1MM + if (cbI>=0) { + stats.V[stats.nExactMatch]++; } else { for (uint32 ii=0; ii<2*pSolo.cbL; ii+=2) { for (uint32 jj=1; jj<4; jj++) { - cbI=binarySearchExact(cbB^(jj<=0) {Yvvdzvk40 - - *strU_1 << cbI <<' '<< readNameExtra.at(pSolo.cbL+pSolo.umiL+1+ii/2) <<' '; - cbReadCount[cbI]++; + int32 cbI1=binarySearchExact(cbB^(jj<=0) { + if (cbI>=0) {//had another match already + stats.V[stats.nTooMany]++; + return; + }; + cbI=cbI1; }; }; }; - *strU_1 << *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; - }; + }; + if (cbI<0) { + stats.V[stats.nNoMatch]++; + return; + }; + + stats.V[stats.nMatch]++; + //output to file + cbReadCount[cbI]++; + *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll<<'\n'; + //*strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 7dd57e0..ab56356 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -1,6 +1,7 @@ #include "Transcriptome.h" #include "streamFuns.h" #include "GlobalVariables.h" +#include "ErrorWarning.h" Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ @@ -23,8 +24,16 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ for (uint32 itr=0; itr> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr]; + trinfo >> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr] >> trGene[itr]; trStr[itr]=str1; + + if (!trinfo.good()) { + ostringstream errOut; + errOut <<"EXITING because of FATAL GENOME INDEX FILE error: transcriptInfo.tab is corrupt, or is incompatible with the current STAR version\n"; + errOut <<"SOLUTION: re-generate genome index"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); + }; + }; P.inOut->logMain << "Loaded transcript database, nTr="<> exG.nEx; - for (uint32 ii=0;iigene info. TODO this is wasteful, add one gene column to transcriptInfo.tab - string dummy1; - uint32 ig,it; - exinfo1 >> dummy1 >> dummy1 >> dummy1 >> ig >> it; - trGene[it]=ig; - }; - exinfo1.close(); +// ifstream &exinfo1 = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); +// exinfo1 >> exG.nEx; +// for (uint32 ii=0;iigene info. TODO this is wasteful, add one gene column to transcriptInfo.tab +// string dummy1; +// uint32 ig,it; +// exinfo1 >> dummy1 >> dummy1 >> dummy1 >> ig >> it; +// trGene[it]=ig; +// }; +// exinfo1.close(); }; if ( P.quant.geCount.yes ) {//load exon-gene structures diff --git a/loadGTF.cpp b/loadGTF.cpp index 779bad2..a21d44a 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -16,12 +16,13 @@ #define GTF_exonEnd(ii) ((ii)*GTF_exonLoci_size+2) #define GTF_exonGeID(ii) ((ii)*GTF_exonLoci_size+3) -#define GTF_extrLoci_size 5 +#define GTF_extrLoci_size 6 #define GTF_extrTrStart(ii) ((ii)*GTF_extrLoci_size) #define GTF_extrTrEnd(ii) ((ii)*GTF_extrLoci_size+1) #define GTF_extrTrID(ii) ((ii)*GTF_extrLoci_size+2) #define GTF_extrExStart(ii) ((ii)*GTF_extrLoci_size+3) #define GTF_extrExEnd(ii) ((ii)*GTF_extrLoci_size+4) +#define GTF_extrGeID(ii) ((ii)*GTF_extrLoci_size+5) #define GTF_exgeLoci_size 5 #define GTF_exgeExStart(ii) ((ii)*GTF_exgeLoci_size+0) @@ -66,8 +67,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen) sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line }; - if (exonN==0) - { + if (exonN==0) { ostringstream errOut; errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << mapGen.pGe.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; @@ -156,8 +156,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen) };//if (chr1.substr(0,1)!="#" && featureType=="exon") };// - if (exonN==0) - { + if (exonN==0) { ostringstream errOut; errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << mapGen.pGe.sjdbGTFfile <<"\n"; errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; @@ -184,7 +183,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen) exgeOut<); @@ -232,7 +232,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen) if (iex==exonN || extrLoci[GTF_extrTrID(iex)] != trid) {//start of the new transcript //write out previous transcript trOut << transcriptID.at(trid) <<"\t"<< extrLoci[GTF_extrTrStart(iex-1)]<<"\t"<< extrLoci[GTF_extrTrEnd(iex-1)] \ - <<"\t"<< trend << "\t"<< (uint) transcriptStrand[trid] <<"\t"<< iex-trex <<"\t"< }; template int funCompareNumbers (const void *a, const void *b) { - uint va= *((numT*) a); - uint vb= *((numT*) b); + numT va= *((numT*) a); + numT vb= *((numT*) b); if (va>vb) { return 1; @@ -54,24 +54,10 @@ inline int funCompareUint2 (const void *a, const void *b) { }; }; - - -inline int splitString(const std::string &s, char delim, std::vector &elems) { - std::stringstream ss(s); - std::string item; - int maxL=0; - elems.clear(); - while (std::getline(ss, item, delim)) { - maxL=max(maxL, (int)item.size()); - elems.push_back(item); - }; - return maxL;//returns mzx string size -}; - template inline int funCompareArrays (const void *a, const void *b) { - arrayType* va= (uint*) a; - arrayType* vb= (uint*) b; + arrayType* va= (arrayType*) a; + arrayType* vb= (arrayType*) b; for (int ii=0;iivb[ii]) { @@ -85,6 +71,33 @@ inline int funCompareArrays (const void *a, const void *b) { }; +template +inline int funCompareTypeShift (const void *a, const void *b) { + Type va= *( ((Type*) a)+Shift ); + Type vb= *( ((Type*) b)+Shift ); + + if (va>vb) { + return 1; + } else if (va==vb) { + return 0; + } else { + return -1; + }; + +}; + +inline int splitString(const std::string &s, char delim, std::vector &elems) { + std::stringstream ss(s); + std::string item; + int maxL=0; + elems.clear(); + while (std::getline(ss, item, delim)) { + maxL=max(maxL, (int)item.size()); + elems.push_back(item); + }; + return maxL;//returns mzx string size +}; + template inline uint32 binarySearch1(argType x, argType *X, uint32 N) { //binary search in the sorted list diff --git a/streamFuns.cpp b/streamFuns.cpp index 4e2104f..941e25d 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -61,8 +61,6 @@ void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::strin std::ofstream & ofstrOpen (std::string fileName, std::string errorID, Parameters &P) {//open file 'fileName', generate error if cannot open std::ofstream & ofStream = *new std::ofstream(fileName.c_str(), std::fstream::out | std::fstream::trunc); if (ofStream.fail()) {// -// dir1=fileName.substr(0,fileName.find_last_of("/")+1); -// if (dir1=="") dir1="./"; ostringstream errOut; errOut << errorID<<": exiting because of *OUTPUT FILE* error: could not create output file "<< fileName <<"\n"; errOut << "Solution: check that the path exists and you have write permission for this file\n"; @@ -71,6 +69,16 @@ std::ofstream & ofstrOpen (std::string fileName, std::string errorID, Parameters return ofStream; }; +std::fstream &fstrOpen (std::string fileName, std::string errorID, Parameters &P) {//open file 'fileName', generate error if cannot open + std::fstream &fStream = *new std::fstream(fileName.c_str(), std::fstream::in | std::fstream::out | std::fstream::trunc); + if (fStream.fail()) {// + ostringstream errOut; + errOut << errorID<<": exiting because of *OUTPUT FILE* error: could not create input/output file "<< fileName <<"\n"; + errOut << "Solution: check that the path exists and you have write permission for this file\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_FILE_OPEN, P); + }; + return fStream; +}; std::ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters &P) { //open file 'fileName', generate error if cannot open diff --git a/streamFuns.h b/streamFuns.h index 3c6d5c9..899bb94 100644 --- a/streamFuns.h +++ b/streamFuns.h @@ -7,9 +7,10 @@ unsigned long long fstreamReadBig(std::ifstream &S, char* A, unsigned long long N); void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::string fileName, std::string errorID, Parameters &P) ; -ofstream & ofstrOpen (std::string fileName, std::string errorID, Parameters &P); -ifstream & ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters &P); -ifstream & ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters &P); +fstream &fstrOpen (std::string fileName, std::string errorID, Parameters &P); +ofstream &ofstrOpen (std::string fileName, std::string errorID, Parameters &P); +ifstream &ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters &P); +ifstream &ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters &P); void copyFile(string fileIn, string fileOut); #endif From b61071e97116ea847296325b7c435feb7235e037 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 5 Nov 2018 10:24:28 -0500 Subject: [PATCH 375/536] Fixed the problem causing BAM sorting error with large number of threads and small ulimit -n. --- BAMoutput.cpp | 3 ++- streamFuns.cpp | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/BAMoutput.cpp b/BAMoutput.cpp index 1ffd0ad..a782d30 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -4,6 +4,7 @@ #include #include "serviceFuns.cpp" #include "ThreadControl.h" +#include "streamFuns.h" BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters &Pin) : P(Pin){//allocate bam array @@ -23,7 +24,7 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters &Pin) : P(Pin){//all for (uint ii=0;iilogMain << " done\n" <logMain, EXIT_CODE_FILE_OPEN, P); }; return ofStream; From 439bb08644802be0ab5ebea6be8395b1b8704f4b Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 5 Nov 2018 17:06:37 -0500 Subject: [PATCH 376/536] Implemented exact UMI collapsing. --- Makefile | 2 +- SequenceFuns.cpp | 12 ++++++++++++ SequenceFuns.h | 6 +----- Solo.cpp | 3 +++ Solo.h | 11 +++++++++-- SoloCB.cpp | 4 ++-- SoloCB_readCB.cpp | 2 +- Transcriptome.cpp | 25 ++++++++----------------- serviceFuns.cpp | 25 +++++++++++++++++++------ 9 files changed, 56 insertions(+), 34 deletions(-) diff --git a/Makefile b/Makefile index b8def1c..ba0c705 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ - ParametersSolo.o Solo.o SoloCB.o SoloCB_readCB.o Solo_soloPostMap.o Solo_collapseUMI.o \ + ParametersSolo.o Solo.o SoloCB.o SoloCB_readCB.o Solo_soloPostMap.o Solo_collapseUMI.o Solo_outputNumUMIperGeneCB.cpp \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o \ serviceFuns.o \ diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index 66f5044..f8b2bb4 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -204,6 +204,18 @@ bool convertNuclStrToInt32(const string S, uint32 &intOut) { return true; }; +string convertNuclInt32toString(uint32 nuclNum, const uint32 L) { + string nuclOut(L,'N'); + string nuclChar="ACGT"; + + for (uint ii=0; ii> 2; + }; + return nuclOut; +}; + + uint chrFind(uint Start, uint i2, uint* chrStart) {// find chromosome from global locus uint i1=0, i3; while (i1+1 class Solo { public: @@ -16,11 +17,17 @@ class Solo { uint32 *indCB;//index of detected CBs in the whitelist uint32 *rCBn;//number of reads for detected CBs in the whitelist uint32 **rCBp;//array of pointers to each CB sub-array + uint32 *nUperCB;//number of UMIs per CB + uint32 *nGperCB;//number of genes (with >0 UMIs) per CB + ofstream *soloStatsStream; + Solo(Parameters &Pin, Transcriptome &inTrans); void soloPostMap(ReadAlignChunk **RAchunk); - void collapseUMI(uint32 iCB); - + void collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot); + void outputNumUMIperGeneCB(); + + private: Parameters &P; ParametersSolo &pSolo; diff --git a/SoloCB.cpp b/SoloCB.cpp index abded5d..1a991a7 100644 --- a/SoloCB.cpp +++ b/SoloCB.cpp @@ -38,9 +38,9 @@ void SoloCB::readCBgeneUMIfromFiles(uint32 ** cbP) { strU_0->seekg(0,ios::beg); uint32 cb1, g1, umi1; - for (uint64 ii=0; ii> cb1 >> g1 >> umi1; - strU_0->ignore(1000000000,'\n'); //in case more fields were output, may remove this + //strU_0->ignore(1000000000,'\n'); //in case more fields were output, may remove this cbP[cb1][0]=g1; cbP[cb1][1]=umi1; cbP[cb1]+=2; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 0f6eb65..29bcbc3 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -74,6 +74,6 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u stats.V[stats.nMatch]++; //output to file cbReadCount[cbI]++; - *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll<<'\n'; + *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; //*strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index ab56356..24a1983 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -50,16 +50,15 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ P.inOut->logMain << "Loaded exon database, nEx="<> nGe; + geID.resize(nGe); + for (uint ii=0;ii> geID[ii]; + }; + geStream.close(); -// ifstream &exinfo1 = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); -// exinfo1 >> exG.nEx; -// for (uint32 ii=0;iigene info. TODO this is wasteful, add one gene column to transcriptInfo.tab -// string dummy1; -// uint32 ig,it; -// exinfo1 >> dummy1 >> dummy1 >> dummy1 >> ig >> it; -// trGene[it]=ig; -// }; -// exinfo1.close(); }; if ( P.quant.geCount.yes ) {//load exon-gene structures @@ -86,14 +85,6 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ for (uint iex=1;iex> nGe; - geID.resize(nGe); - for (uint ii=0;ii> geID[ii]; - }; - geStream.close(); }; }; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index d87213b..5a78484 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -15,12 +15,25 @@ template int funCompareNumbers (const void *a, const void *b) { numT vb= *((numT*) b); if (va>vb) { - return 1; - } else if (va==vb) { - return 0; - } else { - return -1; - }; + return 1; + } else if (va==vb) { + return 0; + } else { + return -1; + }; +}; + +template int funCompareNumbersReverse (const void *a, const void *b) { + numT va= *((numT*) a); + numT vb= *((numT*) b); + + if (va>vb) { + return -1; + } else if (va==vb) { + return 0; + } else { + return 1; + }; }; From e575454f829e0d0b301d9e592eb345f969660fe9 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 6 Nov 2018 15:23:45 -0500 Subject: [PATCH 377/536] Implementing UMI collapsing with 1MM --- ParametersSolo.cpp | 3 + ParametersSolo.h | 3 +- Solo.cpp | 1 + Solo.h | 2 +- Solo_collapseUMI.cpp | 127 +++++++++++++++++++++++++++++++++ Solo_outputNumUMIperGeneCB.cpp | 54 ++++++++++++++ Solo_soloPostMap.cpp | 71 ++++++++++++++++++ 7 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 Solo_collapseUMI.cpp create mode 100644 Solo_outputNumUMIperGeneCB.cpp create mode 100644 Solo_soloPostMap.cpp diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 704bd31..21925fd 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -24,6 +24,9 @@ void ParametersSolo::initialize(Parameters *pPin) { exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; + umiMaskLow=(uint32) ( (((uint64)1)< cbWL; std::vector cbWL; + + uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs static const uint64 bufferSize=1048576; void initialize(Parameters *pPin); diff --git a/Solo.cpp b/Solo.cpp index 216ac4c..f3740cf 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -9,4 +9,5 @@ Solo::Solo(Parameters &Pin, Transcriptome &inTrans) : P(Pin), pSolo(P.pSolo), Tr soloCBall = new SoloCB*[P.runThreadN]; soloStatsStream = &ofstrOpen(P.outFileNamePrefix+"Solo.stats",ERROR_OUT, P); + }; diff --git a/Solo.h b/Solo.h index 4f1b04a..2c6a4e7 100644 --- a/Solo.h +++ b/Solo.h @@ -21,7 +21,7 @@ class Solo { uint32 *nGperCB;//number of genes (with >0 UMIs) per CB ofstream *soloStatsStream; - + Solo(Parameters &Pin, Transcriptome &inTrans); void soloPostMap(ReadAlignChunk **RAchunk); void collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot); diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp new file mode 100644 index 0000000..9638fcd --- /dev/null +++ b/Solo_collapseUMI.cpp @@ -0,0 +1,127 @@ +#include "Solo.h" +#include "streamFuns.h" +#include "TimeFunctions.h" +#include "serviceFuns.cpp" + +// uint32 searchSortedForChange(uint32 *A, uint32 nA, uint32 strideA, uint32 stepMax) {//find the next element in the sorted list +// uint32 iP2=0; +// while (iP2); //sort by gene number + + //compact reads per gene + uint32 gid1=-1;//current gID + nGenes=0; //number of genes + uint32 *gID = new uint32[min(Trans.nGe,rN)+1]; //gene IDS + uint32 *gReadS = new uint32[min(Trans.nGe,rN)+1]; //start of gene reads TODO: allocate this array in the 2nd half of rGU + for (uint32 iR=0; iR); + + //exact collapse + uint32 *nrU = new uint32[gReadS[iG+1]-gReadS[iG]]; //counts of reads per UMI + uint32 nU0=-1; //number of distinct UMIs for this gene + uint32 u1=-1; + for (uint32 ir=gReadS[iG]; ir pSolo.umiMaskLow) + break; //upper half is different + + if (uuXor >> (__builtin_ctz(uuXor)/2)*2 > 3) //shift by even number of trailing zeros + continue;//>1MM + + //1MM UMI + if ( (dupU[iuu] & 1) == 0) { + dupU[iuu] |=1; + --nU1;//subtract the duplicated UMIs + }; + if ( (dupU[iuu] & 2) == 0 && nrU[iu]>(2*nrU[iuu]+1) ) { + dupU[iuu] |=2; + --nU2;//subtract the duplicated UMIs + }; + if ( (dupU[iu] & 2) == 0 && nrU[iuu]>(2*nrU[iu]+1) ) { + dupU[iu] |=2; + --nU2;//subtract the duplicated UMIs + }; + }; + }; + + nUg[3*iG]=nU0; + nUg[3*iG+1]=nU1; + nUg[3*iG+2]=nU2; + nUtot+=nU0; + }; + + uint32 *rGUp=rGU; + for (uint32 iG=0; iG1) {//record 2 more counts + rGUp[2]=nUg[3*iG+1]; + rGUp[3]=nUg[3*iG+2]; + rGUp += 4; + } else {//only one count recorded, save space + rGUp += 2; + }; + }; +}; diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp new file mode 100644 index 0000000..9ae3602 --- /dev/null +++ b/Solo_outputNumUMIperGeneCB.cpp @@ -0,0 +1,54 @@ +#include "Solo.h" +#include "streamFuns.h" +#include "TimeFunctions.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +void Solo::outputNumUMIperGeneCB() { + + //sort by nUtot per CB + qsort(nUperCB,nCB,2*sizeof(uint32),funCompareNumbersReverse); //sort by gene number + + //find 99%ile + uint32 nUMImax = nUperCB[2*30];//robust estimate of the max UMI + uint32 nUMImin = nUMImax/10; + + ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+"SoloGeneNames.txt",ERROR_OUT, P); + for (uint32 ii=0; ii1) {//3 counts recorded + cbGeneMatrix <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; + rCBpp += 4; + } else {//1 recorded + cbGeneMatrix <<"\t1\t1"; + rCBpp +=2; + }; + cbGeneMatrix << '\n'; + }; + }; + + cbGeneMatrix.flush(); + cbStr.flush(); + + *soloStatsStream << setw(50) << "Maximum number of UMIs per CB" << setw(15) << nUperCB[0] << '\n'; + *soloStatsStream << setw(50) << "Robust maximum number of UMIs per CB" << setw(15) << nUMImax << '\n'; + *soloStatsStream << setw(50) << "Number of CBs that passed min UMI threshold " << setw(15) << nCBout << '\n'; + soloStatsStream->flush(); +}; diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp new file mode 100644 index 0000000..ab27c08 --- /dev/null +++ b/Solo_soloPostMap.cpp @@ -0,0 +1,71 @@ +#include "Solo.h" +#include "streamFuns.h" +#include "TimeFunctions.h" + +void Solo::soloPostMap(ReadAlignChunk **RAchunk) { + + for (int ii=0; iiRA->soloCB; + }; + + //summary statistics + for (int ii=0; iiaddSoloCB(*soloCBall[ii]); + }; + soloCBsum->statsOut(*soloStatsStream); + + //allocate arrays to store CB/gene/UMIs for all reads + nReadsMapped=soloCBsum->stats.V[soloCBsum->stats.nMatch]; + rGeneUMI = new uint32[2*nReadsMapped]; + + nCB=0; + for (uint32 ii=0; iicbReadCount[ii]>0 ? 1 : 0 ); + + rCBp = new uint32*[nCB]; + uint32 **rCBpa = new uint32*[pSolo.cbWL.size()]; + rCBn = new uint32[nCB]; + indCB = new uint32[nCB]; + rCBp[0]=rGeneUMI; + rCBpa[0]=rGeneUMI; + nCB=0;//will count it again below + for (uint32 ii=0; iicbReadCount[ii]>0) { + indCB[nCB]=ii; + rCBn[nCB]=soloCBsum->cbReadCount[ii]; + rCBp[nCB+1] = rCBp[nCB] + 2*soloCBsum->cbReadCount[ii]; + ++nCB; + }; + rCBpa[ii+1]=rCBp[nCB]; + }; + + //read and store the CB/gene/UMI from files + time_t rawTime; + time(&rawTime); + P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <readCBgeneUMIfromFiles(rCBpa); + }; + + time(&rawTime); + P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished reading reads from Solo files nCB="<logMain << timeMonthDayTime(rawTime) << " ... Finished collapsing UMIs" < Date: Tue, 6 Nov 2018 19:02:54 -0500 Subject: [PATCH 378/536] Implemented UMI collapsing with 1MM --- Solo_collapseUMI.cpp | 138 +++++++++++++++++++++---------------------- 1 file changed, 67 insertions(+), 71 deletions(-) diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp index 9638fcd..b3b5506 100644 --- a/Solo_collapseUMI.cpp +++ b/Solo_collapseUMI.cpp @@ -3,26 +3,46 @@ #include "TimeFunctions.h" #include "serviceFuns.cpp" -// uint32 searchSortedForChange(uint32 *A, uint32 nA, uint32 strideA, uint32 stepMax) {//find the next element in the sorted list -// uint32 iP2=0; -// while (iP2 0) + continue;//this one was already found duplicated for both collapse types + + uint32 uuXor=rGU[iu] ^ rGU[iuu]; + + if (uuXor==0) + exit(1); //debug + + if ( uuXor > umiMaskLow) + break; //upper half is different + if (uuXor >> (__builtin_ctz(uuXor)/2)*2 > 3) //shift by even number of trailing zeros + continue;//>1MM + + //1MM UMI + if ( (rGU[iuu] & bitTop) == 0) { + rGU[iuu] |= bitTop; + --nU1;//subtract the duplicated UMIs + }; + if ( (rGU[iuu] & bitTop1) == 0 && (rGU[iu+1] & bitMaskTop2bits)>(2*(rGU[iuu+1] & bitMaskTop2bits)+1) ) {//iuu is duplicate of iu + rGU[iuu] |= bitTop1; + --nU2;//subtract the duplicated UMIs + }; + if ( (rGU[iu] & bitTop1) == 0 && (rGU[iuu+1] & bitMaskTop2bits)>(2*(rGU[iu+1] & bitMaskTop2bits)+1) ) {//iu is duplicate of iu + rGU[iu] |= bitTop1; + --nU2;//subtract the duplicated UMIs + }; + }; + }; +}; void Solo::collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to collapse, nReads=number of reads for this CB uint32 *rGU=rCBp[iCB]; @@ -35,81 +55,57 @@ void Solo::collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to nGenes=0; //number of genes uint32 *gID = new uint32[min(Trans.nGe,rN)+1]; //gene IDS uint32 *gReadS = new uint32[min(Trans.nGe,rN)+1]; //start of gene reads TODO: allocate this array in the 2nd half of rGU - for (uint32 iR=0; iR); + uint32 *rGU1=rGU+gReadS[iG]; + + qsort(rGU1, (gReadS[iG+1]-gReadS[iG])/2, 2*sizeof(uint32), funCompareNumbers); //exact collapse - uint32 *nrU = new uint32[gReadS[iG+1]-gReadS[iG]]; //counts of reads per UMI - uint32 nU0=-1; //number of distinct UMIs for this gene + uint32 iR1=-2; //number of distinct UMIs for this gene uint32 u1=-1; - for (uint32 ir=gReadS[iG]; ir pSolo.umiMaskLow) - break; //upper half is different - - if (uuXor >> (__builtin_ctz(uuXor)/2)*2 > 3) //shift by even number of trailing zeros - continue;//>1MM - - //1MM UMI - if ( (dupU[iuu] & 1) == 0) { - dupU[iuu] |=1; - --nU1;//subtract the duplicated UMIs - }; - if ( (dupU[iuu] & 2) == 0 && nrU[iu]>(2*nrU[iuu]+1) ) { - dupU[iuu] |=2; - --nU2;//subtract the duplicated UMIs - }; - if ( (dupU[iu] & 2) == 0 && nrU[iuu]>(2*nrU[iu]+1) ) { - dupU[iu] |=2; - --nU2;//subtract the duplicated UMIs - }; - }; + collapseUMIwith1MMlowHalf(rGU1,pSolo.umiMaskLow, nU0, nU1, nU2); + + //exchange low and high half of UMIs, re-sort, and look for 1MM again + for (uint32 iu=0; iu<2*nU0; iu+=2) { + uint32 high=rGU1[iu]>>(pSolo.umiL); + rGU1[iu] &= pSolo.umiMaskLow; //remove high + rGU1[iu] <<= (pSolo.umiL); //move low to high + rGU1[iu] |= high; //add high }; + collapseUMIwith1MMlowHalf(rGU1,pSolo.umiMaskLow, nU0, nU1, nU2); nUg[3*iG]=nU0; nUg[3*iG+1]=nU1; nUg[3*iG+2]=nU2; - nUtot+=nU0; + nUtot+=nU1;//TODO user makes the choice }; uint32 *rGUp=rGU; From 1d932087efb36d560a291a1c95a63ed964572ba4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 16 Nov 2018 16:10:35 -0500 Subject: [PATCH 379/536] Fixed the non-thread safe error/exit (github.com/alexdobin/STAR/issues/514), and non-safe file size check (github.com/alexdobin/STAR/issues/516) --- BAMbinSortByCoordinate.cpp | 11 +++++++---- ErrorWarning.cpp | 6 ++++-- Genome.cpp | 19 ++++++++++++------- STAR.cpp | 1 + ThreadControl.h | 2 +- readLoad.cpp | 2 +- 6 files changed, 26 insertions(+), 15 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index 5c50411..d037d3d 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -16,11 +16,14 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st string bamInFile=dirBAMsort+to_string(it)+"/"+to_string((uint) iBin); ifstream bamInStream; bamInStream.open(bamInFile.c_str(),std::ios::binary | std::ios::ate);//open at the end to get file size - uint s1=bamInStream.tellg(); - if (s1>0) - { + int64 s1=bamInStream.tellg(); + if (s1>0) { bamInStream.seekg(std::ios::beg); bamInStream.read(bamIn+bamInBytes,s1);//read the whole file + } else if (s1<0) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: failed reading from temporary file: " << dirBAMsort+to_string(it)+"/"+to_string((uint) iBin); + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, P); }; bamInBytes += bamInStream.gcount(); bamInStream.close(); @@ -29,7 +32,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st if (bamInBytes!=binS) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: number of bytes expected from the BAM bin does not agree with the actual size on disk: "; - errOut << binS <<" "<< bamInBytes <<" "<< iBin <<"\n"; + errOut << "Expected bin size=" <logMain, 1, P); }; diff --git a/ErrorWarning.cpp b/ErrorWarning.cpp index aa6cf37..4ba201f 100644 --- a/ErrorWarning.cpp +++ b/ErrorWarning.cpp @@ -1,12 +1,14 @@ /* -functions that handle errors and warnings + functions that handle errors and warnings */ #include "ErrorWarning.h" #include "TimeFunctions.h" +#include "GlobalVariables.h" void exitWithError(string messageOut, ostream &streamOut1, ostream &streamOut2, int errorInt, Parameters &P) { time_t timeCurrent; time( &timeCurrent); + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexError); if (streamOut1.good()) { streamOut1 << "\n" << messageOut << endl << timeMonthDayTime(timeCurrent) <<" ...... FATAL ERROR, exiting\n" <1) pthread_mutex_unlock(&g_threadChunks.mutexError); exit(errorInt); }; diff --git a/Genome.cpp b/Genome.cpp index 0bd6e98..c67f0d9 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -25,7 +25,7 @@ //arbitrary number for ftok function #define SHM_projectID 23 -Genome::Genome (Parameters &Pin ): pGe(Pin.pGe), P(Pin), shmStart(NULL), sharedMemory(NULL) { +Genome::Genome (Parameters &Pin ): sharedMemory(NULL), pGe(Pin.pGe), P(Pin), shmStart(NULL) { shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); sjdbOverhang = pGe.sjdbOverhang; //will be re-defined later if another value was used for the generated genome @@ -55,20 +55,25 @@ uint Genome::OpenStream(string name, ifstream & stream, uint size) stream.open((pGe.gDir+ "/" +name).c_str(), ios::binary); if (!stream.good()) { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< pGe.gDir << "/" << name <<"\n" << endl; + errOut << "EXITING because of FATAL ERROR: could not open genome file: "<< pGe.gDir << "/" << name <<"\n"; errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permissions\n" <logMain, EXIT_CODE_GENOME_FILES, P); }; - if (size>0) - { + if (size>0) { P.inOut->logMain << name << ": size given as a parameter = " << size <<"\n"; - } else - { + } else { P.inOut->logMain << "Checking " << name << " size"; stream.seekg (0, ios::end); - size=(uint) stream.tellg(); + int64 size1 = stream.tellg(); + if (size1<=0) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: failed reading from genome file: "<< pGe.gDir << "/" << name <<"\n"; + errOut << "SOLUTION: re-generate the genome index\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, 1, P); + }; + size=(uint) size1; stream.clear(); stream.seekg (0, ios::beg); P.inOut->logMain << "file size: "<< size <<" bytes; state: good=" <logProgress); diff --git a/ThreadControl.h b/ThreadControl.h index 6d719de..6842d14 100644 --- a/ThreadControl.h +++ b/ThreadControl.h @@ -12,7 +12,7 @@ class ThreadControl { pthread_t *threadArray; pthread_mutex_t mutexInRead, mutexOutSAM, mutexOutBAM1, mutexOutChimSAM, mutexOutChimJunction, mutexOutUnmappedFastx, mutexOutFilterBySJout; - pthread_mutex_t mutexStats, mutexLogMain, mutexBAMsortBins; + pthread_mutex_t mutexStats, mutexLogMain, mutexBAMsortBins, mutexError; uint chunkInN,chunkOutN; diff --git a/readLoad.cpp b/readLoad.cpp index 8a50d2d..cb5e0db 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -37,7 +37,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence Lread=0; - for (uint ii=0; ii=32) { Seq[Lread]=Seq[ii]; ++Lread; From 04fbf78d114f18ffb0bca7d9844568d1267d1dab Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 16 Nov 2018 16:55:17 -0500 Subject: [PATCH 380/536] Ready for 2.6.1d --- Genome.cpp | 2 +- VERSION | 2 +- Variation.cpp | 5 ++++- parametersDefault.xxd | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 90e256e..1a9b11d 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -25,7 +25,7 @@ //arbitrary number for ftok function #define SHM_projectID 23 -Genome::Genome (Parameters &Pin ): sharedMemory(NULL), pGe(Pin.pGe), P(Pin), shmStart(NULL) { +Genome::Genome (Parameters &Pin ): pGe(Pin.pGe), sharedMemory(NULL), P(Pin), shmStart(NULL) { shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); sjdbOverhang = pGe.sjdbOverhang; //will be re-defined later if another value was used for the generated genome diff --git a/VERSION b/VERSION index a4d43c1..04b9547 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.1c_2018-10-30" +#define STAR_VERSION "STAR_2.6.1d" diff --git a/Variation.cpp b/Variation.cpp index 07d9cbd..8097e84 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -56,7 +56,10 @@ void scanVCF(ifstream& vcf, Parameters& P, SNP& snp, vector &chrStart, ma //this is a strange case in VCF when ALT allele(s) are equal to REF } else { snp.lociV.push_back(pos-1+chrStart[chrNameIndex[chr]]); - array nt1={convertNt01234( ref.at(0) ), convertNt01234( altV.at( atoi(&sample.at(0)) ).at(0) ), convertNt01234( altV.at( atoi(&sample.at(2)) ).at(0) )}; + array nt1; + nt1[0]=convertNt01234( ref.at(0) ); + nt1[1]=convertNt01234( altV.at( atoi(&sample.at(0)) ).at(0) ); + nt1[2]=convertNt01234( altV.at( atoi(&sample.at(2)) ).at(0) ); snp.nt.push_back(nt1); snp.N++; }; diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 6c5b981..9e815cd 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2771,7 +2771,7 @@ unsigned char parametersDefault[] = { 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x68, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, From 5057327b22ab8bbdbe0933740e11ce0276a47950 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 14 Dec 2018 21:18:27 -0500 Subject: [PATCH 381/536] Fixing bugs in solo. --- Parameters.cpp | 3 ++- ParametersSolo.cpp | 15 ++++++++++++++- ParametersSolo.h | 3 +++ SoloCB.cpp | 6 ++++++ SoloCB.h | 6 ++++-- SoloCB_readCB.cpp | 17 ++++++++++++----- Solo_collapseUMI.cpp | 22 +++++++++++++--------- Solo_outputNumUMIperGeneCB.cpp | 1 + Transcriptome_quantAlign.cpp | 6 ++++-- parametersDefault | 6 ++++++ parametersDefault.xxd | 32 ++++++++++++++++++++++++++++++-- 11 files changed, 95 insertions(+), 22 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 4c89252..59da5a8 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -253,7 +253,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBlen", &pSolo.cbL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBwhitelist", &pSolo.soloCBwhitelist)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloStrand", &pSolo.strandStr)); + // //SW parameters // parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); // parArray.push_back(new ParameterInfoScalar (-1, -1, "swWinCoverageMinP", &swWinCoverageMinP)); diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 21925fd..b43f249 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -19,11 +19,24 @@ void ParametersSolo::initialize(Parameters *pPin) { pP->readNmates=1; //output mates TODO: check that readNmatesIn==2 } else { ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --soloType="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; + if (strandStr=="Unstranded") { + strand=-1; + } else if (strandStr=="Forward") { + strand=0; + } else if (strandStr=="Reverse") { + strand=1; + } else { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloStrand="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + umiMaskLow=(uint32) ( (((uint64)1)< cbWL; uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs diff --git a/SoloCB.cpp b/SoloCB.cpp index 1a991a7..2da70b8 100644 --- a/SoloCB.cpp +++ b/SoloCB.cpp @@ -16,6 +16,12 @@ SoloCB::SoloCB(Parameters &Pin, int iChunk) : P(Pin), pSolo(P.pSolo) { strU_0 = &fstrOpen(P.outFileTmp+"/soloCB_U_0_"+std::to_string(iChunk),ERROR_OUT, P); //strU_1 = &ofstrOpen(P.outFileTmp+"/soloCB_U_1_"+std::to_string(iChunk),ERROR_OUT, P); + for (uint32 jj=0;jj<4;jj++) { + homoPolymer[jj]=0; + for (uint32 ii=0; ii names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nTooMany","nNoMatch","nExactMatch","nMatch"}; + vector names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoMatch","nExactMatch","nMatch"}; } stats; + uint32 homoPolymer[4]; + fstream *strU_0; //uniqe mappers, CB matches whitelist //ofstream *strU_1; //uniqe mappers, CB with 1MM off whitelist diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 29bcbc3..9aa22b8 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -14,7 +14,7 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u } else if (readTrGenes.size()>1) { stats.V[stats.nAmbigGene]++; if (nTr>1) - stats.V[stats.nAmbigGeneMultimap]++; + stats.V[stats.nAmbigGeneMultimap]++; return; }; @@ -25,13 +25,19 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u uint32 cbB, umiB; int32 cbI=-2; - if (convertNuclStrToInt32(readNameExtra.substr(0,pSolo.cbL),cbB) \ - && convertNuclStrToInt32(readNameExtra.substr(pSolo.cbL,pSolo.umiL),umiB)) { - cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); - } else { + if (!(convertNuclStrToInt32(readNameExtra.substr(0,pSolo.cbL),cbB) \ + && convertNuclStrToInt32(readNameExtra.substr(pSolo.cbL,pSolo.umiL),umiB))) {//convert and check for Ns stats.V[stats.nNinBarcode]++; return; }; + + if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { + stats.V[stats.nUMIhomopolymer]++; + return; + }; + + cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + // if (cbI!=-1) { // *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; @@ -59,6 +65,7 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u if (cbI1>=0) { if (cbI>=0) {//had another match already stats.V[stats.nTooMany]++; + cout << iReadAll << endl; return; }; cbI=cbI1; diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp index b3b5506..5dccfc7 100644 --- a/Solo_collapseUMI.cpp +++ b/Solo_collapseUMI.cpp @@ -18,8 +18,8 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiMaskLow, uint32 nU0, uint3 uint32 uuXor=rGU[iu] ^ rGU[iuu]; - if (uuXor==0) - exit(1); //debug +// if (uuXor==0) +// exit(1); //debug if ( uuXor > umiMaskLow) break; //upper half is different @@ -28,16 +28,18 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiMaskLow, uint32 nU0, uint3 continue;//>1MM //1MM UMI - if ( (rGU[iuu] & bitTop) == 0) { - rGU[iuu] |= bitTop; + if ( (rGU[iuu+1] & bitTop) == 0) { + rGU[iuu+1] |= bitTop; --nU1;//subtract the duplicated UMIs + } else if ( (rGU[iu+1] & bitTop) == 0) { + rGU[iu+1] |= bitTop; + --nU1;//subtract the duplicated UMIs }; - if ( (rGU[iuu] & bitTop1) == 0 && (rGU[iu+1] & bitMaskTop2bits)>(2*(rGU[iuu+1] & bitMaskTop2bits)+1) ) {//iuu is duplicate of iu - rGU[iuu] |= bitTop1; + if ( (rGU[iuu+1] & bitTop1) == 0 && (rGU[iu+1] & bitMaskTop2bits)>(2*(rGU[iuu+1] & bitMaskTop2bits)-1) ) {//iuu is duplicate of iu + rGU[iuu+1] |= bitTop1; --nU2;//subtract the duplicated UMIs - }; - if ( (rGU[iu] & bitTop1) == 0 && (rGU[iuu+1] & bitMaskTop2bits)>(2*(rGU[iu+1] & bitMaskTop2bits)+1) ) {//iu is duplicate of iu - rGU[iu] |= bitTop1; + } else if ( (rGU[iu+1] & bitTop1) == 0 && (rGU[iuu+1] & bitMaskTop2bits)>(2*(rGU[iu+1] & bitMaskTop2bits)-1) ) {//iu is duplicate of iuu + rGU[iu+1] |= bitTop1; --nU2;//subtract the duplicated UMIs }; }; @@ -99,7 +101,9 @@ void Solo::collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to rGU1[iu] &= pSolo.umiMaskLow; //remove high rGU1[iu] <<= (pSolo.umiL); //move low to high rGU1[iu] |= high; //add high + rGU1[iu+1] &= ~(3<<30); //remove the duplication flags (top 2 bits) }; + qsort(rGU1, nU0, 2*sizeof(uint32), funCompareNumbers); collapseUMIwith1MMlowHalf(rGU1,pSolo.umiMaskLow, nU0, nU1, nU2); nUg[3*iG]=nU0; diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp index 9ae3602..03a5b8a 100644 --- a/Solo_outputNumUMIperGeneCB.cpp +++ b/Solo_outputNumUMIperGeneCB.cpp @@ -12,6 +12,7 @@ void Solo::outputNumUMIperGeneCB() { //find 99%ile uint32 nUMImax = nUperCB[2*30];//robust estimate of the max UMI uint32 nUMImin = nUMImax/10; + nUMImin=0; //full output ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+"SoloGeneNames.txt",ERROR_OUT, P); for (uint32 ii=0; ii=aGend && tr1>0); diff --git a/parametersDefault b/parametersDefault index 231975f..c759676 100644 --- a/parametersDefault +++ b/parametersDefault @@ -681,3 +681,9 @@ soloUMIlen 10 soloCBwhitelist - string: file with whitelist of cell barcodes + +soloStrand Forward + string: strandedness of the solo libraries: + Unstranded ... no strand information + Forward ... read strand same as the original RNA molecule + Reverse ... read strand opposite to the original RNA molecule \ No newline at end of file diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 557f3e8..55b9e40 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -3025,6 +3025,34 @@ unsigned char parametersDefault[] = { 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, - 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a + 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, + 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, + 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, + 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65 }; -unsigned int parametersDefault_len = 36322; +unsigned int parametersDefault_len = 36656; From c96cd26341bb813701668727aaeb9ec0c31a58c3 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 17 Dec 2018 17:24:55 -0500 Subject: [PATCH 382/536] Allowed Ns in CBs in accordance with CellRanger pipeline. --- SequenceFuns.cpp | 13 +++++--- SequenceFuns.h | 2 +- SoloCB_readCB.cpp | 73 ++++++++++++++++++++++---------------------- Solo_collapseUMI.cpp | 2 +- 4 files changed, 48 insertions(+), 42 deletions(-) diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index f8b2bb4..081203e 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -193,15 +193,20 @@ char convertNt01234(const char R0) {//transform sequence from ACGT into 0-1-2-3 }; }; -bool convertNuclStrToInt32(const string S, uint32 &intOut) { +int32 convertNuclStrToInt32(const string S, uint32 &intOut) { intOut=0; + int32 posN=-1; for (uint ii=0; ii3) - return false; + if (nt>3) {//N + if (posN>=0) + return -2; //two Ns + posN=ii; + nt=0; + }; intOut += nt<<(2*ii); }; - return true; + return posN; }; string convertNuclInt32toString(uint32 nuclNum, const uint32 L) { diff --git a/SequenceFuns.h b/SequenceFuns.h index 83f1261..76f6b47 100644 --- a/SequenceFuns.h +++ b/SequenceFuns.h @@ -21,7 +21,7 @@ uint localSearchNisMM(const char *x, uint nx, const char *y, uint ny, double pMM uint qualitySplit(char*, char*, uint, char, uint, uint, uint**); -bool convertNuclStrToInt32(const string S, uint32 &intOut); +int32 convertNuclStrToInt32(const string S, uint32 &intOut); string convertNuclInt32toString(const uint32 nuclNum, const uint32 L); #endif diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 9aa22b8..29e9bb8 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -24,55 +24,56 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u */ uint32 cbB, umiB; - int32 cbI=-2; - if (!(convertNuclStrToInt32(readNameExtra.substr(0,pSolo.cbL),cbB) \ - && convertNuclStrToInt32(readNameExtra.substr(pSolo.cbL,pSolo.umiL),umiB))) {//convert and check for Ns - stats.V[stats.nNinBarcode]++; + + if (convertNuclStrToInt32(readNameExtra.substr(pSolo.cbL,pSolo.umiL),umiB)!=-1) {//convert and check for Ns + stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs return; }; - if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { stats.V[stats.nUMIhomopolymer]++; return; }; - cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); - - -// if (cbI!=-1) { -// *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; -// cbReadCount[cbI]++; -// } else { -// for (uint32 ii=0; ii<2*pSolo.cbL; ii+=2) { -// for (uint32 jj=1; jj<4; jj++) { -// cbI=binarySearchExact(cbB^(jj<=0) { -// *strU_1 << cbI <<' '<< readNameExtra.at(pSolo.cbL+pSolo.umiL+1+ii/2) <<' '; -// cbReadCount[cbI]++; -// }; -// }; -// }; -// *strU_1 << *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; -// }; + int32 posN=convertNuclStrToInt32(readNameExtra.substr(0,pSolo.cbL),cbB); + if (posN==-2) {//>2 Ns + stats.V[stats.nNinBarcode]++; + return; + }; - //simple procedure: accept only if one WL CB exists with 1MM - if (cbI>=0) { - stats.V[stats.nExactMatch]++; - } else { - for (uint32 ii=0; ii<2*pSolo.cbL; ii+=2) { - for (uint32 jj=1; jj<4; jj++) { - int32 cbI1=binarySearchExact(cbB^(jj<=0) { - if (cbI>=0) {//had another match already - stats.V[stats.nTooMany]++; - cout << iReadAll << endl; - return; + int32 cbI=-2; + if (posN>=0) {//one N + for (uint32 jj=0; jj<4; jj++) { + int32 cbI1=binarySearchExact(cbB^(jj<<(posN*2)),pSolo.cbWL.data(),pSolo.cbWL.size()); + if (cbI1>=0) { + if (cbI>=0) {//had another match already + stats.V[stats.nTooMany]++; + return;//with N in CB, do not allow matching >1 in WL + }; + cbI=cbI1; + }; + }; + } else {//posN==-1, no Ns + cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + + if (cbI>=0) { + stats.V[stats.nExactMatch]++; + } else { + for (uint32 ii=0; ii<2*pSolo.cbL; ii+=2) { + for (uint32 jj=1; jj<4; jj++) { + int32 cbI1=binarySearchExact(cbB^(jj<=0) { + if (cbI>=0) {//had another match already + stats.V[stats.nTooMany]++; + //cout << iReadAll << endl; + return; //simple procedure: accept only if one WL CB exists with 1MM + }; + cbI=cbI1; }; - cbI=cbI1; }; }; }; }; + if (cbI<0) { stats.V[stats.nNoMatch]++; return; diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp index 5dccfc7..5591046 100644 --- a/Solo_collapseUMI.cpp +++ b/Solo_collapseUMI.cpp @@ -101,7 +101,7 @@ void Solo::collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to rGU1[iu] &= pSolo.umiMaskLow; //remove high rGU1[iu] <<= (pSolo.umiL); //move low to high rGU1[iu] |= high; //add high - rGU1[iu+1] &= ~(3<<30); //remove the duplication flags (top 2 bits) + //rGU1[iu+1] &= ~(3<<30); //remove the duplication flags (top 2 bits) }; qsort(rGU1, nU0, 2*sizeof(uint32), funCompareNumbers); collapseUMIwith1MMlowHalf(rGU1,pSolo.umiMaskLow, nU0, nU1, nU2); From ee07ea53c889579b79339b2054bbda800c3f7a97 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 21 Dec 2018 10:15:46 -0500 Subject: [PATCH 383/536] Fixing bugs in solo, comparing with CellRanger. Implemented CR/CY/UR/UY tags. --- IncludeDefine.h | 5 +- Parameters.cpp | 34 ++++++++++- Parameters.h | 2 +- ParametersSolo.cpp | 4 ++ ParametersSolo.h | 4 ++ ReadAlign_alignBAM.cpp | 14 +++++ ReadAlign_outputAlignments.cpp | 15 +++-- Solo.h | 2 +- SoloCB.cpp | 81 ++++++++++++++++++++----- SoloCB.h | 16 ++--- SoloCB_readCB.cpp | 107 ++++++++++++++++++++------------- Solo_collapseUMI.cpp | 16 +++-- Solo_soloPostMap.cpp | 29 +++++---- parametersDefault | 1 + 14 files changed, 230 insertions(+), 100 deletions(-) diff --git a/IncludeDefine.h b/IncludeDefine.h index 4d6952b..94092a7 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -91,7 +91,10 @@ typedef uint8_t uint8; #define ATTR_ch 14 #define ATTR_MC 15 #define ATTR_rB 16 - +#define ATTR_CR 17 +#define ATTR_CY 18 +#define ATTR_UR 19 +#define ATTR_UY 20 //BAM definitions #define BAM_CIGAR_MaxSize 10000 diff --git a/Parameters.cpp b/Parameters.cpp index 59da5a8..0a3404f 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -965,6 +965,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + //solo + pSolo.initialize(this); + //outSAMattributes outSAMattrPresent.NH=false;//TODO re-write as class with constructor? outSAMattrPresent.HI=false; @@ -982,6 +985,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.vW=false; outSAMattrPresent.ch=false; outSAMattrPresent.rB=false; + outSAMattrPresent.CR=false; + outSAMattrPresent.CY=false; + outSAMattrPresent.UR=false; + outSAMattrPresent.UY=false; + //for quant SAM output only NH and HI flags outSAMattrPresentQuant=outSAMattrPresent; @@ -1050,6 +1058,22 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrOrder.push_back(ATTR_MC); outSAMattrOrderQuant.push_back(ATTR_MC); outSAMattrPresent.MC=true; + } else if (vAttr1.at(ii)== "CR") { + outSAMattrOrder.push_back(ATTR_CR); + outSAMattrOrderQuant.push_back(ATTR_CR); + outSAMattrPresent.CR=true; + } else if (vAttr1.at(ii)== "CY") { + outSAMattrOrder.push_back(ATTR_CY); + outSAMattrOrderQuant.push_back(ATTR_CY); + outSAMattrPresent.CY=true; + } else if (vAttr1.at(ii)== "UR") { + outSAMattrOrder.push_back(ATTR_UR); + outSAMattrOrderQuant.push_back(ATTR_UR); + outSAMattrPresent.UR=true; + } else if (vAttr1.at(ii)== "UY") { + outSAMattrOrder.push_back(ATTR_UY); + outSAMattrOrderQuant.push_back(ATTR_UY); + outSAMattrPresent.UY=true; } else if (vAttr1.at(ii)== "XS") { outSAMattrOrder.push_back(ATTR_XS); outSAMattrPresent.XS=true; @@ -1103,6 +1127,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters inOut->logMain << "WARNING --waspOutputMode is set, therefore STAR will output vW attribute" <logMain, EXIT_CODE_PARAMETER, *this); + }; + //chimeric pCh.out.bam=false; pCh.out.junctions=false; @@ -1408,9 +1439,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters peOverlap.yes=false; }; - //solo - pSolo.initialize(this); - //read parameters if (pReads.strandString=="Unstranded") { pReads.strand=0; diff --git a/Parameters.h b/Parameters.h index 53eaf23..c663f20 100644 --- a/Parameters.h +++ b/Parameters.h @@ -141,7 +141,7 @@ class Parameters { int outSAMtlen; - struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS,rB,vG,vA,vW,ch,MC;} outSAMattrPresent, outSAMattrPresentQuant; + struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS,rB,vG,vA,vW,ch,MC,CR,CY,UR,UY;} outSAMattrPresent, outSAMattrPresentQuant; vector outSAMattrOrder, outSAMattrOrderQuant; int outBAMcompression; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index b43f249..84571a5 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -37,6 +37,10 @@ void ParametersSolo::initialize(Parameters *pPin) { exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; + QSbase=33;//TODO make these user-definable + QSmax=33; + cbMinP=0.975; + umiMaskLow=(uint32) ( (((uint64)1)<cbSeq,"CR",attrOutArray+attrN); break; + case ATTR_CY: + attrN+=bamAttrArrayWrite(soloCB->cbQual,"CY",attrOutArray+attrN); + break; + case ATTR_UR: + attrN+=bamAttrArrayWrite(soloCB->umiSeq,"UR",attrOutArray+attrN); + break; + case ATTR_UY: + attrN+=bamAttrArrayWrite(soloCB->umiQual,"UY",attrOutArray+attrN); + break; + default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM/BAM atrribute (tag): "< readGenes; + vector readTranscripts={}; + set readTrGenes={}; + if (unmapType==-1) {//output transcripts outFilterPassed=true; @@ -55,8 +59,7 @@ void ReadAlign::outputAlignments() { bool outSAMfilterYes=true; if (P.outSAMfilter.yes) { if (P.outSAMfilter.KeepOnlyAddedReferences) { - for (uint itr=0;itrChr readGenes; if ( P.quant.geCount.yes ) { chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); }; - vector readTranscripts={}; - set readTrGenes={}; if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); }; - - soloCB->readCB(iReadAll, readNameExtra.at(0), nTr, readGenes, readTranscripts, readTrGenes); - }; }; + + soloCB->readCB(iReadAll, readNameExtra.at(0), nTr, readGenes, readTranscripts, readTrGenes); if (unmapType>=0) { statsRA.unmappedAll++; diff --git a/Solo.h b/Solo.h index 2c6a4e7..4b87e9a 100644 --- a/Solo.h +++ b/Solo.h @@ -24,7 +24,7 @@ class Solo { Solo(Parameters &Pin, Transcriptome &inTrans); void soloPostMap(ReadAlignChunk **RAchunk); - void collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot); + void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot); void outputNumUMIperGeneCB(); diff --git a/SoloCB.cpp b/SoloCB.cpp index 2da70b8..6d65246 100644 --- a/SoloCB.cpp +++ b/SoloCB.cpp @@ -9,12 +9,17 @@ SoloCB::SoloCB(Parameters &Pin, int iChunk) : P(Pin), pSolo(P.pSolo) { stats.V[ii]=0; cbReadCount = new uint32[pSolo.cbWL.size()]; - for (uint32 ii=0; ii=0) + if (iChunk>=0) { strU_0 = &fstrOpen(P.outFileTmp+"/soloCB_U_0_"+std::to_string(iChunk),ERROR_OUT, P); - //strU_1 = &ofstrOpen(P.outFileTmp+"/soloCB_U_1_"+std::to_string(iChunk),ERROR_OUT, P); + strU_1 = &fstrOpen(P.outFileTmp+"/soloCB_U_1_"+std::to_string(iChunk),ERROR_OUT, P); + strU_2 = &fstrOpen(P.outFileTmp+"/soloCB_U_2_"+std::to_string(iChunk),ERROR_OUT, P); + }; for (uint32 jj=0;jj<4;jj++) { homoPolymer[jj]=0; @@ -28,8 +33,10 @@ void SoloCB::addSoloCB(const SoloCB &soloCBin) { for (uint32 ii=0; iiflush(); - strU_0->seekg(0,ios::beg); - - uint32 cb1, g1, umi1; - for (uint64 ii=0; ii> cb1 >> g1 >> umi1; - //strU_0->ignore(1000000000,'\n'); //in case more fields were output, may remove this - cbP[cb1][0]=g1; - cbP[cb1][1]=umi1; - cbP[cb1]+=2; +void SoloCB::readCBgeneUMIfromFiles(uint32 ** cbP, uint32 *cbReadCountExactTotal) { + + {//load exact matches + strU_0->flush(); + strU_0->seekg(0,ios::beg); + uint32 cb1, g1, umi1; + while (*strU_0 >> cb1 >> g1 >> umi1) { + //strU_0->ignore(1000000000,'\n'); //in case more fields were output + cbP[cb1][0]=g1; + cbP[cb1][1]=umi1; + cbP[cb1]+=2; + }; + }; + + {//load 1MM + strU_1->flush(); + strU_1->seekg(0,ios::beg); + uint32 cb1, g1, umi1; + while (*strU_1 >> cb1 >> g1 >> umi1) { + if (cbReadCountExactTotal[cb1]>0) { + cbP[cb1][0]=g1; + cbP[cb1][1]=umi1; + cbP[cb1]+=2; + }; + }; + }; + + {//load 2MM + strU_2->flush(); + strU_2->seekg(0,ios::beg); + uint32 ncb1, cb1, g1, umi1; + while (*strU_2 >> g1 >> umi1 >> ncb1) { + float ptot=0.0,pmax=0.0; + for (uint32 ii=0; ii> cbin >> qin; + if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work + qin -= pSolo.QSbase; + qin = qin < pSolo.QSbase ? qin : pSolo.QSbase; + pin=cbReadCountExactTotal[cbin]*pow(10.0,-qin/10.0); + ptot+=pin; + if (pin>pmax) { + cb1=cbin; + pmax=pin; + }; + }; + }; + if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { + cbP[cb1][0]=g1; + cbP[cb1][1]=umi1; + cbP[cb1]+=2; + }; + }; }; }; diff --git a/SoloCB.h b/SoloCB.h index 8000e9e..729d31a 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -5,24 +5,26 @@ class SoloCB { public: - uint32* cbReadCount; + + uint32 homoPolymer[4];//homopolymer constants + + uint32 *cbReadCount, *cbReadCountExact; + + fstream *strU_0 ,*strU_1, *strU_2; //uniqe mappers, CB matches whitelist with 0,1>=2 MM struct { enum {nNoGene,nAmbigGene,nAmbigGeneMultimap,nNinBarcode,nUMIhomopolymer,nTooMany,nNoMatch,nExactMatch,nMatch,nStats}; uint64 V[nStats]; vector names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoMatch","nExactMatch","nMatch"}; } stats; - - uint32 homoPolymer[4]; - - fstream *strU_0; //uniqe mappers, CB matches whitelist - //ofstream *strU_1; //uniqe mappers, CB with 1MM off whitelist + + string cbSeq, umiSeq, cbQual, umiQual; SoloCB (Parameters &Pin, int iChunk); void readCB(const uint64 &iReadAll, const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes); void addSoloCB(const SoloCB &soloCBin); void statsOut(ofstream &streamOut); - void readCBgeneUMIfromFiles(uint32 ** cbP); + void readCBgeneUMIfromFiles(uint32 **cbP, uint32 *cbReadCountExact); private: Parameters &P; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 29e9bb8..b9d3133 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -6,8 +6,26 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u if (pSolo.type==0) return; -// int32 rG=readGene.at(P.pReads.strand); - + int32 cbI=-999; + uint32 cbB, umiB; + + cbSeq=readNameExtra.substr(0,pSolo.cbL); + umiSeq=readNameExtra.substr(pSolo.cbL,pSolo.umiL); + cbQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1,pSolo.cbL); + umiQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1+pSolo.cbL,pSolo.umiL); + + int32 posN=convertNuclStrToInt32(cbSeq,cbB); + if (posN==-2) {//>2 Ns, might already be filtered by Illumina + stats.V[stats.nNinBarcode]++; + return; + } else if (posN==-1) {//no Ns + cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + if (cbI>=0) {//exact match + cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs + }; + }; + + //check genes, return if no gene if (readTrGenes.size()==0) { stats.V[stats.nNoGene]++; return; @@ -18,14 +36,8 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u return; }; - /*debug - if (readGenes.size()==1 && readGenes.at(0)!=*readTrGenes.begin()) - cout <2 Ns - stats.V[stats.nNinBarcode]++; - return; + if (cbI>=0) {//exact match + cbReadCount[cbI]++; + *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; + stats.V[stats.nExactMatch]++; + return; }; - - int32 cbI=-2; + if (posN>=0) {//one N for (uint32 jj=0; jj<4; jj++) { int32 cbI1=binarySearchExact(cbB^(jj<<(posN*2)),pSolo.cbWL.data(),pSolo.cbWL.size()); @@ -52,36 +64,45 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u cbI=cbI1; }; }; - } else {//posN==-1, no Ns - cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); - if (cbI>=0) { - stats.V[stats.nExactMatch]++; - } else { - for (uint32 ii=0; ii<2*pSolo.cbL; ii+=2) { - for (uint32 jj=1; jj<4; jj++) { - int32 cbI1=binarySearchExact(cbB^(jj<=0) { - if (cbI>=0) {//had another match already - stats.V[stats.nTooMany]++; - //cout << iReadAll << endl; - return; //simple procedure: accept only if one WL CB exists with 1MM - }; - cbI=cbI1; - }; + cbReadCount[cbI]++; + *strU_1 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; + } else {//no match + stats.V[stats.nNoMatch]++; + }; + return; + } else {//look for 1MM, posN==-1, no Ns + string cbOutString(""); + uint32 ncbOut1=0; + for (uint32 ii=0; ii=0) {//found match + //simple procedure: accept only if one WL CB exists with 1MM + //if (cbI>=0) {//had another match already + // stats.V[stats.nTooMany]++; + // //cout << iReadAll << endl; + // return; + //}; + //cbI=cbI1; + + //output all + cbI=cbI1; + ++ncbOut1; + cbOutString += ' ' +to_string(cbI) + ' ' + cbQual.at(ii); + cbReadCount[cbI]++;//this read may be counted in many CBs. This is safe for allocating arrays later. The final number of reads per CB will be calculated later. }; }; }; + + if (ncbOut1==0) {//no matches + stats.V[stats.nNoMatch]++; + return; + } else if (ncbOut1==1){//only one match + *strU_1 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; + } else {//more than one match + *strU_2 << *readTrGenes.begin() <<' '<< umiB <<' '<< ncbOut1 << cbOutString <<'\n'; + }; }; - - if (cbI<0) { - stats.V[stats.nNoMatch]++; - return; - }; - - stats.V[stats.nMatch]++; - //output to file - cbReadCount[cbI]++; - *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; - //*strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<' '<< iReadAll <<'\n'; + }; diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp index 5591046..af9c056 100644 --- a/Solo_collapseUMI.cpp +++ b/Solo_collapseUMI.cpp @@ -13,8 +13,9 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiMaskLow, uint32 nU0, uint3 uint32 iuu=iu+2; for (; iuu<2*nU0; iuu+=2) {//compare to all UMIs down - if ( (rGU[iuu+1] & bitTop & bitTop1) > 0) - continue;//this one was already found duplicated for both collapse types + //this is wrong - if iuu is duplicate, it will make iu duplicate + //if ( (rGU[iuu+1] & bitTop & bitTop1) > 0) + // continue;//this one was already found duplicated for both collapse types uint32 uuXor=rGU[iu] ^ rGU[iuu]; @@ -45,10 +46,10 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiMaskLow, uint32 nU0, uint3 }; }; }; -void Solo::collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to collapse, nReads=number of reads for this CB +void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to collapse, nReads=number of reads for this CB + + uint32 nRumiMax=0; - uint32 *rGU=rCBp[iCB]; - uint32 rN=rCBn[iCB]; //sort qsort(rGU,rN,2*sizeof(uint32),funCompareNumbers); //sort by gene number @@ -86,7 +87,8 @@ void Solo::collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to rGU1[iR1]=u1; rGU1[iR1+1]=0; }; - rGU1[iR1+1]++; + rGU1[iR1+1]++; + if ( rGU1[iR1+1]>nRumiMax) nRumiMax=rGU1[iR1+1]; }; uint32 nU0=(iR1+2)/2; @@ -124,4 +126,6 @@ void Solo::collapseUMI(uint32 iCB, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to rGUp += 2; }; }; + cout << nRumiMax << '\n'; + }; diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp index ab27c08..f003ab8 100644 --- a/Solo_soloPostMap.cpp +++ b/Solo_soloPostMap.cpp @@ -15,24 +15,24 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { soloCBsum->statsOut(*soloStatsStream); //allocate arrays to store CB/gene/UMIs for all reads - nReadsMapped=soloCBsum->stats.V[soloCBsum->stats.nMatch]; - rGeneUMI = new uint32[2*nReadsMapped]; - - nCB=0; - for (uint32 ii=0; iicbReadCount[ii]>0 ? 1 : 0 ); + nCB=0;nReadsMapped=0; + for (uint32 ii=0; iicbReadCountExact[ii]>0) { + nCB++; + nReadsMapped += soloCBsum->cbReadCount[ii]; + }; + }; - rCBp = new uint32*[nCB]; + rGeneUMI = new uint32[2*nReadsMapped]; //big array for all CBs - each element is gene and UMI + rCBp = new uint32*[nCB+1]; uint32 **rCBpa = new uint32*[pSolo.cbWL.size()]; - rCBn = new uint32[nCB]; indCB = new uint32[nCB]; rCBp[0]=rGeneUMI; rCBpa[0]=rGeneUMI; nCB=0;//will count it again below for (uint32 ii=0; iicbReadCount[ii]>0) { + if (soloCBsum->cbReadCountExact[ii]>0) {//if no exact matches, this CB is not present indCB[nCB]=ii; - rCBn[nCB]=soloCBsum->cbReadCount[ii]; rCBp[nCB+1] = rCBp[nCB] + 2*soloCBsum->cbReadCount[ii]; ++nCB; }; @@ -45,7 +45,7 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <readCBgeneUMIfromFiles(rCBpa); + soloCBall[ii]->readCBgeneUMIfromFiles(rCBpa,soloCBsum->cbReadCountExact); }; time(&rawTime); @@ -56,7 +56,9 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { nGperCB = new uint32[nCB]; for (uint32 iCB=0; iCBstats.V[soloCBsum->stats.nMatch] += nr; + collapseUMI(rCBp[iCB],nr,nGperCB[iCB],nUperCB[2*iCB]); }; time(&rawTime); @@ -64,8 +66,5 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { //output nU per gene per CB outputNumUMIperGeneCB(); - - -// statsStream.close(); }; diff --git a/parametersDefault b/parametersDefault index c759676..0f2de37 100644 --- a/parametersDefault +++ b/parametersDefault @@ -254,6 +254,7 @@ outSAMattributes Standard Unsupported/undocumented: rB ... alignment block read/genomic coordinates vR ... read coordinate of the variant + CR,CY,UR,UY ... sequences and quality scores of cell barcodes and UMIs for the solo* demultiplexing outSAMattrIHstart 1 int>=0: start value for the IH attribute. 0 may be required by some downstream software, such as Cufflinks or StringTie. From af331ec5654baa34123e86c6639173bcfe5543dd Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 21 Dec 2018 11:06:47 -0500 Subject: [PATCH 384/536] Fixing bugs in solo, comparing with CellRanger. Last commit before switching to graph collapsing if UMI with 1MM. --- Solo.h | 4 +++- Solo_collapseUMI.cpp | 31 +++++++++++++++---------------- Solo_soloPostMap.cpp | 17 ++++++++++++++--- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/Solo.h b/Solo.h index 4b87e9a..d9abcc2 100644 --- a/Solo.h +++ b/Solo.h @@ -24,11 +24,13 @@ class Solo { Solo(Parameters &Pin, Transcriptome &inTrans); void soloPostMap(ReadAlignChunk **RAchunk); - void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot); + void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray); void outputNumUMIperGeneCB(); private: + static const uint32 umiArrayStride=3; + Parameters &P; ParametersSolo &pSolo; Transcriptome &Trans; diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp index af9c056..c9a78f2 100644 --- a/Solo_collapseUMI.cpp +++ b/Solo_collapseUMI.cpp @@ -46,9 +46,9 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiMaskLow, uint32 nU0, uint3 }; }; }; -void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot) {//iCB = CB to collapse, nReads=number of reads for this CB +void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray) {//iCB = CB to collapse, nReads=number of reads for this CB - uint32 nRumiMax=0; + //uint32 nRumiMax=0; //sort qsort(rGU,rN,2*sizeof(uint32),funCompareNumbers); //sort by gene number @@ -82,31 +82,30 @@ void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot) {/ uint32 u1=-1; for (uint32 iR=0; iRnRumiMax) nRumiMax=rGU1[iR1+1]; + umiArray[iR1+1]++; + //if ( umiArray[iR1+1]>nRumiMax) nRumiMax=umiArray[iR1+1]; }; uint32 nU0=(iR1+2)/2; //collapse with 1MM uint32 nU1=nU0, nU2=nU0;//2 types of 1MM collapsing - collapseUMIwith1MMlowHalf(rGU1,pSolo.umiMaskLow, nU0, nU1, nU2); + collapseUMIwith1MMlowHalf(umiArray,pSolo.umiMaskLow, nU0, nU1, nU2); //exchange low and high half of UMIs, re-sort, and look for 1MM again for (uint32 iu=0; iu<2*nU0; iu+=2) { - uint32 high=rGU1[iu]>>(pSolo.umiL); - rGU1[iu] &= pSolo.umiMaskLow; //remove high - rGU1[iu] <<= (pSolo.umiL); //move low to high - rGU1[iu] |= high; //add high - //rGU1[iu+1] &= ~(3<<30); //remove the duplication flags (top 2 bits) + uint32 high=umiArray[iu]>>(pSolo.umiL); + umiArray[iu] &= pSolo.umiMaskLow; //remove high + umiArray[iu] <<= (pSolo.umiL); //move low to high + umiArray[iu] |= high; //add high }; - qsort(rGU1, nU0, 2*sizeof(uint32), funCompareNumbers); - collapseUMIwith1MMlowHalf(rGU1,pSolo.umiMaskLow, nU0, nU1, nU2); + qsort(umiArray, nU0, 2*sizeof(uint32), funCompareNumbers); + collapseUMIwith1MMlowHalf(umiArray,pSolo.umiMaskLow, nU0, nU1, nU2); nUg[3*iG]=nU0; nUg[3*iG+1]=nU1; @@ -126,6 +125,6 @@ void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot) {/ rGUp += 2; }; }; - cout << nRumiMax << '\n'; + //cout << nRumiMax << '\n'; }; diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp index f003ab8..ea7cc4a 100644 --- a/Solo_soloPostMap.cpp +++ b/Solo_soloPostMap.cpp @@ -27,6 +27,8 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { rCBp = new uint32*[nCB+1]; uint32 **rCBpa = new uint32*[pSolo.cbWL.size()]; indCB = new uint32[nCB]; + + uint32 nReadPerCBmax=0; rCBp[0]=rGeneUMI; rCBpa[0]=rGeneUMI; nCB=0;//will count it again below @@ -48,17 +50,26 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { soloCBall[ii]->readCBgeneUMIfromFiles(rCBpa,soloCBsum->cbReadCountExact); }; + for (uint32 iCB=0; iCBnReadPerCBmax) + nReadPerCBmax=nr; + soloCBsum->stats.V[soloCBsum->stats.nMatch] += nr; + }; + time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished reading reads from Solo files nCB="<logMain << timeMonthDayTime(rawTime) << " ... Finished reading reads from Solo files nCB="< 0) @@ -78,7 +78,7 @@ void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, ui qsort(rGU1, (gReadS[iG+1]-gReadS[iG])/2, 2*sizeof(uint32), funCompareNumbers); //exact collapse - uint32 iR1=-2; //number of distinct UMIs for this gene + uint32 iR1=-umiArrayStride; //number of distinct UMIs for this gene uint32 u1=-1; for (uint32 iR=0; iRnRumiMax) nRumiMax=umiArray[iR1+1]; }; - uint32 nU0=(iR1+2)/2; + uint32 nU0=(iR1+umiArrayStride)/umiArrayStride; //collapse with 1MM uint32 nU1=nU0, nU2=nU0;//2 types of 1MM collapsing - collapseUMIwith1MMlowHalf(umiArray,pSolo.umiMaskLow, nU0, nU1, nU2); + collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2); //exchange low and high half of UMIs, re-sort, and look for 1MM again - for (uint32 iu=0; iu<2*nU0; iu+=2) { + for (uint32 iu=0; iu>(pSolo.umiL); umiArray[iu] &= pSolo.umiMaskLow; //remove high umiArray[iu] <<= (pSolo.umiL); //move low to high umiArray[iu] |= high; //add high }; - qsort(umiArray, nU0, 2*sizeof(uint32), funCompareNumbers); - collapseUMIwith1MMlowHalf(umiArray,pSolo.umiMaskLow, nU0, nU1, nU2); + qsort(umiArray, nU0, umiArrayStride*sizeof(uint32), funCompareNumbers); + collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2); nUg[3*iG]=nU0; nUg[3*iG+1]=nU1; From eafef6fa0b84d9eef0e3ca3901d2db869da63786 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 21 Dec 2018 11:48:52 -0500 Subject: [PATCH 386/536] Switching to graph collapsing for UMIs. Last commit with the same result as before. --- Solo_collapseUMI.cpp | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp index 863e2a2..7941533 100644 --- a/Solo_collapseUMI.cpp +++ b/Solo_collapseUMI.cpp @@ -6,22 +6,14 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2) { const uint32 bitTop=1<<31; - const uint32 bitTop1=1<<30; - const uint32 bitMaskTop2bits=(~bitTop) & (~bitTop1); + const uint32 bitTopMask=~bitTop; for (uint32 iu=0; iu 0) - // continue;//this one was already found duplicated for both collapse types - uint32 uuXor=rGU[iu] ^ rGU[iuu]; -// if (uuXor==0) -// exit(1); //debug - if ( uuXor > umiMaskLow) break; //upper half is different @@ -29,28 +21,28 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMas continue;//>1MM //1MM UMI - if ( (rGU[iuu+1] & bitTop) == 0) { - rGU[iuu+1] |= bitTop; + if ( rGU[iuu+2] == 0) { + rGU[iuu+2] = 1; --nU1;//subtract the duplicated UMIs - } else if ( (rGU[iu+1] & bitTop) == 0) { - rGU[iu+1] |= bitTop; + } else if ( rGU[iu+2] == 0) { + rGU[iu+2] = 1; --nU1;//subtract the duplicated UMIs }; - if ( (rGU[iuu+1] & bitTop1) == 0 && (rGU[iu+1] & bitMaskTop2bits)>(2*(rGU[iuu+1] & bitMaskTop2bits)-1) ) {//iuu is duplicate of iu - rGU[iuu+1] |= bitTop1; + if ( (rGU[iuu+1] & bitTop) == 0 && (rGU[iu+1] & bitTopMask)>(2*(rGU[iuu+1] & bitTopMask)-1) ) {//iuu is duplicate of iu + rGU[iuu+1] |= bitTop; --nU2;//subtract the duplicated UMIs - } else if ( (rGU[iu+1] & bitTop1) == 0 && (rGU[iuu+1] & bitMaskTop2bits)>(2*(rGU[iu+1] & bitMaskTop2bits)-1) ) {//iu is duplicate of iuu - rGU[iu+1] |= bitTop1; + } else if ( (rGU[iu+1] & bitTop) == 0 && (rGU[iuu+1] & bitTopMask)>(2*(rGU[iu+1] & bitTopMask)-1) ) {//iu is duplicate of iuu + rGU[iu+1] |= bitTop; --nU2;//subtract the duplicated UMIs }; }; }; }; + void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray) {//iCB = CB to collapse, nReads=number of reads for this CB //uint32 nRumiMax=0; - //sort qsort(rGU,rN,2*sizeof(uint32),funCompareNumbers); //sort by gene number //compact reads per gene @@ -85,7 +77,8 @@ void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, ui iR1 += umiArrayStride; u1=rGU1[iR]; umiArray[iR1]=u1; - umiArray[iR1+1]=0; + umiArray[iR1+1]=0; + umiArray[iR1+2]=0; }; umiArray[iR1+1]++; //if ( umiArray[iR1+1]>nRumiMax) nRumiMax=umiArray[iR1+1]; From dbaf3cf70217d0cb40115bc4fbc2bf1a254490f3 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 22 Dec 2018 13:23:46 -0500 Subject: [PATCH 387/536] Implemented 1MM UMI collapsing via graph connected components. Tests passed --- ParametersSolo.cpp | 3 +- SequenceFuns.cpp | 10 ++-- SoloCB_readCB.cpp | 6 ++- Solo_collapseUMI.cpp | 87 +++++++++++++++++++++++++++++----- Solo_outputNumUMIperGeneCB.cpp | 30 +++++++----- Solo_soloPostMap.cpp | 4 +- 6 files changed, 105 insertions(+), 35 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 84571a5..6f6f7a7 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -47,8 +47,7 @@ void ParametersSolo::initialize(Parameters *pPin) { //load the CB whitlist and create unordered_map ifstream & cbWlStream = ifstrOpen(soloCBwhitelist, ERROR_OUT, "SOLUTION: check the path and permissions of the CB whitelist file: " + soloCBwhitelist, *pP); string seq1; - while (!cbWlStream.eof()) { - cbWlStream >> seq1; + while (cbWlStream >> seq1) { if (seq1.size() != cbL) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in input CB whitelist file: "<< soloCBwhitelist <<" the total length of barcode sequence is " << seq1.size() << " not equal to expected " <3) {//N if (posN>=0) @@ -204,7 +204,9 @@ int32 convertNuclStrToInt32(const string S, uint32 &intOut) { posN=ii; nt=0; }; - intOut += nt<<(2*ii); + intOut = intOut << 2; + intOut +=nt; + //intOut += nt<<(2*ii); }; return posN; }; @@ -213,8 +215,8 @@ string convertNuclInt32toString(uint32 nuclNum, const uint32 L) { string nuclOut(L,'N'); string nuclChar="ACGT"; - for (uint ii=0; ii> 2; }; return nuclOut; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index b9d3133..f8ea0d4 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -54,8 +54,10 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u }; if (posN>=0) {//one N + uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN for (uint32 jj=0; jj<4; jj++) { - int32 cbI1=binarySearchExact(cbB^(jj<<(posN*2)),pSolo.cbWL.data(),pSolo.cbWL.size()); + uint32 cbB1=cbB^(jj<=0) { if (cbI>=0) {//had another match already stats.V[stats.nTooMany]++; @@ -89,7 +91,7 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u //output all cbI=cbI1; ++ncbOut1; - cbOutString += ' ' +to_string(cbI) + ' ' + cbQual.at(ii); + cbOutString += ' ' +to_string(cbI) + ' ' + cbQual.at(pSolo.cbL-1-ii); cbReadCount[cbI]++;//this read may be counted in many CBs. This is safe for allocating arrays later. The final number of reads per CB will be calculated later. }; }; diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp index 7941533..d4b5834 100644 --- a/Solo_collapseUMI.cpp +++ b/Solo_collapseUMI.cpp @@ -3,11 +3,14 @@ #include "TimeFunctions.h" #include "serviceFuns.cpp" -void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2) { +#define def_MarkNoColor (uint32) -1 + +void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) { const uint32 bitTop=1<<31; const uint32 bitTopMask=~bitTop; + for (uint32 iu=0; iu1MM //1MM UMI - if ( rGU[iuu+2] == 0) { - rGU[iuu+2] = 1; - --nU1;//subtract the duplicated UMIs - } else if ( rGU[iu+2] == 0) { - rGU[iu+2] = 1; + + //graph coloring + if ( rGU[iu+2] == def_MarkNoColor && rGU[iuu+2] == def_MarkNoColor ) {//no color + //new color + rGU[iu+2] = nC; + rGU[iuu+2] = nC; + ++nC; + nU1 -= 2;//subtract the duplicated UMIs + } else if ( rGU[iu+2] == def_MarkNoColor ) { + rGU[iu+2] = rGU[iuu+2]; + --nU1;//subtract the duplicated UMIs + } else if ( rGU[iuu+2] == def_MarkNoColor ) { + rGU[iuu+2] = rGU[iu+2]; --nU1;//subtract the duplicated UMIs + } else {//both color + if (rGU[iuu+2] != rGU[iu+2]) {//color conflict + //uint32 p[2]={rGU[iu+2],rGU[iuu+2]}; + vC.push_back({rGU[iu+2],rGU[iuu+2]}); + //vC.push_back({rGU[iuu+2],rGU[iu+2]}); + }; }; + + //directional collapse if ( (rGU[iuu+1] & bitTop) == 0 && (rGU[iu+1] & bitTopMask)>(2*(rGU[iuu+1] & bitTopMask)-1) ) {//iuu is duplicate of iu rGU[iuu+1] |= bitTop; --nU2;//subtract the duplicated UMIs @@ -39,6 +58,48 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMas }; }; +void graphDepthFirstSearch(uint32 n, vector &nodeVisited, vector> &nodeEdges) { + for (const auto &nn : nodeEdges[n]) { + if (!nodeVisited[nn]) { + nodeVisited[nn]=true; + graphDepthFirstSearch(nn,nodeVisited,nodeEdges); + }; + }; +}; + +uint32 graphNumberOfConnectedComponents(uint32 N, vector> V) {//find number of connected components + //N=number of nodes + //V=edges, list of connected nodes, each pair of nodes listed once + //simple recursive DFS + + //sort +// qsort(V.data(),V.size(),2*sizeof(uint32),funCompareNumbers); + if (V.size()==0) + return N; + + vector> nodeEdges (N); + for (uint32 ii=0; ii nodeVisited(N,false); + + uint32 nConnComp=0; + for (uint32 ii=0; iinRumiMax) nRumiMax=umiArray[iR1+1]; @@ -87,8 +148,10 @@ void Solo::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, ui //collapse with 1MM uint32 nU1=nU0, nU2=nU0;//2 types of 1MM collapsing - - collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2); + uint32 nC=0; //graph colors + vector> vC;//color connections + + collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); //exchange low and high half of UMIs, re-sort, and look for 1MM again for (uint32 iu=0; iu); - collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2); + collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); nUg[3*iG]=nU0; - nUg[3*iG+1]=nU1; + nUg[3*iG+1]=nU1+graphNumberOfConnectedComponents(nC,vC); nUg[3*iG+2]=nU2; - nUtot+=nU1;//TODO user makes the choice + nUtot+=nUg[3*iG+1]; }; uint32 *rGUp=rGU; diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp index 03a5b8a..0d73013 100644 --- a/Solo_outputNumUMIperGeneCB.cpp +++ b/Solo_outputNumUMIperGeneCB.cpp @@ -7,12 +7,13 @@ void Solo::outputNumUMIperGeneCB() { //sort by nUtot per CB - qsort(nUperCB,nCB,2*sizeof(uint32),funCompareNumbersReverse); //sort by gene number + //qsort(nUperCB,nCB,2*sizeof(uint32),funCompareNumbersReverse); //sort by gene number //find 99%ile - uint32 nUMImax = nUperCB[2*30];//robust estimate of the max UMI - uint32 nUMImin = nUMImax/10; - nUMImin=0; //full output + //uint32 nUMImax = nUperCB[2*30];//robust estimate of the max UMI + //uint32 nUMImin = nUMImax/10; + + //nUMImin=0; //full output ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+"SoloGeneNames.txt",ERROR_OUT, P); for (uint32 ii=0; ii1) {//3 counts recorded cbGeneMatrix <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; rCBpp += 4; @@ -44,12 +48,12 @@ void Solo::outputNumUMIperGeneCB() { cbGeneMatrix << '\n'; }; }; - cbGeneMatrix.flush(); - cbStr.flush(); + + //*soloStatsStream << setw(50) << "Maximum number of UMIs per CB" << setw(15) << nUperCB[0] << '\n'; + //*soloStatsStream << setw(50) << "Robust maximum number of UMIs per CB" << setw(15) << nUMImax << '\n'; + //*soloStatsStream << setw(50) << "Number of CBs that passed min UMI threshold " << setw(15) << nCBout << '\n'; - *soloStatsStream << setw(50) << "Maximum number of UMIs per CB" << setw(15) << nUperCB[0] << '\n'; - *soloStatsStream << setw(50) << "Robust maximum number of UMIs per CB" << setw(15) << nUMImax << '\n'; - *soloStatsStream << setw(50) << "Number of CBs that passed min UMI threshold " << setw(15) << nCBout << '\n'; + *soloStatsStream << setw(50) << "Total number of cell barcodes" << setw(15) << nCB << '\n'; soloStatsStream->flush(); }; diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp index ea7cc4a..8d40722 100644 --- a/Solo_soloPostMap.cpp +++ b/Solo_soloPostMap.cpp @@ -25,14 +25,14 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { rGeneUMI = new uint32[2*nReadsMapped]; //big array for all CBs - each element is gene and UMI rCBp = new uint32*[nCB+1]; - uint32 **rCBpa = new uint32*[pSolo.cbWL.size()]; + uint32 **rCBpa = new uint32*[pSolo.cbWL.size()+1]; indCB = new uint32[nCB]; uint32 nReadPerCBmax=0; rCBp[0]=rGeneUMI; rCBpa[0]=rGeneUMI; nCB=0;//will count it again below - for (uint32 ii=0; iicbReadCountExact[ii]>0) {//if no exact matches, this CB is not present indCB[nCB]=ii; rCBp[nCB+1] = rCBp[nCB] + 2*soloCBsum->cbReadCount[ii]; From 6eb35e34dad8886524650a6affee50185fc54a57 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 22 Dec 2018 18:31:11 -0500 Subject: [PATCH 388/536] Changed solo file names. --- Makefile | 2 +- Parameters.cpp | 1 + ParametersSolo.cpp | 15 +++++++++- ParametersSolo.h | 3 +- Solo.cpp | 2 +- Solo_outputNumUMIperGeneCB.cpp | 6 ++-- parametersDefault | 10 ++++++- parametersDefault.xxd | 55 ++++++++++++++++++++++++++++++++-- 8 files changed, 84 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index ba0c705..6898210 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ - ParametersSolo.o Solo.o SoloCB.o SoloCB_readCB.o Solo_soloPostMap.o Solo_collapseUMI.o Solo_outputNumUMIperGeneCB.cpp \ + ParametersSolo.o Solo.o SoloCB.o SoloCB_readCB.o Solo_soloPostMap.o Solo_collapseUMI.o Solo_outputNumUMIperGeneCB.o \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o \ serviceFuns.o \ diff --git a/Parameters.cpp b/Parameters.cpp index 0a3404f..b3a95c6 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -254,6 +254,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBwhitelist", &pSolo.soloCBwhitelist)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloStrand", &pSolo.strandStr)); + parArray.push_back(new ParameterInfoVector (-1, -1, "soloOutFileNames", &pSolo.outFileNames)); // //SW parameters // parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 6f6f7a7..2d08910 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -36,6 +36,19 @@ void ParametersSolo::initialize(Parameters *pPin) { errOut << "SOLUTION: use allowed option: Unstranded OR Forward OR Reverse"; exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; + ///////////// finished parameters input + + //make output directory if needed + if ( uint32 slashPos = outFileNames[0].find_last_of('/') < outFileNames[0].size() ) {//need to create dir + string dir1=pP->outFileNamePrefix+outFileNames[0].substr(0,slashPos); + if (mkdir(dir1.c_str(),pP->runDirPerm)!=0 && errno!=EEXIST) { + ostringstream errOut; + errOut << "EXITING because of fatal OUTPUT FILE error: could not create Solo output directory"<inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + }; + QSbase=33;//TODO make these user-definable QSmax=33; @@ -85,4 +98,4 @@ void ParametersSolo::initialize(Parameters *pPin) { // time(&rawTime); // *pP->inOut->logStdOut << timeMonthDayTime(rawTime) <<" "<< nn < outFileNames; string strandStr; int32 strand; @@ -34,4 +35,4 @@ class ParametersSolo { Parameters *pP; }; -#endif \ No newline at end of file +#endif diff --git a/Solo.cpp b/Solo.cpp index f3740cf..0055ec0 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -8,6 +8,6 @@ Solo::Solo(Parameters &Pin, Transcriptome &inTrans) : P(Pin), pSolo(P.pSolo), Tr soloCBsum = new SoloCB(P,-1); soloCBall = new SoloCB*[P.runThreadN]; - soloStatsStream = &ofstrOpen(P.outFileNamePrefix+"Solo.stats",ERROR_OUT, P); + soloStatsStream = &ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+"Solo.stats",ERROR_OUT, P); }; diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp index 0d73013..a6caf31 100644 --- a/Solo_outputNumUMIperGeneCB.cpp +++ b/Solo_outputNumUMIperGeneCB.cpp @@ -15,13 +15,13 @@ void Solo::outputNumUMIperGeneCB() { //nUMImin=0; //full output - ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+"SoloGeneNames.txt",ERROR_OUT, P); + ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); for (uint32 ii=0; ii Date: Sun, 23 Dec 2018 11:34:43 -0500 Subject: [PATCH 389/536] Streamlined solo stats --- ParametersSolo.cpp | 4 ++-- Solo.cpp | 3 +-- Solo.h | 1 + SoloCB.cpp | 21 +++++++++++++++------ SoloCB.h | 7 ++++--- Solo_outputNumUMIperGeneCB.cpp | 8 ++++++-- Solo_soloPostMap.cpp | 15 +++++++++++---- 7 files changed, 40 insertions(+), 19 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 2d08910..1dd2abd 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -39,8 +39,8 @@ void ParametersSolo::initialize(Parameters *pPin) { ///////////// finished parameters input //make output directory if needed - if ( uint32 slashPos = outFileNames[0].find_last_of('/') < outFileNames[0].size() ) {//need to create dir - string dir1=pP->outFileNamePrefix+outFileNames[0].substr(0,slashPos); + if ( outFileNames[0].find_last_of("/") < outFileNames[0].size() ) {//need to create dir + string dir1=pP->outFileNamePrefix+outFileNames[0].substr(0,outFileNames[0].find_last_of("/")); if (mkdir(dir1.c_str(),pP->runDirPerm)!=0 && errno!=EEXIST) { ostringstream errOut; errOut << "EXITING because of fatal OUTPUT FILE error: could not create Solo output directory"<0 UMIs) per CB + uint32 nCellGeneEntries;//total number of non-zero cell/gene combinations (entries in the output matrix) ofstream *soloStatsStream; diff --git a/SoloCB.cpp b/SoloCB.cpp index 6d65246..54af147 100644 --- a/SoloCB.cpp +++ b/SoloCB.cpp @@ -29,25 +29,28 @@ SoloCB::SoloCB(Parameters &Pin, int iChunk) : P(Pin), pSolo(P.pSolo) { }; }; -void SoloCB::addSoloCB(const SoloCB &soloCBin) { - for (uint32 ii=0; iiflush(); strU_0->seekg(0,ios::beg); @@ -69,6 +72,9 @@ void SoloCB::readCBgeneUMIfromFiles(uint32 ** cbP, uint32 *cbReadCountExactTotal cbP[cb1][0]=g1; cbP[cb1][1]=umi1; cbP[cb1]+=2; + stats.V[stats.nMatch]++; + } else { + stats.V[stats.nMatch]++; }; }; }; @@ -99,6 +105,9 @@ void SoloCB::readCBgeneUMIfromFiles(uint32 ** cbP, uint32 *cbReadCountExactTotal cbP[cb1][0]=g1; cbP[cb1][1]=umi1; cbP[cb1]+=2; + stats.V[stats.nMatch]++; + } else { + stats.V[stats.nTooMany]++; }; }; }; diff --git a/SoloCB.h b/SoloCB.h index 729d31a..2594e7b 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -13,16 +13,17 @@ class SoloCB { fstream *strU_0 ,*strU_1, *strU_2; //uniqe mappers, CB matches whitelist with 0,1>=2 MM struct { - enum {nNoGene,nAmbigGene,nAmbigGeneMultimap,nNinBarcode,nUMIhomopolymer,nTooMany,nNoMatch,nExactMatch,nMatch,nStats}; + enum {nNoGene,nAmbigGene,nAmbigGeneMultimap,nNinBarcode,nUMIhomopolymer,nTooMany,nNoExactMatch,nNoMatch,nExactMatch,nMatch,nCellBarcodes,nUMIs,nStats}; uint64 V[nStats]; - vector names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoMatch","nExactMatch","nMatch"}; + vector names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoExactMatch","nNoMatch","nExactMatch","nCellBarcodes","nUMIs","nMatch"}; } stats; string cbSeq, umiSeq, cbQual, umiQual; SoloCB (Parameters &Pin, int iChunk); void readCB(const uint64 &iReadAll, const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes); - void addSoloCB(const SoloCB &soloCBin); + void addSoloCBcounts(const SoloCB &soloCBin); + void addSoloCBstats(const SoloCB &soloCBin); void statsOut(ofstream &streamOut); void readCBgeneUMIfromFiles(uint32 **cbP, uint32 *cbReadCountExact); diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp index a6caf31..29e90e4 100644 --- a/Solo_outputNumUMIperGeneCB.cpp +++ b/Solo_outputNumUMIperGeneCB.cpp @@ -27,6 +27,9 @@ void Solo::outputNumUMIperGeneCB() { cbStr << convertNuclInt32toString(cb,pSolo.cbL) <<'\n'; cbStr.flush(); + //header + cbGeneMatrix <<"%%\n%\n" << Trans.nGe<< ' ' << pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; + uint32 nCBout=0; for (; nCBoutflush(); }; diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp index 8d40722..61599ba 100644 --- a/Solo_soloPostMap.cpp +++ b/Solo_soloPostMap.cpp @@ -10,9 +10,8 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { //summary statistics for (int ii=0; iiaddSoloCB(*soloCBall[ii]); + soloCBsum->addSoloCBcounts(*soloCBall[ii]); }; - soloCBsum->statsOut(*soloStatsStream); //allocate arrays to store CB/gene/UMIs for all reads nCB=0;nReadsMapped=0; @@ -57,23 +56,31 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { soloCBsum->stats.V[soloCBsum->stats.nMatch] += nr; }; + for (int ii=0; iiaddSoloCBstats(*soloCBall[ii]); + }; + time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished reading reads from Solo files nCB="<stats.V[soloCBsum->stats.nCellBarcodes]=nCB; + soloCBsum->statsOut(*soloStatsStream); //output nU per gene per CB outputNumUMIperGeneCB(); From 6b1772504e0196f8e18b77444c61cdfb88c26698 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 23 Dec 2018 11:55:00 -0500 Subject: [PATCH 390/536] Finalized solo stats. --- STAR.cpp | 44 ++++++++++++++-------------------- SoloCB.cpp | 7 +++--- SoloCB.h | 4 ++-- SoloCB_readCB.cpp | 1 - Solo_outputNumUMIperGeneCB.cpp | 9 +------ Solo_soloPostMap.cpp | 8 +++---- 6 files changed, 28 insertions(+), 45 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index 876eb9b..dfd5c3b 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -35,37 +35,29 @@ -void usage() { - printf("Usage: STAR [options]... --genomeDir REFERENCE --readFilesIn R1.fq R2.fq\n"); - printf("Spliced Transcripts Alignment to a Reference (c) Alexander Dobin, 2009-2015\n\n"); - - std::cout << parametersDefault; - - printf("For more details see:\n"); - printf("\n"); - printf("\n"); - +void usage(int usageType) { + cout << "Usage: STAR [options]... --genomeDir REFERENCE --readFilesIn R1.fq R2.fq\n"; + cout <<"Spliced Transcripts Alignment to a Reference (c) Alexander Dobin, 2009-2019\n\n"; + cout <<"For more details see:\n"; + cout <<"\n"; + cout <<"\n"; + + if (usageType==0) {//brief + cout << "\nTo list all parameters, run STAR --help\n"; + } else {//full + cout <<'\n'<< parametersDefault; + }; exit(0); } -int main(int argInN, char* argIn[]) { - - //debug -// uint nn=4000000000; -// uint* dummy=new uint[nn]; -// std::cout <<"Allocated"<flush(); strU_2->seekg(0,ios::beg); - uint32 ncb1, cb1, g1, umi1; + uint32 ncb1, cb1=0, g1, umi1; while (*strU_2 >> g1 >> umi1 >> ncb1) { float ptot=0.0,pmax=0.0; for (uint32 ii=0; ii=2 MM struct { - enum {nNoGene,nAmbigGene,nAmbigGeneMultimap,nNinBarcode,nUMIhomopolymer,nTooMany,nNoExactMatch,nNoMatch,nExactMatch,nMatch,nCellBarcodes,nUMIs,nStats}; + enum { nNoGene, nAmbigGene, nAmbigGeneMultimap, nNinBarcode, nUMIhomopolymer, nTooMany, nNoExactMatch, nNoMatch, nExactMatch, nMatch, nCellBarcodes, nUMIs, nStats}; uint64 V[nStats]; - vector names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoExactMatch","nNoMatch","nExactMatch","nCellBarcodes","nUMIs","nMatch"}; + vector names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoExactMatch","nNoMatch","nExactMatch","nMatch","nCellBarcodes","nUMIs",}; } stats; string cbSeq, umiSeq, cbQual, umiQual; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index f8ea0d4..b43767b 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -49,7 +49,6 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u if (cbI>=0) {//exact match cbReadCount[cbI]++; *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; - stats.V[stats.nExactMatch]++; return; }; diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp index 29e90e4..472384c 100644 --- a/Solo_outputNumUMIperGeneCB.cpp +++ b/Solo_outputNumUMIperGeneCB.cpp @@ -30,14 +30,7 @@ void Solo::outputNumUMIperGeneCB() { //header cbGeneMatrix <<"%%\n%\n" << Trans.nGe<< ' ' << pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; - uint32 nCBout=0; - for (; nCBoutlogMain <<", nMatch="<stats.V[soloCBsum->stats.nMatch]<stats.V[soloCBsum->stats.nCellBarcodes] += nUperCB[iCB]; + soloCBsum->stats.V[soloCBsum->stats.nUMIs] += nUperCB[iCB]; + if (nGperCB[iCB]>0) + ++soloCBsum->stats.V[soloCBsum->stats.nCellBarcodes]; nCellGeneEntries += nGperCB[iCB]; }; time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished collapsing UMIs" <stats.V[soloCBsum->stats.nCellBarcodes]=nCB; soloCBsum->statsOut(*soloStatsStream); //output nU per gene per CB From 8b464d060be8d35cc5be335a96afaf1ddecf587d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 24 Dec 2018 19:58:27 -0500 Subject: [PATCH 391/536] solo: implementing SJ output. --- Makefile | 3 +- Parameters.cpp | 1 + ParametersSolo.cpp | 41 +++++--- ParametersSolo.h | 30 +++--- ReadAlign.cpp | 20 +--- ReadAlign.h | 5 +- ReadAlign_alignBAM.cpp | 8 +- ReadAlign_outputAlignments.cpp | 16 +-- STAR.cpp | 9 +- Solo.cpp | 10 +- Solo.h | 8 +- SoloCB.cpp | 92 ++++------------ SoloCB.h | 17 +-- SoloCB_readCB.cpp | 72 ++++++++----- Solo_collapseUMI.cpp | 9 +- Solo_outputNumUMIperGeneCB.cpp | 4 +- Solo_soloPostMap.cpp | 9 +- SuffixArrayFuns.cpp | 74 +++++++------ Transcript.cpp | 11 ++ Transcript.h | 96 ++++++++--------- Transcriptome.h | 2 + parametersDefault | 7 +- parametersDefault.xxd | 186 +++++++++++++++++++-------------- 23 files changed, 384 insertions(+), 346 deletions(-) diff --git a/Makefile b/Makefile index 6898210..8bb8199 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,8 @@ OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InO Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ - ParametersSolo.o Solo.o SoloCB.o SoloCB_readCB.o Solo_soloPostMap.o Solo_collapseUMI.o Solo_outputNumUMIperGeneCB.o \ + ParametersSolo.o SoloCB.o SoloCB_readCB.o SoloCB_inputUMIfeatureCBrecords.o \ + Solo.o Solo_soloPostMap.o Solo_collapseUMI.o Solo_outputNumUMIperGeneCB.o \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o \ serviceFuns.o \ diff --git a/Parameters.cpp b/Parameters.cpp index b3a95c6..ac03c0d 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -255,6 +255,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBwhitelist", &pSolo.soloCBwhitelist)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloStrand", &pSolo.strandStr)); parArray.push_back(new ParameterInfoVector (-1, -1, "soloOutFileNames", &pSolo.outFileNames)); + parArray.push_back(new ParameterInfoVector (-1, -1, "soloFeatures", &pSolo.featureIn)); // //SW parameters // parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 1dd2abd..aee2102 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -7,7 +7,10 @@ #include -void ParametersSolo::initialize(Parameters *pPin) { +const vector ParametersSolo::featureNames={"Gene","SJ"}; + +void ParametersSolo::initialize(Parameters *pPin) +{ pP=pPin; if (typeStr=="None") { @@ -36,6 +39,26 @@ void ParametersSolo::initialize(Parameters *pPin) { errOut << "SOLUTION: use allowed option: Unstranded OR Forward OR Reverse"; exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; + + for (auto &fin : featureIn) { + bool finGood=false; + for (uint32 ii=0; iiinOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + }; + ///////////// finished parameters input //make output directory if needed @@ -82,20 +105,4 @@ void ParametersSolo::initialize(Parameters *pPin) { time_t rawTime; time(&rawTime); pP->inOut->logMain << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <inOut->logStdOut << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <=0) { -// ++nn; -// }; -// -// // nn+=cbWL.count(a); -// }; -// time(&rawTime); -// *pP->inOut->logStdOut << timeMonthDayTime(rawTime) <<" "<< nn < -#include - #include "IncludeDefine.h" + class Parameters; class ParametersSolo { public: + //chemistry, library etc string typeStr; int type; uint32 cbL; //cell barcode length uint32 umiL; //umi length uint32 bL; //total barcode length string soloCBwhitelist; - vector outFileNames; - - string strandStr; - int32 strand; - std::vector cbWL; + string strandStr; + int32 strand; - uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs - + //features + const static vector featureNames; + vector featureIn; + bool featureYes[2]; //which features are requested + //filtering char QSbase,QSmax;//quality score base and cutoff float cbMinP;//for CBs with non-exact matching to WL, min posterior probability + //output + vector outFileNames; + + + + //constants + uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs - static const uint64 bufferSize=1048576; + //static const uint64 bufferSize=1048576; void initialize(Parameters *pPin); private: Parameters *pP; }; - #endif diff --git a/ReadAlign.cpp b/ReadAlign.cpp index b7566fb..1ce1b66 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -4,8 +4,8 @@ #include "ReadAlign.h" ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) - : mapGen(genomeIn), P(Pin), chunkTr(TrIn) {//allocate arrays - + : mapGen(genomeIn), P(Pin), chunkTr(TrIn) +{ readNmates=P.readNmates; winBin = new uintWinBin* [2]; @@ -41,22 +41,11 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, in #ifdef COMPILE_FOR_LONG_READS swWinCov = new uint[P.alignWindowsPerReadNmax]; - -// if (P.swMode==1) { -// swWinGleft = new uint[P.alignWindowsPerReadNmax]; -// swWinGright = new uint[P.alignWindowsPerReadNmax]; -// swWinRleft = new uint[P.alignWindowsPerReadNmax]; -// swWinRright = new uint[P.alignWindowsPerReadNmax]; -// P.swHsize=5000000000LLU; -// swT = new char [P.swHsize]; -// }; - scoreSeedToSeed = new intScore [P.seedPerWindowNmax*(P.seedPerWindowNmax+1)/2]; scoreSeedBest = new intScore [P.seedPerWindowNmax]; scoreSeedBestInd = new uint [P.seedPerWindowNmax]; scoreSeedBestMM = new uint [P.seedPerWindowNmax]; seedChain = new uint [P.seedPerWindowNmax]; - #endif WA=new uiWA*[P.alignWindowsPerReadNmax]; @@ -110,8 +99,9 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, in chunkOutChimJunction = new fstream; chimDet = new ChimericDetection(P, trAll, nWinTr, Read1, mapGen, chunkOutChimJunction, this); - soloCB = new SoloCB(P,iChunk); - + soloCB = new SoloCB*[2]; + soloCB[0] = new SoloCB(0,P,iChunk); //genes + soloCB[1] = new SoloCB(1,P,iChunk); //SJs }; void ReadAlign::resetN () {//reset resets the counters to 0 for a new read diff --git a/ReadAlign.h b/ReadAlign.h index c8d745f..66cc15d 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -16,8 +16,7 @@ #include #include -class ReadAlign -{ +class ReadAlign { public: //methods ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk);//allocate arrays @@ -54,7 +53,7 @@ class ReadAlign ChimericDetection *chimDet; - SoloCB *soloCB; //counts reads per CB and outputs CB/UMI/gene into file, per thread + SoloCB **soloCB; //counts reads per CB per and outputs CB/UMI/gene into file, per thread private: Parameters& P; //pointer to the parameters, will be initialized on construction diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 0cfe3ba..1526925 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -474,16 +474,16 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint break; case ATTR_CR: - attrN+=bamAttrArrayWrite(soloCB->cbSeq,"CR",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloCB[0]->cbSeq,"CR",attrOutArray+attrN); break; case ATTR_CY: - attrN+=bamAttrArrayWrite(soloCB->cbQual,"CY",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloCB[0]->cbQual,"CY",attrOutArray+attrN); break; case ATTR_UR: - attrN+=bamAttrArrayWrite(soloCB->umiSeq,"UR",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloCB[0]->umiSeq,"UR",attrOutArray+attrN); break; case ATTR_UY: - attrN+=bamAttrArrayWrite(soloCB->umiQual,"UY",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloCB[0]->umiQual,"UY",attrOutArray+attrN); break; default: diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 400c503..079a174 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -11,11 +11,10 @@ void ReadAlign::outputAlignments() { vector readGenes; vector readTranscripts={}; set readTrGenes={}; + vector> readSJs={}; + outFilterPassed=true;//only false if the alignment is held for outFilterBySJoutStage if (unmapType==-1) {//output transcripts - - outFilterPassed=true; - if (P.outFilterBySJoutStage==1) {//filtering by SJout for (uint iTr=0;iTrnExons-1;iex++) {//check all junctions @@ -31,7 +30,6 @@ void ReadAlign::outputAlignments() { statsRA.readN--; statsRA.readBases -= readLength[0]+readLength[1]; -// if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutFilterBySJout); for (uint im=0;im1) pthread_mutex_unlock(&g_threadChunks.mutexOutFilterBySJout); }; }; - + if (P.outSJfilterReads=="All" || nTr==1) { uint sjReadStartN=chunkOutSJ1->N; - for (uint iTr=0;iTrreadCB(iReadAll, readNameExtra.at(0), nTr, readGenes, readTranscripts, readTrGenes); + if (outFilterPassed) {//otherwise the alignment was held and will be counted at the 2nd stage + soloCB[0]->readCB(iReadAll, readNameExtra.at(0), nTr, readTrGenes, trMult[0]); + soloCB[1]->readCB(iReadAll, readNameExtra.at(0), nTr, readTrGenes, trMult[0]); + }; if (unmapType>=0) { statsRA.unmappedAll++; diff --git a/STAR.cpp b/STAR.cpp index dfd5c3b..28728ae 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -363,8 +363,12 @@ int main(int argInN, char* argIn[]) { //no need for genome anymore, free the memory mainGenome.freeMemory(); - Solo soloMain(P,*RAchunk[0]->chunkTr); - soloMain.soloPostMap(RAchunk); + //solo genes + Solo soloGenes(0,P,*RAchunk[0]->chunkTr);//solo for genes + soloGenes.soloPostMap(RAchunk); + //solo SJs + Solo soloSJ(1,P,*RAchunk[0]->chunkTr);//solo for genes + soloSJ.soloPostMap(RAchunk); if ( P.quant.geCount.yes ) {//output gene quantifications for (int ichunk=1; ichunkchunkFilesCat(P.inOut->outSAM, P.outFileTmp + "/Aligned.out.sam.chunk", g_threadChunks.chunkOutN); }; - if (P.outBAMcoord) {//sort BAM if needed *P.inOut->logStdOut << timeMonthDayTime() << " ..... started sorting BAM\n" <logMain << timeMonthDayTime() << " ..... started sorting BAM\n" <=0) { - strU_0 = &fstrOpen(P.outFileTmp+"/soloCB_U_0_"+std::to_string(iChunk),ERROR_OUT, P); - strU_1 = &fstrOpen(P.outFileTmp+"/soloCB_U_1_"+std::to_string(iChunk),ERROR_OUT, P); - strU_2 = &fstrOpen(P.outFileTmp+"/soloCB_U_2_"+std::to_string(iChunk),ERROR_OUT, P); +// vector prefix={"soloGene","soloSJ"}; +// constexpr string prefix1=prefix[soloFeature]; + string prefix1="solo"; +// if (soloFeature==1) { +// prefix=; +// } else if (soloFeature==1) { +// prefix=; +// }; + strU_0 = &fstrOpen(P.outFileTmp+"/"+prefix1+"_U_0_"+std::to_string(iChunk),ERROR_OUT, P); + strU_1 = &fstrOpen(P.outFileTmp+"/"+prefix1+"_U_1_"+std::to_string(iChunk),ERROR_OUT, P); + strU_2 = &fstrOpen(P.outFileTmp+"/"+prefix1+"_U_2_"+std::to_string(iChunk),ERROR_OUT, P); }; for (uint32 jj=0;jj<4;jj++) { @@ -29,85 +39,25 @@ SoloCB::SoloCB(Parameters &Pin, int iChunk) : P(Pin), pSolo(P.pSolo) { }; }; -void SoloCB::addSoloCBcounts(const SoloCB &soloCBin) { +void SoloCB::addSoloCBcounts(const SoloCB &soloCBin) +{ for (uint32 ii=0; iiflush(); - strU_0->seekg(0,ios::beg); - uint32 cb1, g1, umi1; - while (*strU_0 >> cb1 >> g1 >> umi1) { - //strU_0->ignore(1000000000,'\n'); //in case more fields were output - cbP[cb1][0]=g1; - cbP[cb1][1]=umi1; - cbP[cb1]+=2; - stats.V[stats.nExactMatch]++; - }; - }; - - {//load 1MM - strU_1->flush(); - strU_1->seekg(0,ios::beg); - uint32 cb1, g1, umi1; - while (*strU_1 >> cb1 >> g1 >> umi1) { - if (cbReadCountExactTotal[cb1]>0) { - cbP[cb1][0]=g1; - cbP[cb1][1]=umi1; - cbP[cb1]+=2; - } else { - stats.V[stats.nNoExactMatch]++; - }; - }; - }; - - {//load 2MM - strU_2->flush(); - strU_2->seekg(0,ios::beg); - uint32 ncb1, cb1=0, g1, umi1; - while (*strU_2 >> g1 >> umi1 >> ncb1) { - float ptot=0.0,pmax=0.0; - for (uint32 ii=0; ii> cbin >> qin; - if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work - qin -= pSolo.QSbase; - qin = qin < pSolo.QSbase ? qin : pSolo.QSbase; - pin=cbReadCountExactTotal[cbin]*pow(10.0,-qin/10.0); - ptot+=pin; - if (pin>pmax) { - cb1=cbin; - pmax=pin; - }; - }; - }; - if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { - cbP[cb1][0]=g1; - cbP[cb1][1]=umi1; - cbP[cb1]+=2; - } else { - stats.V[stats.nTooMany]++; - }; - }; - }; -}; diff --git a/SoloCB.h b/SoloCB.h index 0c9dce3..a9ddfa1 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -1,7 +1,9 @@ #ifndef CODE_SoloCB #define CODE_SoloCB +#include #include "IncludeDefine.h" #include "Parameters.h" +#include "Transcript.h" class SoloCB { public: @@ -10,27 +12,28 @@ class SoloCB { uint32 *cbReadCount, *cbReadCountExact; - fstream *strU_0 ,*strU_1, *strU_2; //uniqe mappers, CB matches whitelist with 0,1>=2 MM + fstream *strU_0 ,*strU_1, *strU_2; //unique mappers, CB matches whitelist with 0,1>=2 MM struct { - enum { nNoGene, nAmbigGene, nAmbigGeneMultimap, nNinBarcode, nUMIhomopolymer, nTooMany, nNoExactMatch, nNoMatch, nExactMatch, nMatch, nCellBarcodes, nUMIs, nStats}; + enum { nUnmapped, nNoFeature, nAmbigFeature, nAmbigFeatureMultimap, nNinBarcode, nUMIhomopolymer, nTooMany, nNoExactMatch, nNoMatch, nExactMatch, nMatch, nCellBarcodes, nUMIs, nStats}; uint64 V[nStats]; - vector names={"nNoGene","nAmbigGene","nAmbigGeneMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoExactMatch","nNoMatch","nExactMatch","nMatch","nCellBarcodes","nUMIs",}; + vector names={"nUnmapped","nNoFeature","nAmbigFeature","nAmbigFeatureMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoExactMatch","nNoMatch","nExactMatch","nMatch","nCellBarcodes","nUMIs",}; } stats; string cbSeq, umiSeq, cbQual, umiQual; - SoloCB (Parameters &Pin, int iChunk); - void readCB(const uint64 &iReadAll, const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes); + SoloCB (int32 feTy, Parameters &Pin, int iChunk); + void readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set &readTrGenes, Transcript *alignOut); void addSoloCBcounts(const SoloCB &soloCBin); void addSoloCBstats(const SoloCB &soloCBin); void statsOut(ofstream &streamOut); - void readCBgeneUMIfromFiles(uint32 **cbP, uint32 *cbReadCountExact); + void inputUMIfeatureCBrecords(uint32 **cbP, uint32 *cbReadCountExact); private: + const int32 featureType; + Parameters &P; ParametersSolo &pSolo; - }; #endif diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index b43767b..4067b47 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -2,8 +2,24 @@ #include "serviceFuns.cpp" #include "SequenceFuns.h" -void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const uint nTr, const vector &readGenes, vector &readTranscripts, set &readTrGenes) { - if (pSolo.type==0) +uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, string stringCB) +{ + if (featureType==0) {//genes + *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; + return 1; + } else if (featureType==1) {//sjs + for (auto &sj : readSJs) { + *streamOut << umiB <<' '<< sj[0] <<' '<< sj[1] <<' '<< stringCB <<'\n'; + }; + return readSJs.size(); + }; + + return 0; //this should not happen +}; + +void SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set &readTrGenes, Transcript *alignOut) +{ + if (pSolo.type==0 || !pSolo.featureYes[featureType]) return; int32 cbI=-999; @@ -25,17 +41,33 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u }; }; - //check genes, return if no gene - if (readTrGenes.size()==0) { - stats.V[stats.nNoGene]++; - return; - } else if (readTrGenes.size()>1) { - stats.V[stats.nAmbigGene]++; - if (nTr>1) - stats.V[stats.nAmbigGeneMultimap]++; + if (nTr==0) { + stats.V[stats.nUnmapped]++; return; }; + vector> readSJs; + if (featureType==0) {//genes + //check genes, return if no gene + if (readTrGenes.size()==0) { + stats.V[stats.nNoFeature]++; + return; + } else if (readTrGenes.size()>1) { + stats.V[stats.nAmbigFeature]++; + if (nTr>1) + stats.V[stats.nAmbigFeatureMultimap]++; + return; + }; + } else if (featureType==1) {//SJs + alignOut->extractSpliceJunctions(readSJs); + if (readSJs.empty()) { + stats.V[stats.nNoFeature]++; + } else if (nTr>1) {//record SJs from the read + stats.V[stats.nAmbigFeature]++; + stats.V[stats.nAmbigFeatureMultimap]++; + }; + }; + //check UMIs, return if bad UMIs if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs @@ -47,9 +79,8 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u }; if (cbI>=0) {//exact match - cbReadCount[cbI]++; - *strU_0 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; - return; + cbReadCount[cbI] += outputReadCB(strU_0, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); + return; }; if (posN>=0) {//one N @@ -66,8 +97,7 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u }; }; if (cbI>=0) { - cbReadCount[cbI]++; - *strU_1 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; + cbReadCount[cbI]+= outputReadCB(strU_1, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); } else {//no match stats.V[stats.nNoMatch]++; }; @@ -79,14 +109,6 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u for (uint32 jj=1; jj<4; jj++) { int32 cbI1=binarySearchExact(cbB^(jj<<(ii*2)),pSolo.cbWL.data(),pSolo.cbWL.size()); if (cbI1>=0) {//found match - //simple procedure: accept only if one WL CB exists with 1MM - //if (cbI>=0) {//had another match already - // stats.V[stats.nTooMany]++; - // //cout << iReadAll << endl; - // return; - //}; - //cbI=cbI1; - //output all cbI=cbI1; ++ncbOut1; @@ -100,9 +122,9 @@ void SoloCB::readCB(const uint64 &iReadAll, const string &readNameExtra, const u stats.V[stats.nNoMatch]++; return; } else if (ncbOut1==1){//only one match - *strU_1 << cbI <<' '<< *readTrGenes.begin() <<' '<< umiB <<'\n'; + cbReadCount[cbI] += outputReadCB(strU_1, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); } else {//more than one match - *strU_2 << *readTrGenes.begin() <<' '<< umiB <<' '<< ncbOut1 << cbOutString <<'\n'; + cbReadCount[cbI] += outputReadCB(strU_2, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(ncbOut1) + to_string(cbI)); }; }; diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp index d4b5834..f3d1e09 100644 --- a/Solo_collapseUMI.cpp +++ b/Solo_collapseUMI.cpp @@ -5,12 +5,11 @@ #define def_MarkNoColor (uint32) -1 -void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) { - +void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) +{ const uint32 bitTop=1<<31; - const uint32 bitTopMask=~bitTop; - - + const uint32 bitTopMask=~bitTop; + for (uint32 iu=0; iu); //sort by gene number diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp index 536cdd3..7141e30 100644 --- a/Solo_soloPostMap.cpp +++ b/Solo_soloPostMap.cpp @@ -2,10 +2,13 @@ #include "streamFuns.h" #include "TimeFunctions.h" -void Solo::soloPostMap(ReadAlignChunk **RAchunk) { +void Solo::soloPostMap(ReadAlignChunk **RAchunk) +{ + if (pSolo.type==0 || !pSolo.featureYes[featureType]) + return; for (int ii=0; iiRA->soloCB; + soloCBall[ii]=RAchunk[ii]->RA->soloCB[featureType]; }; //summary statistics @@ -46,7 +49,7 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <readCBgeneUMIfromFiles(rCBpa,soloCBsum->cbReadCountExact); + soloCBall[ii]->inputUMIfeatureCBrecords(rCBpa,soloCBsum->cbReadCountExact); }; for (uint32 iCB=0; iCB searched string, i.e. g[SA[index-1]] searched string, i.e. g[SA[index-1]]nUnique; }; +void Transcript::extractSpliceJunctions(vector> &sjOut) +{ + for (uint64 iex=0; iex=0) {//only record junctions, not indels or mate gap + array sj; + sj[0]=exons[iex][EX_G]+exons[iex][EX_L];//start + sj[1]=exons[iex+1][EX_G] - sj[0]; //gap + sjOut.push_back(sj); + }; + }; +}; diff --git a/Transcript.h b/Transcript.h index 6916997..d41eb83 100644 --- a/Transcript.h +++ b/Transcript.h @@ -7,64 +7,64 @@ #include "Genome.h" class Transcript { - public: - //uint rMM[DEF_readSeqLengthMax]; //read-space MM coordinates. TODO: remove? reduce the size, do not save the whole array -// uint gMap[DEF_readSeqLengthMax]; //map read bases to genome. TODO: allocate with smaller size - uint exons[MAX_N_EXONS][EX_SIZE]; //coordinates of all exons: r-start, g-start, length - uint shiftSJ[MAX_N_EXONS][2]; //shift of the SJ coordinates due to genomic micro-repeats - int canonSJ[MAX_N_EXONS]; //canonicity of each junction - uint8 sjAnnot[MAX_N_EXONS]; //anotated or not - uint8 sjStr[MAX_N_EXONS]; //strand of the junction +public: + uint exons[MAX_N_EXONS][EX_SIZE]; //coordinates of all exons: r-start, g-start, length + uint shiftSJ[MAX_N_EXONS][2]; //shift of the SJ coordinates due to genomic micro-repeats + int canonSJ[MAX_N_EXONS]; //canonicity of each junction + uint8 sjAnnot[MAX_N_EXONS]; //anotated or not + uint8 sjStr[MAX_N_EXONS]; //strand of the junction - uint intronMotifs[3]; - uint8 sjMotifStrand; + uint intronMotifs[3]; + uint8 sjMotifStrand; - uint nExons; //number of exons in the read transcript + uint nExons; //number of exons in the read transcript - //variables from ReadAlign - uint *readLengthOriginal, *readLength; - uint Lread, readLengthPairOriginal; - uint iRead; //read identifier - uint readNmates; - char *readName; + //variables from ReadAlign + uint *readLengthOriginal, *readLength; + uint Lread, readLengthPairOriginal; + uint iRead; //read identifier + uint readNmates; + char *readName; - int iFrag; //frag number of the transcript, if the the transcript contains only one frag + int iFrag; //frag number of the transcript, if the the transcript contains only one frag - //loci - uint rStart, roStart, rLength, gStart, gLength, cStart; //read, original read, and genomic start/length, chromosome start - uint Chr,Str,roStr; //chromosome and strand and original read Strand + //loci + uint rStart, roStart, rLength, gStart, gLength, cStart; //read, original read, and genomic start/length, chromosome start + uint Chr,Str,roStr; //chromosome and strand and original read Strand - bool primaryFlag; + bool primaryFlag; - uint nMatch;//min number of matches - uint nMM;//max number of mismatches - uint mappedLength; //total mapped length, sum of lengths of all blocks(exons) + uint nMatch;//min number of matches + uint nMM;//max number of mismatches + uint mappedLength; //total mapped length, sum of lengths of all blocks(exons) - uint extendL; //extension length - intScore maxScore; //maximum Score + uint extendL; //extension length + intScore maxScore; //maximum Score - uint nGap, lGap; //number of genomic gaps (>alignIntronMin) and their total length - uint nDel; //number of genomic deletions (ie genomic gaps) - uint nIns; //number of (ie read gaps) - uint lDel; //total genomic deletion length - uint lIns; //total genomic insertion length - - uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment - - vector varInd; - vector varGenCoord, varReadCoord ; - vector varAllele; + uint nGap, lGap; //number of genomic gaps (>alignIntronMin) and their total length + uint nDel; //number of genomic deletions (ie genomic gaps) + uint nIns; //number of (ie read gaps) + uint lDel; //total genomic deletion length + uint lIns; //total genomic insertion length + + uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment + + vector varInd; + vector varGenCoord, varReadCoord ; + vector varAllele; - Transcript(); //resets to 0 - void reset(); //reset to 0 - void resetMapG(); // reset map to 0 - void resetMapG(uint); // reset map to 0 for Lread bases - void add(Transcript*); // add - void alignScore(char **Read1, char *G, Parameters &P); - int variationAdjust(const Genome &mapGen, char *R); - string generateCigarP(); //generates CIGAR - void peOverlapSEtoPE(uint* mSta, Transcript &t); - private: + Transcript(); //resets to 0 + void reset(); //reset to 0 + void resetMapG(); // reset map to 0 + void resetMapG(uint); // reset map to 0 for Lread bases + void add(Transcript*); // add + void alignScore(char **Read1, char *G, Parameters &P); + int variationAdjust(const Genome &mapGen, char *R); + string generateCigarP(); //generates CIGAR + void peOverlapSEtoPE(uint* mSta, Transcript &t); + void extractSpliceJunctions(vector> &sjOut); + +private: }; diff --git a/Transcriptome.h b/Transcriptome.h index 0ce4b06..8629ffe 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -1,6 +1,8 @@ #ifndef CODE_Transcriptome #define CODE_Transcriptome +#include + #include "IncludeDefine.h" #include "Parameters.h" #include "Transcript.h" diff --git a/parametersDefault b/parametersDefault index cf756a5..dacc158 100644 --- a/parametersDefault +++ b/parametersDefault @@ -672,7 +672,12 @@ waspOutputMode None ### solo (single cell) parameters soloType None string(s): type of single-cell RNA-seq - 10XchromiumV2 ... 10X Genomics Chromium Verison 2 chemistry + 10XchromiumV2 ... 10X Genomics Chromium Verison 2 chemistry + +soloFeatures Gene + string(s) genomic features for which the UMI counts per Cell Barcode are collected + Gene ... genes: reads match the gene transcript + SJ ... splice junctions: reported in SJ.out.tab soloCBlen 16 int>0: cell barcode length diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 13cf1cb..512ff1e 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -3016,94 +3016,120 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x58, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, - 0x6d, 0x56, 0x32, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, - 0x30, 0x58, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x20, - 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x56, 0x65, 0x72, - 0x69, 0x73, 0x6f, 0x6e, 0x20, 0x32, 0x20, 0x63, 0x68, 0x65, 0x6d, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, - 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, - 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, - 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, - 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, - 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x6d, 0x56, 0x32, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x30, + 0x58, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x20, 0x43, + 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x56, 0x65, 0x72, 0x69, + 0x73, 0x6f, 0x6e, 0x20, 0x32, 0x20, 0x63, 0x68, 0x65, 0x6d, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, 0x61, 0x72, + 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, + 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, + 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, + 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, + 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, - 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, - 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, - 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, - 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, + 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, + 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x20, + 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, + 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, + 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, + 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, - 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, - 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a + 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x0a }; -unsigned int parametersDefault_len = 37267; +unsigned int parametersDefault_len = 37577; From 1770c84bad867beadc0d088d5134814f80757e88 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 25 Dec 2018 11:37:14 -0500 Subject: [PATCH 392/536] Solo: implemented featureType, tests OK for Gene --- STAR.cpp | 16 +++++----------- Solo.cpp | 12 ++++++++++++ Solo.h | 3 ++- SoloCB.cpp | 14 +++----------- SoloCB.h | 2 +- SoloCB_readCB.cpp | 2 +- Solo_soloPostMap.cpp | 3 ++- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index 28728ae..b45543c 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -33,8 +33,6 @@ #include "htslib/htslib/sam.h" #include "parametersDefault.xxd" - - void usage(int usageType) { cout << "Usage: STAR [options]... --genomeDir REFERENCE --readFilesIn R1.fq R2.fq\n"; cout <<"Spliced Transcripts Alignment to a Reference (c) Alexander Dobin, 2009-2019\n\n"; @@ -363,6 +361,10 @@ int main(int argInN, char* argIn[]) { //no need for genome anymore, free the memory mainGenome.freeMemory(); + //aggregate output junctions + //collapse splice junctions from different threads/chunks, and output them + outputSJ(RAchunk,P); + //solo genes Solo soloGenes(0,P,*RAchunk[0]->chunkTr);//solo for genes soloGenes.soloPostMap(RAchunk); @@ -472,10 +474,6 @@ int main(int argInN, char* argIn[]) { signalFromBAM(P.outBAMfileCoordName, wigOutFileNamePrefix, P); }; - //aggregate output junctions - //collapse splice junctions from different threads/chunks, and output them - outputSJ(RAchunk,P); - g_statsAll.writeLines(P.inOut->outChimJunction, P.pCh.outJunctionFormat, "#", STAR_VERSION + string(" ") + P.commandLine); g_statsAll.progressReport(P.inOut->logProgress); @@ -485,12 +483,8 @@ int main(int argInN, char* argIn[]) { *P.inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinish) << " ..... finished successfully\n" <logMain << "ALL DONE!\n" << flush; - if (P.outTmpKeep=="None") - { + if (P.outTmpKeep=="None") { sysRemoveDir (P.outFileTmp); - } else - { - //nothing to do }; P.closeReadsFiles();//this will kill the readFilesCommand processes if necessary diff --git a/Solo.cpp b/Solo.cpp index 4a590c6..d02bb73 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -11,4 +11,16 @@ Solo::Solo(int feTy, Parameters &Pin, Transcriptome &inTrans) soloCBall = new SoloCB*[P.runThreadN]; soloStatsStream = &ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.featureNames[featureType]+".stats",ERROR_OUT, P); + + if (featureType==1) {//read the SJ array + ifstream sjStream((P.outFileNamePrefix+"SJ.out.tab").c_str()); + + array sj1; + while (sjStream >> sj1[0] >> sj1[1]) { + sjAll.push_back(sj1); + sjStream.ignore ((uint32) (-1), '\n'); + }; + + sjStream.close(); + }; }; diff --git a/Solo.h b/Solo.h index 742b4dc..2c19e82 100644 --- a/Solo.h +++ b/Solo.h @@ -23,12 +23,13 @@ class Solo { ofstream *soloStatsStream; + vector> sjAll; + Solo(int feTy, Parameters &Pin, Transcriptome &inTrans); void soloPostMap(ReadAlignChunk **RAchunk); void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray); void outputNumUMIperGeneCB(); - private: const int32 featureType; diff --git a/SoloCB.cpp b/SoloCB.cpp index 3ea28ae..1f0b8ce 100644 --- a/SoloCB.cpp +++ b/SoloCB.cpp @@ -18,17 +18,9 @@ SoloCB::SoloCB(int32 feTy, Parameters &Pin, int iChunk) }; if (iChunk>=0) { -// vector prefix={"soloGene","soloSJ"}; -// constexpr string prefix1=prefix[soloFeature]; - string prefix1="solo"; -// if (soloFeature==1) { -// prefix=; -// } else if (soloFeature==1) { -// prefix=; -// }; - strU_0 = &fstrOpen(P.outFileTmp+"/"+prefix1+"_U_0_"+std::to_string(iChunk),ERROR_OUT, P); - strU_1 = &fstrOpen(P.outFileTmp+"/"+prefix1+"_U_1_"+std::to_string(iChunk),ERROR_OUT, P); - strU_2 = &fstrOpen(P.outFileTmp+"/"+prefix1+"_U_2_"+std::to_string(iChunk),ERROR_OUT, P); + strU_0 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_0_"+std::to_string(iChunk),ERROR_OUT, P); + strU_1 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_1_"+std::to_string(iChunk),ERROR_OUT, P); + strU_2 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_2_"+std::to_string(iChunk),ERROR_OUT, P); }; for (uint32 jj=0;jj<4;jj++) { diff --git a/SoloCB.h b/SoloCB.h index a9ddfa1..752428e 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -27,7 +27,7 @@ class SoloCB { void addSoloCBcounts(const SoloCB &soloCBin); void addSoloCBstats(const SoloCB &soloCBin); void statsOut(ofstream &streamOut); - void inputUMIfeatureCBrecords(uint32 **cbP, uint32 *cbReadCountExact); + void inputUMIfeatureCBrecords(uint32 **cbP, uint32 *cbReadCountExact, vector> sjAll); private: const int32 featureType; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 4067b47..7b9aa10 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -124,7 +124,7 @@ void SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, setlogMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <inputUMIfeatureCBrecords(rCBpa,soloCBsum->cbReadCountExact); + soloCBall[ii]->inputUMIfeatureCBrecords(rCBpa,soloCBsum->cbReadCountExact, sjAll); }; for (uint32 iCB=0; iCB Date: Tue, 25 Dec 2018 14:08:01 -0500 Subject: [PATCH 393/536] Solo: implementing SJ output --- SoloCB_inputUMIfeatureCBrecords.cpp | 88 +++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 SoloCB_inputUMIfeatureCBrecords.cpp diff --git a/SoloCB_inputUMIfeatureCBrecords.cpp b/SoloCB_inputUMIfeatureCBrecords.cpp new file mode 100644 index 0000000..a70734b --- /dev/null +++ b/SoloCB_inputUMIfeatureCBrecords.cpp @@ -0,0 +1,88 @@ +#include "SoloCB.h" + +bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi) +{ + if (!(*strIn >> umi)) //end of file + return false; + + if (featureType==0) { + *strIn >> feature; + } else { + }; + + return true; + +}; + +void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTotal, vector> sjAll) +{ + {//load exact matches + strU_0->flush(); + strU_0->seekg(0,ios::beg); + uint32 cb, feature, umi; + while (inputFeatureUmi(strU_0,featureType, feature, umi)) { + *strU_0 >> cb; + if (feature != (uint32)(-1)){ + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + stats.V[stats.nExactMatch]++; + }; + }; + }; + + {//load 1MM + strU_1->flush(); + strU_1->seekg(0,ios::beg); + uint32 cb, feature, umi; + while (inputFeatureUmi(strU_1,featureType, feature, umi)) { + *strU_1 >> cb; + if (cbReadCountExactTotal[cb]>0) { + if (feature != (uint32)(-1)){ + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + }; + } else { + stats.V[stats.nNoExactMatch]++; + }; + }; + }; + + {//load 2MM + strU_2->flush(); + strU_2->seekg(0,ios::beg); + uint32 cb=0, feature, umi, ncb; + while (inputFeatureUmi(strU_2,featureType, feature, umi)) { + if (feature == (uint32) (-1)) { + strU_2->ignore('\n',(uint32) (-1));//ignore until the end of the line + continue; //nothing to record + }; + *strU_2 >> ncb; + float ptot=0.0,pmax=0.0; + for (uint32 ii=0; ii> cbin >> qin; + if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work + qin -= pSolo.QSbase; + qin = qin < pSolo.QSbase ? qin : pSolo.QSbase; + pin=cbReadCountExactTotal[cbin]*pow(10.0,-qin/10.0); + ptot+=pin; + if (pin>pmax) { + cb=cbin; + pmax=pin; + }; + }; + }; + if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + } else { + stats.V[stats.nTooMany]++; + }; + }; + }; +}; From f1597475afe23c298c0a97c849bcebed24910736 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 25 Dec 2018 14:08:59 -0500 Subject: [PATCH 394/536] Solo: finished SJ output --- Solo.cpp | 9 ++++----- Solo.h | 2 +- SoloCB.h | 2 +- SoloCB_inputUMIfeatureCBrecords.cpp | 21 ++++++++++++--------- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Solo.cpp b/Solo.cpp index d02bb73..bbbc7fc 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -14,13 +14,12 @@ Solo::Solo(int feTy, Parameters &Pin, Transcriptome &inTrans) if (featureType==1) {//read the SJ array ifstream sjStream((P.outFileNamePrefix+"SJ.out.tab").c_str()); - - array sj1; - while (sjStream >> sj1[0] >> sj1[1]) { - sjAll.push_back(sj1); + uint64 sj[2]; + while (sjStream >> sj[0] >> sj[1]) { + for (int ii=0; ii<2; ii++) + sjAll[ii].push_back(sj[ii]); sjStream.ignore ((uint32) (-1), '\n'); }; - sjStream.close(); }; }; diff --git a/Solo.h b/Solo.h index 2c19e82..13b86a3 100644 --- a/Solo.h +++ b/Solo.h @@ -23,7 +23,7 @@ class Solo { ofstream *soloStatsStream; - vector> sjAll; + array,2> sjAll; Solo(int feTy, Parameters &Pin, Transcriptome &inTrans); void soloPostMap(ReadAlignChunk **RAchunk); diff --git a/SoloCB.h b/SoloCB.h index 752428e..8fa107b 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -27,7 +27,7 @@ class SoloCB { void addSoloCBcounts(const SoloCB &soloCBin); void addSoloCBstats(const SoloCB &soloCBin); void statsOut(ofstream &streamOut); - void inputUMIfeatureCBrecords(uint32 **cbP, uint32 *cbReadCountExact, vector> sjAll); + void inputUMIfeatureCBrecords(uint32 **cbP, uint32 *cbReadCountExact, array,2> sjAll); private: const int32 featureType; diff --git a/SoloCB_inputUMIfeatureCBrecords.cpp b/SoloCB_inputUMIfeatureCBrecords.cpp index a70734b..e4685f1 100644 --- a/SoloCB_inputUMIfeatureCBrecords.cpp +++ b/SoloCB_inputUMIfeatureCBrecords.cpp @@ -1,26 +1,29 @@ #include "SoloCB.h" +#include "binarySearch2.h" -bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi) +bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> sjAll) { if (!(*strIn >> umi)) //end of file return false; - if (featureType==0) { + if (featureType==0) {//gene *strIn >> feature; - } else { + } else if (featureType==1) {//sj + uint32 sj[2]; + *strIn >> sj[0] >> sj[1]; + feature=(uint32) binarySearch2(sj[0],sj[1],sjAll[0].data(),sjAll[1].data(),sjAll[0].size()); }; - return true; - + return true; }; -void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTotal, vector> sjAll) +void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTotal, array,2> sjAll) { {//load exact matches strU_0->flush(); strU_0->seekg(0,ios::beg); uint32 cb, feature, umi; - while (inputFeatureUmi(strU_0,featureType, feature, umi)) { + while (inputFeatureUmi(strU_0,featureType, feature, umi, sjAll)) { *strU_0 >> cb; if (feature != (uint32)(-1)){ cbP[cb][0]=feature; @@ -35,7 +38,7 @@ void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTot strU_1->flush(); strU_1->seekg(0,ios::beg); uint32 cb, feature, umi; - while (inputFeatureUmi(strU_1,featureType, feature, umi)) { + while (inputFeatureUmi(strU_1,featureType, feature, umi, sjAll)) { *strU_1 >> cb; if (cbReadCountExactTotal[cb]>0) { if (feature != (uint32)(-1)){ @@ -53,7 +56,7 @@ void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTot strU_2->flush(); strU_2->seekg(0,ios::beg); uint32 cb=0, feature, umi, ncb; - while (inputFeatureUmi(strU_2,featureType, feature, umi)) { + while (inputFeatureUmi(strU_2,featureType, feature, umi, sjAll)) { if (feature == (uint32) (-1)) { strU_2->ignore('\n',(uint32) (-1));//ignore until the end of the line continue; //nothing to record From 286d802c27e956513feb9b4d5ee49d6fbd31952a Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 25 Dec 2018 15:25:45 -0500 Subject: [PATCH 395/536] Solo: SJ output works --- Genome.cpp | 84 ++++++++++------------------- Parameters.cpp | 7 --- Parameters.h | 20 ++----- Solo.cpp | 4 +- SoloCB.h | 2 +- SoloCB_inputUMIfeatureCBrecords.cpp | 8 +-- Solo_soloPostMap.cpp | 2 +- outputSJ.cpp | 13 +++-- 8 files changed, 48 insertions(+), 92 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 1a9b11d..d5376b5 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -245,101 +245,75 @@ void Genome::genomeLoad(){//allocate and load Genome shmSize=SA.lengthByte + nGenome+L+L+SHM_startG+8; shmSize+= SAi.lengthByte; - if (P.annotScoreScale>0) shmSize+=nGenome; - if ((pGe.gLoad=="LoadAndKeep" || pGe.gLoad=="LoadAndRemove" || pGe.gLoad=="LoadAndExit" || - pGe.gLoad=="Remove") && sharedMemory == NULL) - { + pGe.gLoad=="Remove") && sharedMemory == NULL) { + bool unloadLast = pGe.gLoad=="LoadAndRemove"; - try - { + try { sharedMemory = new SharedMemory(shmKey, unloadLast); sharedMemory->SetErrorStream(P.inOut->logStdOut); if (!sharedMemory->NeedsAllocation()) P.inOut->logMain <<"Found genome in shared memory\n"<NeedsAllocation()) {//did not find genome in shared memory, nothing to kill - ostringstream errOut; - errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); - } else { - sharedMemory->Clean(); - P.inOut->logMain <<"DONE: removed the genome from shared memory\n"<logMain, EXIT_CODE_GENOME_FILES, P); + } else { + sharedMemory->Clean(); + P.inOut->logMain <<"DONE: removed the genome from shared memory\n"<NeedsAllocation()){ P.inOut->logMain <<"Allocating shared memory for genome\n"<Allocate(shmSize); - } - } - catch (const SharedMemoryException & exc) - { + }; + } catch (const SharedMemoryException & exc){ HandleSharedMemoryException(exc, shmSize); - } + }; shmStart = (char*) sharedMemory->GetMapped(); shmNG= (uint*) (shmStart+SHM_sizeG); shmNSA= (uint*) (shmStart+SHM_sizeSA); - if (!sharedMemory->IsAllocator()) - { + if (!sharedMemory->IsAllocator()) { // genome is in shared memory or being loaded // wait for the process that will populate it // and record the sizes - - uint iwait=0; + uint iwait=0; while (*shmNG != nGenome) { - iwait++; - P.inOut->logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <logMain, EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG, P); + }; }; - }; - - if (nSAbyte!=*shmNSA) - { + if (nSAbyte!=*shmNSA){ ostringstream errOut; errOut << "EXITING because of FATAL ERROR: the SA file size did not match what we found in shared memory" << "\n" << flush; errOut << "SOLUTION: remove the shared memory chunk by running STAR with --genomeLoad Remove, and restart STAR" << flush; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INCONSISTENT_DATA, P); - } - + }; P.inOut->logMain << "Using shared memory for genome. key=0x" <logMain, EXIT_CODE_SHM, P); -// }; - if (P.annotScoreScale>0) {//optional allocation - shmNext += nGenome; - } - } - else if (pGe.gLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory - { + } else if (pGe.gLoad=="NoSharedMemory") {// simply allocate memory, do not use shared memory genomeInsertL=0; genomeInsertChrIndFirst=nChrReal; if (pGe.gFastaFiles.at(0)!="-") diff --git a/Parameters.cpp b/Parameters.cpp index ac03c0d..c455ca5 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -426,12 +426,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ///////////////////////////////////////// Old variables - outputBED[0]=0; outputBED[1]=0; //controls the format of starBED output. Will be replaced with HDF5 output - - //annot scoring - annotScoreScale=0; - annotSignalFile="-"; - //splitting Qsplit=0; maxNsplit=10; @@ -448,7 +442,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters runDirPerm=S_IRWXU; } else if (runDirPermIn=="All_RWX") { -// umask(0); //this should be defined by the user! runDirPerm= S_IRWXU | S_IRWXG | S_IRWXO; } else { diff --git a/Parameters.h b/Parameters.h index c663f20..4c19ab5 100644 --- a/Parameters.h +++ b/Parameters.h @@ -257,21 +257,6 @@ class Parameters { intScore scoreStitchSJshift;//Max negative score when double scoreGenomicLengthLog2scale; - //old variables: CLEAN-up needed - char outputBED[MAX_OUTPUT_FLAG]; //output flags - - //SW search - uint swMode, swWinCoverageMinP; - //SW penalties - uint swPeoutFilterMatchNmin, swPenMismatch, swPenGapOpen, swPenGapExtend; - uint swHsize; - - int annotScoreScale;//overall multiplication factor for the annotation - string annotSignalFile;//binary file with annotation signal - - uint sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered - - //quantification parameters //input @@ -324,8 +309,9 @@ class Parameters { char Qsplit; uint maxNsplit, minLsplit, minLmap; - //limits - + //not really parameters, but global variables: + array,2> sjAll; + uint64 sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered ////////////////////// CLEAN-UP needed InOutStreams *inOut; //main input output streams diff --git a/Solo.cpp b/Solo.cpp index bbbc7fc..45d7e6c 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -14,8 +14,8 @@ Solo::Solo(int feTy, Parameters &Pin, Transcriptome &inTrans) if (featureType==1) {//read the SJ array ifstream sjStream((P.outFileNamePrefix+"SJ.out.tab").c_str()); - uint64 sj[2]; - while (sjStream >> sj[0] >> sj[1]) { + uint64 sj[3]; + while (sjStream >> sj[0] >> sj[1] >> sj[2]) { for (int ii=0; ii<2; ii++) sjAll[ii].push_back(sj[ii]); sjStream.ignore ((uint32) (-1), '\n'); diff --git a/SoloCB.h b/SoloCB.h index 8fa107b..a9ddfa1 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -27,7 +27,7 @@ class SoloCB { void addSoloCBcounts(const SoloCB &soloCBin); void addSoloCBstats(const SoloCB &soloCBin); void statsOut(ofstream &streamOut); - void inputUMIfeatureCBrecords(uint32 **cbP, uint32 *cbReadCountExact, array,2> sjAll); + void inputUMIfeatureCBrecords(uint32 **cbP, uint32 *cbReadCountExact); private: const int32 featureType; diff --git a/SoloCB_inputUMIfeatureCBrecords.cpp b/SoloCB_inputUMIfeatureCBrecords.cpp index e4685f1..498a739 100644 --- a/SoloCB_inputUMIfeatureCBrecords.cpp +++ b/SoloCB_inputUMIfeatureCBrecords.cpp @@ -17,13 +17,13 @@ bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 return true; }; -void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTotal, array,2> sjAll) +void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTotal) { {//load exact matches strU_0->flush(); strU_0->seekg(0,ios::beg); uint32 cb, feature, umi; - while (inputFeatureUmi(strU_0,featureType, feature, umi, sjAll)) { + while (inputFeatureUmi(strU_0,featureType, feature, umi, P.sjAll)) { *strU_0 >> cb; if (feature != (uint32)(-1)){ cbP[cb][0]=feature; @@ -38,7 +38,7 @@ void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTot strU_1->flush(); strU_1->seekg(0,ios::beg); uint32 cb, feature, umi; - while (inputFeatureUmi(strU_1,featureType, feature, umi, sjAll)) { + while (inputFeatureUmi(strU_1,featureType, feature, umi, P.sjAll)) { *strU_1 >> cb; if (cbReadCountExactTotal[cb]>0) { if (feature != (uint32)(-1)){ @@ -56,7 +56,7 @@ void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTot strU_2->flush(); strU_2->seekg(0,ios::beg); uint32 cb=0, feature, umi, ncb; - while (inputFeatureUmi(strU_2,featureType, feature, umi, sjAll)) { + while (inputFeatureUmi(strU_2,featureType, feature, umi, P.sjAll)) { if (feature == (uint32) (-1)) { strU_2->ignore('\n',(uint32) (-1));//ignore until the end of the line continue; //nothing to record diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp index e0713c5..c6848ed 100644 --- a/Solo_soloPostMap.cpp +++ b/Solo_soloPostMap.cpp @@ -49,7 +49,7 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <inputUMIfeatureCBrecords(rCBpa,soloCBsum->cbReadCountExact, sjAll); + soloCBall[ii]->inputUMIfeatureCBrecords(rCBpa,soloCBsum->cbReadCountExact); }; for (uint32 iCB=0; iCB Date: Tue, 25 Dec 2018 18:08:51 -0500 Subject: [PATCH 396/536] Solo: SJ output finalized. --- Parameters.h | 1 - STAR.cpp | 3 +++ Solo.cpp | 11 -------- SoloCB_inputUMIfeatureCBrecords.cpp | 10 ++++---- Solo_outputNumUMIperGeneCB.cpp | 39 +++++++++++++++++------------ Solo_soloPostMap.cpp | 5 +++- Stats.h | 2 +- 7 files changed, 36 insertions(+), 35 deletions(-) diff --git a/Parameters.h b/Parameters.h index 4c19ab5..a654a6e 100644 --- a/Parameters.h +++ b/Parameters.h @@ -304,7 +304,6 @@ class Parameters { //chimeric ParametersChimeric pCh; - //splitting char Qsplit; uint maxNsplit, minLsplit, minLmap; diff --git a/STAR.cpp b/STAR.cpp index b45543c..64c7068 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -358,6 +358,9 @@ int main(int argInN, char* argIn[]) { P.limitBAMsortRAM=mainGenome.nGenome+mainGenome.SA.lengthByte+mainGenome.SAi.lengthByte; }; + time(&g_statsAll.timeFinishMap); + *P.inOut->logStdOut << timeMonthDayTime(g_statsAll.timeFinishMap) << " ..... finished mapping\n" <> sj[0] >> sj[1] >> sj[2]) { - for (int ii=0; ii<2; ii++) - sjAll[ii].push_back(sj[ii]); - sjStream.ignore ((uint32) (-1), '\n'); - }; - sjStream.close(); - }; }; diff --git a/SoloCB_inputUMIfeatureCBrecords.cpp b/SoloCB_inputUMIfeatureCBrecords.cpp index 498a739..7f6d55d 100644 --- a/SoloCB_inputUMIfeatureCBrecords.cpp +++ b/SoloCB_inputUMIfeatureCBrecords.cpp @@ -1,7 +1,7 @@ #include "SoloCB.h" #include "binarySearch2.h" -bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> sjAll) +bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) { if (!(*strIn >> umi)) //end of file return false; @@ -23,7 +23,7 @@ void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTot strU_0->flush(); strU_0->seekg(0,ios::beg); uint32 cb, feature, umi; - while (inputFeatureUmi(strU_0,featureType, feature, umi, P.sjAll)) { + while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { *strU_0 >> cb; if (feature != (uint32)(-1)){ cbP[cb][0]=feature; @@ -34,7 +34,7 @@ void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTot }; }; - {//load 1MM + {//1 match strU_1->flush(); strU_1->seekg(0,ios::beg); uint32 cb, feature, umi; @@ -51,8 +51,8 @@ void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTot }; }; }; - - {//load 2MM + + {//2 matches strU_2->flush(); strU_2->seekg(0,ios::beg); uint32 cb=0, feature, umi, ncb; diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp index 7a6d94d..9a0522c 100644 --- a/Solo_outputNumUMIperGeneCB.cpp +++ b/Solo_outputNumUMIperGeneCB.cpp @@ -15,36 +15,43 @@ void Solo::outputNumUMIperGeneCB() //nUMImin=0; //full output - ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); - for (uint32 ii=0; ii1) {//3 counts recorded - cbGeneMatrix <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; + countMatrixStream <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; rCBpp += 4; } else {//1 recorded - cbGeneMatrix <<"\t1\t1"; + countMatrixStream <<"\t1\t1"; rCBpp +=2; }; - cbGeneMatrix << '\n'; + countMatrixStream << '\n'; }; }; - cbGeneMatrix.flush(); + countMatrixStream.flush(); //*soloStatsStream << setw(50) << "Maximum number of UMIs per CB" << setw(15) << nUperCB[0] << '\n'; //*soloStatsStream << setw(50) << "Robust maximum number of UMIs per CB" << setw(15) << nUMImax << '\n'; diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp index c6848ed..b807b9a 100644 --- a/Solo_soloPostMap.cpp +++ b/Solo_soloPostMap.cpp @@ -6,6 +6,10 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) { if (pSolo.type==0 || !pSolo.featureYes[featureType]) return; + + time_t rawTime; + time(&rawTime); + P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Starting Solo post-map " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <RA->soloCB[featureType]; @@ -44,7 +48,6 @@ void Solo::soloPostMap(ReadAlignChunk **RAchunk) }; //read and store the CB/gene/UMI from files - time_t rawTime; time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" < Date: Sat, 29 Dec 2018 14:39:31 -0500 Subject: [PATCH 397/536] Added gene name and biotype output, and gene output for splice junctions. --- SjdbClass.h | 7 +- Solo_outputNumUMIperGeneCB.cpp | 2 +- Transcriptome.cpp | 44 +--- Transcriptome.h | 17 +- loadGTF.cpp | 469 +++++++++++++++++---------------- 5 files changed, 272 insertions(+), 267 deletions(-) diff --git a/SjdbClass.h b/SjdbClass.h index 97479c6..f809911 100644 --- a/SjdbClass.h +++ b/SjdbClass.h @@ -2,13 +2,16 @@ #define DEF_SjdbClass #include "IncludeDefine.h" +#include class SjdbClass { public: vector chr; - vector start,end; + vector start,end; vector str; - vector priority; + vector priority; + + vector> gene; }; #endif diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp index 9a0522c..c308f90 100644 --- a/Solo_outputNumUMIperGeneCB.cpp +++ b/Solo_outputNumUMIperGeneCB.cpp @@ -19,7 +19,7 @@ void Solo::outputNumUMIperGeneCB() //output genes ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); for (uint32 ii=0; ii> nTr; trS=new uint [nTr]; trE=new uint [nTr]; @@ -21,7 +19,6 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ trStr=new uint8 [nTr]; trID.resize(nTr); trGene=new uint32 [nTr]; - for (uint32 itr=0; itr> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr] >> trGene[itr]; @@ -36,11 +33,9 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ }; P.inOut->logMain << "Loaded transcript database, nTr="<> nEx; exSE = new uint32 [2*nEx]; exLenCum = new uint32 [nEx]; @@ -48,38 +43,34 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ exinfo >> exSE[2*iex] >> exSE[2*iex+1] >> exLenCum[iex]; //reading all elements one after another }; P.inOut->logMain << "Loaded exon database, nEx="<> nGe; geID.resize(nGe); + geName.resize(nGe); + geBiotype.resize(nGe); for (uint ii=0;ii> geID[ii]; + geStream >> geID[ii] >> geName[ii] >> geBiotype[ii]; }; geStream.close(); - }; - - if ( P.quant.geCount.yes ) {//load exon-gene structures + //load exon-gene structures + if ( P.quant.geCount.yes ) { ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); exinfo >> exG.nEx; - exG.s=new uint64[exG.nEx]; exG.e=new uint64[exG.nEx]; exG.eMax=new uint64[exG.nEx]; exG.str=new uint8[exG.nEx]; exG.g=new uint32[exG.nEx]; exG.t=new uint32[exG.nEx]; - - for (uint ii=0;ii> exG.s[ii] >> exG.e[ii] >> str1 >> exG.g[ii] >> exG.t[ii]; exG.str[ii] = (uint8) str1; }; exinfo.close(); - //calculate eMax exG.eMax[0]=exG.e[0]; for (uint iex=1;iexgeneCounts.nType; itype++) - { + for (int itype=0; itypegeneCounts.nType; itype++) { qOut << "\t" <geneCounts.nType; itype++) - { - qOut << "\t" <geneCounts.cMulti ; + for (int itype=0; itypegeneCounts.nType; itype++){ + qOut << "\t" <geneCounts.cMulti; }; qOut << "\n"; - + qOut << "N_noFeature"; - for (int itype=0; itypegeneCounts.nType; itype++) - { + for (int itype=0; itypegeneCounts.nType; itype++){ qOut << "\t" <geneCounts.cNone[itype]; }; qOut << "\n"; qOut << "N_ambiguous"; - for (int itype=0; itypegeneCounts.nType; itype++) - { + for (int itype=0; itypegeneCounts.nType; itype++) { qOut << "\t" <geneCounts.cAmbig[itype]; }; qOut << "\n"; - for (uint32 ig=0; iggeneCounts.nType; itype++) - { + for (int itype=0; itypegeneCounts.nType; itype++) { qOut << "\t" <geneCounts.gCount[itype][ig]; }; qOut << "\n"; diff --git a/Transcriptome.h b/Transcriptome.h index 8629ffe..31bc4d0 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -10,17 +10,9 @@ class Transcriptome { public: - - //methods: - Transcriptome (Parameters &Pin); //create transcriptome structure, load and initialize parameters - uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readTrGenes);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr - void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts - void quantsAllocate(); //allocate quants structure - void quantsOutput(); //output quantification files - string trInfoDir; - vector trID, geID; //transcript/gene IDs + vector trID, geID, geName, geBiotype; //transcript/gene IDs uint32 nTr, nGe; //number of transcript/genes uint *trS, *trE, *trEmax; //transcripts start,end,end-max @@ -41,6 +33,13 @@ class Transcriptome { } exG; Quantifications *quants; + + //methods: + Transcriptome (Parameters &Pin); //create transcriptome structure, load and initialize parameters + uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readTrGenes);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr + void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts + void quantsAllocate(); //allocate quants structure + void quantsOutput(); //output quantification files private: Parameters &P; //normal "genomic" parameters diff --git a/loadGTF.cpp b/loadGTF.cpp index a21d44a..67f779d 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -33,272 +33,291 @@ -uint loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen) {//load gtf file, add junctions to P.sjdb +uint64 loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen) {//load gtf file, add junctions to P.sjdb //returns number of added junctions - if (mapGen.sjdbOverhang>0 && mapGen.pGe.sjdbGTFfile!="-") { - time_t rawTime; - time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logMain, EXIT_CODE_INPUT_FILES, P); - }; + if (mapGen.sjdbOverhang==0 || mapGen.pGe.sjdbGTFfile=="-") //no GTF + return 0; + + time_t rawTime; + time(&rawTime); + P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <> geneAttr; + + ifstream sjdbStreamIn ( mapGen.pGe.sjdbGTFfile.c_str() ); + if (sjdbStreamIn.fail()) { + ostringstream errOut; + errOut << "FATAL error, could not open file pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<"\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); + }; - if (mapGen.chrNameIndex.size()==0) - { - for (uint ii=0;ii transcriptIDnumber, geneIDnumber; + std::map transcriptIDnumber, geneIDnumber; - uint exonN=0; - while (sjdbStreamIn.good()) {//count the number of exons - string chr1,ddd2,featureType; - sjdbStreamIn >> chr1 >> ddd2 >> featureType; - if (chr1.substr(0,1)!="#" && featureType==mapGen.pGe.sjdbGTFfeatureExon) { - exonN++; - }; - sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line + uint64 exonN=0; + while (sjdbStreamIn.good()) {//count the number of exons + string chr1,ddd2,featureType; + sjdbStreamIn >> chr1 >> ddd2 >> featureType; + if (chr1.substr(0,1)!="#" && featureType==mapGen.pGe.sjdbGTFfeatureExon) { + exonN++; }; + sjdbStreamIn.ignore(1000000000,'\n'); //ignore the rest of the line + }; - if (exonN==0) { - ostringstream errOut; - errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << mapGen.pGe.sjdbGTFfile <<"\n"; - errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; - errOut << " Make sure the GTF file is unzipped.\n"; - errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); - }; + if (exonN==0) { + ostringstream errOut; + errOut << "Fatal INPUT FILE error, no ""exon"" lines in the GTF file: " << mapGen.pGe.sjdbGTFfile <<"\n"; + errOut << "Solution: check the formatting of the GTF file, it must contain some lines with ""exon"" in the 3rd column.\n"; + errOut << " Make sure the GTF file is unzipped.\n"; + errOut << " If exons are marked with a different word, use --sjdbGTFfeatureExon .\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); + }; - uint* exonLoci=new uint [exonN*GTF_exonLoci_size]; - char* transcriptStrand = new char [exonN]; - vector transcriptID, geneID; + uint64* exonLoci=new uint64 [exonN*GTF_exonLoci_size]; + char* transcriptStrand = new char [exonN]; + vector transcriptID, geneID; - exonN=0;//re-calculate - sjdbStreamIn.clear(); - sjdbStreamIn.seekg(0,ios::beg); - while (sjdbStreamIn.good()) { + exonN=0;//re-calculate + sjdbStreamIn.clear(); + sjdbStreamIn.seekg(0,ios::beg); + while (sjdbStreamIn.good()) { - string oneLine,chr1,ddd2,featureType; - getline(sjdbStreamIn,oneLine); - istringstream oneLineStream (oneLine); + string oneLine,chr1,ddd2,featureType; + getline(sjdbStreamIn,oneLine); + istringstream oneLineStream (oneLine); - oneLineStream >> chr1 >> ddd2 >> featureType; - if (chr1.substr(0,1)!="#" && featureType==mapGen.pGe.sjdbGTFfeatureExon) {//exonic line, process + oneLineStream >> chr1 >> ddd2 >> featureType; + if (chr1.substr(0,1)!="#" && featureType==mapGen.pGe.sjdbGTFfeatureExon) {//exonic line, process - if (mapGen.pGe.sjdbGTFchrPrefix!="-") chr1=mapGen.pGe.sjdbGTFchrPrefix + chr1; + if (mapGen.pGe.sjdbGTFchrPrefix!="-") chr1=mapGen.pGe.sjdbGTFchrPrefix + chr1; - if (mapGen.chrNameIndex.count(chr1)==0) {//chr not in Genome - P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": chromosome '"<logMain << oneLine <<"\n"<logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": chromosome '"<logMain << oneLine <<"\n"<> ex1 >> ex2 >> ddd2 >> str1 >> ddd2; //read all fields except the last - - string oneLine1; - getline(oneLineStream, oneLine1);//get the last field - replace(oneLine1.begin(),oneLine1.end(),';',' ');//to separate attributes - replace(oneLine1.begin(),oneLine1.end(),'=',' ');//for GFF3 processing - oneLineStream.str(oneLine1); - oneLineStream.clear(); - - string trID(""), gID(""), attr1(""); - while (oneLineStream.good()) { - oneLineStream >> attr1; - if (attr1==mapGen.pGe.sjdbGTFtagExonParentTranscript) { - oneLineStream >> trID; - trID.erase(remove(trID.begin(),trID.end(),'"'),trID.end()); - trID.erase(remove(trID.begin(),trID.end(),';'),trID.end()); - } else if (attr1==mapGen.pGe.sjdbGTFtagExonParentGene) { - oneLineStream >> gID; - gID.erase(remove(gID.begin(),gID.end(),'"'),gID.end()); - gID.erase(remove(gID.begin(),gID.end(),';'),gID.end()); + uint64 ex1,ex2; + char str1; + oneLineStream >> ex1 >> ex2 >> ddd2 >> str1 >> ddd2; //read all fields except the last + + string oneLine1; + getline(oneLineStream, oneLine1);//get the last field + replace(oneLine1.begin(),oneLine1.end(),';',' ');//to separate attributes + replace(oneLine1.begin(),oneLine1.end(),'=',' ');//for GFF3 processing + oneLineStream.str(oneLine1); + oneLineStream.clear(); + + //string trID(""), gID(""), attr1(""),gName(""),gBiotype(""); + array exAttrNames({mapGen.pGe.sjdbGTFtagExonParentTranscript,mapGen.pGe.sjdbGTFtagExonParentGene,"gene_name", "gene_biotype"}); //trID, gID, gName, gBiotype + array exAttr; //trID, gID, gName, gBiotype + while (oneLineStream.good()) { + string attrName1(""); + oneLineStream >> attrName1; + for (uint32 ii=0; ii> attr1; + attr1.erase(remove(attr1.begin(),attr1.end(),'"'),attr1.end()); + attr1.erase(remove(attr1.begin(),attr1.end(),';'),attr1.end()); + exAttr[ii]=attr1; }; }; - if (trID=="") {//no transcript ID - P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": no transcript_id for line:\n"; - P.inOut->logMain << oneLine <<"\n"<logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": no transcript_id for line:\n"; + P.inOut->logMain << oneLine <<"\n"< (exAttr[0],(uint64) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value + if (transcriptID.size() < transcriptIDnumber.size()) transcriptID.push_back(exAttr[0]); + if (str1=='+') { + transcriptStrand[transcriptIDnumber[exAttr[0]]]=1; + } else if (str1=='-') { + transcriptStrand[transcriptIDnumber[exAttr[0]]]=2; } else { - transcriptIDnumber.insert(std::pair (trID,(uint) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value - if (transcriptID.size() < transcriptIDnumber.size()) transcriptID.push_back(trID); - if (str1=='+') { - transcriptStrand[transcriptIDnumber[trID]]=1; - } else if (str1=='-') { - transcriptStrand[transcriptIDnumber[trID]]=2; - } else { - transcriptStrand[transcriptIDnumber[trID]]=0; - }; + transcriptStrand[transcriptIDnumber[exAttr[0]]]=0; }; + }; - if (gID=="") {//no gene ID - P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": no gene_id for line:\n"; - P.inOut->logMain << oneLine <<"\n"< (gID,(uint) geneIDnumber.size()));//insert new element if necessary with a $ - if (geneID.size() < geneIDnumber.size()) geneID.push_back(gID); + if (exAttr[1]=="") {//no gene ID + P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": no gene_id for line:\n"; + P.inOut->logMain << oneLine <<"\n"< (exAttr[1],(uint64) geneIDnumber.size()));//insert new element if necessary with a $ + if (geneID.size() < geneIDnumber.size()) {//new gene is added + geneID.push_back(exAttr[1]); + geneAttr.push_back({exAttr[2],exAttr[3]}); }; - - exonLoci[GTF_exonTrID(exonN)]=transcriptIDnumber[trID]; - exonLoci[GTF_exonStart(exonN)]=ex1+mapGen.chrStart[mapGen.chrNameIndex[chr1]]-1; - exonLoci[GTF_exonEnd(exonN)]=ex2+mapGen.chrStart[mapGen.chrNameIndex[chr1]]-1; - exonLoci[GTF_exonGeID(exonN)]=geneIDnumber[gID]; - ++exonN; - - };//if (chr1.substr(0,1)!="#" && featureType=="exon") - };// - - if (exonN==0) { - ostringstream errOut; - errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << mapGen.pGe.sjdbGTFfile <<"\n"; - errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; - exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); - }; - //sort exonLoci by transcript ID and exon coordinates - qsort((void*) exonLoci, exonN, sizeof(uint)*GTF_exonLoci_size, funCompareUint2); - - {//exon-gene data structures: exon start/end/strand/gene/transcript - //re-sort exons by exons loci - uint* exgeLoci=new uint [exonN*GTF_exgeLoci_size]; //this also contains transcripts start and end - - for (uint iex=0; iex); + exonLoci[GTF_exonTrID(exonN)]=transcriptIDnumber[exAttr[0]]; + exonLoci[GTF_exonStart(exonN)]=ex1+mapGen.chrStart[mapGen.chrNameIndex[chr1]]-1; + exonLoci[GTF_exonEnd(exonN)]=ex2+mapGen.chrStart[mapGen.chrNameIndex[chr1]]-1; + exonLoci[GTF_exonGeID(exonN)]=geneIDnumber[exAttr[1]]; + ++exonN; + };//if (chr1.substr(0,1)!="#" && featureType=="exon") + };// + + if (exonN==0) { + ostringstream errOut; + errOut << "Fatal INPUT FILE error, no valid ""exon"" lines in the GTF file: " << mapGen.pGe.sjdbGTFfile <<"\n"; + errOut << "Solution: check the formatting of the GTF file. Most likely cause is the difference in chromosome naming between GTF and FASTA file.\n"; + exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); + }; + //sort exonLoci by transcript ID and exon coordinates + qsort((void*) exonLoci, exonN, sizeof(uint64)*GTF_exonLoci_size, funCompareUint2); + + {//exon-gene data structures: exon start/end/strand/gene/transcript + //re-sort exons by exons loci + uint64* exgeLoci=new uint64 [exonN*GTF_exgeLoci_size]; //this also contains transcripts start and end + + for (uint64 iex=0; iex); - ofstream & geOut = ofstrOpen(dirOut+"/geneInfo.tab",ERROR_OUT,P); - geOut << geneID.size() << "\n"; - for (uint ig=0; ig); - - ofstream trOut ((dirOut+"/transcriptInfo.tab").c_str()); - trOut<> mapGen.pGe.gChrBinNbits]; - if ( exonLoci[GTF_exonStart(exI)]<=exonLoci[GTF_exonEnd(exI-1)]+1 ) { - P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": overlapping or touching exons:\n"; - P.inOut->logMain << mapGen.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-mapGen.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-mapGen.chrStart[chr1] <<"\n"; - P.inOut->logMain << mapGen.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-mapGen.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-mapGen.chrStart[chr1] <<"\n"; - } else { - sjLoci[sjN*3]=exonLoci[GTF_exonEnd(exI-1)]+1; - sjLoci[sjN*3+1]=exonLoci[GTF_exonStart(exI)]-1; - sjLoci[sjN*3+2]=(uint) transcriptStrand[trIDn]; - sjN++; - }; - } else { - trIDn=exonLoci[GTF_exonTrID(exI)]; + qsort((void*) extrLoci, exonN, sizeof(uint64)*GTF_extrLoci_size, funCompareArrays); + + ofstream trOut ((dirOut+"/transcriptInfo.tab").c_str()); + trOut<> mapGen.pGe.gChrBinNbits]; - sjdbLoci.chr.push_back(mapGen.chrName[chr1]); - sjdbLoci.start.push_back(sjLoci[ii*3]+1-mapGen.chrStart[chr1]); - sjdbLoci.end.push_back(sjLoci[ii*3+1]+1-mapGen.chrStart[chr1]); - sjdbLoci.str.push_back(strandChar[sjLoci[ii*3+2]]); + //make junctions + const uint64 sjStride=4; + uint64* sjLoci = new uint64 [exonN*sjStride]; + uint64 trIDn=exonLoci[0]; + uint64 sjN=0; + for (uint64 exI=1; exI> mapGen.pGe.gChrBinNbits]; + if ( exonLoci[GTF_exonStart(exI)]<=exonLoci[GTF_exonEnd(exI-1)]+1 ) { + P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": overlapping or touching exons:\n"; + P.inOut->logMain << mapGen.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI-1)]+1-mapGen.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI-1)]+1-mapGen.chrStart[chr1] <<"\n"; + P.inOut->logMain << mapGen.chrName[chr1] <<"\t"<< exonLoci[GTF_exonStart(exI)]+1-mapGen.chrStart[chr1] << "\t"<< exonLoci[GTF_exonEnd(exI)]+1-mapGen.chrStart[chr1] <<"\n"; + } else { + sjLoci[sjN*sjStride]=exonLoci[GTF_exonEnd(exI-1)]+1; + sjLoci[sjN*sjStride+1]=exonLoci[GTF_exonStart(exI)]-1; + sjLoci[sjN*sjStride+2]=(uint64) transcriptStrand[trIDn]; + sjLoci[sjN*sjStride+3]=exonLoci[GTF_exonGeID(exI)]+1;//genes are numbered from 1 + sjN++; }; + } else { + trIDn=exonLoci[GTF_exonTrID(exI)]; }; + }; - ofstream sjdbList ((dirOut+"/sjdbList.fromGTF.out.tab").c_str()); - for (uint ii=sjdbN1;ii> mapGen.pGe.gChrBinNbits]; + sjdbLoci.chr.push_back(mapGen.chrName[chr1]); + sjdbLoci.start.push_back(sjLoci[ii*sjStride]+1-mapGen.chrStart[chr1]); + sjdbLoci.end.push_back(sjLoci[ii*sjStride+1]+1-mapGen.chrStart[chr1]); + sjdbLoci.str.push_back(strandChar[sjLoci[ii*sjStride+2]]); + sjdbLoci.gene.push_back({sjLoci[ii*sjStride+3]}); + } else { + sjdbLoci.gene.back().insert(sjLoci[ii*sjStride+3]); }; - sjdbList.close(); - - P.inOut->logMain << "Processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<", found:\n"; - P.inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; - time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" <logMain << "Processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<", found:\n"; + P.inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; + time(&rawTime); + P.inOut->logMain << timeMonthDayTime(rawTime) <<" ..... finished GTF processing\n" < Date: Sat, 29 Dec 2018 19:24:15 -0500 Subject: [PATCH 398/536] Solo: changing SJ output logic to better match gene output. --- ParametersSolo.cpp | 13 ++++++-- ReadAlign.cpp | 51 +++++++++++-------------------- ReadAlign_outputAlignments.cpp | 5 +-- SoloCB.h | 2 +- SoloCB_readCB.cpp | 56 +++++++++++++++++++--------------- Solo_outputNumUMIperGeneCB.cpp | 2 +- 6 files changed, 64 insertions(+), 65 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index aee2102..02b8903 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -53,12 +53,21 @@ void ParametersSolo::initialize(Parameters *pPin) ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloFeatures="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; - + if (!featureYes[0]) { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: --soloFeatures has to contain"<inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; ///////////// finished parameters input //make output directory if needed diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 1ce1b66..d687e3b 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -7,33 +7,24 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, in : mapGen(genomeIn), P(Pin), chunkTr(TrIn) { readNmates=P.readNmates; - winBin = new uintWinBin* [2]; - winBin[0] = new uintWinBin [P.winBinN]; winBin[1] = new uintWinBin [P.winBinN]; memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); memset(winBin[1],255,sizeof(winBin[0][0])*P.winBinN); - //RNGs rngMultOrder.seed(P.runRNGseed*(iChunk+1)); rngUniformReal0to1=std::uniform_real_distribution (0.0, 1.0); - //transcriptome if ( P.quant.trSAM.yes ) { alignTrAll=new Transcript [P.alignTranscriptsPerReadNmax]; }; - -// statsRA=new StatsAll; - //split splitR=new uint*[3]; splitR[0]=new uint[P.maxNsplit]; splitR[1]=new uint[P.maxNsplit]; splitR[2]=new uint[P.maxNsplit]; - //alignments PC=new uiPC[P.seedPerReadNmax]; WC=new uiWC[P.alignWindowsPerReadNmax]; - nWA=new uint[P.alignWindowsPerReadNmax]; nWAP=new uint[P.alignWindowsPerReadNmax]; WALrec=new uint[P.alignWindowsPerReadNmax]; @@ -49,59 +40,51 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, in #endif WA=new uiWA*[P.alignWindowsPerReadNmax]; - for (uint ii=0;iicbReadCountExact; + soloCB[1]->cbReadCountExact=soloCB[0]->cbReadCountExact;//this will be calculated onces + }; }; void ReadAlign::resetN () {//reset resets the counters to 0 for a new read diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 079a174..e1154ec 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -177,8 +177,9 @@ void ReadAlign::outputAlignments() { }; if (outFilterPassed) {//otherwise the alignment was held and will be counted at the 2nd stage - soloCB[0]->readCB(iReadAll, readNameExtra.at(0), nTr, readTrGenes, trMult[0]); - soloCB[1]->readCB(iReadAll, readNameExtra.at(0), nTr, readTrGenes, trMult[0]); + bool readRecord=true; + readRecord=soloCB[0]->readCB(iReadAll, readNameExtra.at(0), nTr, readTrGenes, trMult[0], readRecord); + soloCB[1]->readCB(iReadAll, readNameExtra.at(0), nTr, readTrGenes, trMult[0], readRecord); }; if (unmapType>=0) { diff --git a/SoloCB.h b/SoloCB.h index a9ddfa1..dfedcb1 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -23,7 +23,7 @@ class SoloCB { string cbSeq, umiSeq, cbQual, umiQual; SoloCB (int32 feTy, Parameters &Pin, int iChunk); - void readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set &readTrGenes, Transcript *alignOut); + bool readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set &readTrGenes, Transcript *alignOut, bool readRecord); void addSoloCBcounts(const SoloCB &soloCBin); void addSoloCBstats(const SoloCB &soloCBin); void statsOut(ofstream &streamOut); diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 7b9aa10..98f2056 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -17,10 +17,10 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 g return 0; //this should not happen }; -void SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set &readTrGenes, Transcript *alignOut) +bool SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set &readTrGenes, Transcript *alignOut, bool readRecord) { - if (pSolo.type==0 || !pSolo.featureYes[featureType]) - return; + if (pSolo.type==0 || !pSolo.featureYes[featureType] || !readRecord) + return false; int32 cbI=-999; uint32 cbB, umiB; @@ -30,20 +30,32 @@ void SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set2 Ns, might already be filtered by Illumina stats.V[stats.nNinBarcode]++; - return; - } else if (posN==-1) {//no Ns + return false; + } else if (posN==-1 && featureType==0) {//no Ns, count only for feattureType==gene cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); if (cbI>=0) {//exact match cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs }; }; - + + //check UMIs, return if bad UMIs + if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns + stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs + return false; + }; + if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { + stats.V[stats.nUMIhomopolymer]++; + return false; + }; + + //unmapped if (nTr==0) { stats.V[stats.nUnmapped]++; - return; + return false; }; vector> readSJs; @@ -51,36 +63,28 @@ void SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set1) { stats.V[stats.nAmbigFeature]++; if (nTr>1) stats.V[stats.nAmbigFeatureMultimap]++; - return; + return false; }; } else if (featureType==1) {//SJs alignOut->extractSpliceJunctions(readSJs); if (readSJs.empty()) { - stats.V[stats.nNoFeature]++; + stats.V[stats.nNoFeature]++; + return false; } else if (nTr>1) {//record SJs from the read stats.V[stats.nAmbigFeature]++; stats.V[stats.nAmbigFeatureMultimap]++; + return false; }; }; - - //check UMIs, return if bad UMIs - if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns - stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs - return; - }; - if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { - stats.V[stats.nUMIhomopolymer]++; - return; - }; if (cbI>=0) {//exact match cbReadCount[cbI] += outputReadCB(strU_0, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); - return; + return true; }; if (posN>=0) {//one N @@ -91,17 +95,18 @@ void SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set=0) { if (cbI>=0) {//had another match already stats.V[stats.nTooMany]++; - return;//with N in CB, do not allow matching >1 in WL + return false;//with N in CB, do not allow matching >1 in WL }; cbI=cbI1; }; }; if (cbI>=0) { cbReadCount[cbI]+= outputReadCB(strU_1, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); + return true; } else {//no match stats.V[stats.nNoMatch]++; + return false; }; - return; } else {//look for 1MM, posN==-1, no Ns string cbOutString(""); uint32 ncbOut1=0; @@ -120,12 +125,13 @@ void SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set Date: Sat, 29 Dec 2018 22:11:24 -0500 Subject: [PATCH 399/536] Decoupling CB/UMI matching and feature output. --- SoloBarcodes.cpp | 21 ++++++++ SoloBarcodes.h | 32 ++++++++++++ SoloBarcodes_readCBandUMI.cpp | 88 ++++++++++++++++++++++++++++++++ SoloCB.h | 2 +- SoloCB_readCB.cpp | 95 +++++------------------------------ SoloReads.cpp | 12 ----- SoloReads.h | 24 --------- 7 files changed, 154 insertions(+), 120 deletions(-) create mode 100644 SoloBarcodes.cpp create mode 100644 SoloBarcodes.h create mode 100644 SoloBarcodes_readCBandUMI.cpp delete mode 100644 SoloReads.cpp delete mode 100644 SoloReads.h diff --git a/SoloBarcodes.cpp b/SoloBarcodes.cpp new file mode 100644 index 0000000..4fd1dd2 --- /dev/null +++ b/SoloBarcodes.cpp @@ -0,0 +1,21 @@ +#include "SoloCB.h" +#include "streamFuns.h" + +SoloBarcodes::SoloBarcodes(Parameters &Pin) + : featureType(feTy), P(Pin), pSolo(P.pSolo) +{ + if (pSolo.type==0) + return; + + cbReadCountExact = new uint32[pSolo.cbWL.size()]; + for (uint32 ii=0; ii +#include "IncludeDefine.h" +#include "Parameters.h" + +class SoloBarcodes { +public: + + uint32 homoPolymer[4];//homopolymer constants + string cbSeq, umiSeq, cbQual, umiQual; + uint32 cbB,umiB; + int32 cbI; + int32 cbMatch;//0=exact, 1=1 match with 1MM, 2= >1 matches with 1MM + string cbMatchString;//CB matches and qualities + uint32 *cbReadCountExact; + + struct { + enum { nNinBarcode, nUMIhomopolymer, nTooMany, nNoExactMatch, nNoMatch, nExactMatch, nMatch, nStats}; + uint64 V[nStats]; + vector names={"nNinBarcode","nUMIhomopolymer","nTooMany","nNoExactMatch","nNoMatch","nExactMatch","nMatch"}; + } stats; + + + SoloBarcodes(Parameters &Pin); + +private: + Parameters &P; + ParametersSolo &pSolo; +}; + +#endif diff --git a/SoloBarcodes_readCBandUMI.cpp b/SoloBarcodes_readCBandUMI.cpp new file mode 100644 index 0000000..3077fe2 --- /dev/null +++ b/SoloBarcodes_readCBandUMI.cpp @@ -0,0 +1,88 @@ +#include "SoloBarcodes.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +bool SoloBarcodes::readCBandUMI(string &readNameExtra) +{ + if (pSolo.type==0) + return false; + + cbMatch=-1; + + cbSeq=readNameExtra.substr(0,pSolo.cbL); + umiSeq=readNameExtra.substr(pSolo.cbL,pSolo.umiL); + cbQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1,pSolo.cbL); + umiQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1+pSolo.cbL,pSolo.umiL); + + //check UMIs, return if bad UMIs + if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns + stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs + return false; + }; + if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { + stats.V[stats.nUMIhomopolymer]++; + return false; + }; + + //convert CB and check for Ns + int32 posN=convertNuclStrToInt32(cbSeq,cbB); + cbI=-999; + if (posN==-2) {//>2 Ns, might already be filtered by Illumina + stats.V[stats.nNinBarcode]++; + return false; + } else if (posN==-1 && featureType==0) {//no Ns, count only for feattureType==gene + cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + if (cbI>=0) {//exact match + cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs + cbMatch=0; + return true; + }; + }; + + cbI=-999; + if (posN>=0) {//one N + uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN + for (uint32 jj=0; jj<4; jj++) { + uint32 cbB1=cbB^(jj<=0) { + if (cbI>=0) {//had another match already + stats.V[stats.nTooMany]++; + return false;//with N in CB, do not allow matching >1 in WL + }; + cbI=cbI1; + }; + }; + if (cbI>=0) { + cbMatch=1; + return true; + } else {//no match + stats.V[stats.nNoMatch]++; + return false; + }; + }; + + //look for 1MM, posN==-1, no Ns + cbMatchString(""); + cbI=-999; + cbMatch=0; + for (uint32 ii=0; ii=0) {//found match + //output all + cbI=cbI1; + ++cbMatch; + cbMatchString += ' ' +to_string(cbI) + ' ' + cbQual.at(pSolo.cbL-1-ii); + cbReadCount[cbI]++;//this read may be counted in many CBs. This is safe for allocating arrays later. The final number of reads per CB will be calculated later. + }; + }; + }; + if (cbMatch==0) {//no matches + stats.V[stats.nNoMatch]++; + cbMatch=-1; + return false; + } else {//one or more matches + return true; + }; +}; diff --git a/SoloCB.h b/SoloCB.h index dfedcb1..90540b4 100644 --- a/SoloCB.h +++ b/SoloCB.h @@ -10,7 +10,7 @@ class SoloCB { uint32 homoPolymer[4];//homopolymer constants - uint32 *cbReadCount, *cbReadCountExact; + uint32 *cbReadCount; fstream *strU_0 ,*strU_1, *strU_2; //unique mappers, CB matches whitelist with 0,1>=2 MM diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp index 98f2056..eb589d4 100644 --- a/SoloCB_readCB.cpp +++ b/SoloCB_readCB.cpp @@ -1,8 +1,9 @@ #include "SoloCB.h" #include "serviceFuns.cpp" #include "SequenceFuns.h" +#include "SoloBarcodes.h" -uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, string stringCB) +uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, string &stringCB) { if (featureType==0) {//genes *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; @@ -17,40 +18,10 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 g return 0; //this should not happen }; -bool SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set &readTrGenes, Transcript *alignOut, bool readRecord) +bool SoloCB::readCB(SoloBarcodes &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) { - if (pSolo.type==0 || !pSolo.featureYes[featureType] || !readRecord) + if (pSolo.type==0 || !pSolo.featureYes[featureType] || soloB.cbMatch<0) return false; - - int32 cbI=-999; - uint32 cbB, umiB; - - cbSeq=readNameExtra.substr(0,pSolo.cbL); - umiSeq=readNameExtra.substr(pSolo.cbL,pSolo.umiL); - cbQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1,pSolo.cbL); - umiQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1+pSolo.cbL,pSolo.umiL); - - //convert CB and check for Ns - int32 posN=convertNuclStrToInt32(cbSeq,cbB); - if (posN==-2) {//>2 Ns, might already be filtered by Illumina - stats.V[stats.nNinBarcode]++; - return false; - } else if (posN==-1 && featureType==0) {//no Ns, count only for feattureType==gene - cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); - if (cbI>=0) {//exact match - cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs - }; - }; - - //check UMIs, return if bad UMIs - if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns - stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs - return false; - }; - if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { - stats.V[stats.nUMIhomopolymer]++; - return false; - }; //unmapped if (nTr==0) { @@ -82,56 +53,14 @@ bool SoloCB::readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set=0) {//exact match - cbReadCount[cbI] += outputReadCB(strU_0, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); + if (soloB.cbMatch==0) {//exact match + cbReadCount[cbI] += outputReadCB(strU_0, featureType, soloB.umiB, *readTrGenes.begin(), readSJs, to_string(soloB.cbI)); return true; - }; - - if (posN>=0) {//one N - uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN - for (uint32 jj=0; jj<4; jj++) { - uint32 cbB1=cbB^(jj<=0) { - if (cbI>=0) {//had another match already - stats.V[stats.nTooMany]++; - return false;//with N in CB, do not allow matching >1 in WL - }; - cbI=cbI1; - }; - }; - if (cbI>=0) { - cbReadCount[cbI]+= outputReadCB(strU_1, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); - return true; - } else {//no match - stats.V[stats.nNoMatch]++; - return false; - }; - } else {//look for 1MM, posN==-1, no Ns - string cbOutString(""); - uint32 ncbOut1=0; - for (uint32 ii=0; ii=0) {//found match - //output all - cbI=cbI1; - ++ncbOut1; - cbOutString += ' ' +to_string(cbI) + ' ' + cbQual.at(pSolo.cbL-1-ii); - cbReadCount[cbI]++;//this read may be counted in many CBs. This is safe for allocating arrays later. The final number of reads per CB will be calculated later. - }; - }; - }; - - if (ncbOut1==0) {//no matches - stats.V[stats.nNoMatch]++; - return false; - } else if (ncbOut1==1){//only one match - cbReadCount[cbI] += outputReadCB(strU_1, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); - return true; - } else {//more than one match - cbReadCount[cbI] += outputReadCB(strU_2, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(ncbOut1) + cbOutString); - return true; - }; + } else if (soloB.cbMatch==1) {//1 match with 1MM + cbReadCount[cbI]+= outputReadCB(strU_1, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); + return true; + } else { + cbReadCount[cbI] += outputReadCB(strU_2, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(soloB.cbMatch) + cbOutString); + return true; }; }; diff --git a/SoloReads.cpp b/SoloReads.cpp deleted file mode 100644 index a07bfbf..0000000 --- a/SoloReads.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "SoloReads.h" -SoloReads::SoloReads(Parameters Pin) : P(Pin), pSolo(P.pSolo) { - if (pSolo==0) - return; - //allocate arrays -// reads.nMax=P.limitNreadsSoft/P.runNthreads; -// read.cb=new uint32[nMax]; -// read.umi=new uint32[nMax]; -// read.gene=new uint32[nMax]; -// reads.N=0; - -}; \ No newline at end of file diff --git a/SoloReads.h b/SoloReads.h deleted file mode 100644 index bb4ca51..0000000 --- a/SoloReads.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef CODE_SoloReads -#define CODE_SoloReads -#include "IncludeDefine.h" - -class SoloReads { -public: -// struct {//uncollapsed read barcodes -// uint64 nMax;//size of arrays below -// uint64 N; //number of reads recorded -// uint32* cb; -// uint32* umi; -// uint32* gene; //gene -// } reads; - - ofstream strUn - SoloReads (Parameters &Pin); - -private: - Parameters &P; - ParametersSolo &pSolo; - -}; - -#endif From b2c26fd7222ce67662b27148bad17d847fbf442d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 30 Dec 2018 14:15:32 -0500 Subject: [PATCH 400/536] Redesigning Solo. --- Makefile | 46 +++---- ParametersSolo.cpp | 20 +-- ParametersSolo.h | 11 +- ReadAlign.cpp | 8 +- ReadAlign.h | 8 +- ReadAlign_alignBAM.cpp | 8 +- ReadAlign_outputAlignments.cpp | 4 +- Solo.cpp | 14 --- Solo.h | 35 ++---- SoloBarcodes.cpp | 21 ---- SoloBarcodes.h | 32 ----- SoloBarcodes_readCBandUMI.cpp | 88 ------------- SoloCB.cpp | 55 --------- SoloCB.h | 39 ------ SoloCB_inputUMIfeatureCBrecords.cpp | 91 -------------- SoloCB_readCB.cpp | 66 ---------- Solo_collapseUMI.cpp | 185 ---------------------------- Solo_outputNumUMIperGeneCB.cpp | 63 ---------- Solo_soloPostMap.cpp | 95 -------------- 19 files changed, 54 insertions(+), 835 deletions(-) delete mode 100644 Solo.cpp delete mode 100644 SoloBarcodes.cpp delete mode 100644 SoloBarcodes.h delete mode 100644 SoloBarcodes_readCBandUMI.cpp delete mode 100644 SoloCB.cpp delete mode 100644 SoloCB.h delete mode 100644 SoloCB_inputUMIfeatureCBrecords.cpp delete mode 100644 SoloCB_readCB.cpp delete mode 100644 Solo_collapseUMI.cpp delete mode 100644 Solo_outputNumUMIperGeneCB.cpp delete mode 100644 Solo_soloPostMap.cpp diff --git a/Makefile b/Makefile index 8bb8199..f6bd489 100644 --- a/Makefile +++ b/Makefile @@ -29,34 +29,34 @@ CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS) ########################################################################################################## -OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ - Transcript.o Transcript_alignScore.o Transcript_generateCigarP.o Chain.o \ - Transcript_variationAdjust.o Variation.o ReadAlign_waspMap.o \ - ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ +OBJECTS = ParametersSolo.o SoloRead.o \ + SoloReadBarcode.o SoloReadBarcode_getCBandUMI.o \ + SoloReadFeature.o SoloReadFeature_record.o \ + ReadAlign_outputAlignments.o \ + ReadAlign.o STAR.o \ + SharedMemory.o PackedArray.o SuffixArrayFuns.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ + Transcript.o Transcript_alignScore.o Transcript_generateCigarP.o Chain.o \ + Transcript_variationAdjust.o Variation.o ReadAlign_waspMap.o \ + ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ ReadAlignChunk.o ReadAlignChunk_processChunks.o ReadAlignChunk_mapChunk.o \ OutSJ.o outputSJ.o blocksOverlap.o ThreadControl.o sysRemoveDir.o \ - ReadAlign_maxMappableLength2strands.o binarySearch2.o\ - ReadAlign_outputAlignments.o \ + ReadAlign_maxMappableLength2strands.o binarySearch2.o\ ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o ReadAlign_calcCIGAR.cpp \ - ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ + ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ ReadAlign_stitchWindowSeeds.o \ - ReadAlign_peOverlapMergeMap.o ReadAlign_mappedFilter.o \ - ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionOldOutput.o\ - ChimericDetection.o ChimericDetection_chimericDetectionMult.o ReadAlign_chimericDetectionPEmerged.o \ - ChimericSegment.cpp ChimericAlign.cpp ChimericAlign_chimericJunctionOutput.o ChimericAlign_chimericStitching.o \ - stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ - Genome_genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ - Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o funCompareUintAndSuffixesMemcmp.o \ + ReadAlign_peOverlapMergeMap.o ReadAlign_mappedFilter.o \ + ReadAlign_chimericDetection.o ReadAlign_chimericDetectionOld.o ReadAlign_chimericDetectionOldOutput.o\ + ChimericDetection.o ChimericDetection_chimericDetectionMult.o ReadAlign_chimericDetectionPEmerged.o \ + ChimericSegment.cpp ChimericAlign.cpp ChimericAlign_chimericJunctionOutput.o ChimericAlign_chimericStitching.o \ + stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ + Genome_genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ + Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o funCompareUintAndSuffixesMemcmp.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ - Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ - sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ - Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ - ParametersSolo.o SoloCB.o SoloCB_readCB.o SoloCB_inputUMIfeatureCBrecords.o \ - Solo.o Solo_soloPostMap.o Solo_collapseUMI.o Solo_outputNumUMIperGeneCB.o \ - BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ - bam_cat.o \ - serviceFuns.o \ - GlobalVariables.cpp + Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ + sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ + Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ + bam_cat.o serviceFuns.o GlobalVariables.cpp \ + BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o SOURCES := $(wildcard *.cpp) $(wildcard *.c) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 02b8903..847383a 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -46,6 +46,7 @@ void ParametersSolo::initialize(Parameters *pPin) if (fin==featureNames[ii]) { finGood=true; featureYes[ii]=true; + features.push_back(ii); break; }; }; @@ -59,15 +60,16 @@ void ParametersSolo::initialize(Parameters *pPin) exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; - if (!featureYes[0]) { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: --soloFeatures has to contain"<inOut->logMain, EXIT_CODE_PARAMETER, *pP); - }; + nFeatures=features.size(); +// if (!featureYes[0]) { +// ostringstream errOut; +// errOut << "EXITING because of fatal PARAMETERS error: --soloFeatures has to contain"<inOut->logMain, EXIT_CODE_PARAMETER, *pP); +// }; ///////////// finished parameters input //make output directory if needed diff --git a/ParametersSolo.h b/ParametersSolo.h index 3954c31..086c63a 100644 --- a/ParametersSolo.h +++ b/ParametersSolo.h @@ -15,27 +15,22 @@ class ParametersSolo { string soloCBwhitelist; std::vector cbWL; string strandStr; - int32 strand; - + int32 strand; //features const static vector featureNames; vector featureIn; + vector features; + uint32 nFeatures; bool featureYes[2]; //which features are requested //filtering char QSbase,QSmax;//quality score base and cutoff float cbMinP;//for CBs with non-exact matching to WL, min posterior probability //output vector outFileNames; - - - //constants uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs - //static const uint64 bufferSize=1048576; - void initialize(Parameters *pPin); - private: Parameters *pP; }; diff --git a/ReadAlign.cpp b/ReadAlign.cpp index d687e3b..0f6b555 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -78,13 +78,7 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, in chunkOutChimJunction = new fstream; chimDet = new ChimericDetection(P, trAll, nWinTr, Read1, mapGen, chunkOutChimJunction, this); //solo - soloCB = new SoloCB*[2]; - soloCB[0] = new SoloCB(0,P,iChunk); //genes - if (P.pSolo.featureYes[1]) { - soloCB[1] = new SoloCB(1,P,iChunk); //SJs - delete[] soloCB[1]->cbReadCountExact; - soloCB[1]->cbReadCountExact=soloCB[0]->cbReadCountExact;//this will be calculated onces - }; + soloRead = new SoloRead (P, iChunk); }; void ReadAlign::resetN () {//reset resets the counters to 0 for a new read diff --git a/ReadAlign.h b/ReadAlign.h index 66cc15d..148b3e3 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -1,5 +1,5 @@ -#ifndef CODE_READALIGN -#define CODE_READALIGN +#ifndef H_ReadAlign +#define H_ReadAlign #include "IncludeDefine.h" #include "Parameters.h" @@ -11,7 +11,7 @@ #include "BAMoutput.h" #include "Quantifications.h" #include "ChimericDetection.h" -#include "SoloCB.h" +#include "SoloRead.h" #include #include @@ -53,7 +53,7 @@ class ReadAlign { ChimericDetection *chimDet; - SoloCB **soloCB; //counts reads per CB per and outputs CB/UMI/gene into file, per thread + SoloRead *soloRead; //counts reads per CB per and outputs CB/UMI/gene into file, per thread private: Parameters& P; //pointer to the parameters, will be initialized on construction diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 1526925..999077e 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -474,16 +474,16 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint break; case ATTR_CR: - attrN+=bamAttrArrayWrite(soloCB[0]->cbSeq,"CR",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloRead.readBar.cbSeq,"CR",attrOutArray+attrN); break; case ATTR_CY: - attrN+=bamAttrArrayWrite(soloCB[0]->cbQual,"CY",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloRead.readBar.cbQual,"CY",attrOutArray+attrN); break; case ATTR_UR: - attrN+=bamAttrArrayWrite(soloCB[0]->umiSeq,"UR",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloRead.readBar.umiSeq,"UR",attrOutArray+attrN); break; case ATTR_UY: - attrN+=bamAttrArrayWrite(soloCB[0]->umiQual,"UY",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloRead.readBar.umiQual,"UY",attrOutArray+attrN); break; default: diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index e1154ec..2291359 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -177,9 +177,7 @@ void ReadAlign::outputAlignments() { }; if (outFilterPassed) {//otherwise the alignment was held and will be counted at the 2nd stage - bool readRecord=true; - readRecord=soloCB[0]->readCB(iReadAll, readNameExtra.at(0), nTr, readTrGenes, trMult[0], readRecord); - soloCB[1]->readCB(iReadAll, readNameExtra.at(0), nTr, readTrGenes, trMult[0], readRecord); + soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]); }; if (unmapType>=0) { diff --git a/Solo.cpp b/Solo.cpp deleted file mode 100644 index 4a590c6..0000000 --- a/Solo.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "Solo.h" -#include "streamFuns.h" - -Solo::Solo(int feTy, Parameters &Pin, Transcriptome &inTrans) - : featureType(feTy), P(Pin), pSolo(P.pSolo), Trans(inTrans) -{ - if (pSolo.type==0 || !pSolo.featureYes[featureType]) - return; - - soloCBsum = new SoloCB(featureType,P,-1); - soloCBall = new SoloCB*[P.runThreadN]; - - soloStatsStream = &ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.featureNames[featureType]+".stats",ERROR_OUT, P); -}; diff --git a/Solo.h b/Solo.h index 13b86a3..06ae218 100644 --- a/Solo.h +++ b/Solo.h @@ -1,43 +1,22 @@ -#ifndef CODE_Solo -#define CODE_Solo +#ifndef H_Solo +#define H_Solo #include "IncludeDefine.h" #include "ReadAlignChunk.h" -#include "SoloCB.h" +#include "SoloRead.h" #include "Transcriptome.h" #include -class Solo { +class SoloFeature { public: - SoloCB *soloCBsum, **soloCBall; - - uint64 nReadsMapped, nCB; //total number of mapped reads - - uint32 *rGeneUMI;//mapped reads sorted by CB - uint32 *indCB;//index of detected CBs in the whitelist - uint32 *rCBn;//number of reads for detected CBs in the whitelist - uint32 **rCBp;//array of pointers to each CB sub-array - uint32 *nUperCB;//number of UMIs per CB - uint32 *nGperCB;//number of genes (with >0 UMIs) per CB - uint32 nCellGeneEntries;//total number of non-zero cell/gene combinations (entries in the output matrix) - - ofstream *soloStatsStream; - - array,2> sjAll; - - Solo(int feTy, Parameters &Pin, Transcriptome &inTrans); - void soloPostMap(ReadAlignChunk **RAchunk); - void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray); - void outputNumUMIperGeneCB(); + SoloFeature *soloFeat; + private: - const int32 featureType; Parameters &P; ParametersSolo &pSolo; - Transcriptome &Trans; - - static const uint32 umiArrayStride=3; + Transcriptome &Trans; }; #endif diff --git a/SoloBarcodes.cpp b/SoloBarcodes.cpp deleted file mode 100644 index 4fd1dd2..0000000 --- a/SoloBarcodes.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "SoloCB.h" -#include "streamFuns.h" - -SoloBarcodes::SoloBarcodes(Parameters &Pin) - : featureType(feTy), P(Pin), pSolo(P.pSolo) -{ - if (pSolo.type==0) - return; - - cbReadCountExact = new uint32[pSolo.cbWL.size()]; - for (uint32 ii=0; ii -#include "IncludeDefine.h" -#include "Parameters.h" - -class SoloBarcodes { -public: - - uint32 homoPolymer[4];//homopolymer constants - string cbSeq, umiSeq, cbQual, umiQual; - uint32 cbB,umiB; - int32 cbI; - int32 cbMatch;//0=exact, 1=1 match with 1MM, 2= >1 matches with 1MM - string cbMatchString;//CB matches and qualities - uint32 *cbReadCountExact; - - struct { - enum { nNinBarcode, nUMIhomopolymer, nTooMany, nNoExactMatch, nNoMatch, nExactMatch, nMatch, nStats}; - uint64 V[nStats]; - vector names={"nNinBarcode","nUMIhomopolymer","nTooMany","nNoExactMatch","nNoMatch","nExactMatch","nMatch"}; - } stats; - - - SoloBarcodes(Parameters &Pin); - -private: - Parameters &P; - ParametersSolo &pSolo; -}; - -#endif diff --git a/SoloBarcodes_readCBandUMI.cpp b/SoloBarcodes_readCBandUMI.cpp deleted file mode 100644 index 3077fe2..0000000 --- a/SoloBarcodes_readCBandUMI.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "SoloBarcodes.h" -#include "serviceFuns.cpp" -#include "SequenceFuns.h" - -bool SoloBarcodes::readCBandUMI(string &readNameExtra) -{ - if (pSolo.type==0) - return false; - - cbMatch=-1; - - cbSeq=readNameExtra.substr(0,pSolo.cbL); - umiSeq=readNameExtra.substr(pSolo.cbL,pSolo.umiL); - cbQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1,pSolo.cbL); - umiQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1+pSolo.cbL,pSolo.umiL); - - //check UMIs, return if bad UMIs - if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns - stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs - return false; - }; - if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { - stats.V[stats.nUMIhomopolymer]++; - return false; - }; - - //convert CB and check for Ns - int32 posN=convertNuclStrToInt32(cbSeq,cbB); - cbI=-999; - if (posN==-2) {//>2 Ns, might already be filtered by Illumina - stats.V[stats.nNinBarcode]++; - return false; - } else if (posN==-1 && featureType==0) {//no Ns, count only for feattureType==gene - cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); - if (cbI>=0) {//exact match - cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs - cbMatch=0; - return true; - }; - }; - - cbI=-999; - if (posN>=0) {//one N - uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN - for (uint32 jj=0; jj<4; jj++) { - uint32 cbB1=cbB^(jj<=0) { - if (cbI>=0) {//had another match already - stats.V[stats.nTooMany]++; - return false;//with N in CB, do not allow matching >1 in WL - }; - cbI=cbI1; - }; - }; - if (cbI>=0) { - cbMatch=1; - return true; - } else {//no match - stats.V[stats.nNoMatch]++; - return false; - }; - }; - - //look for 1MM, posN==-1, no Ns - cbMatchString(""); - cbI=-999; - cbMatch=0; - for (uint32 ii=0; ii=0) {//found match - //output all - cbI=cbI1; - ++cbMatch; - cbMatchString += ' ' +to_string(cbI) + ' ' + cbQual.at(pSolo.cbL-1-ii); - cbReadCount[cbI]++;//this read may be counted in many CBs. This is safe for allocating arrays later. The final number of reads per CB will be calculated later. - }; - }; - }; - if (cbMatch==0) {//no matches - stats.V[stats.nNoMatch]++; - cbMatch=-1; - return false; - } else {//one or more matches - return true; - }; -}; diff --git a/SoloCB.cpp b/SoloCB.cpp deleted file mode 100644 index 1f0b8ce..0000000 --- a/SoloCB.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include "SoloCB.h" -#include "streamFuns.h" - -SoloCB::SoloCB(int32 feTy, Parameters &Pin, int iChunk) - : featureType(feTy), P(Pin), pSolo(P.pSolo) -{ - if (pSolo.type==0 || !pSolo.featureYes[featureType]) - return; - - for (uint32 ii=0; ii=0) { - strU_0 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_0_"+std::to_string(iChunk),ERROR_OUT, P); - strU_1 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_1_"+std::to_string(iChunk),ERROR_OUT, P); - strU_2 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_2_"+std::to_string(iChunk),ERROR_OUT, P); - }; - - for (uint32 jj=0;jj<4;jj++) { - homoPolymer[jj]=0; - for (uint32 ii=0; ii -#include "IncludeDefine.h" -#include "Parameters.h" -#include "Transcript.h" - -class SoloCB { -public: - - uint32 homoPolymer[4];//homopolymer constants - - uint32 *cbReadCount; - - fstream *strU_0 ,*strU_1, *strU_2; //unique mappers, CB matches whitelist with 0,1>=2 MM - - struct { - enum { nUnmapped, nNoFeature, nAmbigFeature, nAmbigFeatureMultimap, nNinBarcode, nUMIhomopolymer, nTooMany, nNoExactMatch, nNoMatch, nExactMatch, nMatch, nCellBarcodes, nUMIs, nStats}; - uint64 V[nStats]; - vector names={"nUnmapped","nNoFeature","nAmbigFeature","nAmbigFeatureMultimap","nNinBarcode","nUMIhomopolymer","nTooMany","nNoExactMatch","nNoMatch","nExactMatch","nMatch","nCellBarcodes","nUMIs",}; - } stats; - - string cbSeq, umiSeq, cbQual, umiQual; - - SoloCB (int32 feTy, Parameters &Pin, int iChunk); - bool readCB(uint64 &iReadAll, string &readNameExtra, uint nTr, set &readTrGenes, Transcript *alignOut, bool readRecord); - void addSoloCBcounts(const SoloCB &soloCBin); - void addSoloCBstats(const SoloCB &soloCBin); - void statsOut(ofstream &streamOut); - void inputUMIfeatureCBrecords(uint32 **cbP, uint32 *cbReadCountExact); - -private: - const int32 featureType; - - Parameters &P; - ParametersSolo &pSolo; -}; - -#endif diff --git a/SoloCB_inputUMIfeatureCBrecords.cpp b/SoloCB_inputUMIfeatureCBrecords.cpp deleted file mode 100644 index 7f6d55d..0000000 --- a/SoloCB_inputUMIfeatureCBrecords.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "SoloCB.h" -#include "binarySearch2.h" - -bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) -{ - if (!(*strIn >> umi)) //end of file - return false; - - if (featureType==0) {//gene - *strIn >> feature; - } else if (featureType==1) {//sj - uint32 sj[2]; - *strIn >> sj[0] >> sj[1]; - feature=(uint32) binarySearch2(sj[0],sj[1],sjAll[0].data(),sjAll[1].data(),sjAll[0].size()); - }; - - return true; -}; - -void SoloCB::inputUMIfeatureCBrecords(uint32 ** cbP, uint32 *cbReadCountExactTotal) -{ - {//load exact matches - strU_0->flush(); - strU_0->seekg(0,ios::beg); - uint32 cb, feature, umi; - while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { - *strU_0 >> cb; - if (feature != (uint32)(-1)){ - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - stats.V[stats.nExactMatch]++; - }; - }; - }; - - {//1 match - strU_1->flush(); - strU_1->seekg(0,ios::beg); - uint32 cb, feature, umi; - while (inputFeatureUmi(strU_1,featureType, feature, umi, P.sjAll)) { - *strU_1 >> cb; - if (cbReadCountExactTotal[cb]>0) { - if (feature != (uint32)(-1)){ - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - }; - } else { - stats.V[stats.nNoExactMatch]++; - }; - }; - }; - - {//2 matches - strU_2->flush(); - strU_2->seekg(0,ios::beg); - uint32 cb=0, feature, umi, ncb; - while (inputFeatureUmi(strU_2,featureType, feature, umi, P.sjAll)) { - if (feature == (uint32) (-1)) { - strU_2->ignore('\n',(uint32) (-1));//ignore until the end of the line - continue; //nothing to record - }; - *strU_2 >> ncb; - float ptot=0.0,pmax=0.0; - for (uint32 ii=0; ii> cbin >> qin; - if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work - qin -= pSolo.QSbase; - qin = qin < pSolo.QSbase ? qin : pSolo.QSbase; - pin=cbReadCountExactTotal[cbin]*pow(10.0,-qin/10.0); - ptot+=pin; - if (pin>pmax) { - cb=cbin; - pmax=pin; - }; - }; - }; - if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - } else { - stats.V[stats.nTooMany]++; - }; - }; - }; -}; diff --git a/SoloCB_readCB.cpp b/SoloCB_readCB.cpp deleted file mode 100644 index eb589d4..0000000 --- a/SoloCB_readCB.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "SoloCB.h" -#include "serviceFuns.cpp" -#include "SequenceFuns.h" -#include "SoloBarcodes.h" - -uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, string &stringCB) -{ - if (featureType==0) {//genes - *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; - return 1; - } else if (featureType==1) {//sjs - for (auto &sj : readSJs) { - *streamOut << umiB <<' '<< sj[0] <<' '<< sj[1] <<' '<< stringCB <<'\n'; - }; - return readSJs.size(); - }; - - return 0; //this should not happen -}; - -bool SoloCB::readCB(SoloBarcodes &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) -{ - if (pSolo.type==0 || !pSolo.featureYes[featureType] || soloB.cbMatch<0) - return false; - - //unmapped - if (nTr==0) { - stats.V[stats.nUnmapped]++; - return false; - }; - - vector> readSJs; - if (featureType==0) {//genes - //check genes, return if no gene - if (readTrGenes.size()==0) { - stats.V[stats.nNoFeature]++; - return false; - } else if (readTrGenes.size()>1) { - stats.V[stats.nAmbigFeature]++; - if (nTr>1) - stats.V[stats.nAmbigFeatureMultimap]++; - return false; - }; - } else if (featureType==1) {//SJs - alignOut->extractSpliceJunctions(readSJs); - if (readSJs.empty()) { - stats.V[stats.nNoFeature]++; - return false; - } else if (nTr>1) {//record SJs from the read - stats.V[stats.nAmbigFeature]++; - stats.V[stats.nAmbigFeatureMultimap]++; - return false; - }; - }; - - if (soloB.cbMatch==0) {//exact match - cbReadCount[cbI] += outputReadCB(strU_0, featureType, soloB.umiB, *readTrGenes.begin(), readSJs, to_string(soloB.cbI)); - return true; - } else if (soloB.cbMatch==1) {//1 match with 1MM - cbReadCount[cbI]+= outputReadCB(strU_1, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(cbI)); - return true; - } else { - cbReadCount[cbI] += outputReadCB(strU_2, featureType, umiB, *readTrGenes.begin(), readSJs, to_string(soloB.cbMatch) + cbOutString); - return true; - }; -}; diff --git a/Solo_collapseUMI.cpp b/Solo_collapseUMI.cpp deleted file mode 100644 index f3d1e09..0000000 --- a/Solo_collapseUMI.cpp +++ /dev/null @@ -1,185 +0,0 @@ -#include "Solo.h" -#include "streamFuns.h" -#include "TimeFunctions.h" -#include "serviceFuns.cpp" - -#define def_MarkNoColor (uint32) -1 - -void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) -{ - const uint32 bitTop=1<<31; - const uint32 bitTopMask=~bitTop; - - for (uint32 iu=0; iu umiMaskLow) - break; //upper half is different - - if (uuXor >> (__builtin_ctz(uuXor)/2)*2 > 3) //shift by even number of trailing zeros - continue;//>1MM - - //1MM UMI - - //graph coloring - if ( rGU[iu+2] == def_MarkNoColor && rGU[iuu+2] == def_MarkNoColor ) {//no color - //new color - rGU[iu+2] = nC; - rGU[iuu+2] = nC; - ++nC; - nU1 -= 2;//subtract the duplicated UMIs - } else if ( rGU[iu+2] == def_MarkNoColor ) { - rGU[iu+2] = rGU[iuu+2]; - --nU1;//subtract the duplicated UMIs - } else if ( rGU[iuu+2] == def_MarkNoColor ) { - rGU[iuu+2] = rGU[iu+2]; - --nU1;//subtract the duplicated UMIs - } else {//both color - if (rGU[iuu+2] != rGU[iu+2]) {//color conflict - //uint32 p[2]={rGU[iu+2],rGU[iuu+2]}; - vC.push_back({rGU[iu+2],rGU[iuu+2]}); - //vC.push_back({rGU[iuu+2],rGU[iu+2]}); - }; - }; - - //directional collapse - if ( (rGU[iuu+1] & bitTop) == 0 && (rGU[iu+1] & bitTopMask)>(2*(rGU[iuu+1] & bitTopMask)-1) ) {//iuu is duplicate of iu - rGU[iuu+1] |= bitTop; - --nU2;//subtract the duplicated UMIs - } else if ( (rGU[iu+1] & bitTop) == 0 && (rGU[iuu+1] & bitTopMask)>(2*(rGU[iu+1] & bitTopMask)-1) ) {//iu is duplicate of iuu - rGU[iu+1] |= bitTop; - --nU2;//subtract the duplicated UMIs - }; - }; - }; -}; - -void graphDepthFirstSearch(uint32 n, vector &nodeVisited, vector> &nodeEdges) { - for (const auto &nn : nodeEdges[n]) { - if (!nodeVisited[nn]) { - nodeVisited[nn]=true; - graphDepthFirstSearch(nn,nodeVisited,nodeEdges); - }; - }; -}; - -uint32 graphNumberOfConnectedComponents(uint32 N, vector> V) {//find number of connected components - //N=number of nodes - //V=edges, list of connected nodes, each pair of nodes listed once - //simple recursive DFS - - //sort -// qsort(V.data(),V.size(),2*sizeof(uint32),funCompareNumbers); - if (V.size()==0) - return N; - - vector> nodeEdges (N); - for (uint32 ii=0; ii nodeVisited(N,false); - - uint32 nConnComp=0; - for (uint32 ii=0; ii); //sort by gene number - - //compact reads per gene - uint32 gid1=-1;//current gID - nGenes=0; //number of genes - uint32 *gID = new uint32[min(Trans.nGe,rN)+1]; //gene IDS - uint32 *gReadS = new uint32[min(Trans.nGe,rN)+1]; //start of gene reads TODO: allocate this array in the 2nd half of rGU - for (uint32 iR=0; iR<2*rN; iR+=2) { - if (rGU[iR]!=gid1) {//record gene boundary - gReadS[nGenes]=iR; - gid1=rGU[iR]; - gID[nGenes]=gid1; - ++nGenes; - }; - rGU[iR]=rGU[iR+1]; //shift UMIs - //rGU[iR+1] storage this will be used later for counting - }; - gReadS[nGenes]=2*rN;//so that gReadS[nGenes]-gReadS[nGenes-1] is the number of reads for nGenes - - uint32 *nUg = new uint32[nGenes*3];//3 types of counts - nUtot=0; - for (uint32 iG=0; iG); - - //exact collapse - uint32 iR1=-umiArrayStride; //number of distinct UMIs for this gene - uint32 u1=-1; - for (uint32 iR=0; iRnRumiMax) nRumiMax=umiArray[iR1+1]; - }; - uint32 nU0=(iR1+umiArrayStride)/umiArrayStride; - - //collapse with 1MM - uint32 nU1=nU0, nU2=nU0;//2 types of 1MM collapsing - uint32 nC=0; //graph colors - vector> vC;//color connections - - collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); - - //exchange low and high half of UMIs, re-sort, and look for 1MM again - for (uint32 iu=0; iu>(pSolo.umiL); - umiArray[iu] &= pSolo.umiMaskLow; //remove high - umiArray[iu] <<= (pSolo.umiL); //move low to high - umiArray[iu] |= high; //add high - }; - qsort(umiArray, nU0, umiArrayStride*sizeof(uint32), funCompareNumbers); - collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); - - nUg[3*iG]=nU0; - nUg[3*iG+1]=nU1+graphNumberOfConnectedComponents(nC,vC); - nUg[3*iG+2]=nU2; - nUtot+=nUg[3*iG+1]; - }; - - uint32 *rGUp=rGU; - for (uint32 iG=0; iG1) {//record 2 more counts - rGUp[2]=nUg[3*iG+1]; - rGUp[3]=nUg[3*iG+2]; - rGUp += 4; - } else {//only one count recorded, save space - rGUp += 2; - }; - }; - //cout << nRumiMax << '\n'; - -}; diff --git a/Solo_outputNumUMIperGeneCB.cpp b/Solo_outputNumUMIperGeneCB.cpp deleted file mode 100644 index fd4c6c2..0000000 --- a/Solo_outputNumUMIperGeneCB.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include "Solo.h" -#include "streamFuns.h" -#include "TimeFunctions.h" -#include "serviceFuns.cpp" -#include "SequenceFuns.h" - -void Solo::outputNumUMIperGeneCB() -{ - //sort by nUtot per CB - //qsort(nUperCB,nCB,2*sizeof(uint32),funCompareNumbersReverse); //sort by gene number - - //find 99%ile - //uint32 nUMImax = nUperCB[2*30];//robust estimate of the max UMI - //uint32 nUMImin = nUMImax/10; - - //nUMImin=0; //full output - - if (featureType==0) {//this only need to be done once - //output genes - ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); - for (uint32 ii=0; ii1) {//3 counts recorded - countMatrixStream <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; - rCBpp += 4; - } else {//1 recorded - countMatrixStream <<"\t1\t1"; - rCBpp +=2; - }; - countMatrixStream << '\n'; - }; - }; - countMatrixStream.flush(); - - //*soloStatsStream << setw(50) << "Maximum number of UMIs per CB" << setw(15) << nUperCB[0] << '\n'; - //*soloStatsStream << setw(50) << "Robust maximum number of UMIs per CB" << setw(15) << nUMImax << '\n'; - //*soloStatsStream << setw(50) << "Number of CBs that passed min UMI threshold " << setw(15) << nCBout << '\n'; - //*soloStatsStream << setw(50) << "UMIs IN CELL BARCODES:\n" - //*soloStatsStream << setw(50) << "nDetectedCellBarcodes" << setw(15) << nCB << '\n'; - - soloStatsStream->flush(); -}; diff --git a/Solo_soloPostMap.cpp b/Solo_soloPostMap.cpp deleted file mode 100644 index b807b9a..0000000 --- a/Solo_soloPostMap.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "Solo.h" -#include "streamFuns.h" -#include "TimeFunctions.h" - -void Solo::soloPostMap(ReadAlignChunk **RAchunk) -{ - if (pSolo.type==0 || !pSolo.featureYes[featureType]) - return; - - time_t rawTime; - time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Starting Solo post-map " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <RA->soloCB[featureType]; - }; - - //summary statistics - for (int ii=0; iiaddSoloCBcounts(*soloCBall[ii]); - }; - - //allocate arrays to store CB/gene/UMIs for all reads - nCB=0;nReadsMapped=0; - for (uint32 ii=0; iicbReadCountExact[ii]>0) { - nCB++; - nReadsMapped += soloCBsum->cbReadCount[ii]; - }; - }; - - rGeneUMI = new uint32[2*nReadsMapped]; //big array for all CBs - each element is gene and UMI - rCBp = new uint32*[nCB+1]; - uint32 **rCBpa = new uint32*[pSolo.cbWL.size()+1]; - indCB = new uint32[nCB]; - - uint32 nReadPerCBmax=0; - rCBp[0]=rGeneUMI; - rCBpa[0]=rGeneUMI; - nCB=0;//will count it again below - for (uint32 ii=0; iicbReadCountExact[ii]>0) {//if no exact matches, this CB is not present - indCB[nCB]=ii; - rCBp[nCB+1] = rCBp[nCB] + 2*soloCBsum->cbReadCount[ii]; - ++nCB; - }; - rCBpa[ii+1]=rCBp[nCB]; - }; - - //read and store the CB/gene/UMI from files - time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <inputUMIfeatureCBrecords(rCBpa,soloCBsum->cbReadCountExact); - }; - - for (uint32 iCB=0; iCBnReadPerCBmax) - nReadPerCBmax=nr; - soloCBsum->stats.V[soloCBsum->stats.nMatch] += nr; - }; - - for (int ii=0; iiaddSoloCBstats(*soloCBall[ii]); - }; - - time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished reading reads from Solo files nCB="<statsOut(*soloStatsStream); - - //output nU per gene per CB - outputNumUMIperGeneCB(); - -}; From 6693a34f9e96ec51696f42253ae53060074594d0 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 30 Dec 2018 17:06:27 -0500 Subject: [PATCH 401/536] Redesigning Solo. --- Makefile | 5 +++-- ReadAlign.h | 1 - ReadAlign_alignBAM.cpp | 8 ++++---- STAR.cpp | 7 ++----- Solo.h | 18 +++++++++++------- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index f6bd489..73d32ec 100644 --- a/Makefile +++ b/Makefile @@ -29,9 +29,10 @@ CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS) ########################################################################################################## -OBJECTS = ParametersSolo.o SoloRead.o \ +OBJECTS = ParametersSolo.o SoloRead.o SoloRead_record.o \ SoloReadBarcode.o SoloReadBarcode_getCBandUMI.o \ - SoloReadFeature.o SoloReadFeature_record.o \ + SoloReadFeature.o SoloReadFeature_record.o SoloReadFeature_inputRecords.o \ + Solo.o SoloFeature.o SoloFeature_collapseUMI.o SoloFeature_outputResults.o SoloFeature_processRecords.o\ ReadAlign_outputAlignments.o \ ReadAlign.o STAR.o \ SharedMemory.o PackedArray.o SuffixArrayFuns.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ diff --git a/ReadAlign.h b/ReadAlign.h index 148b3e3..48b9c62 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -23,7 +23,6 @@ class ReadAlign { int oneRead(); //vars - Genome &mapGen; //mapped-to-genome structure uint iRead; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 999077e..b6025b2 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -474,16 +474,16 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint break; case ATTR_CR: - attrN+=bamAttrArrayWrite(soloRead.readBar.cbSeq,"CR",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloRead->readBar->cbSeq,"CR",attrOutArray+attrN); break; case ATTR_CY: - attrN+=bamAttrArrayWrite(soloRead.readBar.cbQual,"CY",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloRead->readBar->cbQual,"CY",attrOutArray+attrN); break; case ATTR_UR: - attrN+=bamAttrArrayWrite(soloRead.readBar.umiSeq,"UR",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloRead->readBar->umiSeq,"UR",attrOutArray+attrN); break; case ATTR_UY: - attrN+=bamAttrArrayWrite(soloRead.readBar.umiQual,"UY",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(soloRead->readBar->umiQual,"UY",attrOutArray+attrN); break; default: diff --git a/STAR.cpp b/STAR.cpp index 64c7068..9ead114 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -369,11 +369,8 @@ int main(int argInN, char* argIn[]) { outputSJ(RAchunk,P); //solo genes - Solo soloGenes(0,P,*RAchunk[0]->chunkTr);//solo for genes - soloGenes.soloPostMap(RAchunk); - //solo SJs - Solo soloSJ(1,P,*RAchunk[0]->chunkTr);//solo for genes - soloSJ.soloPostMap(RAchunk); + Solo soloMain(RAchunk,P,*RAchunk[0]->chunkTr);//solo for genes + soloMain.processAndOutput(); if ( P.quant.geCount.yes ) {//output gene quantifications for (int ichunk=1; ichunk -class SoloFeature { -public: +#include "SoloFeature.h" - SoloFeature *soloFeat; - -private: +class Solo { +public: + + SoloFeature **soloFeat; + + Solo(ReadAlignChunk **RAchunk, Parameters &Pin, Transcriptome &inTrans); + void processAndOutput(); +private: + ReadAlignChunk **RAchunk; Parameters &P; ParametersSolo &pSolo; - Transcriptome &Trans; + Transcriptome &Trans; }; #endif From 4f3f0686bfbe06fc64c1decfc8d96f16968ad1d0 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 30 Dec 2018 18:45:52 -0500 Subject: [PATCH 402/536] Redesigning Solo. --- Solo.cpp | 23 ++++ SoloFeature.cpp | 16 +++ SoloFeature.h | 45 ++++++++ SoloFeature_collapseUMI.cpp | 185 +++++++++++++++++++++++++++++++ SoloFeature_outputResults.cpp | 54 +++++++++ SoloFeature_processRecords.cpp | 101 +++++++++++++++++ SoloRead.cpp | 12 ++ SoloRead.h | 21 ++++ SoloReadBarcode.cpp | 45 ++++++++ SoloReadBarcode.h | 34 ++++++ SoloReadBarcode_getCBandUMI.cpp | 82 ++++++++++++++ SoloReadFeature.cpp | 45 ++++++++ SoloReadFeature.h | 40 +++++++ SoloReadFeature_getFeature.cpp | 65 +++++++++++ SoloReadFeature_inputRecords.cpp | 91 +++++++++++++++ SoloReadFeature_record.cpp | 65 +++++++++++ SoloRead_record.cpp | 9 ++ Solo_outputResults.cpp | 54 +++++++++ 18 files changed, 987 insertions(+) create mode 100644 Solo.cpp create mode 100644 SoloFeature.cpp create mode 100644 SoloFeature.h create mode 100644 SoloFeature_collapseUMI.cpp create mode 100644 SoloFeature_outputResults.cpp create mode 100644 SoloFeature_processRecords.cpp create mode 100644 SoloRead.cpp create mode 100644 SoloRead.h create mode 100644 SoloReadBarcode.cpp create mode 100644 SoloReadBarcode.h create mode 100644 SoloReadBarcode_getCBandUMI.cpp create mode 100644 SoloReadFeature.cpp create mode 100644 SoloReadFeature.h create mode 100644 SoloReadFeature_getFeature.cpp create mode 100644 SoloReadFeature_inputRecords.cpp create mode 100644 SoloReadFeature_record.cpp create mode 100644 SoloRead_record.cpp create mode 100644 Solo_outputResults.cpp diff --git a/Solo.cpp b/Solo.cpp new file mode 100644 index 0000000..d1d2bd4 --- /dev/null +++ b/Solo.cpp @@ -0,0 +1,23 @@ +#include "Solo.h" + +Solo::Solo(ReadAlignChunk **RAchunkIn, Parameters &Pin, Transcriptome &inTrans) + : RAchunk(RAchunkIn), P(Pin), pSolo(P.pSolo), Trans(inTrans) +{ + if (pSolo.type==0 ) + return; + + soloFeat = new SoloFeature*[pSolo.nFeatures]; + for (uint32 ii=0; iiprocessRecords(RAchunk); + }; +}; diff --git a/SoloFeature.cpp b/SoloFeature.cpp new file mode 100644 index 0000000..e621a15 --- /dev/null +++ b/SoloFeature.cpp @@ -0,0 +1,16 @@ +#include "SoloFeature.h" +#include "streamFuns.h" + +SoloFeature::SoloFeature(int feTy, Parameters &Pin, Transcriptome &inTrans) + : featureType(feTy), P(Pin), pSolo(P.pSolo), Trans(inTrans) +{ + if (pSolo.type==0) + return; + + readFeatSum = new SoloReadFeature(featureType,P,-1); + readBarSum = new SoloReadBarcode(P); + readFeatAll = new SoloReadFeature*[P.runThreadN]; + readBarAll = new SoloReadBarcode*[P.runThreadN]; + + statsStream = &ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.featureNames[featureType]+".stats",ERROR_OUT, P); +}; diff --git a/SoloFeature.h b/SoloFeature.h new file mode 100644 index 0000000..ca23ccc --- /dev/null +++ b/SoloFeature.h @@ -0,0 +1,45 @@ +#ifndef H_SoloFeature +#define H_SoloFeature +#include "IncludeDefine.h" +#include "ReadAlignChunk.h" +#include "Transcriptome.h" +#include + +#include "SoloRead.h" + +class SoloFeature { +public: + + SoloReadFeature *readFeatSum, **readFeatAll; + SoloReadBarcode *readBarSum, **readBarAll; + + uint64 nReadsMapped, nCB; //total number of mapped reads + + uint32 *rGeneUMI;//mapped reads sorted by CB + uint32 *indCB;//index of detected CBs in the whitelist + uint32 *rCBn;//number of reads for detected CBs in the whitelist + uint32 **rCBp;//array of pointers to each CB sub-array + uint32 *nUperCB;//number of UMIs per CB + uint32 *nGperCB;//number of genes (with >0 UMIs) per CB + uint32 nCellGeneEntries;//total number of non-zero cell/gene combinations (entries in the output matrix) + + ofstream *statsStream; + + array,2> sjAll; + + SoloFeature(int feTy, Parameters &Pin, Transcriptome &inTrans); + void processRecords(ReadAlignChunk **RAchunk); + void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray); + void outputResults(); + +private: + const int32 featureType; + + Parameters &P; + ParametersSolo &pSolo; + Transcriptome &Trans; + + static const uint32 umiArrayStride=3; +}; + +#endif diff --git a/SoloFeature_collapseUMI.cpp b/SoloFeature_collapseUMI.cpp new file mode 100644 index 0000000..8d2a152 --- /dev/null +++ b/SoloFeature_collapseUMI.cpp @@ -0,0 +1,185 @@ +#include "SoloFeature.h" +#include "streamFuns.h" +#include "TimeFunctions.h" +#include "serviceFuns.cpp" + +#define def_MarkNoColor (uint32) -1 + +void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) +{ + const uint32 bitTop=1<<31; + const uint32 bitTopMask=~bitTop; + + for (uint32 iu=0; iu umiMaskLow) + break; //upper half is different + + if (uuXor >> (__builtin_ctz(uuXor)/2)*2 > 3) //shift by even number of trailing zeros + continue;//>1MM + + //1MM UMI + + //graph coloring + if ( rGU[iu+2] == def_MarkNoColor && rGU[iuu+2] == def_MarkNoColor ) {//no color + //new color + rGU[iu+2] = nC; + rGU[iuu+2] = nC; + ++nC; + nU1 -= 2;//subtract the duplicated UMIs + } else if ( rGU[iu+2] == def_MarkNoColor ) { + rGU[iu+2] = rGU[iuu+2]; + --nU1;//subtract the duplicated UMIs + } else if ( rGU[iuu+2] == def_MarkNoColor ) { + rGU[iuu+2] = rGU[iu+2]; + --nU1;//subtract the duplicated UMIs + } else {//both color + if (rGU[iuu+2] != rGU[iu+2]) {//color conflict + //uint32 p[2]={rGU[iu+2],rGU[iuu+2]}; + vC.push_back({rGU[iu+2],rGU[iuu+2]}); + //vC.push_back({rGU[iuu+2],rGU[iu+2]}); + }; + }; + + //directional collapse + if ( (rGU[iuu+1] & bitTop) == 0 && (rGU[iu+1] & bitTopMask)>(2*(rGU[iuu+1] & bitTopMask)-1) ) {//iuu is duplicate of iu + rGU[iuu+1] |= bitTop; + --nU2;//subtract the duplicated UMIs + } else if ( (rGU[iu+1] & bitTop) == 0 && (rGU[iuu+1] & bitTopMask)>(2*(rGU[iu+1] & bitTopMask)-1) ) {//iu is duplicate of iuu + rGU[iu+1] |= bitTop; + --nU2;//subtract the duplicated UMIs + }; + }; + }; +}; + +void graphDepthFirstSearch(uint32 n, vector &nodeVisited, vector> &nodeEdges) { + for (const auto &nn : nodeEdges[n]) { + if (!nodeVisited[nn]) { + nodeVisited[nn]=true; + graphDepthFirstSearch(nn,nodeVisited,nodeEdges); + }; + }; +}; + +uint32 graphNumberOfConnectedComponents(uint32 N, vector> V) {//find number of connected components + //N=number of nodes + //V=edges, list of connected nodes, each pair of nodes listed once + //simple recursive DFS + + //sort +// qsort(V.data(),V.size(),2*sizeof(uint32),funCompareNumbers); + if (V.size()==0) + return N; + + vector> nodeEdges (N); + for (uint32 ii=0; ii nodeVisited(N,false); + + uint32 nConnComp=0; + for (uint32 ii=0; ii); //sort by gene number + + //compact reads per gene + uint32 gid1=-1;//current gID + nGenes=0; //number of genes + uint32 *gID = new uint32[min(Trans.nGe,rN)+1]; //gene IDS + uint32 *gReadS = new uint32[min(Trans.nGe,rN)+1]; //start of gene reads TODO: allocate this array in the 2nd half of rGU + for (uint32 iR=0; iR<2*rN; iR+=2) { + if (rGU[iR]!=gid1) {//record gene boundary + gReadS[nGenes]=iR; + gid1=rGU[iR]; + gID[nGenes]=gid1; + ++nGenes; + }; + rGU[iR]=rGU[iR+1]; //shift UMIs + //rGU[iR+1] storage this will be used later for counting + }; + gReadS[nGenes]=2*rN;//so that gReadS[nGenes]-gReadS[nGenes-1] is the number of reads for nGenes + + uint32 *nUg = new uint32[nGenes*3];//3 types of counts + nUtot=0; + for (uint32 iG=0; iG); + + //exact collapse + uint32 iR1=-umiArrayStride; //number of distinct UMIs for this gene + uint32 u1=-1; + for (uint32 iR=0; iRnRumiMax) nRumiMax=umiArray[iR1+1]; + }; + uint32 nU0=(iR1+umiArrayStride)/umiArrayStride; + + //collapse with 1MM + uint32 nU1=nU0, nU2=nU0;//2 types of 1MM collapsing + uint32 nC=0; //graph colors + vector> vC;//color connections + + collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); + + //exchange low and high half of UMIs, re-sort, and look for 1MM again + for (uint32 iu=0; iu>(pSolo.umiL); + umiArray[iu] &= pSolo.umiMaskLow; //remove high + umiArray[iu] <<= (pSolo.umiL); //move low to high + umiArray[iu] |= high; //add high + }; + qsort(umiArray, nU0, umiArrayStride*sizeof(uint32), funCompareNumbers); + collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); + + nUg[3*iG]=nU0; + nUg[3*iG+1]=nU1+graphNumberOfConnectedComponents(nC,vC); + nUg[3*iG+2]=nU2; + nUtot+=nUg[3*iG+1]; + }; + + uint32 *rGUp=rGU; + for (uint32 iG=0; iG1) {//record 2 more counts + rGUp[2]=nUg[3*iG+1]; + rGUp[3]=nUg[3*iG+2]; + rGUp += 4; + } else {//only one count recorded, save space + rGUp += 2; + }; + }; + //cout << nRumiMax << '\n'; + +}; diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp new file mode 100644 index 0000000..9e90cdd --- /dev/null +++ b/SoloFeature_outputResults.cpp @@ -0,0 +1,54 @@ +#include "SoloFeature.h" +#include "streamFuns.h" +#include "TimeFunctions.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +void SoloFeature::outputResults() +{ + if (featureType==0) {//this only need to be done once + //output genes + ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); + for (uint32 ii=0; ii1) {//3 counts recorded + countMatrixStream <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; + rCBpp += 4; + } else {//1 recorded + countMatrixStream <<"\t1\t1"; + rCBpp +=2; + }; + countMatrixStream << '\n'; + }; + }; + countMatrixStream.flush(); + + //*statsStream << setw(50) << "Maximum number of UMIs per CB" << setw(15) << nUperCB[0] << '\n'; + //*statsStream << setw(50) << "Robust maximum number of UMIs per CB" << setw(15) << nUMImax << '\n'; + //*statsStream << setw(50) << "Number of CBs that passed min UMI threshold " << setw(15) << nCBout << '\n'; + //*statsStream << setw(50) << "UMIs IN CELL BARCODES:\n" + //*statsStream << setw(50) << "nDetectedCellBarcodes" << setw(15) << nCB << '\n'; + + statsStream->flush(); +}; diff --git a/SoloFeature_processRecords.cpp b/SoloFeature_processRecords.cpp new file mode 100644 index 0000000..9358612 --- /dev/null +++ b/SoloFeature_processRecords.cpp @@ -0,0 +1,101 @@ +#include "SoloFeature.h" +#include "streamFuns.h" +#include "TimeFunctions.h" + +void SoloFeature::processRecords(ReadAlignChunk **RAchunk) +{ + if (pSolo.type==0) + return; + + time_t rawTime; + time(&rawTime); + P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Starting Solo post-map for " <RA->soloRead->readFeat[featureType]; + readBarAll[ii]=RAchunk[ii]->RA->soloRead->readBar; + }; + + for (int ii=0; iiaddCounts(*readFeatAll[ii]); + readBarSum->addCounts(*readBarAll[ii]); + }; + + //allocate arrays to store CB/gene/UMIs for all reads + nCB=0;nReadsMapped=0; + for (uint32 ii=0; iicbReadCountExact[ii]>0) { + nCB++; + nReadsMapped += readFeatSum->cbReadCount[ii]; + }; + }; + + rGeneUMI = new uint32[2*nReadsMapped]; //big array for all CBs - each element is gene and UMI + rCBp = new uint32*[nCB+1]; + uint32 **rCBpa = new uint32*[pSolo.cbWL.size()+1]; + indCB = new uint32[nCB]; + + uint32 nReadPerCBmax=0; + rCBp[0]=rGeneUMI; + rCBpa[0]=rGeneUMI; + nCB=0;//will count it again below + for (uint32 ii=0; iicbReadCountExact[ii]>0) {//if no exact matches, this CB is not present + indCB[nCB]=ii; + rCBp[nCB+1] = rCBp[nCB] + 2*readFeatSum->cbReadCount[ii]; + ++nCB; + }; + rCBpa[ii+1]=rCBp[nCB]; + }; + + //read and store the CB/gene/UMI from files + time(&rawTime); + P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <inputRecords(rCBpa,readBarSum->cbReadCountExact); + }; + + for (uint32 iCB=0; iCBnReadPerCBmax) + nReadPerCBmax=nr; + readFeatSum->stats.V[readFeatSum->stats.nMatch] += nr; + }; + + for (int ii=0; iiaddStats(*readFeatAll[ii]); + readBarSum->addStats(*readBarAll[ii]); + }; + + time(&rawTime); + P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished reading reads from Solo files nCB="<statsOut(*statsStream); + *statsStream << setw(50)<< pSolo.featureNames[featureType] <<":\n"; + readFeatSum->statsOut(*statsStream); + + //output nU per gene per CB + outputResults(); + +}; diff --git a/SoloRead.cpp b/SoloRead.cpp new file mode 100644 index 0000000..f7ba049 --- /dev/null +++ b/SoloRead.cpp @@ -0,0 +1,12 @@ +#include "SoloRead.h" + +SoloRead::SoloRead(Parameters &Pin, int32 iChunkIn) : iChunk(iChunkIn), P(Pin), pSolo(P.pSolo) +{ + if (pSolo.type==0) + return; + + readBar = new SoloReadBarcode(P); + readFeat = new SoloReadFeature*[pSolo.nFeatures]; + for (uint32 ii=0; ii &readTrGenes, Transcript *alignOut); + +private: + const int32 iChunk; + Parameters &P; + ParametersSolo &pSolo; +}; + +#endif diff --git a/SoloReadBarcode.cpp b/SoloReadBarcode.cpp new file mode 100644 index 0000000..a837570 --- /dev/null +++ b/SoloReadBarcode.cpp @@ -0,0 +1,45 @@ +#include "SoloReadBarcode.h" +#include "streamFuns.h" + +SoloReadBarcode::SoloReadBarcode(Parameters &Pin) : P(Pin), pSolo(P.pSolo) +{ + if (pSolo.type==0) + return; + + for (uint32 ii=0; ii +#include "IncludeDefine.h" +#include "Parameters.h" + +class SoloReadBarcode { +public: + uint32 homoPolymer[4];//homopolymer constants + string cbSeq, umiSeq, cbQual, umiQual; + uint32 cbB,umiB; + int32 cbI; + int32 cbMatch;//0=exact, 1=1 match with 1MM, 2= >1 matches with 1MM + string cbMatchString;//CB matches and qualities + uint32 *cbReadCountExact; + + struct { + enum { nNinBarcode, nUMIhomopolymer, nTooMany, nNoMatch, nStats}; + uint64 V[nStats]; + vector names={"nNinBarcode","nUMIhomopolymer","nTooMany","nNoMatch"}; + } stats; + + SoloReadBarcode(Parameters &Pin); + void getCBandUMI(string &readNameExtra); + void addCounts(const SoloReadBarcode &rfIn); + void addStats(const SoloReadBarcode &rfIn); + void statsOut(ofstream &streamOut); + +private: + Parameters &P; + ParametersSolo &pSolo; +}; + +#endif diff --git a/SoloReadBarcode_getCBandUMI.cpp b/SoloReadBarcode_getCBandUMI.cpp new file mode 100644 index 0000000..c9fc921 --- /dev/null +++ b/SoloReadBarcode_getCBandUMI.cpp @@ -0,0 +1,82 @@ +#include "SoloReadBarcode.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +void SoloReadBarcode::getCBandUMI(string &readNameExtra) +{ + if (pSolo.type==0) + return; + + cbMatch=-1; + cbI=-999; + cbMatchString=""; + + cbSeq=readNameExtra.substr(0,pSolo.cbL); + umiSeq=readNameExtra.substr(pSolo.cbL,pSolo.umiL); + cbQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1,pSolo.cbL); + umiQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1+pSolo.cbL,pSolo.umiL); + + //check UMIs, return if bad UMIs + if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns + stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs + return; + }; + if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { + stats.V[stats.nUMIhomopolymer]++; + return; + }; + + //convert CB and check for Ns + int32 posN=convertNuclStrToInt32(cbSeq,cbB); + if (posN==-2) {//>2 Ns, might already be filtered by Illumina + stats.V[stats.nNinBarcode]++; + return; + } else if (posN==-1) {//no Ns, count only for feattureType==gene + cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + if (cbI>=0) {//exact match + cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs + cbMatch=0; + return; + }; + }; + + if (posN>=0) {//one N + uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN + for (uint32 jj=0; jj<4; jj++) { + uint32 cbB1=cbB^(jj<=0) { + if (cbI>=0) {//had another match already + stats.V[stats.nTooMany]++; + return;//with N in CB, do not allow matching >1 in WL + }; + cbI=cbI1; + }; + }; + if (cbI>=0) { + cbMatch=1; + return; + } else {//no match + stats.V[stats.nNoMatch]++; + return; + }; + }; + + //look for 1MM, posN==-1, no Ns + cbMatch=0; + for (uint32 ii=0; ii=0) {//found match + //output all + cbI=cbI1; + ++cbMatch; + cbMatchString += ' ' +to_string(cbI) + ' ' + cbQual.at(pSolo.cbL-1-ii); + }; + }; + }; + if (cbMatch==0) {//no matches + stats.V[stats.nNoMatch]++; + cbMatch=-1; + };// else cbMatch contains number of matches (1 or >1), and cbMatchString contains matches for >1 case +}; diff --git a/SoloReadFeature.cpp b/SoloReadFeature.cpp new file mode 100644 index 0000000..68ca052 --- /dev/null +++ b/SoloReadFeature.cpp @@ -0,0 +1,45 @@ +#include "SoloReadFeature.h" +#include "streamFuns.h" + +SoloReadFeature::SoloReadFeature(int32 feTy, Parameters &Pin, int iChunk) + : featureType(feTy), P(Pin), pSolo(P.pSolo) +{ + if (pSolo.type==0) + return; + + for (uint32 ii=0; ii=0) { + strU_0 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_0_"+std::to_string(iChunk),ERROR_OUT, P); + strU_1 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_1_"+std::to_string(iChunk),ERROR_OUT, P); + strU_2 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_2_"+std::to_string(iChunk),ERROR_OUT, P); + }; +}; + +void SoloReadFeature::addCounts(const SoloReadFeature &rfIn) +{ + for (uint32 ii=0; ii +#include "IncludeDefine.h" +#include "Parameters.h" +#include "Transcript.h" +#include "SoloReadBarcode.h" + +class SoloReadFeature { +public: + + uint32 homoPolymer[4];//homopolymer constants + + uint32 *cbReadCount; + + fstream *strU_0 ,*strU_1, *strU_2; //unique mappers, CB matches whitelist with 0,1>=2 MM + + struct { + enum { nUnmapped, nNoFeature, nAmbigFeature, nAmbigFeatureMultimap, nTooMany, nNoExactMatch, nExactMatch, nMatch, nCellBarcodes, nUMIs, nStats}; + uint64 V[nStats]; + vector names={"nUnmapped","nNoFeature","nAmbigFeature","nAmbigFeatureMultimap","nTooMany","nNoExactMatch","nExactMatch","nMatch","nCellBarcodes","nUMIs",}; + } stats; + + string cbSeq, umiSeq, cbQual, umiQual; + + SoloReadFeature (int32 feTy, Parameters &Pin, int iChunk); + void record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut); + void addCounts(const SoloReadFeature &soloCBin); + void addStats(const SoloReadFeature &soloCBin); + void statsOut(ofstream &streamOut); + void inputRecords(uint32 **cbP, uint32 *cbReadCountExact); + +private: + const int32 featureType; + + Parameters &P; + ParametersSolo &pSolo; +}; + +#endif diff --git a/SoloReadFeature_getFeature.cpp b/SoloReadFeature_getFeature.cpp new file mode 100644 index 0000000..cef4ff5 --- /dev/null +++ b/SoloReadFeature_getFeature.cpp @@ -0,0 +1,65 @@ +#include "SoloReadFeature.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, string &stringCB) +{ + if (featureType==0) {//genes + *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; + return 1; + } else if (featureType==1) {//sjs + for (auto &sj : readSJs) { + *streamOut << umiB <<' '<< sj[0] <<' '<< sj[1] <<' '<< stringCB <<'\n'; + }; + return readSJs.size(); + }; + + return 0; //this should not happen +}; + +bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) +{ + if (pSolo.type==0 || !pSolo.featureYes[featureType] || soloBar.cbMatch<0) + return false; + + //unmapped + if (nTr==0) { + stats.V[stats.nUnmapped]++; + return false; + }; + + vector> readSJs; + if (featureType==0) {//genes + //check genes, return if no gene + if (readTrGenes.size()==0) { + stats.V[stats.nNoFeature]++; + return false; + } else if (readTrGenes.size()>1) { + stats.V[stats.nAmbigFeature]++; + if (nTr>1) + stats.V[stats.nAmbigFeatureMultimap]++; + return false; + }; + } else if (featureType==1) {//SJs + alignOut->extractSpliceJunctions(readSJs); + if (readSJs.empty()) { + stats.V[stats.nNoFeature]++; + return false; + } else if (nTr>1) {//record SJs from the read + stats.V[stats.nAmbigFeature]++; + stats.V[stats.nAmbigFeatureMultimap]++; + return false; + }; + }; + + if (soloBar.cbMatch==0) {//exact match + cbReadCount[cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + return true; + } else if (soloBar.cbMatch==1) {//1 match with 1MM + cbReadCount[cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + return true; + } else { + cbReadCount[cbI] += outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + cbOutString); + return true; + }; +}; diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp new file mode 100644 index 0000000..f8071dc --- /dev/null +++ b/SoloReadFeature_inputRecords.cpp @@ -0,0 +1,91 @@ +#include "SoloReadFeature.h" +#include "binarySearch2.h" + +bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) +{ + if (!(*strIn >> umi)) //end of file + return false; + + if (featureType==0) {//gene + *strIn >> feature; + } else if (featureType==1) {//sj + uint32 sj[2]; + *strIn >> sj[0] >> sj[1]; + feature=(uint32) binarySearch2(sj[0],sj[1],sjAll[0].data(),sjAll[1].data(),sjAll[0].size()); + }; + + return true; +}; + +void SoloReadFeature::inputRecords(uint32 ** cbP, uint32 *cbReadCountExactTotal) +{ + {//load exact matches + strU_0->flush(); + strU_0->seekg(0,ios::beg); + uint32 cb, feature, umi; + while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { + *strU_0 >> cb; + if (feature != (uint32)(-1)){ + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + stats.V[stats.nExactMatch]++; + }; + }; + }; + + {//1 match + strU_1->flush(); + strU_1->seekg(0,ios::beg); + uint32 cb, feature, umi; + while (inputFeatureUmi(strU_1,featureType, feature, umi, P.sjAll)) { + *strU_1 >> cb; + if (cbReadCountExactTotal[cb]>0) { + if (feature != (uint32)(-1)){ + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + }; + } else { + stats.V[stats.nNoExactMatch]++; + }; + }; + }; + + {//2 matches + strU_2->flush(); + strU_2->seekg(0,ios::beg); + uint32 cb=0, feature, umi, ncb; + while (inputFeatureUmi(strU_2,featureType, feature, umi, P.sjAll)) { + if (feature == (uint32) (-1)) { + strU_2->ignore('\n',(uint32) (-1));//ignore until the end of the line + continue; //nothing to record + }; + *strU_2 >> ncb; + float ptot=0.0,pmax=0.0; + for (uint32 ii=0; ii> cbin >> qin; + if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work + qin -= pSolo.QSbase; + qin = qin < pSolo.QSbase ? qin : pSolo.QSbase; + pin=cbReadCountExactTotal[cbin]*pow(10.0,-qin/10.0); + ptot+=pin; + if (pin>pmax) { + cb=cbin; + pmax=pin; + }; + }; + }; + if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + } else { + stats.V[stats.nTooMany]++; + }; + }; + }; +}; diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp new file mode 100644 index 0000000..1da4bf8 --- /dev/null +++ b/SoloReadFeature_record.cpp @@ -0,0 +1,65 @@ +#include "SoloReadFeature.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, const string &stringCB) +{ + if (featureType==0) {//genes + *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; + return 1; + } else if (featureType==1) {//sjs + for (auto &sj : readSJs) { + *streamOut << umiB <<' '<< sj[0] <<' '<< sj[1] <<' '<< stringCB <<'\n'; + }; + return readSJs.size(); + }; + + return 0; //this should not happen +}; + +void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) +{ + if (pSolo.type==0 || soloBar.cbMatch<0) + return; + + //unmapped + if (nTr==0) { + stats.V[stats.nUnmapped]++; + return; + }; + + vector> readSJs; + if (featureType==0) {//genes + //check genes, return if no gene + if (readTrGenes.size()==0) { + stats.V[stats.nNoFeature]++; + return; + } else if (readTrGenes.size()>1) { + stats.V[stats.nAmbigFeature]++; + if (nTr>1) + stats.V[stats.nAmbigFeatureMultimap]++; + return; + }; + } else if (featureType==1) {//SJs + alignOut->extractSpliceJunctions(readSJs); + if (readSJs.empty()) { + stats.V[stats.nNoFeature]++; + return; + } else if (nTr>1) {//record SJs from the read + stats.V[stats.nAmbigFeature]++; + stats.V[stats.nAmbigFeatureMultimap]++; + return; + }; + }; + + if (soloBar.cbMatch==0) {//exact match + cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + return; + } else if (soloBar.cbMatch==1) {//1 match with 1MM + cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + return; + } else { + cbReadCount[soloBar.cbI] += soloBar.cbMatch*outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); + return; + }; +}; diff --git a/SoloRead_record.cpp b/SoloRead_record.cpp new file mode 100644 index 0000000..8f9a5e7 --- /dev/null +++ b/SoloRead_record.cpp @@ -0,0 +1,9 @@ +#include "SoloRead.h" + +void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut) +{ + readBar->getCBandUMI(barcodeSeq); + + for (uint32 ii=0; iirecord(*readBar, nTr, readTrGenes, alignOut); +}; diff --git a/Solo_outputResults.cpp b/Solo_outputResults.cpp new file mode 100644 index 0000000..47451f3 --- /dev/null +++ b/Solo_outputResults.cpp @@ -0,0 +1,54 @@ +#include "SoloFeature.h" +#include "streamFuns.h" +#include "TimeFunctions.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +void SoloFeature::outputNumUMIperGeneCB() +{ + if (featureType==0) {//this only need to be done once + //output genes + ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); + for (uint32 ii=0; ii1) {//3 counts recorded + countMatrixStream <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; + rCBpp += 4; + } else {//1 recorded + countMatrixStream <<"\t1\t1"; + rCBpp +=2; + }; + countMatrixStream << '\n'; + }; + }; + countMatrixStream.flush(); + + //*soloStatsStream << setw(50) << "Maximum number of UMIs per CB" << setw(15) << nUperCB[0] << '\n'; + //*soloStatsStream << setw(50) << "Robust maximum number of UMIs per CB" << setw(15) << nUMImax << '\n'; + //*soloStatsStream << setw(50) << "Number of CBs that passed min UMI threshold " << setw(15) << nCBout << '\n'; + //*soloStatsStream << setw(50) << "UMIs IN CELL BARCODES:\n" + //*soloStatsStream << setw(50) << "nDetectedCellBarcodes" << setw(15) << nCB << '\n'; + + soloStatsStream->flush(); +}; From 6cc4f93c91fa8dc69c2f0ad10c55d18dd18bb8f4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 30 Dec 2018 22:03:30 -0500 Subject: [PATCH 403/536] Finalized new Solo design, Gene output tests OK. --- SoloReadBarcode.h | 1 + SoloReadBarcode_getCBandUMI.cpp | 4 +++- SoloReadFeature_inputRecords.cpp | 2 +- SoloReadFeature_record.cpp | 6 ++++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/SoloReadBarcode.h b/SoloReadBarcode.h index 1aa3ec0..30f8762 100644 --- a/SoloReadBarcode.h +++ b/SoloReadBarcode.h @@ -12,6 +12,7 @@ class SoloReadBarcode { int32 cbI; int32 cbMatch;//0=exact, 1=1 match with 1MM, 2= >1 matches with 1MM string cbMatchString;//CB matches and qualities + vector cbMatchInd;//matches uint32 *cbReadCountExact; struct { diff --git a/SoloReadBarcode_getCBandUMI.cpp b/SoloReadBarcode_getCBandUMI.cpp index c9fc921..77dfe74 100644 --- a/SoloReadBarcode_getCBandUMI.cpp +++ b/SoloReadBarcode_getCBandUMI.cpp @@ -64,14 +64,16 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) //look for 1MM, posN==-1, no Ns cbMatch=0; + cbMatchInd.clear(); for (uint32 ii=0; ii=0) {//found match //output all cbI=cbI1; + cbMatchInd.push_back(cbI1); ++cbMatch; - cbMatchString += ' ' +to_string(cbI) + ' ' + cbQual.at(pSolo.cbL-1-ii); + cbMatchString += ' ' +to_string(cbI1) + ' ' + cbQual.at(pSolo.cbL-1-ii); }; }; }; diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp index f8071dc..2edd976 100644 --- a/SoloReadFeature_inputRecords.cpp +++ b/SoloReadFeature_inputRecords.cpp @@ -17,7 +17,7 @@ bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 return true; }; -void SoloReadFeature::inputRecords(uint32 ** cbP, uint32 *cbReadCountExactTotal) +void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) { {//load exact matches strU_0->flush(); diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 1da4bf8..6383109 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -58,8 +58,10 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re } else if (soloBar.cbMatch==1) {//1 match with 1MM cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); return; - } else { - cbReadCount[soloBar.cbI] += soloBar.cbMatch*outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); + } else {//>1 matches + uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); + for (auto &cbi : soloBar.cbMatchInd) + cbReadCount[cbi] += nfeat; return; }; }; From d7e97fac534fbc9676aaefe090ad67875fe10834 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 30 Dec 2018 23:11:18 -0500 Subject: [PATCH 404/536] Solo: changed SJ output to better match Gene output --- SoloReadFeature_record.cpp | 21 ++++++++++++++------- Transcript.cpp | 5 ++++- Transcript.h | 2 +- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 6383109..471fd97 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -30,24 +30,31 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re vector> readSJs; if (featureType==0) {//genes - //check genes, return if no gene + //check genes, return if no gene of multimapping if (readTrGenes.size()==0) { stats.V[stats.nNoFeature]++; return; - } else if (readTrGenes.size()>1) { + }; + if (readTrGenes.size()>1) { stats.V[stats.nAmbigFeature]++; if (nTr>1) stats.V[stats.nAmbigFeatureMultimap]++; return; }; } else if (featureType==1) {//SJs - alignOut->extractSpliceJunctions(readSJs); - if (readSJs.empty()) { - stats.V[stats.nNoFeature]++; + if (nTr>1) {//reject all multimapping junctions + stats.V[stats.nAmbigFeatureMultimap]++; return; - } else if (nTr>1) {//record SJs from the read + }; + //for SJs, still check genes, return if multi-gene + if (readTrGenes.size()>1) { stats.V[stats.nAmbigFeature]++; - stats.V[stats.nAmbigFeatureMultimap]++; + return; + }; + bool sjAnnot; + alignOut->extractSpliceJunctions(readSJs, sjAnnot); + if ( readSJs.empty() || (sjAnnot && readTrGenes.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) + stats.V[stats.nNoFeature]++; return; }; }; diff --git a/Transcript.cpp b/Transcript.cpp index 9495993..d7f63b5 100644 --- a/Transcript.cpp +++ b/Transcript.cpp @@ -35,14 +35,17 @@ void Transcript::add(Transcript *trIn) { nUnique+=trIn->nUnique; }; -void Transcript::extractSpliceJunctions(vector> &sjOut) +void Transcript::extractSpliceJunctions(vector> &sjOut, bool &annotYes) { + annotYes=true; for (uint64 iex=0; iex=0) {//only record junctions, not indels or mate gap array sj; sj[0]=exons[iex][EX_G]+exons[iex][EX_L];//start sj[1]=exons[iex+1][EX_G] - sj[0]; //gap sjOut.push_back(sj); + if (sjAnnot[iex]==0) + annotYes=false;//if one of the SJs is unannoated, annotYes=false }; }; }; diff --git a/Transcript.h b/Transcript.h index d41eb83..a8f93e8 100644 --- a/Transcript.h +++ b/Transcript.h @@ -62,7 +62,7 @@ class Transcript { int variationAdjust(const Genome &mapGen, char *R); string generateCigarP(); //generates CIGAR void peOverlapSEtoPE(uint* mSta, Transcript &t); - void extractSpliceJunctions(vector> &sjOut); + void extractSpliceJunctions(vector> &sjOut, bool &annotYes); private: From b42dfe132609326e0be70e5221d5b77ab4bfa418 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 9 Jan 2019 14:16:18 -0500 Subject: [PATCH 405/536] Preliminary STARsolo release. --- Parameters.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Parameters.h b/Parameters.h index a654a6e..41c6235 100644 --- a/Parameters.h +++ b/Parameters.h @@ -11,6 +11,8 @@ #include "ParametersChimeric.h" #include "ParametersSolo.h" #include "ParametersGenome.h" +#include +#include class Parameters { From 63b9eb5d3744c3bb5a15f78380336c7467c3b15b Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 15 Jan 2019 11:14:11 -0500 Subject: [PATCH 406/536] Default transcriptome conversion options for STARsolo. --- Parameters.cpp | 86 ++++++++++++++++++++++----------------------- ParametersSolo.cpp | 10 ++++++ SoloFeature.cpp | 5 +-- SoloRead.cpp | 8 +++-- SoloRead_record.cpp | 3 ++ 5 files changed, 64 insertions(+), 48 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index c455ca5..4955b9a 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -959,6 +959,49 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --outSAMtype BAM ... \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + + //quantification parameters + quant.yes=false; + quant.geCount.yes=false; + quant.trSAM.yes=false; + quant.trSAM.bamYes=false; + if (quant.mode.at(0) != "-") { + quant.yes=true; + for (uint32 ii=0; ii-2) + quant.trSAM.bamYes=true; + + if (quant.trSAM.bamYes) { + if (outStd=="BAM_Quant") { + outFileNamePrefix="-"; + } else { + outQuantBAMfileName=outFileNamePrefix + "Aligned.toTranscriptome.out.bam"; + }; + inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); + }; + if (quant.trSAM.ban=="IndelSoftclipSingleend") { + quant.trSAM.indel=false; + quant.trSAM.softClip=false; + quant.trSAM.singleEnd=false; + } else if (quant.trSAM.ban=="Singleend") { + quant.trSAM.indel=true; + quant.trSAM.softClip=true; + quant.trSAM.singleEnd=false; + }; + } else if (quant.mode.at(ii)=="GeneCounts") { + quant.geCount.yes=true; + quant.geCount.outFile=outFileNamePrefix + "ReadsPerGene.out.tab"; + } else { + ostringstream errOut; + errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + }; //solo pSolo.initialize(this); @@ -1260,49 +1303,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - //quantification parameters - quant.yes=false; - quant.geCount.yes=false; - quant.trSAM.yes=false; - quant.trSAM.bamYes=false; - if (quant.mode.at(0) != "-") { - quant.yes=true; - for (uint32 ii=0; ii-2) - quant.trSAM.bamYes=true; - - if (quant.trSAM.bamYes) { - if (outStd=="BAM_Quant") { - outFileNamePrefix="-"; - } else { - outQuantBAMfileName=outFileNamePrefix + "Aligned.toTranscriptome.out.bam"; - }; - inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); - }; - if (quant.trSAM.ban=="IndelSoftclipSingleend") { - quant.trSAM.indel=false; - quant.trSAM.softClip=false; - quant.trSAM.singleEnd=false; - } else if (quant.trSAM.ban=="Singleend") { - quant.trSAM.indel=true; - quant.trSAM.softClip=true; - quant.trSAM.singleEnd=false; - }; - } else if (quant.mode.at(ii)=="GeneCounts") { - quant.geCount.yes=true; - quant.geCount.outFile=outFileNamePrefix + "ReadsPerGene.out.tab"; - } else { - ostringstream errOut; - errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; - exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - }; - //sjdb insert on the fly sjdbInsert.pass1=false; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 847383a..4f2897c 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -113,6 +113,16 @@ void ParametersSolo::initialize(Parameters *pPin) //int comp1 = [] (const void *a, const void *b) {uint32 aa=*(uint32*) a; uint32 bb=*(uint32*) b; if (a qsort(cbWL.data(),cbWL.size(),sizeof(uint32),funCompareNumbers); + if (!pP->quant.trSAM.yes) { + pP->quant.yes = true; + pP->quant.trSAM.yes = true; + pP->quant.trSAM.bamYes = false; + pP->quant.trSAM.bamCompression = -2; + pP->quant.trSAM.indel = true; + pP->quant.trSAM.softClip = true; + pP->inOut->logMain << "Turning on Genomic->Transcriptomic coordinate conversion for STARsolo\n"; + }; + time_t rawTime; time(&rawTime); pP->inOut->logMain << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() < &readTrGenes, Transcript *alignOut) { + if (pSolo.type==0) + return; + readBar->getCBandUMI(barcodeSeq); for (uint32 ii=0; ii Date: Wed, 16 Jan 2019 21:01:44 -0500 Subject: [PATCH 407/536] Implemented --umiDedup option to specify dedup types. --- Parameters.cpp | 87 +++++++------- ParametersSolo.cpp | 38 +++--- ParametersSolo.h | 6 +- SoloFeature_outputResults.cpp | 10 +- SoloReadFeature_inputRecords.cpp | 4 +- parametersDefault | 7 ++ parametersDefault.xxd | 195 +++++++++++++++++++------------ 7 files changed, 204 insertions(+), 143 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 4955b9a..abdeb09 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -256,6 +256,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "soloStrand", &pSolo.strandStr)); parArray.push_back(new ParameterInfoVector (-1, -1, "soloOutFileNames", &pSolo.outFileNames)); parArray.push_back(new ParameterInfoVector (-1, -1, "soloFeatures", &pSolo.featureIn)); + parArray.push_back(new ParameterInfoVector (-1, -1, "soloUMIdedup", &pSolo.umiDedup)); // //SW parameters // parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); @@ -959,49 +960,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --outSAMtype BAM ... \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - //quantification parameters - quant.yes=false; - quant.geCount.yes=false; - quant.trSAM.yes=false; - quant.trSAM.bamYes=false; - if (quant.mode.at(0) != "-") { - quant.yes=true; - for (uint32 ii=0; ii-2) - quant.trSAM.bamYes=true; - - if (quant.trSAM.bamYes) { - if (outStd=="BAM_Quant") { - outFileNamePrefix="-"; - } else { - outQuantBAMfileName=outFileNamePrefix + "Aligned.toTranscriptome.out.bam"; - }; - inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); - }; - if (quant.trSAM.ban=="IndelSoftclipSingleend") { - quant.trSAM.indel=false; - quant.trSAM.softClip=false; - quant.trSAM.singleEnd=false; - } else if (quant.trSAM.ban=="Singleend") { - quant.trSAM.indel=true; - quant.trSAM.softClip=true; - quant.trSAM.singleEnd=false; - }; - } else if (quant.mode.at(ii)=="GeneCounts") { - quant.geCount.yes=true; - quant.geCount.outFile=outFileNamePrefix + "ReadsPerGene.out.tab"; - } else { - ostringstream errOut; - errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; - exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - }; //solo pSolo.initialize(this); @@ -1303,6 +1261,49 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + //quantification parameters + quant.yes=false; + quant.geCount.yes=false; + quant.trSAM.yes=false; + quant.trSAM.bamYes=false; + if (quant.mode.at(0) != "-") { + quant.yes=true; + for (uint32 ii=0; ii-2) + quant.trSAM.bamYes=true; + + if (quant.trSAM.bamYes) { + if (outStd=="BAM_Quant") { + outFileNamePrefix="-"; + } else { + outQuantBAMfileName=outFileNamePrefix + "Aligned.toTranscriptome.out.bam"; + }; + inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); + }; + if (quant.trSAM.ban=="IndelSoftclipSingleend") { + quant.trSAM.indel=false; + quant.trSAM.softClip=false; + quant.trSAM.singleEnd=false; + } else if (quant.trSAM.ban=="Singleend") { + quant.trSAM.indel=true; + quant.trSAM.softClip=true; + quant.trSAM.singleEnd=false; + }; + } else if (quant.mode.at(ii)=="GeneCounts") { + quant.geCount.yes=true; + quant.geCount.outFile=outFileNamePrefix + "ReadsPerGene.out.tab"; + } else { + ostringstream errOut; + errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + }; + //sjdb insert on the fly sjdbInsert.pass1=false; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 4f2897c..f4f9712 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -61,15 +61,25 @@ void ParametersSolo::initialize(Parameters *pPin) }; }; nFeatures=features.size(); -// if (!featureYes[0]) { -// ostringstream errOut; -// errOut << "EXITING because of fatal PARAMETERS error: --soloFeatures has to contain"<inOut->logMain, EXIT_CODE_PARAMETER, *pP); -// }; + + umiDedupYes.resize(3,false); + umiDedupColumns.resize(3); + for (uint32 ii=0; iiinOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + }; ///////////// finished parameters input //make output directory if needed @@ -113,16 +123,6 @@ void ParametersSolo::initialize(Parameters *pPin) //int comp1 = [] (const void *a, const void *b) {uint32 aa=*(uint32*) a; uint32 bb=*(uint32*) b; if (a qsort(cbWL.data(),cbWL.size(),sizeof(uint32),funCompareNumbers); - if (!pP->quant.trSAM.yes) { - pP->quant.yes = true; - pP->quant.trSAM.yes = true; - pP->quant.trSAM.bamYes = false; - pP->quant.trSAM.bamCompression = -2; - pP->quant.trSAM.indel = true; - pP->quant.trSAM.softClip = true; - pP->inOut->logMain << "Turning on Genomic->Transcriptomic coordinate conversion for STARsolo\n"; - }; - time_t rawTime; time(&rawTime); pP->inOut->logMain << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() < umiDedup; + vector umiDedupColumns; + vector umiDedupYes; //output vector outFileNames; //constants diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp index 9e90cdd..03a1533 100644 --- a/SoloFeature_outputResults.cpp +++ b/SoloFeature_outputResults.cpp @@ -31,14 +31,18 @@ void SoloFeature::outputResults() for (uint32 icb=0; icb1) {//3 counts recorded - countMatrixStream <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; + count1[1]=rCBpp[2]; + count1[2]=rCBpp[3]; rCBpp += 4; } else {//1 recorded - countMatrixStream <<"\t1\t1"; rCBpp +=2; }; + countMatrixStream << rCBpp[0]+1 <<'\t'<< indCB[icb]+1; + for (uint32 ii=0; iiignore('\n',(uint32) (-1));//ignore until the end of the line + strU_2->ignore((uint32) (-1),'\n');//ignore until the end of the line continue; //nothing to record }; *strU_2 >> ncb; @@ -70,7 +70,7 @@ void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) *strU_2 >> cbin >> qin; if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work qin -= pSolo.QSbase; - qin = qin < pSolo.QSbase ? qin : pSolo.QSbase; + qin = qin < pSolo.QSmax ? qin : pSolo.QSmax; pin=cbReadCountExactTotal[cbin]*pow(10.0,-qin/10.0); ptot+=pin; if (pin>pmax) { diff --git a/parametersDefault b/parametersDefault index dacc158..19221f0 100644 --- a/parametersDefault +++ b/parametersDefault @@ -685,6 +685,12 @@ soloCBlen 16 soloUMIlen 10 int>0: UMI length +soloUMIdedup 1MM_All + string(s) type of UMI deduplication (collapsing) algorithm + 1MM_All ... all UMIs with 1 mismatch distance to each other are collapsed (i.e. counted once) + 1MM_Directional ... follows the "directional" method from the UMI-tools by Smith, Heger and Sudbery (Genome Research 2017). + 1MM_NotCollapsed ... UMIs with 1 mismatch distance to others are not collapsed (i.e. all counted) + soloCBwhitelist - string: file with whitelist of cell barcodes @@ -701,3 +707,4 @@ soloOutFileNames Solo.out/ genes.tsv barcodes.tsv matrix.mtx matrixSJ 3rd word ... gene IDs and names 4th word ... cell/gene counts matrix 5th word ... cell/splice junction counts matrix + diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 512ff1e..d3062de 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -3056,80 +3056,125 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, - 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, - 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, - 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, - 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, - 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, - 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, + 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, + 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, + 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, + 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, + 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, + 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, + 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, + 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, + 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, + 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, + 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, + 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, + 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, + 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, + 0x0a }; -unsigned int parametersDefault_len = 37577; +unsigned int parametersDefault_len = 38113; From 5ba4e0671d7d25e79f6a1b9cb867483c448983f5 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 17 Jan 2019 01:10:51 -0500 Subject: [PATCH 408/536] Fixed problems with the previous commit. Solo tests passed. --- Parameters.cpp | 90 +++++++++++++++++------------------ ParametersSolo.cpp | 11 +++++ SoloFeature_outputResults.cpp | 2 +- 3 files changed, 55 insertions(+), 48 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index abdeb09..b1c00de 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -258,10 +258,6 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoVector (-1, -1, "soloFeatures", &pSolo.featureIn)); parArray.push_back(new ParameterInfoVector (-1, -1, "soloUMIdedup", &pSolo.umiDedup)); -// //SW parameters -// parArray.push_back(new ParameterInfoScalar (-1, -1, "swMode", &swMode)); -// parArray.push_back(new ParameterInfoScalar (-1, -1, "swWinCoverageMinP", &swWinCoverageMinP)); - parameterInputName.push_back("Default"); parameterInputName.push_back("Command-Line-Initial"); parameterInputName.push_back("Command-Line"); @@ -960,6 +956,49 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --outSAMtype BAM ... \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + + //quantification parameters + quant.yes=false; + quant.geCount.yes=false; + quant.trSAM.yes=false; + quant.trSAM.bamYes=false; + if (quant.mode.at(0) != "-") { + quant.yes=true; + for (uint32 ii=0; ii-2) + quant.trSAM.bamYes=true; + + if (quant.trSAM.bamYes) { + if (outStd=="BAM_Quant") { + outFileNamePrefix="-"; + } else { + outQuantBAMfileName=outFileNamePrefix + "Aligned.toTranscriptome.out.bam"; + }; + inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); + }; + if (quant.trSAM.ban=="IndelSoftclipSingleend") { + quant.trSAM.indel=false; + quant.trSAM.softClip=false; + quant.trSAM.singleEnd=false; + } else if (quant.trSAM.ban=="Singleend") { + quant.trSAM.indel=true; + quant.trSAM.softClip=true; + quant.trSAM.singleEnd=false; + }; + } else if (quant.mode.at(ii)=="GeneCounts") { + quant.geCount.yes=true; + quant.geCount.outFile=outFileNamePrefix + "ReadsPerGene.out.tab"; + } else { + ostringstream errOut; + errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + }; + }; //solo pSolo.initialize(this); @@ -1261,49 +1300,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - //quantification parameters - quant.yes=false; - quant.geCount.yes=false; - quant.trSAM.yes=false; - quant.trSAM.bamYes=false; - if (quant.mode.at(0) != "-") { - quant.yes=true; - for (uint32 ii=0; ii-2) - quant.trSAM.bamYes=true; - - if (quant.trSAM.bamYes) { - if (outStd=="BAM_Quant") { - outFileNamePrefix="-"; - } else { - outQuantBAMfileName=outFileNamePrefix + "Aligned.toTranscriptome.out.bam"; - }; - inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); - }; - if (quant.trSAM.ban=="IndelSoftclipSingleend") { - quant.trSAM.indel=false; - quant.trSAM.softClip=false; - quant.trSAM.singleEnd=false; - } else if (quant.trSAM.ban=="Singleend") { - quant.trSAM.indel=true; - quant.trSAM.softClip=true; - quant.trSAM.singleEnd=false; - }; - } else if (quant.mode.at(ii)=="GeneCounts") { - quant.geCount.yes=true; - quant.geCount.outFile=outFileNamePrefix + "ReadsPerGene.out.tab"; - } else { - ostringstream errOut; - errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; - exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - }; - //sjdb insert on the fly sjdbInsert.pass1=false; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index f4f9712..757d879 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -123,6 +123,17 @@ void ParametersSolo::initialize(Parameters *pPin) //int comp1 = [] (const void *a, const void *b) {uint32 aa=*(uint32*) a; uint32 bb=*(uint32*) b; if (a qsort(cbWL.data(),cbWL.size(),sizeof(uint32),funCompareNumbers); + if (!pP->quant.trSAM.yes) { + pP->quant.yes = true; + pP->quant.trSAM.yes = true; + pP->quant.trSAM.bamYes = false; + pP->quant.trSAM.bamCompression = -2; + pP->quant.trSAM.indel = true; + pP->quant.trSAM.softClip = true; + pP->inOut->logMain << "Turning on Genomic->Transcriptomic coordinate conversion for STARsolo\n"; + }; + + time_t rawTime; time(&rawTime); pP->inOut->logMain << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() <1) {//3 counts recorded @@ -40,7 +41,6 @@ void SoloFeature::outputResults() } else {//1 recorded rCBpp +=2; }; - countMatrixStream << rCBpp[0]+1 <<'\t'<< indCB[icb]+1; for (uint32 ii=0; ii Date: Tue, 22 Jan 2019 15:46:15 -0500 Subject: [PATCH 409/536] Final changes for solo* parameters. --- Parameters.cpp | 4 +- ParametersSolo.cpp | 8 +- ParametersSolo.h | 4 +- SoloFeature_outputResults.cpp | 6 +- SoloReadBarcode_getCBandUMI.cpp | 12 +- VERSION | 2 +- parametersDefault | 12 +- parametersDefault.xxd | 3750 ++++++++++++++++--------------- 8 files changed, 1909 insertions(+), 1889 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index b1c00de..0939993 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -250,8 +250,10 @@ Parameters::Parameters() {//initalize parameters info //solo parArray.push_back(new ParameterInfoScalar (-1, -1, "soloType", &pSolo.typeStr)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBstart", &pSolo.cbS)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIstart", &pSolo.umiS)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBlen", &pSolo.cbL)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBwhitelist", &pSolo.soloCBwhitelist)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloStrand", &pSolo.strandStr)); parArray.push_back(new ParameterInfoVector (-1, -1, "soloOutFileNames", &pSolo.outFileNames)); diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 757d879..7b332c5 100644 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -16,14 +16,14 @@ void ParametersSolo::initialize(Parameters *pPin) if (typeStr=="None") { type=0; return; - } else if (typeStr=="10XchromiumV2") { + } else if (typeStr=="Droplet") { type=1; bL=cbL+umiL; pP->readNmates=1; //output mates TODO: check that readNmatesIn==2 } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloType="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; @@ -63,7 +63,7 @@ void ParametersSolo::initialize(Parameters *pPin) nFeatures=features.size(); umiDedupYes.resize(3,false); - umiDedupColumns.resize(3); + umiDedupColumns.resize(umiDedup.size()); for (uint32 ii=0; iiinOut->logMain << "Turning on Genomic->Transcriptomic coordinate conversion for STARsolo\n"; }; - time_t rawTime; time(&rawTime); pP->inOut->logMain << timeMonthDayTime(rawTime) << "Finished reading CB whitelist sequences: " << cbWL.size() < cbWL; diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp index 64953ae..e6e1001 100644 --- a/SoloFeature_outputResults.cpp +++ b/SoloFeature_outputResults.cpp @@ -33,10 +33,10 @@ void SoloFeature::outputResults() for (uint32 ig=0; ig1) {//3 counts recorded - count1[1]=rCBpp[2]; - count1[2]=rCBpp[3]; + count1[0] = rCBpp[1]; + count1[1] = rCBpp[2]; + count1[2] = rCBpp[3]; rCBpp += 4; } else {//1 recorded rCBpp +=2; diff --git a/SoloReadBarcode_getCBandUMI.cpp b/SoloReadBarcode_getCBandUMI.cpp index 77dfe74..dbfdea3 100644 --- a/SoloReadBarcode_getCBandUMI.cpp +++ b/SoloReadBarcode_getCBandUMI.cpp @@ -6,15 +6,17 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) { if (pSolo.type==0) return; + cbI=-999; cbMatch=-1; - cbI=-999; cbMatchString=""; - cbSeq=readNameExtra.substr(0,pSolo.cbL); - umiSeq=readNameExtra.substr(pSolo.cbL,pSolo.umiL); - cbQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1,pSolo.cbL); - umiQual=readNameExtra.substr(pSolo.cbL+pSolo.umiL+1+pSolo.cbL,pSolo.umiL); + cbSeq=readNameExtra.substr(pSolo.cbS-1,pSolo.cbL); + umiSeq=readNameExtra.substr(pSolo.umiS-1,pSolo.umiL); + + uint32 qualStart = readNameExtra.find(' ',pSolo.cbL+pSolo.umiL); + cbQual=readNameExtra.substr(qualStart+pSolo.cbS,pSolo.cbL); + umiQual=readNameExtra.substr(qualStart+pSolo.umiS,pSolo.umiL); //check UMIs, return if bad UMIs if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns diff --git a/VERSION b/VERSION index 04b9547..e7b693a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.6.1d" +#define STAR_VERSION "STAR_2.6.1d_solo1" diff --git a/parametersDefault b/parametersDefault index 19221f0..88374a4 100644 --- a/parametersDefault +++ b/parametersDefault @@ -250,11 +250,11 @@ outSAMattributes Standard All ... NH HI AS nM NM MD jM jI MC ch vA ... variant allele vG ... genomic coordiante of the variant overlapped by the read - vW ... 0/1 - alignment does not pass / passes WASP filtering. Requires --waspOutputMode SAMtag . + vW ... 0/1 - alignment does not pass / passes WASP filtering. Requires --waspOutputMode SAMtag + CR,CY,UR,UY ... sequences and quality scores of cell barcodes and UMIs for the solo* demultiplexing Unsupported/undocumented: rB ... alignment block read/genomic coordinates vR ... read coordinate of the variant - CR,CY,UR,UY ... sequences and quality scores of cell barcodes and UMIs for the solo* demultiplexing outSAMattrIHstart 1 int>=0: start value for the IH attribute. 0 may be required by some downstream software, such as Cufflinks or StringTie. @@ -672,16 +672,22 @@ waspOutputMode None ### solo (single cell) parameters soloType None string(s): type of single-cell RNA-seq - 10XchromiumV2 ... 10X Genomics Chromium Verison 2 chemistry + Droplet ... one cell barcode and one UMI barcode in read2, e.g. Drop-seq and 10X Chromium soloFeatures Gene string(s) genomic features for which the UMI counts per Cell Barcode are collected Gene ... genes: reads match the gene transcript SJ ... splice junctions: reported in SJ.out.tab +soloCBstart 1 + int>0: cell barcode start base + soloCBlen 16 int>0: cell barcode length +soloUMIstart 17 + int>0: UMI start base + soloUMIlen 10 int>0: UMI length diff --git a/parametersDefault.xxd b/parametersDefault.xxd index d3062de..af163f0 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1182,866 +1182,826 @@ unsigned char parametersDefault[] = { 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, - 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, - 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, + 0x2c, 0x43, 0x59, 0x2c, 0x55, 0x52, 0x2c, 0x55, 0x59, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, + 0x65, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, + 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, + 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, + 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, 0x2c, - 0x43, 0x59, 0x2c, 0x55, 0x52, 0x2c, 0x55, 0x59, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, - 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, 0x65, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, - 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, - 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, + 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, + 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, - 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, - 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, - 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, - 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, - 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, - 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, + 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, + 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, + 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, - 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, - 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, - 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, - 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, - 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, - 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, - 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, - 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, - 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, - 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, - 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, + 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, + 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, + 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, + 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, + 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, + 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, + 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, + 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, + 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, + 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, - 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, - 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, - 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, - 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, + 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, + 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, + 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, + 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, + 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, + 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, + 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, - 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, + 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, + 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, + 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, - 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, - 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, - 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, - 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, - 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, + 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, + 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, + 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, - 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, - 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, - 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, - 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, - 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, - 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, - 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, - 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, - 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, - 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, - 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, + 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, + 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, + 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, + 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, + 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, - 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, - 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, - 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, - 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, - 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, - 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, - 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, - 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, + 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, + 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, + 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, + 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, + 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, + 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, + 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, + 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, - 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, - 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, - 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, + 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, + 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, + 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, - 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, + 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, + 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, - 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, - 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, - 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, + 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, - 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, - 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, - 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, - 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, - 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, @@ -2074,1107 +2034,1159 @@ unsigned char parametersDefault[] = { 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, - 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, - 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, - 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, - 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, - 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, + 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, + 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, + 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, + 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, - 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, - 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, - 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, + 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, + 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, - 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, - 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, - 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, - 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, - 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, + 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, + 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, - 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, + 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, + 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, + 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, + 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, + 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, - 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, - 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, - 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, - 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, - 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, - 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, - 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, + 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, + 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, + 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, + 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, + 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, + 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, + 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, - 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, + 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, - 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, - 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x59, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, - 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, + 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, + 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, - 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, - 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, - 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, + 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, + 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, + 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x75, 0x6e, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x70, - 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, - 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, - 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, - 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x75, + 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, - 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, - 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, - 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, - 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, - 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x70, 0x65, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, + 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, + 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, + 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, + 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, + 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, + 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, + 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, + 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, + 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, + 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, + 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, + 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, - 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, - 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, - 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, - 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, + 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, + 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, + 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, + 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, + 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, + 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, + 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, - 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, + 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, - 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, - 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, + 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, + 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, - 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, - 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, - 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, - 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, + 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, - 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, - 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, - 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, - 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, - 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2c, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, - 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, + 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, - 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, - 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, + 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, + 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, + 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, + 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, + 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, + 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, + 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, + 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, + 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, + 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, + 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, + 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, + 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, + 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, + 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, + 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x73, + 0x6f, 0x6c, 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, + 0x63, 0x65, 0x6c, 0x6c, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, + 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, + 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x62, 0x61, 0x72, 0x63, + 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x2d, + 0x73, 0x65, 0x71, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x30, 0x58, 0x20, + 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x0a, 0x0a, 0x73, 0x6f, + 0x6c, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, + 0x6c, 0x20, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, - 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, - 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, - 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, - 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, - 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, - 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, - 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, - 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, - 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, - 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, - 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, - 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, - 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, - 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, - 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, - 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x58, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, - 0x6d, 0x56, 0x32, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x30, - 0x58, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x20, 0x43, - 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x56, 0x65, 0x72, 0x69, - 0x73, 0x6f, 0x6e, 0x20, 0x32, 0x20, 0x63, 0x68, 0x65, 0x6d, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, 0x61, 0x72, - 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, - 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, - 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, - 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, - 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, + 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, + 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x37, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, + 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, + 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, + 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, + 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, + 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, + 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, + 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, + 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, + 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, + 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, + 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, + 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, + 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, + 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, + 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, + 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, + 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, + 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, + 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, + 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, + 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, + 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, - 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, - 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, - 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, - 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, - 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, - 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, - 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, - 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, - 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, - 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, - 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, - 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, - 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, + 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, - 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, - 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, - 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, + 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, + 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 38113; +unsigned int parametersDefault_len = 38266; From d45b1c5d02d376a43214421303695129bed2c656 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 23 Jan 2019 17:24:24 -0500 Subject: [PATCH 410/536] Ready for 2.7.0a --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 003449e..e8d4f6d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.7.0" +#define STAR_VERSION "STAR_2.7.0a" From 61019ad38d5f91722bfded25875558bd7b6709a1 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 24 Jan 2019 10:33:46 -0500 Subject: [PATCH 411/536] 2.7.0a --- SoloReadFeature_inputRecords.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp index dd7db39..8d0e7c2 100644 --- a/SoloReadFeature_inputRecords.cpp +++ b/SoloReadFeature_inputRecords.cpp @@ -1,5 +1,6 @@ #include "SoloReadFeature.h" #include "binarySearch2.h" +#include bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) { From 6b90d114eda90e6460a04fad74dcb9d5efd5125d Mon Sep 17 00:00:00 2001 From: Avi Srivastava Date: Fri, 25 Jan 2019 00:21:05 -0500 Subject: [PATCH 412/536] header needed for python scipy mmread compatibility --- Solo_outputResults.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Solo_outputResults.cpp b/Solo_outputResults.cpp index 47451f3..dc90179 100644 --- a/Solo_outputResults.cpp +++ b/Solo_outputResults.cpp @@ -26,7 +26,7 @@ void SoloFeature::outputNumUMIperGeneCB() ofstream &countMatrixStream=ofstrOpen(matrixFileName,ERROR_OUT, P); //header - countMatrixStream <<"%%\n%\n" << Trans.nGe<< ' ' << pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; + countMatrixStream <<"%%MatrixMarket matrix coordinate integer general\n%\n" << Trans.nGe<< ' ' << pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; for (uint32 icb=0; icb Date: Tue, 29 Jan 2019 23:10:46 +0100 Subject: [PATCH 413/536] Just a final blank in a Makefile Makes diffs more difficult to understand. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 8ce1b16..73d32ec 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ CXX ?= g++ # pre-defined flags LDFLAGS_shared := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz +LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz LDFLAGS_Mac :=-pthread -lz htslib/libhts.a LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a LDFLAGS_gdb := $(LDFLAGS_shared) From 39769ad38f4b1ecbc442fb3b357bb8da17ec9430 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 4 Feb 2019 17:17:08 -0500 Subject: [PATCH 414/536] Fixed minor bugs in STARsolo. --- SoloFeature_processRecords.cpp | 2 +- SoloReadFeature_inputRecords.cpp | 1 - Transcriptome.cpp | 7 +++++-- VERSION | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/SoloFeature_processRecords.cpp b/SoloFeature_processRecords.cpp index 9358612..1f2b6df 100644 --- a/SoloFeature_processRecords.cpp +++ b/SoloFeature_processRecords.cpp @@ -75,7 +75,7 @@ void SoloFeature::processRecords(ReadAlignChunk **RAchunk) //collapse each CB nUperCB = new uint32[nCB];//record pair: nUMIs per CB and iCB, for sorting if needed nGperCB = new uint32[nCB]; - uint32 umiArray[nReadPerCBmax*umiArrayStride]; + uint32 *umiArray = new uint32[nReadPerCBmax*umiArrayStride]; nCellGeneEntries=0; for (uint32 iCB=0; iCB bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) { diff --git a/Transcriptome.cpp b/Transcriptome.cpp index ae8d361..b81c8ad 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -45,13 +45,16 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ P.inOut->logMain << "Loaded exon database, nEx="<> nGe; geID.resize(nGe); geName.resize(nGe); geBiotype.resize(nGe); for (uint ii=0;ii> geID[ii] >> geName[ii] >> geBiotype[ii]; + string line1; + getline(geStream,line1); + istringstream stream1(line1); + stream1 >> geID[ii] >> geName[ii] >> geBiotype[ii]; }; geStream.close(); }; diff --git a/VERSION b/VERSION index e8d4f6d..3eb39d0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.7.0a" +#define STAR_VERSION "STAR_2.7.0a_modified" From 60cf19ca55c8a6709e99cab894019c1a74737384 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 5 Feb 2019 11:46:35 -0500 Subject: [PATCH 415/536] Ready for 2.7.0b --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 3eb39d0..561d400 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.7.0a_modified" +#define STAR_VERSION "STAR_2.7.0b" From bc77b84b5ee088a9d686f781a5aa9dc17d19addb Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 6 Feb 2019 14:02:53 -0500 Subject: [PATCH 416/536] Fixed compilation problems and docker file. --- Genome_genomeGenerate.cpp | 4 +++- ReadAlign_stitchWindowSeeds.cpp | 3 ++- Transcript_alignScore.cpp | 4 ++-- VERSION | 2 +- stitchWindowAligns.cpp | 4 ++-- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Genome_genomeGenerate.cpp b/Genome_genomeGenerate.cpp index b866e1c..c5c137c 100644 --- a/Genome_genomeGenerate.cpp +++ b/Genome_genomeGenerate.cpp @@ -1,8 +1,9 @@ +#include + #include "IncludeDefine.h" #include "Parameters.h" #include "SuffixArrayFuns.h" #include "PackedArray.h" -#include #include "TimeFunctions.h" #include "ErrorWarning.h" #include "loadGTF.h" @@ -18,6 +19,7 @@ #include "streamFuns.h" #include "SequenceFuns.h" + char* globalG; uint globalL; diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index c1f3da2..1cf4896 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -1,10 +1,11 @@ +#include + #include "IncludeDefine.h" #include "Parameters.h" #include "Transcript.h" #include "ReadAlign.h" #include "stitchAlignToTranscript.h" #include "extendAlign.h" -#include #include "binarySearch2.h" #include "ErrorWarning.h" diff --git a/Transcript_alignScore.cpp b/Transcript_alignScore.cpp index 24db919..147f046 100644 --- a/Transcript_alignScore.cpp +++ b/Transcript_alignScore.cpp @@ -1,5 +1,5 @@ +#include #include "Transcript.h" -#include void Transcript::alignScore(char **Read1, char *G, Parameters &P) {//re-calculates score and number of mismatches maxScore=0; @@ -52,4 +52,4 @@ void Transcript::alignScore(char **Read1, char *G, Parameters &P) {//re-calculat maxScore += int(ceil( log2( (double) ( max(1LLU,exons[nExons-1][EX_G]+exons[nExons-1][EX_L] - exons[0][EX_G]) ) ) \ * P.scoreGenomicLengthLog2scale - 0.5)); }; -}; \ No newline at end of file +}; diff --git a/VERSION b/VERSION index 561d400..bf5b545 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.7.0b" +#define STAR_VERSION "STAR_2.7.0b_0206" diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index a820613..4a01bd9 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -1,9 +1,9 @@ #include "stitchWindowAligns.h" -#include -#include #include "blocksOverlap.h" #include "ErrorWarning.h" #include "binarySearch2.h" +#include +#include void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, uint tG2, Transcript trA, \ uint Lread, uiWA* WA, char* R, Genome &mapGen, \ From 2a24d5310ebddec8e0c019be80ed96a898f3e22d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 6 Feb 2019 18:37:47 -0500 Subject: [PATCH 417/536] Replaced tabs with spaces in STARsolo matrix.mtx output. --- Makefile | 2 +- SoloFeature_outputResults.cpp | 13 +++----- SoloReadFeature_inputRecords.cpp | 3 +- Solo_outputResults.cpp | 54 -------------------------------- 4 files changed, 7 insertions(+), 65 deletions(-) delete mode 100644 Solo_outputResults.cpp diff --git a/Makefile b/Makefile index 73d32ec..8ce1b16 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ CXX ?= g++ # pre-defined flags LDFLAGS_shared := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz +LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz LDFLAGS_Mac :=-pthread -lz htslib/libhts.a LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a LDFLAGS_gdb := $(LDFLAGS_shared) diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp index e6e1001..e9f5bdd 100644 --- a/SoloFeature_outputResults.cpp +++ b/SoloFeature_outputResults.cpp @@ -26,12 +26,13 @@ void SoloFeature::outputResults() ofstream &countMatrixStream=ofstrOpen(matrixFileName,ERROR_OUT, P); //header - countMatrixStream <<"%%\n%\n" << Trans.nGe<< ' ' << pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; + countMatrixStream <<"%%MatrixMarket matrix coordinate integer general\n%\n"; + countMatrixStream << Trans.nGe<< ' ' << pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; for (uint32 icb=0; icb1) {//3 counts recorded count1[0] = rCBpp[1]; @@ -42,17 +43,11 @@ void SoloFeature::outputResults() rCBpp +=2; }; for (uint32 ii=0; iiflush(); }; diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp index dd7db39..0fdfd81 100644 --- a/SoloReadFeature_inputRecords.cpp +++ b/SoloReadFeature_inputRecords.cpp @@ -1,5 +1,6 @@ #include "SoloReadFeature.h" #include "binarySearch2.h" +#include bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) { @@ -71,7 +72,7 @@ void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work qin -= pSolo.QSbase; qin = qin < pSolo.QSmax ? qin : pSolo.QSmax; - pin=cbReadCountExactTotal[cbin]*pow(10.0,-qin/10.0); + pin=cbReadCountExactTotal[cbin]*std::pow(10.0,-qin/10.0); ptot+=pin; if (pin>pmax) { cb=cbin; diff --git a/Solo_outputResults.cpp b/Solo_outputResults.cpp deleted file mode 100644 index dc90179..0000000 --- a/Solo_outputResults.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "SoloFeature.h" -#include "streamFuns.h" -#include "TimeFunctions.h" -#include "serviceFuns.cpp" -#include "SequenceFuns.h" - -void SoloFeature::outputNumUMIperGeneCB() -{ - if (featureType==0) {//this only need to be done once - //output genes - ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); - for (uint32 ii=0; ii1) {//3 counts recorded - countMatrixStream <<'\t'<< rCBpp[2] <<'\t'<< rCBpp[3]; - rCBpp += 4; - } else {//1 recorded - countMatrixStream <<"\t1\t1"; - rCBpp +=2; - }; - countMatrixStream << '\n'; - }; - }; - countMatrixStream.flush(); - - //*soloStatsStream << setw(50) << "Maximum number of UMIs per CB" << setw(15) << nUperCB[0] << '\n'; - //*soloStatsStream << setw(50) << "Robust maximum number of UMIs per CB" << setw(15) << nUMImax << '\n'; - //*soloStatsStream << setw(50) << "Number of CBs that passed min UMI threshold " << setw(15) << nCBout << '\n'; - //*soloStatsStream << setw(50) << "UMIs IN CELL BARCODES:\n" - //*soloStatsStream << setw(50) << "nDetectedCellBarcodes" << setw(15) << nCB << '\n'; - - soloStatsStream->flush(); -}; From b297311afebf3cb4c69431b75febe426f5ec6093 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 7 Feb 2019 18:13:03 -0500 Subject: [PATCH 418/536] Fixed a problem with STARsolo genes.tsv output. --- SoloFeature_outputResults.cpp | 4 ++-- Transcriptome.cpp | 3 ++- VERSION | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp index e9f5bdd..05a1542 100644 --- a/SoloFeature_outputResults.cpp +++ b/SoloFeature_outputResults.cpp @@ -10,7 +10,7 @@ void SoloFeature::outputResults() //output genes ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); for (uint32 ii=0; ii> nGe; geID.resize(nGe); geName.resize(nGe); - geBiotype.resize(nGe); + geBiotype.resize(nGe); + geStream.ignore(999,'\n'); for (uint ii=0;ii Date: Fri, 8 Feb 2019 17:59:14 -0500 Subject: [PATCH 419/536] Ready for 2.7.0c --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 3e05861..5ee4453 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.7.0b_0207" +#define STAR_VERSION "2.7.0c" From aa0b138a636192fcd2c0190e54d6466a0464fbe5 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 13 Feb 2019 15:04:16 -0500 Subject: [PATCH 420/536] Enforced genome version rules for 2.7.0 --- Genome.cpp | 12 +- Parameters.cpp | 3 +- Parameters.h | 3 +- VERSION | 2 +- genomeParametersWrite.cpp | 2 +- loadGTF.cpp | 1 + parametersDefault | 6 +- parametersDefault.xxd | 268 ++++++++++++++++++-------------------- 8 files changed, 142 insertions(+), 155 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index d5376b5..b8524da 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -137,19 +137,17 @@ void Genome::genomeLoad(){//allocate and load Genome }; //check genome version - if (P1.versionGenome.size()==0 || P1.versionGenome[0]==0) {// + if (P1.versionGenome.size()==0) {// ostringstream errOut; errOut << "EXITING because of FATAL ERROR: read no value for the versionGenome parameter from genomeParameters.txt file\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); - } else if (pGe.sjdbFileChrStartEnd.at(0)=="-" && P1.versionGenome.at(0) >= P.versionGenome.at(0)) {// - P.inOut->logMain << "Genome version is compatible with current STAR version\n"; - } else if (pGe.sjdbFileChrStartEnd.at(0)!="-" && P1.versionGenome.at(0) >= P.versionGenome.at(1)) {// - P.inOut->logMain << "Genome version is compatible with current STAR version\n"; + } else if (P1.versionGenome == P.versionGenome) {// + P.inOut->logMain << "Genome version is compatible with current STAR\n"; } else { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: Genome version is INCOMPATIBLE with current STAR version\n"; - errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; + errOut << "EXITING because of FATAL ERROR: Genome version: " << P1.versionGenome << " is INCOMPATIBLE with running STAR version: "<< STAR_VERSION <<"\n"; + errOut << "SOLUTION: please re-generate genome from scratch with running version of STAR, or with version: " << P.versionGenome <<"\n"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; diff --git a/Parameters.cpp b/Parameters.cpp index 0939993..2f035dc 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -20,8 +20,7 @@ Parameters::Parameters() {//initalize parameters info inOut = new InOutStreams; //versions - parArray.push_back(new ParameterInfoScalar (-1, -1, "versionSTAR", &versionSTAR)); - parArray.push_back(new ParameterInfoVector (-1, -1, "versionGenome", &versionGenome)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "versionGenome", &versionGenome)); //parameters parArray.push_back(new ParameterInfoVector (-1, 2, "parametersFiles", ¶metersFiles)); diff --git a/Parameters.h b/Parameters.h index 41c6235..7ed25ec 100644 --- a/Parameters.h +++ b/Parameters.h @@ -23,8 +23,7 @@ class Parameters { string commandLine, commandLineFull; //version - uint versionSTAR; - vector versionGenome; + string versionGenome; //system parameters string sysShell; //shell for executing system commands diff --git a/VERSION b/VERSION index 5ee4453..0f3a4a2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0c" +#define STAR_VERSION "2.7.0c_0213" diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp index d817492..831d967 100644 --- a/genomeParametersWrite.cpp +++ b/genomeParametersWrite.cpp @@ -8,7 +8,7 @@ void genomeParametersWrite(string fileName, Parameters& P, string errorOut, Geno genomePar << "### "<0: STAR release numeric ID. Please do not change this value! -versionGenome 020101 020200 - int>0: oldest value of the Genome version compatible with this STAR release. Please do not change this value! +versionGenome 2.7.0c_0213 + string: latest genome index version compatible with this STAR release. Please do not change this value! ### Parameter Files parametersFiles - diff --git a/parametersDefault.xxd b/parametersDefault.xxd index af163f0..a32e879 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1,20 +1,11 @@ unsigned char parametersDefault[] = { 0x23, 0x23, 0x23, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x54, 0x41, 0x52, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x32, 0x30, 0x32, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x49, 0x44, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x21, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x32, 0x30, 0x31, 0x30, 0x31, 0x20, - 0x30, 0x32, 0x30, 0x32, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x76, 0x65, 0x72, + 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x2e, 0x37, 0x2e, 0x30, 0x63, 0x5f, 0x30, 0x32, 0x31, 0x33, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, @@ -3003,9 +2994,10 @@ unsigned char parametersDefault[] = { 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x73, - 0x6f, 0x6c, 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, - 0x63, 0x65, 0x6c, 0x6c, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, + 0x2d, 0x73, 0x65, 0x71, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, @@ -3023,131 +3015,131 @@ unsigned char parametersDefault[] = { 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x65, 0x71, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x30, 0x58, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x0a, 0x0a, 0x73, 0x6f, - 0x6c, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, - 0x6c, 0x20, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, - 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, - 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x37, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, - 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, - 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, - 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, - 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, - 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, - 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, - 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, - 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, - 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, - 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, - 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, - 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, - 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, - 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, - 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, - 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, + 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, + 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, + 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, + 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x37, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, + 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, - 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, + 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, - 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, + 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, 0x61, + 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, + 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, + 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, + 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, - 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, + 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, + 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, + 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, @@ -3189,4 +3181,4 @@ unsigned char parametersDefault[] = { 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 38266; +unsigned int parametersDefault_len = 38170; From 4a5e088ecd25bd0523285d21e2ad052ebfc2bd66 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 17 Feb 2019 13:59:18 -0500 Subject: [PATCH 421/536] * Implemented --soloBarcodeReadLength option for barcode read length not equal to the UMI+CB length. --- Parameters.cpp | 3 +- ParametersSolo.cpp | 3 +- ParametersSolo.h | 0 ReadAlignChunk_processChunks.cpp | 3 +- VERSION | 2 +- parametersDefault | 5 + parametersDefault.xxd | 281 ++++++++++++++++--------------- 7 files changed, 161 insertions(+), 136 deletions(-) mode change 100644 => 100755 Parameters.cpp mode change 100644 => 100755 ParametersSolo.cpp mode change 100644 => 100755 ParametersSolo.h mode change 100644 => 100755 ReadAlignChunk_processChunks.cpp mode change 100644 => 100755 parametersDefault diff --git a/Parameters.cpp b/Parameters.cpp old mode 100644 new mode 100755 index 2f035dc..35ab3be --- a/Parameters.cpp +++ b/Parameters.cpp @@ -252,7 +252,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBstart", &pSolo.cbS)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIstart", &pSolo.umiS)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBlen", &pSolo.cbL)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloBarcodeReadLength", &pSolo.bL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBwhitelist", &pSolo.soloCBwhitelist)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloStrand", &pSolo.strandStr)); parArray.push_back(new ParameterInfoVector (-1, -1, "soloOutFileNames", &pSolo.outFileNames)); diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp old mode 100644 new mode 100755 index 7b332c5..37f6d82 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -18,7 +18,8 @@ void ParametersSolo::initialize(Parameters *pPin) return; } else if (typeStr=="Droplet") { type=1; - bL=cbL+umiL; + if (bL==1) + bL=cbL+umiL; pP->readNmates=1; //output mates TODO: check that readNmatesIn==2 } else { ostringstream errOut; diff --git a/ParametersSolo.h b/ParametersSolo.h old mode 100644 new mode 100755 diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp old mode 100644 new mode 100755 index a028b38..a447679 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -98,11 +98,12 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks if (P.pSolo.type==1) {//record barcode sequence string seq1; getline(P.inOut->readIn[1],seq1); - if (seq1.size() != P.pSolo.bL) { + if (seq1.size() != P.pSolo.bL && P.pSolo.bL > 0) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in input read file: the total length of barcode sequence is " << seq1.size() << " not equal to expected " <logMain, EXIT_CODE_INPUT_FILES, P); }; readID += ' ' + seq1; diff --git a/VERSION b/VERSION index 0f3a4a2..c818faa 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0c_0213" +#define STAR_VERSION "2.7.0c_0217" diff --git a/parametersDefault b/parametersDefault old mode 100644 new mode 100755 index 1126a88..919c164 --- a/parametersDefault +++ b/parametersDefault @@ -687,6 +687,11 @@ soloUMIstart 17 soloUMIlen 10 int>0: UMI length +soloBarcodeReadLength 1 + int: length of the barcode read + 1 ... equal to sum of soloCBlen+soloUMIlen + 0 ... not defined, do not check + soloStrand Forward string: strandedness of the solo libraries: Unstranded ... no strand information diff --git a/parametersDefault.xxd b/parametersDefault.xxd index a32e879..942da20 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -3041,144 +3041,161 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x42, + 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, - 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, + 0x65, 0x6e, 0x2b, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, + 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, + 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, + 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, + 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, 0x61, 0x72, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, - 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, 0x61, - 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, + 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, + 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, - 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, - 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, - 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, - 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, - 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, - 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, - 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, - 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, - 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, - 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, + 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, + 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, + 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, - 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, + 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, - 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, + 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, + 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 38170; +unsigned int parametersDefault_len = 38371; From e76f0684429d606bc2513f0da214398804a52f91 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 18 Feb 2019 16:58:37 -0500 Subject: [PATCH 422/536] Ready for 2.7.0d --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index c818faa..32c3b77 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0c_0217" +#define STAR_VERSION "2.7.0d" From 9b0e66425d7b9839ddb372f0573e4479b5161c54 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 18 Feb 2019 17:23:11 -0500 Subject: [PATCH 423/536] Ready for 2.7.0d --- parametersDefault | 6 +- parametersDefault.xxd | 6016 ++++++++++++++++++++--------------------- 2 files changed, 3011 insertions(+), 3011 deletions(-) diff --git a/parametersDefault b/parametersDefault index 919c164..e078f41 100755 --- a/parametersDefault +++ b/parametersDefault @@ -1,5 +1,5 @@ ### versions -versionGenome 2.7.0c_0213 +versionGenome 2.7.0d string: latest genome index version compatible with this STAR release. Please do not change this value! ### Parameter Files @@ -712,8 +712,8 @@ soloUMIdedup 1MM_All soloOutFileNames Solo.out/ genes.tsv barcodes.tsv matrix.mtx matrixSJ.mtx string(s) file names for STARsolo output 1st word ... file name prefix - 2nd word ... barcode sequences - 3rd word ... gene IDs and names + 2nd word ... gene IDs and names + 3rd word ... barcode sequences 4th word ... cell/gene counts matrix 5th word ... cell/splice junction counts matrix diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 942da20..f4ed93c 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -2,3200 +2,3200 @@ unsigned char parametersDefault[] = { 0x23, 0x23, 0x23, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x2e, 0x37, 0x2e, 0x30, 0x63, 0x5f, 0x30, 0x32, 0x31, 0x33, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x64, - 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x21, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, - 0x73, 0x65, 0x72, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x2d, 0x22, 0x3a, 0x20, 0x6e, 0x6f, - 0x6e, 0x65, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x0a, 0x73, 0x79, 0x73, - 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, - 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x2c, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x79, 0x20, 0x62, 0x61, 0x73, 0x68, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, - 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x73, 0x68, 0x65, 0x6c, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, - 0x64, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, - 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, - 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x55, 0x62, 0x75, 0x6e, - 0x74, 0x75, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x79, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x61, - 0x73, 0x68, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x75, 0x6e, - 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, - 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, + 0x20, 0x32, 0x2e, 0x37, 0x2e, 0x30, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x50, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x21, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, + 0x22, 0x2d, 0x22, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x2e, 0x20, 0x43, + 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x0a, 0x73, 0x79, 0x73, 0x53, 0x68, 0x65, 0x6c, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x61, 0x62, + 0x6c, 0x79, 0x20, 0x62, 0x61, 0x73, 0x68, 0x2c, 0x20, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x69, 0x73, 0x20, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x79, + 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x2f, 0x62, 0x69, 0x6e, + 0x2f, 0x73, 0x68, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, + 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x6f, 0x6e, 0x20, 0x73, 0x6f, + 0x6d, 0x65, 0x20, 0x55, 0x62, 0x75, 0x6e, 0x74, 0x75, 0x20, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x6e, + 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x72, 0x75, 0x6e, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, - 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x50, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x2d, 0x2d, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, - 0x69, 0x66, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x28, 0x2d, 0x2d, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, - 0x69, 0x6c, 0x65, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, - 0x6d, 0x62, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, - 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x2d, 0x2d, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x44, 0x69, - 0x72, 0x50, 0x65, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x75, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, - 0x58, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, - 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x20, 0x28, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, - 0x68, 0x6d, 0x6f, 0x64, 0x20, 0x37, 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, - 0x75, 0x6e, 0x52, 0x4e, 0x47, 0x73, 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x44, 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, - 0x66, 0x6f, 0x72, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, - 0x66, 0x6f, 0x72, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, - 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, - 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, - 0x64, 0x41, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, - 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, - 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x28, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x61, 0x73, 0x74, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x2c, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x73, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, - 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, - 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x41, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x79, 0x20, 0x2a, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, - 0x65, 0x20, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x42, + 0x41, 0x4d, 0x2e, 0x20, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x2d, + 0x2d, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x4f, 0x76, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x69, 0x66, + 0x74, 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x47, 0x54, + 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x2d, 0x2d, 0x73, + 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x69, 0x65, + 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x50, 0x65, 0x72, 0x6d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, + 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2d, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x5f, 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x28, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, 0x68, 0x6d, 0x6f, 0x64, 0x20, + 0x37, 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x52, 0x4e, 0x47, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, + 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, + 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, 0x20, 0x6f, 0x72, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, + 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x28, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x73, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x28, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x28, 0x6e, 0x65, 0x77, 0x29, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x73, 0x70, 0x69, 0x6b, 0x65, 0x2d, 0x69, 0x6e, 0x73, 0x29, 0x2e, - 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, + 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, + 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, + 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, + 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, + 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, + 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, + 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, + 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, + 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, + 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x2d, 0x2d, 0x72, + 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x29, 0x2e, 0x20, + 0x43, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x2d, 0x2d, 0x72, + 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, + 0x64, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x28, 0x6e, 0x65, 0x77, + 0x29, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x73, 0x70, 0x69, 0x6b, + 0x65, 0x2d, 0x69, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x6f, 0x76, 0x65, 0x72, 0x2e, + 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x20, 0x2e, + 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3e, 0x30, 0x3a, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x79, + 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, - 0x6f, 0x76, 0x65, 0x72, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x56, 0x43, 0x46, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x20, 0x53, 0x4e, 0x50, 0x73, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x6a, + 0x6f, 0x72, 0x20, 0x28, 0x41, 0x46, 0x3e, 0x30, 0x2e, 0x35, 0x29, 0x20, + 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x20, 0x2d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x4f, - 0x76, 0x65, 0x72, 0x20, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, - 0x3e, 0x30, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, - 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x46, 0x69, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x20, 0x53, 0x4e, 0x50, 0x73, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, - 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x20, 0x28, 0x41, 0x46, 0x3e, - 0x30, 0x2e, 0x35, 0x29, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x29, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x2d, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, - 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, - 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6c, 0x61, 0x72, 0x67, - 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x73, 0x2c, 0x20, 0x69, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x38, - 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x5b, 0x6d, 0x61, 0x78, 0x28, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x52, 0x65, 0x61, 0x64, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x5d, 0x29, 0x2e, 0x0a, 0x0a, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, - 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x31, 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, - 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x75, - 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, - 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, - 0x28, 0x31, 0x34, 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2f, - 0x32, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x73, 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, - 0x61, 0x79, 0x20, 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, - 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x62, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, - 0x4d, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, - 0x69, 0x78, 0x65, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, - 0x43, 0x68, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, - 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, - 0x74, 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, - 0x65, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, - 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x0a, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, + 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, + 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, + 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, + 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, + 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, + 0x67, 0x73, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x61, 0x73, + 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x38, 0x2c, 0x20, 0x6c, 0x6f, 0x67, + 0x32, 0x5b, 0x6d, 0x61, 0x78, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x2c, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x5d, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, + 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, + 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x77, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x34, 0x2c, 0x20, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2f, 0x32, 0x20, 0x2d, 0x20, 0x31, + 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, + 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, + 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, + 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, + 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, + 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, + 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, + 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, + 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, + 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, + 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, + 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, - 0x46, 0x63, 0x68, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, + 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, + 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, + 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, + 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x27, 0x63, 0x68, 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, - 0x47, 0x54, 0x46, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x78, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, - 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, - 0x6e, 0x73, 0x27, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, - 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, - 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, - 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, - 0x6e, 0x73, 0x27, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, - 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, - 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, - 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, + 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, + 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, + 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, + 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, + 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, + 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, + 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, + 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, + 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x76, 0x61, 0x72, 0x56, 0x43, + 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, - 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, - 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, - 0x76, 0x61, 0x72, 0x56, 0x43, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, + 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, + 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, + 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x53, 0x45, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, + 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x50, 0x45, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, 0x6f, + 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, + 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x69, 0x66, 0x78, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x49, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x3a, 0x20, + 0x6e, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, - 0x73, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, - 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x51, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x53, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, - 0x69, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x50, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, - 0x77, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, - 0x65, 0x69, 0x66, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, - 0x64, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6e, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, - 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, - 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, - 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, - 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, - 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, - 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, - 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, + 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, + 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, + 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, + 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, - 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, - 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, - 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, - 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, - 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, + 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, + 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x6e, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x75, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x28, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x63, 0x44, 0x4e, 0x41, 0x20, - 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x73, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, - 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6f, - 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x52, - 0x4e, 0x41, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x63, 0x44, 0x4e, 0x41, 0x20, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, - 0x73, 0x69, 0x73, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x0a, - 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, + 0x52, 0x4e, 0x41, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x63, 0x44, 0x4e, 0x41, 0x20, 0x73, 0x79, 0x6e, 0x74, 0x68, + 0x65, 0x73, 0x69, 0x73, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x73, 0x74, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x31, 0x73, 0x74, 0x20, 0x63, 0x44, 0x4e, 0x41, + 0x20, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x73, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, + 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, + 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, + 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, + 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, + 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, - 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, - 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, - 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, - 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, - 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, - 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, - 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, - 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, + 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, + 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, + 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, + 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, + 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, - 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, - 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, - 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, - 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, + 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, + 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, - 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, - 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x53, 0x6f, 0x66, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, - 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, - 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, - 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, - 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, + 0x75, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, + 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, - 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, + 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, + 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, + 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, + 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, - 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, + 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, + 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, - 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, + 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, + 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, + 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, - 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, - 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, - 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, - 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, - 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, - 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, - 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, - 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, + 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, + 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, + 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, + 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, + 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, + 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, - 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, + 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, + 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, - 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, + 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, + 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, - 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, - 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, - 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, + 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, + 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, - 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, - 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, - 0x6a, 0x49, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, + 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, + 0x49, 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, - 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, - 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, - 0x2c, 0x43, 0x59, 0x2c, 0x55, 0x52, 0x2c, 0x55, 0x59, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, - 0x65, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, + 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, + 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, + 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x4d, 0x43, + 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, - 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, - 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, - 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, - 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, - 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x74, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, + 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, 0x20, + 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, + 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, - 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, - 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, 0x2c, 0x43, 0x59, 0x2c, 0x55, + 0x52, 0x2c, 0x55, 0x59, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x71, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, + 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x55, + 0x4d, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, 0x65, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, - 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, - 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, - 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, - 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, - 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, - 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, + 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, + 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, + 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, + 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, - 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, - 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, - 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, - 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, - 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, - 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, + 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, + 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, + 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, + 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, + 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, + 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, + 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, + 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, + 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, - 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, - 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, - 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, - 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, - 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, - 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, + 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, + 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, + 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, + 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, + 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, + 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, - 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, - 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, - 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, - 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, + 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, + 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, + 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, + 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, + 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, + 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, + 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, + 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, + 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, + 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, - 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, + 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, + 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, - 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, - 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, - 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, - 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, - 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, - 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, - 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, - 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, - 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, - 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, - 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, - 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, - 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, - 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, + 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, + 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, + 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, + 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, + 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, + 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, + 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, + 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, - 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, + 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, - 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, - 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, + 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, + 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, + 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, + 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, - 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, - 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, - 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, - 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, - 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, - 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, - 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, + 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, + 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, + 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, + 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, + 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, + 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, - 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, - 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, - 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, - 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, - 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, - 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, - 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, - 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, - 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, + 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, + 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, + 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, + 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, + 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, - 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, - 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, - 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, - 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, + 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, + 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, + 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, + 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, - 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, - 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, - 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, + 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, + 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, + 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, + 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, + 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, + 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, + 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, + 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, + 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, - 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, - 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, - 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, - 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, - 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, - 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, + 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, + 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, + 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, + 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, + 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, + 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, + 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, - 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, - 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, - 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, - 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, - 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, - 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, - 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, + 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, + 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, + 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, - 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, - 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, - 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, - 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, - 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, - 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, - 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, - 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, + 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, - 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, - 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, - 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, - 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, - 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, - 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, + 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, - 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, - 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, + 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, - 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, - 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, - 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, - 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, - 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, + 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, + 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, + 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, + 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, + 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, + 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, + 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, + 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, + 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, - 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, - 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, - 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x75, - 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, + 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, + 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x74, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, + 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, + 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, + 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, + 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, + 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, + 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x70, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x70, 0x65, - 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, - 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, - 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, - 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, - 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, - 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, - 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, - 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, - 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, - 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, - 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, - 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, - 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, - 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, + 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, - 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, - 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, - 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, - 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, + 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, + 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, + 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, + 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, - 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, - 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, + 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, + 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, - 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, - 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, - 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, - 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, - 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, - 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, - 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, - 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2c, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, + 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, + 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, + 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, + 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, + 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, + 0x75, 0x74, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x2c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, + 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, - 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, - 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, - 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, - 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, - 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, - 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, - 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, - 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, - 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, - 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, - 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, - 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, - 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, - 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, - 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, - 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, - 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, - 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, + 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, + 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, + 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, + 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, - 0x2d, 0x73, 0x65, 0x71, 0x29, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, - 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, - 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x62, 0x61, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x2d, - 0x73, 0x65, 0x71, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x30, 0x58, 0x20, - 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x0a, 0x0a, 0x73, 0x6f, - 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, - 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, - 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, - 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x37, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, - 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, + 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x42, - 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, - 0x65, 0x6e, 0x2b, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, - 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, - 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, - 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, - 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, + 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, + 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, + 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, + 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, + 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, + 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, + 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, - 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, - 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, - 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, 0x61, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, - 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, - 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, + 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, + 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, + 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, + 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, + 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, + 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, + 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, + 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, + 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, + 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, + 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, + 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, + 0x6c, 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, + 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x29, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, + 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, + 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x72, 0x6f, 0x70, + 0x6c, 0x65, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x55, + 0x4d, 0x49, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x65, 0x71, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x31, 0x30, 0x58, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, + 0x69, 0x75, 0x6d, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, + 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, + 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, + 0x42, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, - 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, - 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, - 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, + 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, + 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, + 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x2b, 0x73, 0x6f, + 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2c, 0x20, 0x64, 0x6f, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x0a, 0x73, + 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, + 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, + 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, + 0x6c, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, + 0x6c, 0x20, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, + 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, + 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, + 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, + 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, + 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, + 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, + 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, + 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, + 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, + 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, + 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, + 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, + 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, + 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, + 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, - 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, + 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, + 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, + 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, + 0x0a, 0x0a }; -unsigned int parametersDefault_len = 38371; +unsigned int parametersDefault_len = 38366; From fd73c09cd736897657e3693fd535c1f4ff8f4180 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 19 Feb 2019 17:42:08 -0500 Subject: [PATCH 424/536] Started implementing STARsolo GeneFull option. --- Makefile | 3 +- Parameters.h | 19 +++-- ParametersSolo.cpp | 3 +- ReadAlign_outputAlignments.cpp | 15 ++-- SoloRead.h | 2 +- SoloReadFeature.h | 2 +- SoloReadFeature_getFeature.cpp | 65 ----------------- SoloReadFeature_record.cpp | 27 ++++--- SoloRead_record.cpp | 6 +- Transcriptome.cpp | 45 ++++++++++++ Transcriptome.h | 9 ++- parametersDefault | 8 +- parametersDefault.xxd | 130 ++++++++++++++++++--------------- 13 files changed, 176 insertions(+), 158 deletions(-) delete mode 100644 SoloReadFeature_getFeature.cpp diff --git a/Makefile b/Makefile index 8ce1b16..0ca4e34 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,8 @@ OBJECTS = ParametersSolo.o SoloRead.o SoloRead_record.o \ Genome_genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o funCompareUintAndSuffixesMemcmp.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ - Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ + Transcriptome.o Transcriptome_quantAlign.o Transcriptome_geneFullAlignOverlap.o \ + ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ bam_cat.o serviceFuns.o GlobalVariables.cpp \ diff --git a/Parameters.h b/Parameters.h index 7ed25ec..528f679 100644 --- a/Parameters.h +++ b/Parameters.h @@ -261,13 +261,11 @@ class Parameters { //quantification parameters //input - struct - { + struct { bool yes; //if any quantification is done vector mode; //quantification mode input string - struct - { + struct { bool yes; bool bamYes; bool indel; @@ -277,23 +275,24 @@ class Parameters { string ban; } trSAM; - struct - { + struct { bool yes; string outFile; } geCount; + + struct { + bool yes; + } geneFull; } quant; //variation parameters - struct - { + struct { bool yes; string vcfFile; } var; - struct - { + struct { bool yes; bool SAMtag; string outputMode; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 37f6d82..57ce684 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -7,7 +7,7 @@ #include -const vector ParametersSolo::featureNames={"Gene","SJ"}; +const vector ParametersSolo::featureNames={"Gene","SJ","GeneFull"}; void ParametersSolo::initialize(Parameters *pPin) { @@ -61,6 +61,7 @@ void ParametersSolo::initialize(Parameters *pPin) exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; + nFeatures=features.size(); umiDedupYes.resize(3,false); diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 2291359..9187b00 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -8,10 +8,9 @@ void ReadAlign::outputAlignments() { bool mateMapped[2]={false,false}; - vector readGenes; + set readGeneFull={},readGene={}; vector readTranscripts={}; - set readTrGenes={}; - vector> readSJs={}; + vector readGeneExon={}; outFilterPassed=true;//only false if the alignment is held for outFilterBySJoutStage if (unmapType==-1) {//output transcripts @@ -167,17 +166,21 @@ void ReadAlign::outputAlignments() { }; if ( P.quant.geCount.yes ) { - chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); + chunkTr->geneCountsAddAlign(nTr, trMult, readGeneExon); + }; + + if ( P.quant.geneFull.yes ) { + chunkTr->geneFullAlignOverlap(nTr, trMult, P.pSolo.strand, readGeneFull); }; if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused - quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); + quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readGene); }; }; }; if (outFilterPassed) {//otherwise the alignment was held and will be counted at the 2nd stage - soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]); + soloRead->record(readNameExtra.at(0), nTr, readGene, readGeneFull, trMult[0]); }; if (unmapType>=0) { diff --git a/SoloRead.h b/SoloRead.h index 8c1b541..3f9666d 100644 --- a/SoloRead.h +++ b/SoloRead.h @@ -10,7 +10,7 @@ class SoloRead { SoloReadFeature **readFeat; SoloRead(Parameters &Pin, int32 iChunkIn); - void record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut); + void record(string &barcodeSeq, uint64 nTr, set &readTrGenes, set &readGenes, Transcript *alignOut); private: const int32 iChunk; diff --git a/SoloReadFeature.h b/SoloReadFeature.h index 2a2a85d..d74377a 100644 --- a/SoloReadFeature.h +++ b/SoloReadFeature.h @@ -24,7 +24,7 @@ class SoloReadFeature { string cbSeq, umiSeq, cbQual, umiQual; SoloReadFeature (int32 feTy, Parameters &Pin, int iChunk); - void record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut); + void record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut); void addCounts(const SoloReadFeature &soloCBin); void addStats(const SoloReadFeature &soloCBin); void statsOut(ofstream &streamOut); diff --git a/SoloReadFeature_getFeature.cpp b/SoloReadFeature_getFeature.cpp deleted file mode 100644 index cef4ff5..0000000 --- a/SoloReadFeature_getFeature.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "SoloReadFeature.h" -#include "serviceFuns.cpp" -#include "SequenceFuns.h" - -uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, string &stringCB) -{ - if (featureType==0) {//genes - *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; - return 1; - } else if (featureType==1) {//sjs - for (auto &sj : readSJs) { - *streamOut << umiB <<' '<< sj[0] <<' '<< sj[1] <<' '<< stringCB <<'\n'; - }; - return readSJs.size(); - }; - - return 0; //this should not happen -}; - -bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) -{ - if (pSolo.type==0 || !pSolo.featureYes[featureType] || soloBar.cbMatch<0) - return false; - - //unmapped - if (nTr==0) { - stats.V[stats.nUnmapped]++; - return false; - }; - - vector> readSJs; - if (featureType==0) {//genes - //check genes, return if no gene - if (readTrGenes.size()==0) { - stats.V[stats.nNoFeature]++; - return false; - } else if (readTrGenes.size()>1) { - stats.V[stats.nAmbigFeature]++; - if (nTr>1) - stats.V[stats.nAmbigFeatureMultimap]++; - return false; - }; - } else if (featureType==1) {//SJs - alignOut->extractSpliceJunctions(readSJs); - if (readSJs.empty()) { - stats.V[stats.nNoFeature]++; - return false; - } else if (nTr>1) {//record SJs from the read - stats.V[stats.nAmbigFeature]++; - stats.V[stats.nAmbigFeatureMultimap]++; - return false; - }; - }; - - if (soloBar.cbMatch==0) {//exact match - cbReadCount[cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); - return true; - } else if (soloBar.cbMatch==1) {//1 match with 1MM - cbReadCount[cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); - return true; - } else { - cbReadCount[cbI] += outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + cbOutString); - return true; - }; -}; diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 471fd97..13fe505 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -17,7 +17,7 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 g return 0; //this should not happen }; -void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) +void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut) { if (pSolo.type==0 || soloBar.cbMatch<0) return; @@ -29,13 +29,21 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re }; vector> readSJs; - if (featureType==0) {//genes + + set *readGe; + if (featureType==0) { + readGe = &readGene; + } else if (featureType==1) { + readGe = &readGeneFull; + }; + + if (featureType==0 || featureType==2) {//genes //check genes, return if no gene of multimapping - if (readTrGenes.size()==0) { + if (readGe->size()==0) { stats.V[stats.nNoFeature]++; return; }; - if (readTrGenes.size()>1) { + if (readGe->size()>1) { stats.V[stats.nAmbigFeature]++; if (nTr>1) stats.V[stats.nAmbigFeatureMultimap]++; @@ -46,27 +54,26 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re stats.V[stats.nAmbigFeatureMultimap]++; return; }; - //for SJs, still check genes, return if multi-gene - if (readTrGenes.size()>1) { + if (readGene.size()>1) {//for SJs, still check genes, return if multi-gene stats.V[stats.nAmbigFeature]++; return; }; bool sjAnnot; alignOut->extractSpliceJunctions(readSJs, sjAnnot); - if ( readSJs.empty() || (sjAnnot && readTrGenes.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) + if ( readSJs.empty() || (sjAnnot && readGene.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) stats.V[stats.nNoFeature]++; return; }; }; if (soloBar.cbMatch==0) {//exact match - cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); return; } else if (soloBar.cbMatch==1) {//1 match with 1MM - cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); return; } else {//>1 matches - uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); + uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); for (auto &cbi : soloBar.cbMatchInd) cbReadCount[cbi] += nfeat; return; diff --git a/SoloRead_record.cpp b/SoloRead_record.cpp index 20ee05e..dab5b9a 100644 --- a/SoloRead_record.cpp +++ b/SoloRead_record.cpp @@ -1,12 +1,14 @@ #include "SoloRead.h" -void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut) +void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readGenes, set &readGeneFull, Transcript *alignOut) { if (pSolo.type==0) return; readBar->getCBandUMI(barcodeSeq); + + for (uint32 ii=0; iirecord(*readBar, nTr, readTrGenes, alignOut); + readFeat[ii]->record(*readBar, nTr, readGenes, readGeneFull, alignOut); }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index f71a1ac..c54593a 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -2,6 +2,7 @@ #include "streamFuns.h" #include "GlobalVariables.h" #include "ErrorWarning.h" +#include "serviceFuns.cpp" Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ @@ -81,6 +82,50 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ exG.eMax[iex]=max(exG.eMax[iex-1],exG.e[iex]); }; }; + + if ( P.quant.geneFull.yes ) { + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + exinfo >> exG.nEx; + + geneFull.s=new uint64[nGe]; + geneFull.e=new uint64[nGe]; + geneFull.eMax=new uint64[nGe]; + geneFull.g=new uint32[nGe]; + + for (uint ii=0;ii> s1 >> e1 >> str1 >> g1 >> t1; + geneFull.s[g1]=min(geneFull.s[g1],s1); + geneFull.e[g1]=min(geneFull.e[g1],e1); + geneFull.str[g1] = (uint8) str1; + + }; + exinfo.close(); + + uint64 *gF=new uint64 [4*nGe]; + for (uint ii=0;ii); + + for (uint ii=0;ii &readTranscripts, set &readTrGenes);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr + uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readGene);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure void quantsOutput(); //output quantification files + void geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap); private: Parameters &P; //normal "genomic" parameters diff --git a/parametersDefault b/parametersDefault index e078f41..dfaf245 100755 --- a/parametersDefault +++ b/parametersDefault @@ -702,6 +702,7 @@ soloFeatures Gene string(s): genomic features for which the UMI counts per Cell Barcode are collected Gene ... genes: reads match the gene transcript SJ ... splice junctions: reported in SJ.out.tab + GeneFull ... full genes: count all reads overlapping genes' exons and introns soloUMIdedup 1MM_All string(s): type of UMI deduplication (collapsing) algorithm @@ -709,11 +710,12 @@ soloUMIdedup 1MM_All 1MM_Directional ... follows the "directional" method from the UMI-tools by Smith, Heger and Sudbery (Genome Research 2017). 1MM_NotCollapsed ... UMIs with 1 mismatch distance to others are not collapsed (i.e. all counted) -soloOutFileNames Solo.out/ genes.tsv barcodes.tsv matrix.mtx matrixSJ.mtx +soloOutFileNames Solo.out/ genes.tsv barcodes.tsv matrix.mtx matrixSJ.mtx matrixGeneFull.mtx string(s) file names for STARsolo output 1st word ... file name prefix 2nd word ... gene IDs and names 3rd word ... barcode sequences - 4th word ... cell/gene counts matrix - 5th word ... cell/splice junction counts matrix + 4th word ... cell/Gene counts matrix + 5th word ... cell/SJ counts matrix + 6th word ... cell/GeneFull counts matrix diff --git a/parametersDefault.xxd b/parametersDefault.xxd index f4ed93c..15c84ba 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -3111,58 +3111,69 @@ unsigned char parametersDefault[] = { 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, - 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x73, 0x27, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, + 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, - 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, - 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, - 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, - 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, - 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, - 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, - 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, - 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, - 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, - 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, - 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, - 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, + 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, + 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, + 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, @@ -3187,15 +3198,20 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, - 0x0a, 0x0a + 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x53, 0x4a, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x36, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, + 0x2f, 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, + 0x0a }; -unsigned int parametersDefault_len = 38366; +unsigned int parametersDefault_len = 38557; From 2fb6ad24cd94523588df01ed567a83823e38fe06 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 20 Feb 2019 11:30:48 -0500 Subject: [PATCH 425/536] Debugging STARsolo GeneFull option. --- ParametersSolo.cpp | 2 ++ Transcriptome.cpp | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 57ce684..3b62c59 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -131,6 +131,8 @@ void ParametersSolo::initialize(Parameters *pPin) pP->quant.trSAM.bamCompression = -2; pP->quant.trSAM.indel = true; pP->quant.trSAM.softClip = true; + if (featureYes[2]) + pP->quant.geneFull.yes=true; pP->inOut->logMain << "Turning on Genomic->Transcriptomic coordinate conversion for STARsolo\n"; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index c54593a..85c5f25 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -92,13 +92,17 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ geneFull.eMax=new uint64[nGe]; geneFull.g=new uint32[nGe]; + for (uint ig=1;ig> s1 >> e1 >> str1 >> g1 >> t1; geneFull.s[g1]=min(geneFull.s[g1],s1); - geneFull.e[g1]=min(geneFull.e[g1],e1); + geneFull.e[g1]=max(geneFull.e[g1],e1); geneFull.str[g1] = (uint8) str1; - }; exinfo.close(); From 05140d309d51143d5b9ebf0f3c7a90f38cbdb966 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 20 Feb 2019 17:48:28 -0500 Subject: [PATCH 426/536] Reverted to 2.7.0d for debugging. --- Makefile | 3 +- Parameters.h | 19 ++--- ParametersSolo.cpp | 5 +- ReadAlign_outputAlignments.cpp | 15 ++-- SoloRead.h | 2 +- SoloReadFeature.h | 2 +- SoloReadFeature_getFeature.cpp | 65 +++++++++++++++++ SoloReadFeature_record.cpp | 27 +++---- SoloRead_record.cpp | 6 +- Transcriptome.cpp | 49 ------------- Transcriptome.h | 9 +-- parametersDefault | 8 +- parametersDefault.xxd | 130 +++++++++++++++------------------ 13 files changed, 158 insertions(+), 182 deletions(-) create mode 100644 SoloReadFeature_getFeature.cpp diff --git a/Makefile b/Makefile index 0ca4e34..8ce1b16 100644 --- a/Makefile +++ b/Makefile @@ -53,8 +53,7 @@ OBJECTS = ParametersSolo.o SoloRead.o SoloRead_record.o \ Genome_genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o funCompareUintAndSuffixesMemcmp.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ - Transcriptome.o Transcriptome_quantAlign.o Transcriptome_geneFullAlignOverlap.o \ - ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ + Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ bam_cat.o serviceFuns.o GlobalVariables.cpp \ diff --git a/Parameters.h b/Parameters.h index 528f679..7ed25ec 100644 --- a/Parameters.h +++ b/Parameters.h @@ -261,11 +261,13 @@ class Parameters { //quantification parameters //input - struct { + struct + { bool yes; //if any quantification is done vector mode; //quantification mode input string - struct { + struct + { bool yes; bool bamYes; bool indel; @@ -275,24 +277,23 @@ class Parameters { string ban; } trSAM; - struct { + struct + { bool yes; string outFile; } geCount; - - struct { - bool yes; - } geneFull; } quant; //variation parameters - struct { + struct + { bool yes; string vcfFile; } var; - struct { + struct + { bool yes; bool SAMtag; string outputMode; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 3b62c59..37f6d82 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -7,7 +7,7 @@ #include -const vector ParametersSolo::featureNames={"Gene","SJ","GeneFull"}; +const vector ParametersSolo::featureNames={"Gene","SJ"}; void ParametersSolo::initialize(Parameters *pPin) { @@ -61,7 +61,6 @@ void ParametersSolo::initialize(Parameters *pPin) exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; - nFeatures=features.size(); umiDedupYes.resize(3,false); @@ -131,8 +130,6 @@ void ParametersSolo::initialize(Parameters *pPin) pP->quant.trSAM.bamCompression = -2; pP->quant.trSAM.indel = true; pP->quant.trSAM.softClip = true; - if (featureYes[2]) - pP->quant.geneFull.yes=true; pP->inOut->logMain << "Turning on Genomic->Transcriptomic coordinate conversion for STARsolo\n"; }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 9187b00..2291359 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -8,9 +8,10 @@ void ReadAlign::outputAlignments() { bool mateMapped[2]={false,false}; - set readGeneFull={},readGene={}; + vector readGenes; vector readTranscripts={}; - vector readGeneExon={}; + set readTrGenes={}; + vector> readSJs={}; outFilterPassed=true;//only false if the alignment is held for outFilterBySJoutStage if (unmapType==-1) {//output transcripts @@ -166,21 +167,17 @@ void ReadAlign::outputAlignments() { }; if ( P.quant.geCount.yes ) { - chunkTr->geneCountsAddAlign(nTr, trMult, readGeneExon); - }; - - if ( P.quant.geneFull.yes ) { - chunkTr->geneFullAlignOverlap(nTr, trMult, P.pSolo.strand, readGeneFull); + chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); }; if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused - quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readGene); + quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); }; }; }; if (outFilterPassed) {//otherwise the alignment was held and will be counted at the 2nd stage - soloRead->record(readNameExtra.at(0), nTr, readGene, readGeneFull, trMult[0]); + soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]); }; if (unmapType>=0) { diff --git a/SoloRead.h b/SoloRead.h index 3f9666d..8c1b541 100644 --- a/SoloRead.h +++ b/SoloRead.h @@ -10,7 +10,7 @@ class SoloRead { SoloReadFeature **readFeat; SoloRead(Parameters &Pin, int32 iChunkIn); - void record(string &barcodeSeq, uint64 nTr, set &readTrGenes, set &readGenes, Transcript *alignOut); + void record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut); private: const int32 iChunk; diff --git a/SoloReadFeature.h b/SoloReadFeature.h index d74377a..2a2a85d 100644 --- a/SoloReadFeature.h +++ b/SoloReadFeature.h @@ -24,7 +24,7 @@ class SoloReadFeature { string cbSeq, umiSeq, cbQual, umiQual; SoloReadFeature (int32 feTy, Parameters &Pin, int iChunk); - void record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut); + void record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut); void addCounts(const SoloReadFeature &soloCBin); void addStats(const SoloReadFeature &soloCBin); void statsOut(ofstream &streamOut); diff --git a/SoloReadFeature_getFeature.cpp b/SoloReadFeature_getFeature.cpp new file mode 100644 index 0000000..cef4ff5 --- /dev/null +++ b/SoloReadFeature_getFeature.cpp @@ -0,0 +1,65 @@ +#include "SoloReadFeature.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, string &stringCB) +{ + if (featureType==0) {//genes + *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; + return 1; + } else if (featureType==1) {//sjs + for (auto &sj : readSJs) { + *streamOut << umiB <<' '<< sj[0] <<' '<< sj[1] <<' '<< stringCB <<'\n'; + }; + return readSJs.size(); + }; + + return 0; //this should not happen +}; + +bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) +{ + if (pSolo.type==0 || !pSolo.featureYes[featureType] || soloBar.cbMatch<0) + return false; + + //unmapped + if (nTr==0) { + stats.V[stats.nUnmapped]++; + return false; + }; + + vector> readSJs; + if (featureType==0) {//genes + //check genes, return if no gene + if (readTrGenes.size()==0) { + stats.V[stats.nNoFeature]++; + return false; + } else if (readTrGenes.size()>1) { + stats.V[stats.nAmbigFeature]++; + if (nTr>1) + stats.V[stats.nAmbigFeatureMultimap]++; + return false; + }; + } else if (featureType==1) {//SJs + alignOut->extractSpliceJunctions(readSJs); + if (readSJs.empty()) { + stats.V[stats.nNoFeature]++; + return false; + } else if (nTr>1) {//record SJs from the read + stats.V[stats.nAmbigFeature]++; + stats.V[stats.nAmbigFeatureMultimap]++; + return false; + }; + }; + + if (soloBar.cbMatch==0) {//exact match + cbReadCount[cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + return true; + } else if (soloBar.cbMatch==1) {//1 match with 1MM + cbReadCount[cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + return true; + } else { + cbReadCount[cbI] += outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + cbOutString); + return true; + }; +}; diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 13fe505..471fd97 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -17,7 +17,7 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 g return 0; //this should not happen }; -void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut) +void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) { if (pSolo.type==0 || soloBar.cbMatch<0) return; @@ -29,21 +29,13 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re }; vector> readSJs; - - set *readGe; - if (featureType==0) { - readGe = &readGene; - } else if (featureType==1) { - readGe = &readGeneFull; - }; - - if (featureType==0 || featureType==2) {//genes + if (featureType==0) {//genes //check genes, return if no gene of multimapping - if (readGe->size()==0) { + if (readTrGenes.size()==0) { stats.V[stats.nNoFeature]++; return; }; - if (readGe->size()>1) { + if (readTrGenes.size()>1) { stats.V[stats.nAmbigFeature]++; if (nTr>1) stats.V[stats.nAmbigFeatureMultimap]++; @@ -54,26 +46,27 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re stats.V[stats.nAmbigFeatureMultimap]++; return; }; - if (readGene.size()>1) {//for SJs, still check genes, return if multi-gene + //for SJs, still check genes, return if multi-gene + if (readTrGenes.size()>1) { stats.V[stats.nAmbigFeature]++; return; }; bool sjAnnot; alignOut->extractSpliceJunctions(readSJs, sjAnnot); - if ( readSJs.empty() || (sjAnnot && readGene.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) + if ( readSJs.empty() || (sjAnnot && readTrGenes.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) stats.V[stats.nNoFeature]++; return; }; }; if (soloBar.cbMatch==0) {//exact match - cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); + cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); return; } else if (soloBar.cbMatch==1) {//1 match with 1MM - cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); + cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); return; } else {//>1 matches - uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); + uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); for (auto &cbi : soloBar.cbMatchInd) cbReadCount[cbi] += nfeat; return; diff --git a/SoloRead_record.cpp b/SoloRead_record.cpp index dab5b9a..20ee05e 100644 --- a/SoloRead_record.cpp +++ b/SoloRead_record.cpp @@ -1,14 +1,12 @@ #include "SoloRead.h" -void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readGenes, set &readGeneFull, Transcript *alignOut) +void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut) { if (pSolo.type==0) return; readBar->getCBandUMI(barcodeSeq); - - for (uint32 ii=0; iirecord(*readBar, nTr, readGenes, readGeneFull, alignOut); + readFeat[ii]->record(*readBar, nTr, readTrGenes, alignOut); }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 85c5f25..f71a1ac 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -2,7 +2,6 @@ #include "streamFuns.h" #include "GlobalVariables.h" #include "ErrorWarning.h" -#include "serviceFuns.cpp" Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ @@ -82,54 +81,6 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ exG.eMax[iex]=max(exG.eMax[iex-1],exG.e[iex]); }; }; - - if ( P.quant.geneFull.yes ) { - ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); - exinfo >> exG.nEx; - - geneFull.s=new uint64[nGe]; - geneFull.e=new uint64[nGe]; - geneFull.eMax=new uint64[nGe]; - geneFull.g=new uint32[nGe]; - - for (uint ig=1;ig> s1 >> e1 >> str1 >> g1 >> t1; - geneFull.s[g1]=min(geneFull.s[g1],s1); - geneFull.e[g1]=max(geneFull.e[g1],e1); - geneFull.str[g1] = (uint8) str1; - }; - exinfo.close(); - - uint64 *gF=new uint64 [4*nGe]; - for (uint ii=0;ii); - - for (uint ii=0;ii &readTranscripts, set &readGene);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr + uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readTrGenes);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure void quantsOutput(); //output quantification files - void geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap); private: Parameters &P; //normal "genomic" parameters diff --git a/parametersDefault b/parametersDefault index dfaf245..e078f41 100755 --- a/parametersDefault +++ b/parametersDefault @@ -702,7 +702,6 @@ soloFeatures Gene string(s): genomic features for which the UMI counts per Cell Barcode are collected Gene ... genes: reads match the gene transcript SJ ... splice junctions: reported in SJ.out.tab - GeneFull ... full genes: count all reads overlapping genes' exons and introns soloUMIdedup 1MM_All string(s): type of UMI deduplication (collapsing) algorithm @@ -710,12 +709,11 @@ soloUMIdedup 1MM_All 1MM_Directional ... follows the "directional" method from the UMI-tools by Smith, Heger and Sudbery (Genome Research 2017). 1MM_NotCollapsed ... UMIs with 1 mismatch distance to others are not collapsed (i.e. all counted) -soloOutFileNames Solo.out/ genes.tsv barcodes.tsv matrix.mtx matrixSJ.mtx matrixGeneFull.mtx +soloOutFileNames Solo.out/ genes.tsv barcodes.tsv matrix.mtx matrixSJ.mtx string(s) file names for STARsolo output 1st word ... file name prefix 2nd word ... gene IDs and names 3rd word ... barcode sequences - 4th word ... cell/Gene counts matrix - 5th word ... cell/SJ counts matrix - 6th word ... cell/GeneFull counts matrix + 4th word ... cell/gene counts matrix + 5th word ... cell/splice junction counts matrix diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 15c84ba..f4ed93c 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -3111,69 +3111,58 @@ unsigned char parametersDefault[] = { 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x27, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, - 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, - 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, - 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, - 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, - 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, + 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, + 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, + 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, + 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, + 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, + 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, + 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, + 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, + 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, + 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, + 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, + 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, + 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, + 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, + 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, @@ -3198,20 +3187,15 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x47, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x53, 0x4a, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x36, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, - 0x2f, 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, - 0x0a + 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, + 0x0a, 0x0a }; -unsigned int parametersDefault_len = 38557; +unsigned int parametersDefault_len = 38366; From d2094c00000d08173a68b7b5a79e31f71d89a37c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 21 Feb 2019 15:51:19 -0500 Subject: [PATCH 427/536] Fixed problems with --quantMode GeneCounts and --parametersFiles options. --- Parameters.cpp | 28 ++++++++++++++-------------- Parameters.h | 8 ++++---- Transcriptome.cpp | 33 ++++++++++++++++++--------------- VERSION | 2 +- parametersDefault | 6 ------ parametersDefault.xxd | 33 ++------------------------------- 6 files changed, 39 insertions(+), 71 deletions(-) mode change 100644 => 100755 Transcriptome.cpp diff --git a/Parameters.cpp b/Parameters.cpp index 35ab3be..8d66ac3 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -55,7 +55,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); parArray.push_back(new ParameterInfoVector (-1, -1, "readNameSeparator", &readNameSeparator)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "readStrand", &pReads.strandString)); + //parArray.push_back(new ParameterInfoScalar (-1, -1, "readStrand", &pReads.strandString)); //input from BAM @@ -648,7 +648,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //versions - for (uint ii=0;ii<2;ii++) { + for (uint ii=0;ii<1;ii++) { if (parArray[ii]->inputLevel>0) { ostringstream errOut; errOut <<"EXITING because of fatal input ERROR: the version parameter "<< parArray[ii]->nameString << " cannot be re-defined by the user\n"; @@ -1434,18 +1434,18 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //read parameters - if (pReads.strandString=="Unstranded") { - pReads.strand=0; - } else if (pReads.strandString=="Forward") { - pReads.strand=1; - } else if (pReads.strandString=="Reverse") { - pReads.strand=2; - } else { - ostringstream errOut; - errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --readStrand="<logMain, EXIT_CODE_PARAMETER, *this); - }; + // if (pReads.strandString=="Unstranded") { + // pReads.strand=0; + // } else if (pReads.strandString=="Forward") { + // pReads.strand=1; + // } else if (pReads.strandString=="Reverse") { + // pReads.strand=2; + // } else { + // ostringstream errOut; + // errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --readStrand="<logMain, EXIT_CODE_PARAMETER, *this); + // }; // outSAMreadIDnumber=false; diff --git a/Parameters.h b/Parameters.h index 7ed25ec..95a4cc4 100644 --- a/Parameters.h +++ b/Parameters.h @@ -91,10 +91,10 @@ class Parameters { string alignSoftClipAtReferenceEnds; vector alignSJstitchMismatchNmax; - struct { - string strandString; - int32 strand; - } pReads; + // struct { + // string strandString; + // int32 strand; + // } pReads; struct { string in; diff --git a/Transcriptome.cpp b/Transcriptome.cpp old mode 100644 new mode 100755 index f71a1ac..329be76 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -5,8 +5,25 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ + if (!P.quant.yes) + return; + trInfoDir = P.pGe.sjdbGTFfile=="-" ? P.pGe.gDir : P.sjdbInsert.outDir; //if GTF file is given at the mapping stage, it's always used for transcript info - + + ifstream &geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotations.gtf option at the genome generation step or mapping step", P); + geStream >> nGe; + geID.resize(nGe); + geName.resize(nGe); + geBiotype.resize(nGe); + geStream.ignore(999,'\n'); + for (uint ii=0;ii> geID[ii] >> geName[ii] >> geBiotype[ii]; + }; + geStream.close(); + if ( P.quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); @@ -44,20 +61,6 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ }; P.inOut->logMain << "Loaded exon database, nEx="<> nGe; - geID.resize(nGe); - geName.resize(nGe); - geBiotype.resize(nGe); - geStream.ignore(999,'\n'); - for (uint ii=0;ii> geID[ii] >> geName[ii] >> geBiotype[ii]; - }; - geStream.close(); }; //load exon-gene structures if ( P.quant.geCount.yes ) { diff --git a/VERSION b/VERSION index 32c3b77..96c2dda 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0d" +#define STAR_VERSION "2.7.0d_0221" diff --git a/parametersDefault b/parametersDefault index e078f41..42ccc16 100755 --- a/parametersDefault +++ b/parametersDefault @@ -137,12 +137,6 @@ readMatesLengthsIn NotEqual readNameSeparator / string(s): character(s) separating the part of the read names that will be trimmed in output (read name after space is always trimmed) -readStrand Unstranded - string: library strandedness type - Unstranded ... unstranded library - Forward ... 1st read strand same as RNA (i.e. 2nd cDNA synthesis strand) - Reverse ... 1st read opposite to RNA (i.e. 1st cDNA synthesis strand) - clip3pNbases 0 int(s): number(s) of bases to clip from 3p of each mate. If one value is given, it will be assumed the same for both mates. diff --git a/parametersDefault.xxd b/parametersDefault.xxd index f4ed93c..864b4f6 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -621,36 +621,7 @@ unsigned char parametersDefault[] = { 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, - 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6c, - 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x6e, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x6c, 0x69, 0x62, 0x72, - 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, - 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, - 0x52, 0x4e, 0x41, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x32, 0x6e, - 0x64, 0x20, 0x63, 0x44, 0x4e, 0x41, 0x20, 0x73, 0x79, 0x6e, 0x74, 0x68, - 0x65, 0x73, 0x69, 0x73, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x73, 0x74, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x31, 0x73, 0x74, 0x20, 0x63, 0x44, 0x4e, 0x41, - 0x20, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x73, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, + 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, @@ -3198,4 +3169,4 @@ unsigned char parametersDefault[] = { 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 38366; +unsigned int parametersDefault_len = 38018; From 5dd7c3abd1917f0211780b3227f1cfe1231bea3f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 21 Feb 2019 18:41:31 -0500 Subject: [PATCH 428/536] Reverted the revert to merge master changes. --- Makefile | 3 +- Parameters.h | 19 ++-- ParametersSolo.cpp | 5 +- ReadAlign_outputAlignments.cpp | 15 +-- SoloRead.h | 2 +- SoloReadFeature.h | 2 +- SoloReadFeature_getFeature.cpp | 65 ------------- SoloReadFeature_record.cpp | 27 +++-- SoloRead_record.cpp | 6 +- Transcriptome.cpp | 49 ++++++++++ Transcriptome.h | 9 +- Transcriptome_geneFullAlignOverlap.cpp | 27 +++++ parametersDefault | 8 +- parametersDefault.xxd | 130 ++++++++++++++----------- 14 files changed, 209 insertions(+), 158 deletions(-) delete mode 100644 SoloReadFeature_getFeature.cpp create mode 100644 Transcriptome_geneFullAlignOverlap.cpp diff --git a/Makefile b/Makefile index 8ce1b16..0ca4e34 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,8 @@ OBJECTS = ParametersSolo.o SoloRead.o SoloRead_record.o \ Genome_genomeGenerate.o genomeParametersWrite.o genomeScanFastaFiles.o genomeSAindex.o \ Genome_insertSequences.o insertSeqSA.o funCompareUintAndSuffixes.o funCompareUintAndSuffixesMemcmp.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ - Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ + Transcriptome.o Transcriptome_quantAlign.o Transcriptome_geneFullAlignOverlap.o \ + ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp Parameters_readSAMheader.o \ bam_cat.o serviceFuns.o GlobalVariables.cpp \ diff --git a/Parameters.h b/Parameters.h index 95a4cc4..a2d0c48 100644 --- a/Parameters.h +++ b/Parameters.h @@ -261,13 +261,11 @@ class Parameters { //quantification parameters //input - struct - { + struct { bool yes; //if any quantification is done vector mode; //quantification mode input string - struct - { + struct { bool yes; bool bamYes; bool indel; @@ -277,23 +275,24 @@ class Parameters { string ban; } trSAM; - struct - { + struct { bool yes; string outFile; } geCount; + + struct { + bool yes; + } geneFull; } quant; //variation parameters - struct - { + struct { bool yes; string vcfFile; } var; - struct - { + struct { bool yes; bool SAMtag; string outputMode; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 37f6d82..3b62c59 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -7,7 +7,7 @@ #include -const vector ParametersSolo::featureNames={"Gene","SJ"}; +const vector ParametersSolo::featureNames={"Gene","SJ","GeneFull"}; void ParametersSolo::initialize(Parameters *pPin) { @@ -61,6 +61,7 @@ void ParametersSolo::initialize(Parameters *pPin) exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; + nFeatures=features.size(); umiDedupYes.resize(3,false); @@ -130,6 +131,8 @@ void ParametersSolo::initialize(Parameters *pPin) pP->quant.trSAM.bamCompression = -2; pP->quant.trSAM.indel = true; pP->quant.trSAM.softClip = true; + if (featureYes[2]) + pP->quant.geneFull.yes=true; pP->inOut->logMain << "Turning on Genomic->Transcriptomic coordinate conversion for STARsolo\n"; }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 2291359..9187b00 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -8,10 +8,9 @@ void ReadAlign::outputAlignments() { bool mateMapped[2]={false,false}; - vector readGenes; + set readGeneFull={},readGene={}; vector readTranscripts={}; - set readTrGenes={}; - vector> readSJs={}; + vector readGeneExon={}; outFilterPassed=true;//only false if the alignment is held for outFilterBySJoutStage if (unmapType==-1) {//output transcripts @@ -167,17 +166,21 @@ void ReadAlign::outputAlignments() { }; if ( P.quant.geCount.yes ) { - chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); + chunkTr->geneCountsAddAlign(nTr, trMult, readGeneExon); + }; + + if ( P.quant.geneFull.yes ) { + chunkTr->geneFullAlignOverlap(nTr, trMult, P.pSolo.strand, readGeneFull); }; if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused - quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); + quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readGene); }; }; }; if (outFilterPassed) {//otherwise the alignment was held and will be counted at the 2nd stage - soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]); + soloRead->record(readNameExtra.at(0), nTr, readGene, readGeneFull, trMult[0]); }; if (unmapType>=0) { diff --git a/SoloRead.h b/SoloRead.h index 8c1b541..3f9666d 100644 --- a/SoloRead.h +++ b/SoloRead.h @@ -10,7 +10,7 @@ class SoloRead { SoloReadFeature **readFeat; SoloRead(Parameters &Pin, int32 iChunkIn); - void record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut); + void record(string &barcodeSeq, uint64 nTr, set &readTrGenes, set &readGenes, Transcript *alignOut); private: const int32 iChunk; diff --git a/SoloReadFeature.h b/SoloReadFeature.h index 2a2a85d..d74377a 100644 --- a/SoloReadFeature.h +++ b/SoloReadFeature.h @@ -24,7 +24,7 @@ class SoloReadFeature { string cbSeq, umiSeq, cbQual, umiQual; SoloReadFeature (int32 feTy, Parameters &Pin, int iChunk); - void record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut); + void record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut); void addCounts(const SoloReadFeature &soloCBin); void addStats(const SoloReadFeature &soloCBin); void statsOut(ofstream &streamOut); diff --git a/SoloReadFeature_getFeature.cpp b/SoloReadFeature_getFeature.cpp deleted file mode 100644 index cef4ff5..0000000 --- a/SoloReadFeature_getFeature.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "SoloReadFeature.h" -#include "serviceFuns.cpp" -#include "SequenceFuns.h" - -uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, string &stringCB) -{ - if (featureType==0) {//genes - *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; - return 1; - } else if (featureType==1) {//sjs - for (auto &sj : readSJs) { - *streamOut << umiB <<' '<< sj[0] <<' '<< sj[1] <<' '<< stringCB <<'\n'; - }; - return readSJs.size(); - }; - - return 0; //this should not happen -}; - -bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) -{ - if (pSolo.type==0 || !pSolo.featureYes[featureType] || soloBar.cbMatch<0) - return false; - - //unmapped - if (nTr==0) { - stats.V[stats.nUnmapped]++; - return false; - }; - - vector> readSJs; - if (featureType==0) {//genes - //check genes, return if no gene - if (readTrGenes.size()==0) { - stats.V[stats.nNoFeature]++; - return false; - } else if (readTrGenes.size()>1) { - stats.V[stats.nAmbigFeature]++; - if (nTr>1) - stats.V[stats.nAmbigFeatureMultimap]++; - return false; - }; - } else if (featureType==1) {//SJs - alignOut->extractSpliceJunctions(readSJs); - if (readSJs.empty()) { - stats.V[stats.nNoFeature]++; - return false; - } else if (nTr>1) {//record SJs from the read - stats.V[stats.nAmbigFeature]++; - stats.V[stats.nAmbigFeatureMultimap]++; - return false; - }; - }; - - if (soloBar.cbMatch==0) {//exact match - cbReadCount[cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); - return true; - } else if (soloBar.cbMatch==1) {//1 match with 1MM - cbReadCount[cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); - return true; - } else { - cbReadCount[cbI] += outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + cbOutString); - return true; - }; -}; diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 471fd97..13fe505 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -17,7 +17,7 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 g return 0; //this should not happen }; -void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) +void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut) { if (pSolo.type==0 || soloBar.cbMatch<0) return; @@ -29,13 +29,21 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re }; vector> readSJs; - if (featureType==0) {//genes + + set *readGe; + if (featureType==0) { + readGe = &readGene; + } else if (featureType==1) { + readGe = &readGeneFull; + }; + + if (featureType==0 || featureType==2) {//genes //check genes, return if no gene of multimapping - if (readTrGenes.size()==0) { + if (readGe->size()==0) { stats.V[stats.nNoFeature]++; return; }; - if (readTrGenes.size()>1) { + if (readGe->size()>1) { stats.V[stats.nAmbigFeature]++; if (nTr>1) stats.V[stats.nAmbigFeatureMultimap]++; @@ -46,27 +54,26 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re stats.V[stats.nAmbigFeatureMultimap]++; return; }; - //for SJs, still check genes, return if multi-gene - if (readTrGenes.size()>1) { + if (readGene.size()>1) {//for SJs, still check genes, return if multi-gene stats.V[stats.nAmbigFeature]++; return; }; bool sjAnnot; alignOut->extractSpliceJunctions(readSJs, sjAnnot); - if ( readSJs.empty() || (sjAnnot && readTrGenes.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) + if ( readSJs.empty() || (sjAnnot && readGene.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) stats.V[stats.nNoFeature]++; return; }; }; if (soloBar.cbMatch==0) {//exact match - cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); return; } else if (soloBar.cbMatch==1) {//1 match with 1MM - cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); + cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); return; } else {//>1 matches - uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); + uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); for (auto &cbi : soloBar.cbMatchInd) cbReadCount[cbi] += nfeat; return; diff --git a/SoloRead_record.cpp b/SoloRead_record.cpp index 20ee05e..dab5b9a 100644 --- a/SoloRead_record.cpp +++ b/SoloRead_record.cpp @@ -1,12 +1,14 @@ #include "SoloRead.h" -void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut) +void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readGenes, set &readGeneFull, Transcript *alignOut) { if (pSolo.type==0) return; readBar->getCBandUMI(barcodeSeq); + + for (uint32 ii=0; iirecord(*readBar, nTr, readTrGenes, alignOut); + readFeat[ii]->record(*readBar, nTr, readGenes, readGeneFull, alignOut); }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 329be76..35ac11d 100755 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -2,6 +2,7 @@ #include "streamFuns.h" #include "GlobalVariables.h" #include "ErrorWarning.h" +#include "serviceFuns.cpp" Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ @@ -84,6 +85,54 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ exG.eMax[iex]=max(exG.eMax[iex-1],exG.e[iex]); }; }; + + if ( P.quant.geneFull.yes ) { + ifstream & exinfo = ifstrOpen(trInfoDir+"/exonGeTrInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P); + exinfo >> exG.nEx; + + geneFull.s=new uint64[nGe]; + geneFull.e=new uint64[nGe]; + geneFull.eMax=new uint64[nGe]; + geneFull.g=new uint32[nGe]; + + for (uint ig=1;ig> s1 >> e1 >> str1 >> g1 >> t1; + geneFull.s[g1]=min(geneFull.s[g1],s1); + geneFull.e[g1]=max(geneFull.e[g1],e1); + geneFull.str[g1] = (uint8) str1; + }; + exinfo.close(); + + uint64 *gF=new uint64 [4*nGe]; + for (uint ii=0;ii); + + for (uint ii=0;ii &readTranscripts, set &readTrGenes);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr + uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readGene);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure void quantsOutput(); //output quantification files + void geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap); private: Parameters &P; //normal "genomic" parameters diff --git a/Transcriptome_geneFullAlignOverlap.cpp b/Transcriptome_geneFullAlignOverlap.cpp new file mode 100644 index 0000000..b5ad8e8 --- /dev/null +++ b/Transcriptome_geneFullAlignOverlap.cpp @@ -0,0 +1,27 @@ +#include "Transcriptome.h" +#include "serviceFuns.cpp" + +void Transcriptome::geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap) { + + for (uint32 iA=0; iA=0; ib--) {//scan through all blocks of the alignments + + uint64 be1=a.exons[ib][EX_G]+a.exons[ib][EX_L]-1;//end of the block + gi1=binarySearch1a(be1, geneFull.s, (int32) nGe); + + while (gi1>=0 && geneFull.eMax[gi1]>=a.exons[ib][EX_G]) {//these exons may overlap this block + if (geneFull.e[gi1]>=a.exons[ib][EX_G]) {//this gene overlaps the block + if (strandType==-1 || strandType==geneFull.str[gi1]) + geneOverlap.insert(gi1); + }; + --gi1;// go to the previous gene + }; + }; + }; +}; + + diff --git a/parametersDefault b/parametersDefault index 42ccc16..0b5a404 100755 --- a/parametersDefault +++ b/parametersDefault @@ -696,6 +696,7 @@ soloFeatures Gene string(s): genomic features for which the UMI counts per Cell Barcode are collected Gene ... genes: reads match the gene transcript SJ ... splice junctions: reported in SJ.out.tab + GeneFull ... full genes: count all reads overlapping genes' exons and introns soloUMIdedup 1MM_All string(s): type of UMI deduplication (collapsing) algorithm @@ -703,11 +704,12 @@ soloUMIdedup 1MM_All 1MM_Directional ... follows the "directional" method from the UMI-tools by Smith, Heger and Sudbery (Genome Research 2017). 1MM_NotCollapsed ... UMIs with 1 mismatch distance to others are not collapsed (i.e. all counted) -soloOutFileNames Solo.out/ genes.tsv barcodes.tsv matrix.mtx matrixSJ.mtx +soloOutFileNames Solo.out/ genes.tsv barcodes.tsv matrix.mtx matrixSJ.mtx matrixGeneFull.mtx string(s) file names for STARsolo output 1st word ... file name prefix 2nd word ... gene IDs and names 3rd word ... barcode sequences - 4th word ... cell/gene counts matrix - 5th word ... cell/splice junction counts matrix + 4th word ... cell/Gene counts matrix + 5th word ... cell/SJ counts matrix + 6th word ... cell/GeneFull counts matrix diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 864b4f6..4c8805c 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -3082,58 +3082,69 @@ unsigned char parametersDefault[] = { 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, - 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x73, 0x27, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, + 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, - 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, - 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, - 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, - 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, - 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, - 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, - 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, - 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, - 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, - 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, - 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, - 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, + 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, + 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, + 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, @@ -3158,15 +3169,20 @@ unsigned char parametersDefault[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, - 0x0a, 0x0a + 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x53, 0x4a, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x36, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, + 0x2f, 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, + 0x0a }; -unsigned int parametersDefault_len = 38018; +unsigned int parametersDefault_len = 38209; From 511aa2f4a2b15206aff689481ced57267f13b61c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 22 Feb 2019 17:07:38 -0500 Subject: [PATCH 429/536] Fixed problem in gene info input. --- ParametersSolo.h | 2 +- Transcriptome.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ParametersSolo.h b/ParametersSolo.h index cb11f4c..6a3fdca 100755 --- a/ParametersSolo.h +++ b/ParametersSolo.h @@ -21,7 +21,7 @@ class ParametersSolo { vector featureIn; vector features; uint32 nFeatures; - bool featureYes[2]; //which features are requested + bool featureYes[3]; //which features are requested //filtering char QSbase,QSmax;//quality score base and cutoff float cbMinP;//for CBs with non-exact matching to WL, min posterior probability diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 35ac11d..2c9f41c 100755 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -94,6 +94,7 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ geneFull.e=new uint64[nGe]; geneFull.eMax=new uint64[nGe]; geneFull.g=new uint32[nGe]; + geneFull.str=new uint8[nGe]; for (uint ig=1;ig); - for (uint ii=0;ii Date: Mon, 25 Feb 2019 15:57:02 -0500 Subject: [PATCH 430/536] Finished coding GeneFull option. --- SoloReadFeature_inputRecords.cpp | 2 +- SoloReadFeature_record.cpp | 2 +- Transcriptome_geneFullAlignOverlap.cpp | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp index 0fdfd81..c236f68 100644 --- a/SoloReadFeature_inputRecords.cpp +++ b/SoloReadFeature_inputRecords.cpp @@ -7,7 +7,7 @@ bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 if (!(*strIn >> umi)) //end of file return false; - if (featureType==0) {//gene + if (featureType==0 || featureType==2) {//gene *strIn >> feature; } else if (featureType==1) {//sj uint32 sj[2]; diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 13fe505..bd76bc0 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -4,7 +4,7 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 gene, vector> &readSJs, const string &stringCB) { - if (featureType==0) {//genes + if (featureType==0 || featureType==2) {//genes *streamOut << umiB <<' '<< gene <<' '<< stringCB <<'\n'; return 1; } else if (featureType==1) {//sjs diff --git a/Transcriptome_geneFullAlignOverlap.cpp b/Transcriptome_geneFullAlignOverlap.cpp index b5ad8e8..0c190de 100644 --- a/Transcriptome_geneFullAlignOverlap.cpp +++ b/Transcriptome_geneFullAlignOverlap.cpp @@ -1,10 +1,10 @@ #include "Transcriptome.h" #include "serviceFuns.cpp" -void Transcriptome::geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap) { - +void Transcriptome::geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap) +{ for (uint32 iA=0; iA=0 && geneFull.eMax[gi1]>=a.exons[ib][EX_G]) {//these exons may overlap this block if (geneFull.e[gi1]>=a.exons[ib][EX_G]) {//this gene overlaps the block - if (strandType==-1 || strandType==geneFull.str[gi1]) - geneOverlap.insert(gi1); + int32 str1 = geneFull.str[gi1]==1 ? a.Str : 1-a.Str; + if (strandType==-1 || strandType==str1) + geneOverlap.insert(geneFull.g[gi1]); }; --gi1;// go to the previous gene }; From fc73fd4996b388ace6300655172c053535f9dcd1 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 25 Feb 2019 16:09:16 -0500 Subject: [PATCH 431/536] Ready for 2.7.0e --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 96c2dda..48508ca 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0d_0221" +#define STAR_VERSION "2.7.0e" From 295440b724f4e90a40379d6fb5fd33bf8ca3252c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 7 Mar 2019 14:50:25 -0500 Subject: [PATCH 432/536] Minor text fixes in parametersDefault. --- parametersDefault | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parametersDefault b/parametersDefault index 42ccc16..0651532 100755 --- a/parametersDefault +++ b/parametersDefault @@ -547,7 +547,7 @@ alignInsertionFlush None None ... insertions are not flushed Right ... insertions are flushed to the right -### Paired-End reads: presently unsupported/undocumented +### Paired-End reads peOverlapNbasesMin 0 int>=0: minimum number of overlap bases to trigger mates merging and realignment From ee9ce30c7c08e6f97ae32dbff86d330dd9fd86a7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 14 Mar 2019 18:39:03 -0400 Subject: [PATCH 433/536] Fixed problems with STARsolo and 2-pass. --- Parameters_closeReadsFiles.cpp | 8 ++++---- VERSION | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Parameters_closeReadsFiles.cpp b/Parameters_closeReadsFiles.cpp index 7c5c8cb..da99101 100644 --- a/Parameters_closeReadsFiles.cpp +++ b/Parameters_closeReadsFiles.cpp @@ -3,10 +3,10 @@ #include #include void Parameters::closeReadsFiles() { - for (uint imate=0;imatereadIn[imate].is_open() ) inOut->readIn[imate].close(); - if (readFilesCommandPID[imate]>0) { + for (uint imate=0; imatereadIn[imate].is_open() ) + inOut->readIn[imate].close(); + if (readFilesCommandPID[imate]>0) kill(readFilesCommandPID[imate],SIGKILL); - }; }; }; \ No newline at end of file diff --git a/VERSION b/VERSION index 48508ca..9fb978e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0e" +#define STAR_VERSION "2.7.0e_0314" From 99e73e6f275e5da1fe3bb4c98009caca53392d7a Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 15 Mar 2019 17:11:17 -0400 Subject: [PATCH 434/536] Implement CB and UMI output into Chimeric.out.junction file. --- ChimericAlign_chimericJunctionOutput.cpp | 2 ++ SoloRead.cpp | 1 - parametersDefault.xxd | 7 ++----- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 1768446..32026ab 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -10,6 +10,8 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN) <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN; if (P.outSAMattrPresent.RG) outStream <<"\t"<< P.outSAMattrRG.at(RA->readFilesIndex); + if (P.pSolo.type>0) + outStream <<"\t"<< RA->soloRead->readBar->cbSeq <<"\t"<< RA->soloRead->readBar->umiSeq; outStream <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate }; \ No newline at end of file diff --git a/SoloRead.cpp b/SoloRead.cpp index 79c814e..e153e0e 100644 --- a/SoloRead.cpp +++ b/SoloRead.cpp @@ -10,5 +10,4 @@ SoloRead::SoloRead(Parameters &Pin, int32 iChunkIn) : iChunk(iChunkIn), P(Pin), for (uint32 ii=0; ii Date: Fri, 15 Mar 2019 18:39:40 -0400 Subject: [PATCH 435/536] Implementing solo no-WhiteList operation. --- ParametersSolo.cpp | 38 +++++++++++++++++--------------- SoloFeature_processRecords.cpp | 13 +++++++++++ SoloReadBarcode.cpp | 8 ++++--- SoloReadBarcode_getCBandUMI.cpp | 11 +++++++++ SoloReadFeature.cpp | 18 ++++++++++----- SoloReadFeature.h | 2 ++ SoloReadFeature_inputRecords.cpp | 3 +++ SoloReadFeature_record.cpp | 7 +++++- SoloRead_record.cpp | 4 +--- 9 files changed, 74 insertions(+), 30 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 3b62c59..8a37344 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -103,26 +103,28 @@ void ParametersSolo::initialize(Parameters *pPin) umiMaskHigh=~umiMaskLow; //load the CB whitlist and create unordered_map - ifstream & cbWlStream = ifstrOpen(soloCBwhitelist, ERROR_OUT, "SOLUTION: check the path and permissions of the CB whitelist file: " + soloCBwhitelist, *pP); - string seq1; - while (cbWlStream >> seq1) { - if (seq1.size() != cbL) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR in input CB whitelist file: "<< soloCBwhitelist <<" the total length of barcode sequence is " << seq1.size() << " not equal to expected " <inOut->logMain, EXIT_CODE_INPUT_FILES, *pP); - }; - uint32 cb1; - //convert to 2-bit format - if (convertNuclStrToInt32(seq1,cb1)) { - //cbWL.insert(cb1); - cbWL.push_back(cb1); - } else { - pP->inOut->logMain << "WARNING: CB whitelist sequence contains non-ACGT and is ignored: " << seq1 <> seq1) { + if (seq1.size() != cbL) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR in input CB whitelist file: "<< soloCBwhitelist <<" the total length of barcode sequence is " << seq1.size() << " not equal to expected " <inOut->logMain, EXIT_CODE_INPUT_FILES, *pP); + }; + uint32 cb1; + //convert to 2-bit format + if (convertNuclStrToInt32(seq1,cb1)) { + //cbWL.insert(cb1); + cbWL.push_back(cb1); + } else { + pP->inOut->logMain << "WARNING: CB whitelist sequence contains non-ACGT and is ignored: " << seq1 <); }; - //int comp1 = [] (const void *a, const void *b) {uint32 aa=*(uint32*) a; uint32 bb=*(uint32*) b; if (a - qsort(cbWL.data(),cbWL.size(),sizeof(uint32),funCompareNumbers); if (!pP->quant.trSAM.yes) { pP->quant.yes = true; diff --git a/SoloFeature_processRecords.cpp b/SoloFeature_processRecords.cpp index 1f2b6df..58d16f9 100644 --- a/SoloFeature_processRecords.cpp +++ b/SoloFeature_processRecords.cpp @@ -21,6 +21,19 @@ void SoloFeature::processRecords(ReadAlignChunk **RAchunk) readBarSum->addCounts(*readBarAll[ii]); }; + if (pSolo.cbWL.size()==0) {//now we can define WL and counts + pSolo.cbWL.resize(readFeatSum->cbReadCountMap.size()); + readFeatSum->cbReadCount = new uint32[pSolo.cbWL.size()]; + readBarSum->cbReadCountExact = new uint32[pSolo.cbWL.size()]; + + uint64 icb=0; + for (auto ii=readFeatSum->cbReadCountMap.cbegin(); ii!=readFeatSum->cbReadCountMap.cend(); ++ii) { + pSolo.cbWL[icb]=ii->first; + readFeatSum->cbReadCount[icb]=ii->second; + readBarSum->cbReadCountExact[icb]=ii->second; + }; + }; + //allocate arrays to store CB/gene/UMIs for all reads nCB=0;nReadsMapped=0; for (uint32 ii=0; ii0) { + cbReadCountExact = new uint32[pSolo.cbWL.size()]; + for (uint32 ii=0; ii2 Ns, might already be filtered by Illumina stats.V[stats.nNinBarcode]++; return; diff --git a/SoloReadFeature.cpp b/SoloReadFeature.cpp index 68ca052..83a52a0 100644 --- a/SoloReadFeature.cpp +++ b/SoloReadFeature.cpp @@ -10,9 +10,11 @@ SoloReadFeature::SoloReadFeature(int32 feTy, Parameters &Pin, int iChunk) for (uint32 ii=0; ii0) { + cbReadCount = new uint32[pSolo.cbWL.size()]; + for (uint32 ii=0; ii=0) { @@ -24,8 +26,14 @@ SoloReadFeature::SoloReadFeature(int32 feTy, Parameters &Pin, int iChunk) void SoloReadFeature::addCounts(const SoloReadFeature &rfIn) { - for (uint32 ii=0; ii0) {//WL + for (uint32 ii=0; iifirst] += ii->second; + }; }; }; diff --git a/SoloReadFeature.h b/SoloReadFeature.h index d74377a..5b4583b 100644 --- a/SoloReadFeature.h +++ b/SoloReadFeature.h @@ -1,6 +1,7 @@ #ifndef H_SoloReadFeature #define H_SoloReadFeature #include +#include #include "IncludeDefine.h" #include "Parameters.h" #include "Transcript.h" @@ -12,6 +13,7 @@ class SoloReadFeature { uint32 homoPolymer[4];//homopolymer constants uint32 *cbReadCount; + map cbReadCountMap; fstream *strU_0 ,*strU_1, *strU_2; //unique mappers, CB matches whitelist with 0,1>=2 MM diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp index c236f68..0c9e2d9 100644 --- a/SoloReadFeature_inputRecords.cpp +++ b/SoloReadFeature_inputRecords.cpp @@ -35,6 +35,9 @@ void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) }; }; + if (pSolo.cbWL.size()==0) //no WL => no mismatch check + return; + {//1 match strU_1->flush(); strU_1->seekg(0,ios::beg); diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index bd76bc0..16c2484 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -67,7 +67,12 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re }; if (soloBar.cbMatch==0) {//exact match - cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); + uint32 n1 = outputReadCB(strU_0, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); + if (pSolo.cbWL.size()>0) {//WL + cbReadCount[soloBar.cbI] += n1; + } else {//no WL + cbReadCountMap[soloBar.cbI] += n1; + }; return; } else if (soloBar.cbMatch==1) {//1 match with 1MM cbReadCount[soloBar.cbI]+= outputReadCB(strU_1, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); diff --git a/SoloRead_record.cpp b/SoloRead_record.cpp index dab5b9a..687bdcb 100644 --- a/SoloRead_record.cpp +++ b/SoloRead_record.cpp @@ -6,9 +6,7 @@ void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readGenes, se return; readBar->getCBandUMI(barcodeSeq); - - - + for (uint32 ii=0; iirecord(*readBar, nTr, readGenes, readGeneFull, alignOut); }; From 09ffccbbdd1fae65a8687cd8c0efad9b7fcf3729 Mon Sep 17 00:00:00 2001 From: Gert Hulselmans Date: Mon, 18 Mar 2019 17:41:38 +0100 Subject: [PATCH 436/536] Allow same tag for "--sjdbGTFtagExonParentTranscript" and "--sjdbGTFtagExonParentGene". Allow to specify same tag for "--sjdbGTFtagExonParentTranscript" and "--sjdbGTFtagExonParentGene" when reading a GTF file. Before this patch, if both options had the same tag. In case of STAR solo: - "*.Solo.out/genes.tsv" would be empty - "*.Solo.out/matrix.mtx" assigns all counted reads to the first "gene" instead of the correct one. Supporting this feature makes is a bit easier to use STAR to use regions as genes: chr1 regions_test Region 1000 2000 . . . region "chr1:1000-2000"; chr2 regions_test Region 3000 4000 . . . region "chr2:3000-4000"; With the old code the fake GTF file needed to look like this: chr1 regions_test Region 1000 2000 . . . region_gene "chr1:1000-2000"; region_transcript "chr1:1000-2000"; chr2 regions_test Region 3000 4000 . . . region_gene "chr2:3000-4000"; region_transcript "chr2:3000-4000"; --- loadGTF.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/loadGTF.cpp b/loadGTF.cpp index 5b0a782..1086191 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -121,12 +121,12 @@ uint64 loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen while (oneLineStream.good()) { string attrName1(""); oneLineStream >> attrName1; + string attr1; + oneLineStream >> attr1; + attr1.erase(remove(attr1.begin(),attr1.end(),'"'),attr1.end()); + attr1.erase(remove(attr1.begin(),attr1.end(),';'),attr1.end()); for (uint32 ii=0; ii> attr1; - attr1.erase(remove(attr1.begin(),attr1.end(),'"'),attr1.end()); - attr1.erase(remove(attr1.begin(),attr1.end(),';'),attr1.end()); exAttr[ii]=attr1; }; }; From 94d74570e40c0a3e31555dd026b6f59107bfe769 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 19 Mar 2019 16:23:17 -0400 Subject: [PATCH 437/536] Implemented no-whitelist solo operation. --- ParametersSolo.cpp | 5 ++++- ParametersSolo.h | 1 + SoloFeature_processRecords.cpp | 3 ++- SoloReadBarcode.cpp | 8 +++++--- SoloReadFeature.cpp | 2 +- SoloReadFeature_inputRecords.cpp | 9 +++++++-- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 8a37344..24a011a 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -103,7 +103,10 @@ void ParametersSolo::initialize(Parameters *pPin) umiMaskHigh=~umiMaskLow; //load the CB whitlist and create unordered_map - if (soloCBwhitelist!="-") { + if (soloCBwhitelist=="-") { + cbWLyes=false; + } else { + cbWLyes=true; ifstream & cbWlStream = ifstrOpen(soloCBwhitelist, ERROR_OUT, "SOLUTION: check the path and permissions of the CB whitelist file: " + soloCBwhitelist, *pP); string seq1; while (cbWlStream >> seq1) { diff --git a/ParametersSolo.h b/ParametersSolo.h index 6a3fdca..4923a38 100755 --- a/ParametersSolo.h +++ b/ParametersSolo.h @@ -14,6 +14,7 @@ class ParametersSolo { uint32 bL; //total barcode length string soloCBwhitelist; std::vector cbWL; + bool cbWLyes; string strandStr; int32 strand; //features diff --git a/SoloFeature_processRecords.cpp b/SoloFeature_processRecords.cpp index 58d16f9..2e884a6 100644 --- a/SoloFeature_processRecords.cpp +++ b/SoloFeature_processRecords.cpp @@ -21,7 +21,7 @@ void SoloFeature::processRecords(ReadAlignChunk **RAchunk) readBarSum->addCounts(*readBarAll[ii]); }; - if (pSolo.cbWL.size()==0) {//now we can define WL and counts + if (!pSolo.cbWLyes) {//now we can define WL and counts pSolo.cbWL.resize(readFeatSum->cbReadCountMap.size()); readFeatSum->cbReadCount = new uint32[pSolo.cbWL.size()]; readBarSum->cbReadCountExact = new uint32[pSolo.cbWL.size()]; @@ -31,6 +31,7 @@ void SoloFeature::processRecords(ReadAlignChunk **RAchunk) pSolo.cbWL[icb]=ii->first; readFeatSum->cbReadCount[icb]=ii->second; readBarSum->cbReadCountExact[icb]=ii->second; + ++icb; }; }; diff --git a/SoloReadBarcode.cpp b/SoloReadBarcode.cpp index fa2beed..1818b1e 100644 --- a/SoloReadBarcode.cpp +++ b/SoloReadBarcode.cpp @@ -9,7 +9,7 @@ SoloReadBarcode::SoloReadBarcode(Parameters &Pin) : P(Pin), pSolo(P.pSolo) for (uint32 ii=0; ii0) { + if (pSolo.cbWLyes) { cbReadCountExact = new uint32[pSolo.cbWL.size()]; for (uint32 ii=0; ii0) {//WL + if (pSolo.cbWLyes) {//WL for (uint32 ii=0; ii #include "SoloReadFeature.h" #include "binarySearch2.h" -#include +#include "serviceFuns.cpp" bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) { @@ -26,6 +27,10 @@ void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) uint32 cb, feature, umi; while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { *strU_0 >> cb; + + if (!pSolo.cbWLyes) //if no-WL, the full cbInteger was recorded - now has to be placed in order + cb=binarySearchExact(cb,pSolo.cbWL.data(),pSolo.cbWL.size()); + if (feature != (uint32)(-1)){ cbP[cb][0]=feature; cbP[cb][1]=umi; @@ -35,7 +40,7 @@ void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) }; }; - if (pSolo.cbWL.size()==0) //no WL => no mismatch check + if (!pSolo.cbWLyes) //no WL => no mismatch check return; {//1 match From 7d4a7da4ac0e46f2e9478e33d1a09c911c9d51ce Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 20 Mar 2019 10:35:18 -0400 Subject: [PATCH 438/536] Fixed a problem with CR,CY,UR,UQ SAM tags in solo output. Issue #593. --- ReadAlign_outputAlignments.cpp | 27 +++++++++++++++------------ VERSION | 2 +- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 2291359..fde6764 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -92,7 +92,21 @@ void ReadAlign::outputAlignments() { }; nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files + + //genes + if ( P.quant.geCount.yes ) { + chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); + }; + + //transcripts + if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused + quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); + }; + + //solo + soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]); + //write to SAM/BAM for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; @@ -165,20 +179,8 @@ void ReadAlign::outputAlignments() { outputTranscriptSJ (*(trMult[iTr]), nTr, chunkOutSJ, sjReadStartN); }; }; - - if ( P.quant.geCount.yes ) { - chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); - }; - - if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused - quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); - }; }; }; - - if (outFilterPassed) {//otherwise the alignment was held and will be counted at the 2nd stage - soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]); - }; if (unmapType>=0) { statsRA.unmappedAll++; @@ -204,6 +206,7 @@ void ReadAlign::outputAlignments() { outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); }; }; + if (unmapType>=0 && P.outReadsUnmapped=="Fastx" ){//output to fasta/q files for (uint im=0;im Date: Wed, 20 Mar 2019 18:30:57 -0400 Subject: [PATCH 439/536] Removed trailing spaces and \r from all files. --- BAMbinSortByCoordinate.cpp | 2 +- BAMbinSortUnmapped.cpp | 2 +- Chain.cpp | 40 ++--- Chain.h | 4 +- ChimericAlign.cpp | 16 +- ChimericAlign.h | 12 +- ChimericAlign_chimericJunctionOutput.cpp | 3 +- ChimericAlign_chimericStitching.cpp | 9 +- ChimericDetection.cpp | 4 +- ChimericDetection.h | 6 +- ChimericDetection_chimericDetectionMult.cpp | 46 ++--- ChimericSegment.cpp | 8 +- ChimericSegment.h | 4 +- ChimericTranscript.h | 2 +- Genome.cpp | 24 +-- Genome.h | 24 +-- Genome_genomeGenerate.cpp | 18 +- InOutStreams.cpp | 2 +- OutSJ.cpp | 2 +- OutSJ.h | 4 +- Parameters.cpp | 124 ++++++------- Parameters.h | 28 +-- ParametersChimeric.h | 4 +- ParametersGenome.h | 6 +- ParametersSolo.cpp | 34 ++-- ParametersSolo.h | 4 +- Parameters_closeReadsFiles.cpp | 4 +- Parameters_openReadsFiles.cpp | 6 +- Parameters_readSAMheader.cpp | 6 +- ReadAlign.cpp | 14 +- ReadAlign.h | 40 ++--- ReadAlignChunk.cpp | 10 +- ReadAlignChunk.h | 4 +- ReadAlignChunk_processChunks.cpp | 26 +-- ReadAlign_alignBAM.cpp | 66 +++---- ReadAlign_calcCIGAR.cpp | 2 +- ReadAlign_chimericDetection.cpp | 10 +- ReadAlign_chimericDetectionOld.cpp | 24 +-- ReadAlign_chimericDetectionOldOutput.cpp | 14 +- ReadAlign_chimericDetectionPEmerged.cpp | 16 +- ReadAlign_mapOneRead.cpp | 4 +- ReadAlign_mappedFilter.cpp | 4 +- ReadAlign_oneRead.cpp | 6 +- ReadAlign_outputAlignments.cpp | 22 +-- ReadAlign_outputTranscriptSAM.cpp | 26 +-- ReadAlign_outputVariation.cpp | 8 +- ReadAlign_peOverlapMergeMap.cpp | 98 +++++------ ReadAlign_quantTranscriptome.cpp | 2 +- ReadAlign_stitchPieces.cpp | 2 +- ReadAlign_stitchWindowSeeds.cpp | 20 +-- ReadAlign_waspMap.cpp | 22 +-- STAR.cpp | 34 ++-- SequenceFuns.cpp | 32 ++-- SequenceFuns.h | 2 +- SjdbClass.h | 2 +- Solo.cpp | 4 +- Solo.h | 8 +- SoloFeature.cpp | 4 +- SoloFeature.h | 20 +-- SoloFeature_collapseUMI.cpp | 50 +++--- SoloFeature_outputResults.cpp | 18 +- SoloFeature_processRecords.cpp | 40 ++--- SoloRead.cpp | 4 +- SoloRead.h | 4 +- SoloReadBarcode.cpp | 14 +- SoloReadBarcode.h | 8 +- SoloReadBarcode_getCBandUMI.cpp | 172 +++++++++--------- SoloReadFeature.cpp | 12 +- SoloReadFeature.h | 14 +- SoloReadFeature_getFeature.cpp | 12 +- SoloReadFeature_inputRecords.cpp | 184 ++++++++++---------- SoloReadFeature_record.cpp | 14 +- SoloRead_record.cpp | 24 +-- SuffixArrayFuns.cpp | 12 +- Transcript.h | 6 +- Transcript_generateCigarP.cpp | 2 +- Transcript_variationAdjust.cpp | 18 +- Transcriptome.cpp | 16 +- Transcriptome.h | 4 +- Transcriptome_geneCountsAddAlign.cpp | 2 +- Variation.cpp | 44 ++--- Variation.h | 12 +- bamRemoveDuplicates.cpp | 16 +- funCompareUintAndSuffixesMemcmp.cpp | 10 +- genomeParametersWrite.cpp | 4 +- genomeScanFastaFiles.cpp | 4 +- insertSeqSA.cpp | 18 +- loadGTF.cpp | 8 +- outputSJ.cpp | 4 +- parametersDefault | 8 +- readLoad.cpp | 6 +- serviceFuns.cpp | 24 +-- signalFromBAM.cpp | 2 +- sjdbBuildIndex.cpp | 6 +- sjdbInsertJunctions.cpp | 4 +- sjdbPrepare.cpp | 2 +- stitchWindowAligns.cpp | 12 +- sysRemoveDir.cpp | 4 +- 98 files changed, 905 insertions(+), 907 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index d037d3d..359d90e 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -58,7 +58,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st errOut <<"SOLUTION: check that the disk is not full, increase the max number of open files with Linux command ulimit -n before running STAR"; exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); }; - + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,mapGen.chrNameAll,mapGen.chrLengthAll); //send ordered aligns to bgzf one-by-one for (uint ia=0;ialogMain, EXIT_CODE_PARAMETER, P); }; - + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,mapGen.chrNameAll,mapGen.chrLengthAll); diff --git a/Chain.cpp b/Chain.cpp index af900d4..2cff52a 100644 --- a/Chain.cpp +++ b/Chain.cpp @@ -10,11 +10,11 @@ Chain::Chain(Parameters &Pin, string chainFileNameIn) : P(Pin), chainFileName(ch void Chain::chainLoad() { ifstream &streamIn = ifstrOpen(chainFileName, ERROR_OUT, "SOLUTION: check path and permission for the chain file" + chainFileName, P); - + string chr1;//current chromsome 1 (old) - + while (streamIn.good()) - { + { string line1; getline(streamIn,line1); istringstream line1str(line1); @@ -32,20 +32,20 @@ void Chain::chainLoad() } else if (fields[3]=="") {//normal chain block chrChains[chr1].bLen.push_back(std::stoi(fields[0])); - + uint s=chrChains[chr1].bStart1.back() + chrChains[chr1].bLen.back() + std::stoi(fields[1]);//prev start + length + shift chrChains[chr1].bStart1.push_back(s); - + s=chrChains[chr1].bStart2.back() + chrChains[chr1].bLen.back() + std::stoi(fields[2]);//prev start + length + shift chrChains[chr1].bStart2.push_back(s); } else {//chain header - //chain score tName tSize tStrand tStart tEnd qName qSize qStrand qStart qEnd id - // 0 1 2 3 4 5 6 7 8 9 10 11 12 - + //chain score tName tSize tStrand tStart tEnd qName qSize qStrand qStart qEnd id + // 0 1 2 3 4 5 6 7 8 9 10 11 12 + for (int ii=4;ii<13;ii++) line1str >> fields[ii]; //read all the fields - + chr1=fields[2]; chrChains[chr1].chr1=chr1; chrChains[chr1].chr2=fields[7];//NOTE: the whole procedure (for now) only works for single chain per chromosome @@ -60,7 +60,7 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) ifstream &streamIn = ifstrOpen(gtfFileName, ERROR_OUT, "SOLUTION: check path and permission for the GTF file" + gtfFileName, P); ofstream &streamOut = ofstrOpen(outFileName, ERROR_OUT, P); ofstream &streamOutUnlifted = ofstrOpen(outFileName+".unlifted", ERROR_OUT, P); - + while (streamIn.good()) { string line1; @@ -69,32 +69,32 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) string chr1; line1str >> chr1; - + if (chr1=="" || chr1.substr(0,1)=="#") continue;//empty or comment line - + if (chrChains.count(chr1)==0) exitWithError("GTF contains chromosome " + chr1 + " not present in the chain file " + chainFileName,std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); - + OneChain *ch1 = & chrChains[chr1];//the chain for the chr1 - + string str1,str2; line1str >> str1 >> str2;//fields 2,3 - + uint c1, c2[2]; //coordinates: 1/2 (old/new) - + for (int ii=0;ii<2;ii++) {//read and transform the two coordinates line1str >> c1; int32 i1 = binarySearch1a (c1, ch1->bStart1.data(), ch1->bN); - + c2[ii]=-1;//-1 means impossible to lift this end - + if (i1>=0 && c1 < ch1->bStart1[i1]+ch1->bLen[i1]) {//c1 is inside the block, simple transformation c2[ii]=ch1->bStart2[i1] + c1 - ch1->bStart1[i1]; } else - {//c1 is outside of the block + {//c1 is outside of the block if (ii==0 && i1 < (int32) ch1->bN-1) {//left end => c2 will be at the start of the next block c2[ii]=ch1->bStart2[i1+1]; //if i1=-1, it will work = start of the 0-tn blocl @@ -121,6 +121,6 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) // errOut << "EXITING because of fatal INPUT file error: chain file contains chromosome (scaffold) not present in the genome " << oldname <<"\n"; // errOut << ERROR_OUT << "\n"; // exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); -// }; +// }; // uint ichr=mapGen.chrNameIndex[oldname];//chr index in the genome list // bStart1[bN] += mapGen.chrLength[ichr];//whole genome chain - shift by chr start diff --git a/Chain.h b/Chain.h index d5f70b8..9b0339a 100644 --- a/Chain.h +++ b/Chain.h @@ -5,7 +5,7 @@ #include "Parameters.h" #include "ErrorWarning.h" -class OneChain +class OneChain { public: uint bN; @@ -17,7 +17,7 @@ class Chain { public: // // uint bN;//number of blocks // // vector bStart1, bStart2, bLen; //blocks starts in 1/2, lengths - + Chain(Parameters &Pin, string chainFileNameIn); void liftOverGTF(string gtfFileName, string outFileName); private: diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index bf2dfc8..3038d9d 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -1,30 +1,30 @@ #include "ChimericAlign.h" -ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin) +ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin) : seg1(seg1in), seg2(seg2in),chimScore(chimScoreIn), P(seg1in.P), pCh(P.pCh), mapGen(genomeIn), RA(RAin) { stitchingDone=false; - + al1=&seg1.align; al2=&seg2.align; - - if (al1->roStart > al2->roStart) + + if (al1->roStart > al2->roStart) swap (al1,al2); - + ex1 = al1->Str==1 ? 0 : al1->nExons-1; ex2 = al2->Str==0 ? 0 : al2->nExons-1; }; bool ChimericAlign::chimericCheck() { bool chimGood=true; - + chimGood = chimGood && al1->exons[ex1][EX_iFrag] <= al2->exons[ex2][EX_iFrag];//otherwise - strange configuration, both segments contain two mates //if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one // chimN=0;//reject such chimeras //good test example: //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA - //} else - + //} else + //junction overhangs too short for chimerically spliced mates chimGood = chimGood && (al1->exons[ex1][EX_iFrag] < al2->exons[ex2][EX_iFrag] || (al1->exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2->exons[ex2][EX_L] >= pCh.junctionOverhangMin) ); diff --git a/ChimericAlign.h b/ChimericAlign.h index c99d944..b18347c 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -18,21 +18,21 @@ class ChimericAlign // std::unique_ptr al1, al2; //two chimeric alignments - modified by chimeric switching Transcript *al1, *al2; uint ex1, ex2; - + uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; int chimMotif, chimStr, chimScore; - + ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin); //allocate void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); - + bool stitchingDone; - + private: Parameters &P; - ParametersChimeric &pCh; - Genome &mapGen; + ParametersChimeric &pCh; + Genome &mapGen; ReadAlign *RA; }; diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 1768446..6ccb9ab 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -7,9 +7,8 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN) <<"\t"<< mapGen.chrName[al2->Chr] <<"\t"<< chimJ2 - mapGen.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ <<"\t"<< al1->exons[0][EX_G] - mapGen.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ - <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN; + <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN; if (P.outSAMattrPresent.RG) outStream <<"\t"<< P.outSAMattrRG.at(RA->readFilesIndex); outStream <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate }; - \ No newline at end of file diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index 9251a3c..84665ea 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -1,12 +1,12 @@ #include "ChimericAlign.h" void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { - + if (stitchingDone) return; - + stitchingDone=true; - + al1=new Transcript(*al1); al2=new Transcript(*al2); @@ -38,7 +38,7 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { uint jRmax = roStart1+a2.exons[ex2][EX_L]; jRmax = jRmax>roStart0 ? jRmax-roStart0-1 : 0; for (jR=0; jR chimAligns; bool chimRecord; int chimScoreBest; - + ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream *ostreamChimJunctionIn, ReadAlign *RA); bool chimericDetectionMult(uint nWin, uint *readLengthIn); fstream *ostreamChimJunction; diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 957c6cb..3056373 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -10,11 +10,11 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) //segment lengths && (different mates || small gap between segments) if (seg1.roE > seg1.P.pCh.segmentMin + seg1.roS + chimOverlap && seg2.roE > seg1.P.pCh.segmentMin + seg2.roS + chimOverlap \ - && ( diffMates || ( (seg1.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg2.roS && (seg2.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg1.roS ) ) ) + && ( diffMates || ( (seg1.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg2.roS && (seg2.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg1.roS ) ) ) { chimScore = seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting }; - + return chimScore; }; @@ -22,7 +22,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { chimRecord=false; - + // for (uint ii=0;iial2; }; }; - + chimAligns.clear(); chimScoreBest=0; - - for (uint iW1=0; iW10) {//candidate chimera ChimericAlign chAl(seg1, seg2, chimScore, outGen, RA); - + if (!chAl.chimericCheck()) continue; //check chimeric alignment - - if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange) + + if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange) chimAligns.push_back(chAl);//add this chimeric alignment - + if ( chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { chimAligns.back().chimericStitching(outGen.G, Read1[0]); if (chimAligns.back().chimScore > chimScoreBest) @@ -82,20 +82,20 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { };//cycle over window2 aligns };//cycle over window2 };//cycle over window1 aligns - };//cycle over window1 + };//cycle over window1 if (chimScoreBest==0) return chimRecord; - - chimN=0; + + chimN=0; for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; if (chimN > 2*P.pCh.multimapNmax) //too many loci (considering 2* more candidates for stitching below) return chimRecord; - - chimN=0; + + chimN=0; for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) { cAit->chimericStitching(outGen.G, Read1[0]); @@ -105,7 +105,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { }; if (chimN > P.pCh.multimapNmax) //too many loci return chimRecord; - + for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) cAit->chimericJunctionOutput(*ostreamChimJunction, chimN); @@ -113,6 +113,6 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { if (chimN>0) chimRecord=true; - + return chimRecord; };//END diff --git a/ChimericSegment.cpp b/ChimericSegment.cpp index 3516d17..8e5b28b 100644 --- a/ChimericSegment.cpp +++ b/ChimericSegment.cpp @@ -4,7 +4,7 @@ ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), { if ( (align.intronMotifs[1]==0 && align.intronMotifs[2]==0) || (align.intronMotifs[1]>0 && align.intronMotifs[2]>0)) {//strand is undefined str=0; - } else if ( (align.Str==0) == (align.intronMotifs[1]>0)) {//strand the same as RNA. + } else if ( (align.Str==0) == (align.intronMotifs[1]>0)) {//strand the same as RNA. //This assumes that the aligns have consistent strands, i.e. only intronMotifs[1]>0 OR intronMotifs[2]>0 str=1; } else {//strand opposite to RNA @@ -20,11 +20,11 @@ bool ChimericSegment::segmentCheck() { bool segGood = true; segGood = segGood && align.rLength >= pCh.segmentMin; //mapped length >= chim segmentMin - segGood = segGood && align.intronMotifs[0]==0; //no non-canonical unannotated juncions. + segGood = segGood && align.intronMotifs[0]==0; //no non-canonical unannotated juncions. return segGood; - + //this is already tested for each align with default --outFilterIntronStrands RemoveInconsistentStrands - //segGood = segGood && (align.intronMotifs[1]==0 || align.intronMotifs[2]==0); //consistent intron motifs. + //segGood = segGood && (align.intronMotifs[1]==0 || align.intronMotifs[2]==0); //consistent intron motifs. //this is not requiered since seg2 is tested for length // segGood = segGood && (align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread // || align.exons[0][EX_R] >= P.pCh.segmentMin); //uncovered by seg1 read length is <= segmentMin diff --git a/ChimericSegment.h b/ChimericSegment.h index a1c0a47..90d014b 100644 --- a/ChimericSegment.h +++ b/ChimericSegment.h @@ -11,10 +11,10 @@ class ChimericSegment public: Parameters &P; ParametersChimeric &pCh; - + Transcript &align; //alignment uint roS,roE,str; //start/end/strand in original read coordinates - + ChimericSegment(Parameters &Pin, Transcript &alignIn); //allocate bool segmentCheck();//check if chimeric segment is good private: diff --git a/ChimericTranscript.h b/ChimericTranscript.h index 0cb76ec..e569e52 100644 --- a/ChimericTranscript.h +++ b/ChimericTranscript.h @@ -11,7 +11,7 @@ class ChimericTranscript Transcript **chTrs; //all chimeric transcripts uint nCh; //number of recorded (best) chimeric transcripts uint nChSize; //size of the chTrs array, will be increased if nCh > nChSize - + ChimericTranscript(Parameters &Pin); //allocate private: }; diff --git a/Genome.cpp b/Genome.cpp index b8524da..e520098 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -26,10 +26,10 @@ #define SHM_projectID 23 Genome::Genome (Parameters &Pin ): pGe(Pin.pGe), sharedMemory(NULL), P(Pin), shmStart(NULL) { - shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); - + shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); + sjdbOverhang = pGe.sjdbOverhang; //will be re-defined later if another value was used for the generated genome - sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; + sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; }; // Genome::~Genome() @@ -96,14 +96,14 @@ void Genome::genomeLoad(){//allocate and load Genome uint L=200,K=6; Parameters P1; - + //some initializations before reading the parameters GstrandBit=0; ifstream parFile((pGe.gDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { P.inOut->logMain << "Reading genome generation parameters:\n"; - + //read genome internal parameters while (parFile.good()) { string word1; @@ -122,10 +122,10 @@ void Genome::genomeLoad(){//allocate and load Genome }; }; }; - parFile.clear(); + parFile.clear(); parFile.seekg(0,ios::beg);//rewind - + P1.inOut = P.inOut; P1.scanAllLines(parFile,3,-1); parFile.close(); @@ -175,7 +175,7 @@ void Genome::genomeLoad(){//allocate and load Genome pGe.gChrBinNbits=P1.pGe.gChrBinNbits; genomeChrBinNbases=1LLU<0) {//genomeFileSize was recorded in the genomeParameters file, copy the values to P pGe.gFileSizes = P1.pGe.gFileSizes; @@ -220,9 +220,9 @@ void Genome::genomeLoad(){//allocate and load Genome /////////////////////////////////// at this point all array sizes should be known: calculate packed array lengths if (GstrandBit==0) {//not defined before GstrandBit = (uint) floor(log(nGenome)/log(2))+1; - if (GstrandBit<32) GstrandBit=32; //TODO: use simple access function for SA + if (GstrandBit<32) GstrandBit=32; //TODO: use simple access function for SA }; - + GstrandMask = ~(1LLU<0 but alignMatesGapMax==0, winBinNbits will be defined by alignIntronMax P.inOut->logMain << "To accommodate alignIntronMax="< chrStartMap; for (uint ii=0;ii (chrName[ii], chrStart[ii])); }; - + uint nInserted=0, nWrongChr=0, nWrongRef=0, nRefN=0; while (consIn.good()) { string chr1, refIn, altIn, dummy; uint start1; char ref1,alt1; - + consIn >> chr1 >> start1 >> dummy >> refIn >> altIn; consIn.ignore(numeric_limits::max(),'\n'); - + convertNucleotidesToNumbers(refIn.c_str(),&ref1,1); convertNucleotidesToNumbers(altIn.c_str(),&alt1,1); --start1;//VCF positions are 1-based - + if (chrStartMap.count(chr1)==1) {//otherwise just skip start1+=chrStartMap[chr1]; if (G[start1]>3) ++nRefN; - + if (G[start1]==ref1 || G[start1]>3) { G[start1]=alt1; ++nInserted; @@ -441,7 +441,7 @@ void Genome::genomeGenerate() { SjdbClass sjdbLoci; Genome mainGenome1(*this); - + P.sjdbInsert.outDir=pGe.gDir; P.twoPass.pass2=false; @@ -452,7 +452,7 @@ void Genome::genomeGenerate() { pGe.gFileSizes.clear(); pGe.gFileSizes.push_back(nGenome); pGe.gFileSizes.push_back(SA.lengthByte); - + //write genome parameters file genomeParametersWrite(pGe.gDir+("/genomeParameters.txt"), P, ERROR_OUT, *this); diff --git a/InOutStreams.cpp b/InOutStreams.cpp index 0034ef9..2cadf2b 100644 --- a/InOutStreams.cpp +++ b/InOutStreams.cpp @@ -25,7 +25,7 @@ InOutStreams::~InOutStreams() { //logStdOutFile.close(); //do not want to close these log files, as some destructors (e.g. ~SharedMemory) might still write there //logMain.close(); - + outSAMfile.close(); outChimSAM.close(); outChimJunction.close(); diff --git a/OutSJ.cpp b/OutSJ.cpp index a10be32..ea01b84 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -94,7 +94,7 @@ void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters& P) {//collapse if (*(isj1P+motifP) != *(isjP+motifP) ) { uint s1=*(uint*)(isj1P+startP); uint c1=mapGen.chrBin[ s1 >> mapGen.pGe.gChrBinNbits]; - + stringstream errOut; errOut <<"EXITING becaues of BUG: different motifs for the same junction while collapsing junctions\n" \ << mapGen.chrName[c1] <<" "<< s1-mapGen.chrStart[c1]+1 <<" "< (-1, -1, "readFilesIn", &readFilesIn)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readFilesPrefix", &readFilesPrefix)); parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesCommand", &readFilesCommand)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); parArray.push_back(new ParameterInfoVector (-1, -1, "readNameSeparator", &readNameSeparator)); @@ -200,9 +200,9 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "alignInsertionFlush", &alignInsertionFlush.in)); //peOverlap - parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapNbasesMin", &peOverlap.NbasesMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapNbasesMin", &peOverlap.NbasesMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapMMp", &peOverlap.MMp)); - + //chimeric parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &pCh.segmentMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &pCh.scoreMin)); @@ -229,14 +229,14 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &pGe.sjdbOverhang)); pGe.sjdbOverhang_par=parArray.size()-1; parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &pGe.sjdbScore)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &pGe.sjdbInsertSave)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &pGe.sjdbInsertSave)); + //variation - parArray.push_back(new ParameterInfoScalar (-1, -1, "varVCFfile", &var.vcfFile)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "varVCFfile", &var.vcfFile)); //WASP - parArray.push_back(new ParameterInfoScalar (-1, -1, "waspOutputMode", &wasp.outputMode)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "waspOutputMode", &wasp.outputMode)); + //quant parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quant.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quant.trSAM.bamCompression)); @@ -250,10 +250,10 @@ Parameters::Parameters() {//initalize parameters info //solo parArray.push_back(new ParameterInfoScalar (-1, -1, "soloType", &pSolo.typeStr)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBstart", &pSolo.cbS)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIstart", &pSolo.umiS)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIstart", &pSolo.umiS)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBlen", &pSolo.cbL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "soloBarcodeReadLength", &pSolo.bL)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloBarcodeReadLength", &pSolo.bL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBwhitelist", &pSolo.soloCBwhitelist)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloStrand", &pSolo.strandStr)); parArray.push_back(new ParameterInfoVector (-1, -1, "soloOutFileNames", &pSolo.outFileNames)); @@ -520,7 +520,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + //remove duplicates parameters if (removeDuplicates.mode=="UniqueIdentical") { @@ -535,9 +535,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --bamRemoveDuplicatesType="<logMain, EXIT_CODE_PARAMETER, *this); - }; - + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (runMode=="alignReads") { inOut->logProgress.open((outFileNamePrefix + "Log.progress.out").c_str()); } else if (runMode=="inputAlignmentsFromBAM") { @@ -676,7 +676,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"EXITING: fatal input ERROR: --outSAMorder=PairedKeepInputOrder is presently only compatible with SAM output, i.e. default --outSMAtype SAM\n"; errOut <<"SOLUTION: re-run STAR without --outSAMorder=PairedKeepInputOrder, or with --outSAMorder=PairedKeepInputOrder --outSMAtype SAM .\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; + }; //SJ filtering for (int ii=0;ii<4;ii++) { if (outSJfilterOverhangMin.at(ii)<0) outSJfilterOverhangMin.at(ii)=numeric_limits::max(); @@ -723,7 +723,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (outSAMfilter.mode.at(0)=="KeepOnlyAddedReferences") { outSAMfilter.KeepOnlyAddedReferences=true; - } else if (outSAMfilter.mode.at(0)=="KeepAllAddedReferences") + } else if (outSAMfilter.mode.at(0)=="KeepAllAddedReferences") { outSAMfilter.KeepAllAddedReferences=true; } else if (outSAMfilter.mode.at(0)=="None") @@ -743,8 +743,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: use default --outSAMfilter None, OR add references with --genomeFataFiles\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - + + if (outMultimapperOrder.mode=="Old_2.4") { outMultimapperOrder.random=false; @@ -770,7 +770,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: specify one of the allowed values: Fastx or SAM\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (readFilesTypeN==1) { readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files } else if (readFilesTypeN==10) {//find the number of mates from the SAM file @@ -786,7 +786,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; readNmatesIn=readNmates; - + //two-pass if (parArray.at(twoPass.pass1readsN_par)->inputLevel>0 && twoPass.mode=="None") { @@ -838,8 +838,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: please check the path and writing permissions \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - }; - + }; + // openReadFiles depends on twoPass for reading SAM header if (runMode=="alignReads" && pGe.gLoad!="Remove" && pGe.gLoad!="LoadAndExit") {//open reads files to check if they are present openReadsFiles(); @@ -922,14 +922,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //inOut->fastaOutSeqs.open("Seqs.out.fasta"); }; }; - + //variation var.yes=false; if (var.vcfFile!="-") { var.yes=true; - }; - + }; + //WASP wasp.yes=false; wasp.SAMtag=false; @@ -951,7 +951,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --varVCFfile /path/to/file.vcf\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (wasp.yes && outSAMtype.at(0)!="BAM") { ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: --waspOutputMode requires output to BAM file\n"; @@ -1001,10 +1001,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; }; - + //solo pSolo.initialize(this); - + //outSAMattributes outSAMattrPresent.NH=false;//TODO re-write as class with constructor? outSAMattrPresent.HI=false; @@ -1015,7 +1015,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.jM=false; outSAMattrPresent.jI=false; outSAMattrPresent.RG=false; - outSAMattrPresent.MC=false; + outSAMattrPresent.MC=false; outSAMattrPresent.XS=false; outSAMattrPresent.vA=false; outSAMattrPresent.vG=false; @@ -1027,7 +1027,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.UR=false; outSAMattrPresent.UY=false; - + //for quant SAM output only NH and HI flags outSAMattrPresentQuant=outSAMattrPresent; outSAMattrPresentQuant.NH=true; @@ -1075,10 +1075,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.vA=true; } else if (vAttr1.at(ii)== "vG") { outSAMattrOrder.push_back(ATTR_vG); - outSAMattrPresent.vG=true; + outSAMattrPresent.vG=true; } else if (vAttr1.at(ii)== "vW") { outSAMattrOrder.push_back(ATTR_vW); - outSAMattrPresent.vW=true; + outSAMattrPresent.vW=true; } else if (vAttr1.at(ii)== "RG") { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); @@ -1086,31 +1086,31 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (vAttr1.at(ii)== "rB") { outSAMattrOrder.push_back(ATTR_rB); outSAMattrOrderQuant.push_back(ATTR_rB); - outSAMattrPresent.rB=true; + outSAMattrPresent.rB=true; } else if (vAttr1.at(ii)== "ch") { outSAMattrOrder.push_back(ATTR_ch); outSAMattrOrderQuant.push_back(ATTR_ch); - outSAMattrPresent.ch=true; + outSAMattrPresent.ch=true; } else if (vAttr1.at(ii)== "MC") { outSAMattrOrder.push_back(ATTR_MC); outSAMattrOrderQuant.push_back(ATTR_MC); - outSAMattrPresent.MC=true; + outSAMattrPresent.MC=true; } else if (vAttr1.at(ii)== "CR") { outSAMattrOrder.push_back(ATTR_CR); outSAMattrOrderQuant.push_back(ATTR_CR); - outSAMattrPresent.CR=true; + outSAMattrPresent.CR=true; } else if (vAttr1.at(ii)== "CY") { outSAMattrOrder.push_back(ATTR_CY); outSAMattrOrderQuant.push_back(ATTR_CY); - outSAMattrPresent.CY=true; + outSAMattrPresent.CY=true; } else if (vAttr1.at(ii)== "UR") { outSAMattrOrder.push_back(ATTR_UR); outSAMattrOrderQuant.push_back(ATTR_UR); - outSAMattrPresent.UR=true; + outSAMattrPresent.UR=true; } else if (vAttr1.at(ii)== "UY") { outSAMattrOrder.push_back(ATTR_UY); outSAMattrOrderQuant.push_back(ATTR_UY); - outSAMattrPresent.UY=true; + outSAMattrPresent.UY=true; } else if (vAttr1.at(ii)== "XS") { outSAMattrOrder.push_back(ATTR_XS); outSAMattrPresent.XS=true; @@ -1125,21 +1125,21 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + if (!var.yes && (outSAMattrPresent.vA | outSAMattrPresent.vG)) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETER error: --outSAMattributes contains vA and/or vG tag(s), but --varVCFfile is not set\n"; errOut <<"SOLUTION: re-run STAR with a --varVCFfile option, or without vA/vG tags in --outSAMattributes\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (!wasp.yes && outSAMattrPresent.vW) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETER error: --outSAMattributes contains vW tag, but --waspOutputMode is not set\n"; errOut <<"SOLUTION: re-run STAR with a --waspOutputMode option, or without vW tags in --outSAMattributes\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (outSAMattrRG.size()>0 && !outSAMattrPresent.RG) { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); @@ -1162,15 +1162,15 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrOrderQuant.push_back(ATTR_vW); outSAMattrPresent.vW=true; inOut->logMain << "WARNING --waspOutputMode is set, therefore STAR will output vW attribute" <logMain, EXIT_CODE_PARAMETER, *this); - }; - + }; + //chimeric pCh.out.bam=false; pCh.out.junctions=false; @@ -1187,7 +1187,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (type1=="HardClip") { pCh.out.bamHardClip=true; } else if (type1=="SoftClip") { - pCh.out.bamHardClip=false; + pCh.out.bamHardClip=false; } else { ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); }; - if (pCh.multimapNmax>0 && (pCh.out.bam || pCh.out.samOld)) { + if (pCh.multimapNmax>0 && (pCh.out.bam || pCh.out.samOld)) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax > 0 (new chimeric detection) presently only works with --chimOutType Junctions\n"; errOut <<"SOLUTION: re-run with --chimOutType Junctions\n"; @@ -1262,8 +1262,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters alignEndsType.ext[0][0]=true; } else if (alignEndsType.in=="Extend5pOfReads12" ) { - alignEndsType.ext[0][0]=true; - alignEndsType.ext[1][0]=true; + alignEndsType.ext[0][0]=true; + alignEndsType.ext[1][0]=true; } else if (alignEndsType.in=="Extend3pOfRead1" ) { alignEndsType.ext[0][1]=true; @@ -1386,11 +1386,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (outSAMunmapped.mode.at(0)=="Within" && outSAMunmapped.mode.size()==1) { outSAMunmapped.yes=true; outSAMunmapped.within=true; - outSAMunmapped.keepPairs=false; + outSAMunmapped.keepPairs=false; } else if (outSAMunmapped.mode.at(0)=="Within" && outSAMunmapped.mode.at(1)=="KeepPairs") { outSAMunmapped.yes=true; outSAMunmapped.within=true; - outSAMunmapped.keepPairs=true; + outSAMunmapped.keepPairs=true; } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option for --outSAMunmapped="; @@ -1413,7 +1413,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + if (alignInsertionFlush.in=="None") { alignInsertionFlush.flushRight=false; } else if (alignInsertionFlush.in=="Right") { @@ -1424,35 +1424,35 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "SOLUTION: use allowed option: None or Right"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - + + //peOverlap if (peOverlap.NbasesMin>0) { peOverlap.yes=true; } else { peOverlap.yes=false; }; - + //read parameters // if (pReads.strandString=="Unstranded") { // pReads.strand=0; // } else if (pReads.strandString=="Forward") { - // pReads.strand=1; + // pReads.strand=1; // } else if (pReads.strandString=="Reverse") { - // pReads.strand=2; + // pReads.strand=2; // } else { // ostringstream errOut; // errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --readStrand="<logMain, EXIT_CODE_PARAMETER, *this); // }; - + // outSAMreadIDnumber=false; if (outSAMreadID=="Number") { outSAMreadIDnumber=true; }; - + //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" < outSAMattrOrder, outSAMattrOrderQuant; @@ -151,7 +151,7 @@ class Parameters { uint32 outBAMcoordNbins; uint32 outBAMsortingBinsN;//user-defined number of bins for sorting string outBAMsortTmpDir; - + // string bamRemoveDuplicatesType; // uint bamRemoveDuplicatesMate2basesN; struct { @@ -160,7 +160,7 @@ class Parameters { bool markMulti; uint mate2basesN; } removeDuplicates; - + int outBAMsortingThreadN, outBAMsortingThreadNactual; uint64 *outBAMsortingBinStart; //genomic starts for bins for sorting BAM files uint16 outSAMflagOR, outSAMflagAND; @@ -176,14 +176,14 @@ class Parameters { vector mode; bool yes; bool KeepOnlyAddedReferences; - bool KeepAllAddedReferences; + bool KeepAllAddedReferences; } outSAMfilter; struct { string mode; bool random; } outMultimapperOrder; - + struct { bool yes; uint NbasesMin; @@ -284,15 +284,15 @@ class Parameters { } geCount; } quant; - + //variation parameters struct { bool yes; string vcfFile; } var; - - struct + + struct { bool yes; bool SAMtag; @@ -301,7 +301,7 @@ class Parameters { //solo ParametersSolo pSolo; - + //chimeric ParametersChimeric pCh; @@ -311,7 +311,7 @@ class Parameters { //not really parameters, but global variables: array,2> sjAll; - uint64 sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered + uint64 sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered ////////////////////// CLEAN-UP needed InOutStreams *inOut; //main input output streams diff --git a/ParametersChimeric.h b/ParametersChimeric.h index ded96cc..b5da3e8 100644 --- a/ParametersChimeric.h +++ b/ParametersChimeric.h @@ -10,9 +10,9 @@ class ParametersChimeric uint segmentReadGapMax; //max read gap for stitching chimeric windows int scoreMin,scoreDropMax,scoreSeparation, scoreJunctionNonGTAG; //min chimeric score uint mainSegmentMultNmax; - + uint multimapScoreRange, multimapNmax, nonchimScoreDropMin; - + vector outJunctionFormat; struct diff --git a/ParametersGenome.h b/ParametersGenome.h index 0f4af95..53408c3 100644 --- a/ParametersGenome.h +++ b/ParametersGenome.h @@ -8,20 +8,20 @@ class ParametersGenome {//"constant" genome parameters - user input vector gFastaFiles; vector gChainFiles; string gConsensusFile; - + uint gSAindexNbases;//length of the SA pre-index strings uint gChrBinNbits; uint gSAsparseD;//SA sparsity uint gSuffixLengthMax;//maximum length of the suffixes, has to be longer than read length vector gFileSizes;//size of the genome files - + vector sjdbFileChrStartEnd; string sjdbGTFfile; string sjdbGTFchrPrefix; string sjdbGTFfeatureExon; string sjdbGTFtagExonParentTranscript; string sjdbGTFtagExonParentGene; - string sjdbInsertSave; + string sjdbInsertSave; uint sjdbOverhang; int sjdbOverhang_par; int sjdbScore; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 37f6d82..f2e8d3e 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -9,10 +9,10 @@ const vector ParametersSolo::featureNames={"Gene","SJ"}; -void ParametersSolo::initialize(Parameters *pPin) +void ParametersSolo::initialize(Parameters *pPin) { pP=pPin; - + if (typeStr=="None") { type=0; return; @@ -26,21 +26,21 @@ void ParametersSolo::initialize(Parameters *pPin) errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloType="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); - }; - + }; + if (strandStr=="Unstranded") { strand=-1; } else if (strandStr=="Forward") { strand=0; } else if (strandStr=="Reverse") { - strand=1; + strand=1; } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloStrand="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; - + for (auto &fin : featureIn) { bool finGood=false; for (uint32 ii=0; iiinOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; nFeatures=features.size(); - + umiDedupYes.resize(3,false); umiDedupColumns.resize(umiDedup.size()); for (uint32 ii=0; iiinOut->logMain, EXIT_CODE_PARAMETER, *pP); + exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; ///////////// finished parameters input - + //make output directory if needed if ( outFileNames[0].find_last_of("/") < outFileNames[0].size() ) {//need to create dir string dir1=pP->outFileNamePrefix+outFileNames[0].substr(0,outFileNames[0].find_last_of("/")); @@ -93,14 +93,14 @@ void ParametersSolo::initialize(Parameters *pPin) exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; - + QSbase=33;//TODO make these user-definable QSmax=33; cbMinP=0.975; - + umiMaskLow=(uint32) ( (((uint64)1)<inOut->logMain << "WARNING: CB whitelist sequence contains non-ACGT and is ignored: " << seq1 <); - + if (!pP->quant.trSAM.yes) { pP->quant.yes = true; pP->quant.trSAM.yes = true; diff --git a/ParametersSolo.h b/ParametersSolo.h index cb11f4c..e228d0a 100755 --- a/ParametersSolo.h +++ b/ParametersSolo.h @@ -32,8 +32,8 @@ class ParametersSolo { //output vector outFileNames; //constants - uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs - + uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs + void initialize(Parameters *pPin); private: Parameters *pP; diff --git a/Parameters_closeReadsFiles.cpp b/Parameters_closeReadsFiles.cpp index da99101..f3a22ab 100644 --- a/Parameters_closeReadsFiles.cpp +++ b/Parameters_closeReadsFiles.cpp @@ -4,9 +4,9 @@ #include void Parameters::closeReadsFiles() { for (uint imate=0; imatereadIn[imate].is_open() ) + if ( inOut->readIn[imate].is_open() ) inOut->readIn[imate].close(); - if (readFilesCommandPID[imate]>0) + if (readFilesCommandPID[imate]>0) kill(readFilesCommandPID[imate],SIGKILL); }; }; \ No newline at end of file diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index d2bf289..d26ca94 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -16,9 +16,9 @@ void Parameters::openReadsFiles() { for (uint ii=0;iireadIn[ii].is_open() ) inOut->readIn[ii].close(); - + string rfName=(readFilesPrefix=="-" ? "" : readFilesPrefix)+readFilesIn.at(ii); - + inOut->readIn[ii].open(rfName.c_str()); //try to open the Sequences file right away, exit if failed if (inOut->readIn[ii].fail()) { ostringstream errOut; @@ -118,7 +118,7 @@ void Parameters::openReadsFiles() { }; }; readFilesIndex=0; - + if (readFilesTypeN==10) {//SAM file - skip header lines readSAMheader(readFilesCommandString, readFilesNames.at(0)); }; diff --git a/Parameters_readSAMheader.cpp b/Parameters_readSAMheader.cpp index a216fc5..b13227e 100644 --- a/Parameters_readSAMheader.cpp +++ b/Parameters_readSAMheader.cpp @@ -4,7 +4,7 @@ #include void Parameters::readSAMheader(const string readFilesCommandString, const vector readFilesNames) { - + if (readFilesCommandString=="") {//simply read from file while (inOut->readIn[0].peek()=='@') { string str1; @@ -15,11 +15,11 @@ void Parameters::readSAMheader(const string readFilesCommandString, const vector }; return; }; - + string tmpFifo=outFileTmp+"tmp.fifo.header"; remove(tmpFifo.c_str()); mkfifo(tmpFifo.c_str(), S_IRUSR | S_IWUSR ); - + ifstream tmpFifoIn; for (uint32 ii=0; ii " + tmpFifo + "&"; diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 0f6b555..3c15ef0 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -3,11 +3,11 @@ #include "Transcript.h" #include "ReadAlign.h" -ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) - : mapGen(genomeIn), P(Pin), chunkTr(TrIn) -{ +ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) + : mapGen(genomeIn), P(Pin), chunkTr(TrIn) +{ readNmates=P.readNmates; - winBin = new uintWinBin* [2]; + winBin = new uintWinBin* [2]; winBin[0] = new uintWinBin [P.winBinN]; winBin[1] = new uintWinBin [P.winBinN]; memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); @@ -40,14 +40,14 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, in #endif WA=new uiWA*[P.alignWindowsPerReadNmax]; - for (uint ii=0;ii &readTranscripts, set &readTrGenes); - + void copyRead(ReadAlign&); void waspMap(); void peOverlapMergeMap(); void peMergeMates(); void peOverlapSEtoPE(ReadAlign &seRA); - + }; #endif diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 083954c..840d8ae 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -14,7 +14,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome }; RA = new ReadAlign(P, mapGen, chunkTr, iChunk);//new local copy of RA for each chunk - + RA->iRead=0; chunkIn=new char* [P.readNmates]; @@ -70,10 +70,10 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome RA->chunkOutSJ1=chunkOutSJ1; if (P.pCh.segmentMin>0) { - if (P.pCh.out.samOld) { + if (P.pCh.out.samOld) { chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); }; - if (P.pCh.out.junctions) { + if (P.pCh.out.junctions) { chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.junction.thread", iChunk, *RA->chunkOutChimJunction); }; }; @@ -85,7 +85,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate1.thread",iChunk, RA->chunkOutFilterBySJoutFiles[0]); if (P.readNmates==2) chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate2.thread",iChunk, RA->chunkOutFilterBySJoutFiles[1]); }; - + if (P.wasp.yes) { RA->waspRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); }; @@ -94,7 +94,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome delete RA->peMergeRA->chunkOutChimJunction; RA->peMergeRA->chunkOutChimJunction=RA->chunkOutChimJunction;//point to the same out-stream RA->peMergeRA->chimDet->ostreamChimJunction=RA->peMergeRA->chunkOutChimJunction; - }; + }; }; /////////////// diff --git a/ReadAlignChunk.h b/ReadAlignChunk.h index d2e4489..c21b0b9 100644 --- a/ReadAlignChunk.h +++ b/ReadAlignChunk.h @@ -40,8 +40,8 @@ class ReadAlignChunk {//chunk of reads and alignments void chunkFstreamOpen(string filePrefix, int iChunk, fstream &fstreamOut); void chunkFstreamCat (fstream &chunkOut, ofstream &allOut, bool mutexFlag, pthread_mutex_t &mutexVal); void chunkFilesCat(ostream *allOut, string filePrefix, uint &iC); - - Genome &mapGen; + + Genome &mapGen; private: }; #endif diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index a447679..93c2f4c 100755 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -21,12 +21,12 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks } else if (P.readFilesTypeN==10 && P.inOut->readIn[0].good() && P.outFilterBySJoutStage!=2) {//SAM input && not eof && not 2nd stage string str1; - + if (nextChar=='@') {//with SAM input linest that start with @ are headers getline(P.inOut->readIn[0], str1); //read line and skip it continue; }; - + P.inOut->readIn[0] >> str1; if (str1=="FILE") { newFile=true; @@ -68,13 +68,13 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks revComplementNucleotides(seq1); reverse(qual1.begin(),qual1.end()); }; - + getline(P.inOut->readIn[0],str1); //str1 is now all SAM attributes chunkInSizeBytesTotal[imate1] += sprintf(chunkIn[imate1] + chunkInSizeBytesTotal[imate1], "%s\n%s\n+\n%s\n", str1.c_str(), seq1.c_str(), qual1.c_str()); }; }; } else if (nextChar=='@') {//fastq, not multi-line - P.iReadAll++; //increment read number + P.iReadAll++; //increment read number if (P.outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping, read ID from the 1st read string readID; P.inOut->readIn[0] >> readID; @@ -86,15 +86,15 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks if (P.inOut->readIn[0].peek()!='\n') {//2nd field exists string field2; P.inOut->readIn[0] >> field2; - if (field2.length()>=3 && field2.at(1)==':' && field2.at(2)=='Y' && field2.at(3)==':' ) + if (field2.length()>=3 && field2.at(1)==':' && field2.at(2)=='Y' && field2.at(3)==':' ) passFilterIllumina='Y'; }; - readID += ' '+ to_string(P.iReadAll)+' '+passFilterIllumina+' '+to_string(P.readFilesIndex); - + readID += ' '+ to_string(P.iReadAll)+' '+passFilterIllumina+' '+to_string(P.readFilesIndex); + //ignore the rest of the read name for both mates for (uint imate=0; imatereadIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); - + if (P.pSolo.type==1) {//record barcode sequence string seq1; getline(P.inOut->readIn[1],seq1); @@ -111,7 +111,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks getline(P.inOut->readIn[1],seq1); //read qualities readID += ' ' + seq1; }; - + //copy the same readID to both mates for (uint imate=0; imatereadIn[0].good()) {//end of stream P.inOut->logMain << "Thread #" <1) + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutUnmappedFastx); for (uint ii=0;iichunkOutUnmappedReadsStream[ii],P.inOut->outUnmappedReadsStream[ii], false, g_threadChunks.mutexOutUnmappedFastx); }; - if (P.runThreadN>1) + if (P.runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutUnmappedFastx); }; }; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index b6025b2..82a4c77 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -97,10 +97,10 @@ int bamAttrArrayWriteSAMtags(string &attrStr, char *attrArray) {//write bam reco pos2 = attrStr.find('\t',pos1); string attr1 = attrStr.substr(pos1, pos2-pos1); pos1=pos2+1; - + if (attr1.empty()) continue; //extra tab at the beginning, or consecutive tabs - + switch (attr1.at(3)) { case 'i': { @@ -111,25 +111,25 @@ int bamAttrArrayWriteSAMtags(string &attrStr, char *attrArray) {//write bam reco case 'A': { char a1=attr1.at(5); - nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); break; - }; + }; break; case 'Z': { string a1=attr1.substr(5); - nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); break; }; case 'f': { float a1=stof(attr1.substr(5)); - nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); break; - }; + }; }; } while (pos2!= string::npos); - + return nattr; }; @@ -193,7 +193,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint uint iExMate=0; //last exon of the first mate uint16 samFLAG=0; - + bool flagPaired = P.readNmates==2; @@ -208,7 +208,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint } else { nMates=0; }; - + uint tLen=0,leftMostMate=0; if (nMates>1 && P.outSAMtlen==2) { tLen=max(trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L],trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L])-min(trOut.exons[0][EX_G],trOut.exons[iExMate+1][EX_G]); @@ -219,7 +219,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (flagPaired) { leftMate=trOut.Str; }; - + if (P.outSAMattrPresent.MC) { calcCIGAR(trOut, nMates, iExMate, leftMate); }; @@ -280,7 +280,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWrite((to_string((uint) alignType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers if (!P.outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); - + } else {//this mate is mapped if (flagPaired) {//paired reads samFLAG=0x0001; @@ -425,7 +425,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWrite(tagMD,"MD",attrOutArray+attrN); break; case ATTR_RG: - attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); break; case ATTR_rB: { @@ -434,58 +434,58 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint rb.push_back( (int32) trOut.exons[ii][EX_R]+1 ); rb.push_back( (int32) trOut.exons[ii][EX_R]+trOut.exons[ii][EX_L]); rb.push_back( (int32) (trOut.exons[ii][EX_G]-mapGen.chrStart[trOut.Chr]+1) ); - rb.push_back( (int32) (trOut.exons[ii][EX_G]-mapGen.chrStart[trOut.Chr]+trOut.exons[ii][EX_L]) ); + rb.push_back( (int32) (trOut.exons[ii][EX_G]-mapGen.chrStart[trOut.Chr]+trOut.exons[ii][EX_L]) ); }; - attrN+=bamAttrArrayWrite(rb,"rB",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(rb,"rB",attrOutArray+attrN); }; - break; + break; case ATTR_vG: { const vector &v1=trOut.varGenCoord; if (v1.size()>0) - attrN+=bamAttrArrayWrite(v1,"vG",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(v1,"vG",attrOutArray+attrN); break; }; case ATTR_vA: { const vector &v1=trOut.varAllele; if (v1.size()>0) - attrN+=bamAttrArrayWrite(v1,"vA",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(v1,"vA",attrOutArray+attrN); break; }; case ATTR_vW: { if (waspType!=-1) - attrN+=bamAttrArrayWrite( (int32) waspType, "vW", attrOutArray+attrN ); + attrN+=bamAttrArrayWrite( (int32) waspType, "vW", attrOutArray+attrN ); break; }; - + case ATTR_ch: - if (alignType<=-10) + if (alignType<=-10) {//chimeric alignment attrN+=bamAttrArrayWrite('1',"ch",attrOutArray+attrN); - }; + }; break; case ATTR_MC: - if (nMates>1) + if (nMates>1) {//chimeric alignment attrN+=bamAttrArrayWrite(matesCIGAR[1-imate],"MC",attrOutArray+attrN); - }; + }; break; - + case ATTR_CR: attrN+=bamAttrArrayWrite(soloRead->readBar->cbSeq,"CR",attrOutArray+attrN); - break; + break; case ATTR_CY: attrN+=bamAttrArrayWrite(soloRead->readBar->cbQual,"CY",attrOutArray+attrN); - break; + break; case ATTR_UR: attrN+=bamAttrArrayWrite(soloRead->readBar->umiSeq,"UR",attrOutArray+attrN); - break; + break; case ATTR_UY: attrN+=bamAttrArrayWrite(soloRead->readBar->umiQual,"UY",attrOutArray+attrN); - break; - + break; + default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM/BAM atrribute (tag): "<1) {//no chimeric output for stage=2. REVISIT: NOT SURE why return; }; - + //output chains for out-of-STAR chimeric detection #ifdef OUTPUT_localChains { @@ -48,10 +48,10 @@ void ReadAlign::chimericDetection() { } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score chimRecord=chimDet->chimericDetectionMult(nW, readLength); }; - + if ( chimRecord ) { - statsRA.chimericAll++; - }; - + statsRA.chimericAll++; + }; + return; };//END diff --git a/ReadAlign_chimericDetectionOld.cpp b/ReadAlign_chimericDetectionOld.cpp index 1c3e897..715ece1 100644 --- a/ReadAlign_chimericDetectionOld.cpp +++ b/ReadAlign_chimericDetectionOld.cpp @@ -5,17 +5,17 @@ #include "blocksOverlap.h" bool ReadAlign::chimericDetectionOld() { - + //////////////////// chimeras //stich windows => chimeras //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows //stitch only one window on each end of the read - + if (nTr>P.pCh.mainSegmentMultNmax && nTr!=2) {//multimapping main segment, nTr==2 is a special case to be checked later return false; }; - + if ( !(P.pCh.segmentMin>0 && trBest->rLength >= P.pCh.segmentMin \ && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ || trBest->exons[0][EX_R] >= P.pCh.segmentMin ) \ @@ -23,7 +23,7 @@ bool ReadAlign::chimericDetectionOld() { //there sholud be unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif return false; }; - + int chimScoreBest=0,chimScoreNext=0; trChim[0]=*trBest; Transcript* trChim1=NULL; @@ -227,14 +227,14 @@ bool ReadAlign::chimericDetectionOld() { if ( chimN==0 ) {//the chimera was rejected because of mismatches return false; }; - + if (chimMotif==0) {//non-canonical chimera - chimScoreBest += 1+P.pCh.scoreJunctionNonGTAG; //+1 + chimScoreBest += 1+P.pCh.scoreJunctionNonGTAG; //+1 if ( !(chimScoreBest >= P.pCh.scoreMin && chimScoreBest+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1])) ) { return false; }; }; - + //shift junction in trChim if (trChim[0].Str==1) { @@ -298,15 +298,15 @@ bool ReadAlign::chimericDetectionOld() { if ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) { //chimera has to bw from different chr/strand, or far away - + if (chimMotif>=0 && \ (trChim[0].exons[e0][EX_L]maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength); - }; - + }; + if ( chimRecord ) { - statsRA.chimericAll++; - }; - + statsRA.chimericAll++; + }; + return; }; diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 42f7dfd..f473eb5 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -32,7 +32,7 @@ int ReadAlign::mapOneRead() { trInit->readLength=readLength; trInit->readNmates=readNmates; trInit->readName=readName; - + trBest=trInit; uint seedSearchStartLmax=min(P.seedSearchStartLmax,(uint) (P.seedSearchStartLmaxOverLread*(Lread-1))); @@ -102,6 +102,6 @@ int ReadAlign::mapOneRead() { // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length stitchPieces(Read1, Lread); }; - + return 0; }; diff --git a/ReadAlign_mappedFilter.cpp b/ReadAlign_mappedFilter.cpp index f01a1b4..86b2345 100644 --- a/ReadAlign_mappedFilter.cpp +++ b/ReadAlign_mappedFilter.cpp @@ -16,6 +16,6 @@ void ReadAlign::mappedFilter() {//filter mapped read, add to stats statsRA.unmappedMulti++; unmapType=3; }; - - return; + + return; }; \ No newline at end of file diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index df5a057..cdd5de2 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -69,7 +69,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write //map the read mapOneRead(); - + peOverlapMergeMap(); multMapSelect(); mappedFilter(); @@ -77,11 +77,11 @@ int ReadAlign::oneRead() {//process one read: load, map, write if (!peOv.yes) {//if the alignment was not mates merged - otherwise the chimeric detection was already done chimericDetection(); }; - + if (P.pCh.out.bam && chimRecord) {//chimeric alignment was recorded in main BAM files, and it contains the representative portion, so non-chimeric aligmnent is not output return 0; }; - + waspMap(); #ifdef OFF_BEFORE_OUTPUT diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index fde6764..bf1916e 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -12,7 +12,7 @@ void ReadAlign::outputAlignments() { vector readTranscripts={}; set readTrGenes={}; vector> readSJs={}; - + outFilterPassed=true;//only false if the alignment is held for outFilterBySJoutStage if (unmapType==-1) {//output transcripts if (P.outFilterBySJoutStage==1) {//filtering by SJout @@ -43,7 +43,7 @@ void ReadAlign::outputAlignments() { }; }; }; - + if (P.outSJfilterReads=="All" || nTr==1) { uint sjReadStartN=chunkOutSJ1->N; for (uint iTr=0;iTrlogMain, EXIT_CODE_BUG, P); }; - + nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files - + //genes if ( P.quant.geCount.yes ) { chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); @@ -101,8 +101,8 @@ void ReadAlign::outputAlignments() { //transcripts if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); - }; - + }; + //solo soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]); @@ -127,7 +127,7 @@ void ReadAlign::outputAlignments() { if ((P.outBAMunsorted || P.outBAMcoord) && outSAMfilterYes) {//BAM output alignBAM(*(trMult[iTr]), nTr, iTr, mapGen.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); - if (P.outBAMunsorted) {//unsorted + if (P.outBAMunsorted) {//unsorted for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; @@ -149,8 +149,8 @@ void ReadAlign::outputAlignments() { }; mateMapped[trBest->exons[0][EX_iFrag]]=true; - mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; - + mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; + if (P.readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) { unmapType=4; }; @@ -206,11 +206,11 @@ void ReadAlign::outputAlignments() { outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); }; }; - + if (unmapType>=0 && P.outReadsUnmapped=="Fastx" ){//output to fasta/q files for (uint im=0;im1) + if (P.readNmates>1) chunkOutUnmappedReadsStream[im] <<" "<< int(mateMapped[0]) << int(mateMapped[1]); chunkOutUnmappedReadsStream[im] <<"\n"; chunkOutUnmappedReadsStream[im] << Read0[im] <<"\n"; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 8cd8ae1..f21d594 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -49,7 +49,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i *outStream <<"\t"<< '0' <<"\t"<< Read0[imate] <<"\t"<< (readFileType==2 ? Qual0[imate]:"*") \ <<"\tNH:i:0" <<"\tHI:i:0" <<"\tAS:i:"<mapGen.nChrReal) samFlagCommon+=0x0008; //not mapped as pair - } else + } else {//paired align if (P.alignEndsProtrude.concordantPair || \ ( (trOut.exons[0][EX_G] <= trOut.exons[iExMate+1][EX_G]+trOut.exons[0][EX_R]) && \ - (trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L] <= trOut.exons[trOut.nExons-1][EX_G]+Lread-trOut.exons[trOut.nExons-1][EX_R]) ) ) + (trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L] <= trOut.exons[trOut.nExons-1][EX_G]+Lread-trOut.exons[trOut.nExons-1][EX_R]) ) ) {//properly paired samFlagCommon+=0x0002; }; }; - } else + } else {//single end samFlagCommon=0; }; - if (readFilter=='Y') samFlagCommon+=0x200; //not passing quality control + if (readFilter=='Y') samFlagCommon+=0x200; //not passing quality control uint Str= trOut.Str;//note that Strand = the mate on the left uint leftMate=0; //the mate (0 or 1) which is on the left if (flagPaired) { leftMate=Str; }; - + if (P.outSAMattrPresent.MC) { calcCIGAR(trOut, nMates, iExMate, leftMate); }; - + uint samFLAG; - + for (uint imate=0;imate1) { *outStream<< "\tMC:Z:" <" << readName+1; - + //merge PE mates into SE peMergeRA->copyRead(*this); peMergeRA->peMergeMates(); @@ -37,7 +37,7 @@ void ReadAlign::peOverlapMergeMap() { //cout << "\n"; return; }; - + //convert best alignment SE to PE //trA=*trInit; //trA.peOverlapSEtoPE(peOv.nOv, *peMergeRA->trBest); @@ -45,22 +45,22 @@ void ReadAlign::peOverlapMergeMap() { //if (trA.maxScoremaxScore || trA.nMM > outFilterMismatchNmaxTotal) {//merged-mate SE alignment has lower score than the PE // return; //}; - + intScore peScore=trBest->maxScore; - + //convert SE to PE *this ReadAlign peMergeRA->peOv=peOv; peOverlapSEtoPE(*peMergeRA); - + //debug //if (oldScore>trBest->maxScore || trBest->maxScoretrBest->maxScore) // cout << readName << " "<< oldScore << " "<< peMergeRA->trBest->maxScore << " "<maxScore << endl; - - + + //chimeric detection for SE chimericDetectionPEmerged(*peMergeRA); - //debug + //debug //cout << "\n"; //for (uint ii=0;iiLread;ii++) { // cout <Read1[0][ii]]; @@ -68,16 +68,16 @@ void ReadAlign::peOverlapMergeMap() { //cout << "\n"; //P.alignSplicedMateMapLminOverLmate=P_alignSplicedMateMapLminOverLmate; - + if (peScore<=trBest->maxScore || chimRecord) {//otherwise peOv.yes=false peOv.yes=true; }; - + return; }; void ReadAlign::peMergeMates() { - + uint s1=localSearchNisMM(Read1[0],readLength[0],Read1[0]+readLength[0]+1,readLength[1],P.peOverlap.MMp); uint s0=localSearchNisMM(Read1[0]+readLength[0]+1,readLength[1],Read1[0],readLength[0],P.peOverlap.MMp); @@ -90,7 +90,7 @@ void ReadAlign::peMergeMates() { peOv.nOv=0; return; }; - + if (o1>=o0) { peOv.mateStart[0]=0; peOv.mateStart[1]=s1; @@ -106,8 +106,8 @@ void ReadAlign::peMergeMates() { if (o0= mEnd[0] || t.exons[iex][EX_R]+t.exons[iex][EX_L] < mSta[0]) {//this exon is only in mate2, break this cycle // break; // }; // //record these exons for mate1 -// +// // exons[iex][EX_iFrag]=t.Str; // exons[iex][EX_sjA]=t.exons[iex][EX_sjA]; // canonSJ[iex]=t.canonSJ[iex]; @@ -179,16 +179,16 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig // sjStr[iex]=t.sjStr[iex]; // shiftSJ[iex][0]=t.shiftSJ[iex][0]; // shiftSJ[iex][1]=t.shiftSJ[iex][1]; -// +// // exons[iex][EX_R]=t.exons[iex][EX_R]-mSta[0]; -// exons[iex][EX_G]=t.exons[iex][EX_G]; +// exons[iex][EX_G]=t.exons[iex][EX_G]; // if (t.exons[iex][EX_R]+t.exons[iex][EX_L] < mEnd[0]) {//exon is fully in mate1 // exons[iex][EX_L]=t.exons[iex][EX_L]; // } else { // exons[iex][EX_L]=mEnd[0]-t.exons[iex][EX_R]; // }; // }; - + nExons=0; for (uint imate=0; imate<2; imate++) {//cycle over mate 1,2 for (uint iex=0; iex=mSta[imate]) {//exon left is inside the mate - exons[nExons][EX_G]=t.exons[iex][EX_G]; - exons[nExons][EX_L]=t.exons[iex][EX_L]; + exons[nExons][EX_G]=t.exons[iex][EX_G]; + exons[nExons][EX_L]=t.exons[iex][EX_L]; exons[nExons][EX_R]=t.exons[iex][EX_R]-mSta[imate]+mSta2[imate]; - } else {//need to split the exon - exons[nExons][EX_R]=mSta2[imate];//exon starts at the mate start + } else {//need to split the exon + exons[nExons][EX_R]=mSta2[imate];//exon starts at the mate start uint delta=mSta[imate]-t.exons[iex][EX_R]; //shorten exon by this length - exons[nExons][EX_L]=t.exons[iex][EX_L]-delta; - exons[nExons][EX_G]=t.exons[iex][EX_G]+delta; + exons[nExons][EX_L]=t.exons[iex][EX_L]-delta; + exons[nExons][EX_G]=t.exons[iex][EX_G]+delta; }; if (t.exons[iex][EX_R]+t.exons[iex][EX_L] > mEnd[imate]) {//exon right is to the left of the mate end, shorten the exon @@ -228,8 +228,8 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig sjStr[nExons-1]=0; shiftSJ[nExons-1][0]=0; shiftSJ[nExons-1][1]=0; - }; - + }; + //copy scalar variables for (uint ii=0;ii<3;ii++) { intronMotifs[ii]=t.intronMotifs[ii]; @@ -246,41 +246,41 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig rLength=0; for (uint iex=0;iexpeOverlapSEtoPE(peOv.mateStart, *seRA.trAll[iW][iTr]); - trAll[iW][iTr]->alignScore(Read1,mapGen.G,P); + trAll[iW][iTr]->alignScore(Read1,mapGen.G,P); if (trAll[iW][iTr]->maxScore > trAll[iW][0]->maxScore) { swap(trAll[iW][iTr],trAll[iW][0]); }; @@ -288,8 +288,8 @@ void ReadAlign::peOverlapSEtoPE(ReadAlign &seRA) {//ReAdAlign: convert SE to PE if (trAll[iW][0]->maxScore>bestScore) { trBest=trAll[iW][0]; bestScore=trBest->maxScore; - }; - }; - + }; + }; + return; }; diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 1c7f061..ee81859 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -67,7 +67,7 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript }; }; }; - + //not used anymore, at Colin Dewey's request // if (nAlignT==0 && P.outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped // uint unmapType=5; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index a7deebb..80c625a 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -310,7 +310,7 @@ std::time(&timeStart); WAincl[ia]=true; break; }; - + }; }; stitchWindowSeeds(iW, iW1, WAincl, R[trA.roStr==0 ? 0:2]); diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 1cf4896..4afce97 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -46,7 +46,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { //check the length of the iS2 exon. TODO: build the transcripts vs iS1, check the actual exon length bool exonLongEnough = trA1.exons[0][EX_L] >= ( trA1.sjAnnot[0]==0 ? P.alignSJoverhangMin : P.alignSJDBoverhangMin ); - + if (exonLongEnough && score2>0 && score2+scoreSeedBest[iS2] > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2+scoreSeedBest[iS2]; scoreSeedBestMM[iS1]=trA1.nMM; @@ -59,9 +59,9 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { P.alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; - + bool exonLongEnough = (WA[iW][iS1][WA_Length]+trA1.extendL) >= P.alignSJoverhangMin; //TODO new parameter to control end exons length - + if (exonLongEnough && score2 > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2; scoreSeedBestInd[iS1]=iS1; @@ -73,7 +73,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { intScore scoreBest=0; uint scoreBestInd=0; - + for (uint iS1=0;iS1= P.alignSJoverhangMin; //TODO new parameter to control end exons length - + if (exonLongEnough && scoreSeedBest[iS1]>scoreBest) {//record new best transcript scoreBest=scoreSeedBest[iS1]; scoreBestInd=iS1; @@ -211,9 +211,9 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { //filter strand consistency uint sjN=0; - trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; + trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex=0) + if (trA.canonSJ[iex]>=0) {//junctions - others are indels sjN++; trA.intronMotifs[trA.sjStr[iex]]++; @@ -228,8 +228,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { trA.sjMotifStrand=0; if (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0 && P.outFilterIntronStrands=="RemoveInconsistentStrands") - return; - + return; + if (sjN>0 && trA.sjMotifStrand==0 && P.outSAMstrandField=="intronMotif") {//strand not defined for a junction return; }; diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp index b1dce67..1d61974 100644 --- a/ReadAlign_waspMap.cpp +++ b/ReadAlign_waspMap.cpp @@ -11,8 +11,8 @@ void ReadAlign::waspMap() { waspType=7; return; }; - - + + waspRA->copyRead(*this); vector vA=trBest->varAllele; @@ -23,9 +23,9 @@ void ReadAlign::waspMap() { return; }; }; - - + + vector> vvA {{}}; //all combinations for (const auto& u : vA) {//cycle over vars, each time add new variant by adding 2 variants to each of the existing combinations (void) u; //to avoid unused warning @@ -39,12 +39,12 @@ void ReadAlign::waspMap() { vvA=move(r); }; - + for (const auto& vA1 : vvA) {//cycle over all combinations if (vA1==vA) continue; //this combination was already mapped as the real read - + for (uint iv=0; ivmapOneRead(); waspRA->multMapSelect(); waspRA->mappedFilter(); - + if (waspRA->unmapType!=-1) { waspType=4; return; @@ -74,7 +74,7 @@ void ReadAlign::waspMap() { waspType=6; return; } else { - for (uint ii=0; iinExons; ii++) { + for (uint ii=0; iinExons; ii++) { for (uint jj=0; jj<=2; jj++) { if (trBest->exons[ii][jj]!=waspRA->trBest->exons[ii][jj]) { waspType=6; @@ -83,19 +83,19 @@ void ReadAlign::waspMap() { }; }; }; - }; + }; waspType=1; //all combinations resulted in the same alignment return; }; -void ReadAlign::copyRead(ReadAlign &r) {//copy read information only +void ReadAlign::copyRead(ReadAlign &r) {//copy read information only Lread=r.Lread; readLength[0]=r.readLength[0];readLength[1]=r.readLength[1]; readLengthOriginal[0]=r.readLengthOriginal[0];readLengthOriginal[1]=r.readLengthOriginal[1]; readLengthPairOriginal=r.readLengthPairOriginal; outFilterMismatchNmaxTotal=r.outFilterMismatchNmaxTotal; readName=r.readName; - + for (uint ii=0;ii<=2;ii++) memcpy(Read1[ii],r.Read1[ii],Lread);//need to copy since it will be changed Qual1=r.Qual1; diff --git a/STAR.cpp b/STAR.cpp index e762414..81993c8 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -49,7 +49,7 @@ void usage(int usageType) { } -int main(int argInN, char* argIn[]) { +int main(int argInN, char* argIn[]) { // If no argument is given, or the first argument is either '-h' or '--help', run usage() if (argInN == 1) { usage(0); @@ -65,17 +65,17 @@ int main(int argInN, char* argIn[]) { *(P.inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... started STAR run\n" <logMain << "DONE: Genome generation, EXITING\n" << flush; exit(0); - } else if (P.runMode=="liftOver") - { + } else if (P.runMode=="liftOver") + { for (uint ii=0; iilogMain << "EXITING because of INPUT ERROR: unknown value of input parameter runMode=" <logProgress << timeMonthDayTime(g_statsAll.timeStartMap) <<"\tStarted 1st pass mapping\n" <chunkTr);//solo for genes soloMain.processAndOutput(); - + if ( P.quant.geCount.yes ) {//output gene quantifications for (int ichunk=1; ichunkchunkTr->quants->addQuants(*(RAchunk[ichunk]->chunkTr->quants)); @@ -449,7 +449,7 @@ int main(int argInN, char* argIn[]) { totalMem-=newMem;//"release" RAM }; }; - + //concatenate all BAM files, using bam_cat char **bamBinNames = new char* [nBins]; vector bamBinNamesV; @@ -476,7 +476,7 @@ int main(int argInN, char* argIn[]) { }; g_statsAll.writeLines(P.inOut->outChimJunction, P.pCh.outJunctionFormat, "#", STAR_VERSION + string(" ") + P.commandLine); - + g_statsAll.progressReport(P.inOut->logProgress); P.inOut->logProgress << "ALL DONE!\n"<logFinal.open((P.outFileNamePrefix + "Log.final.out").c_str()); diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index e47259f..cc9baf1 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -130,15 +130,15 @@ void nuclPackBAM(char* ReadsIn, char* ReadsOut, uint Lread) {//pack nucleotides void convertNucleotidesToNumbers(const char* R0, char* R1, const uint Lread) {//transform sequence from ACGT into 0-1-2-3 code for (uint jj=0;jj start,end; vector str; vector priority; - + vector> gene; }; diff --git a/Solo.cpp b/Solo.cpp index d1d2bd4..e63b2bb 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -1,6 +1,6 @@ #include "Solo.h" -Solo::Solo(ReadAlignChunk **RAchunkIn, Parameters &Pin, Transcriptome &inTrans) +Solo::Solo(ReadAlignChunk **RAchunkIn, Parameters &Pin, Transcriptome &inTrans) : RAchunk(RAchunkIn), P(Pin), pSolo(P.pSolo), Trans(inTrans) { if (pSolo.type==0 ) @@ -16,7 +16,7 @@ void Solo::processAndOutput() { if (pSolo.type==0 ) return; - + for (uint32 ii=0; iiprocessRecords(RAchunk); }; diff --git a/Solo.h b/Solo.h index 7362ce4..e2e17cb 100644 --- a/Solo.h +++ b/Solo.h @@ -8,15 +8,15 @@ #include "SoloFeature.h" -class Solo { +class Solo { public: SoloFeature **soloFeat; - + Solo(ReadAlignChunk **RAchunk, Parameters &Pin, Transcriptome &inTrans); void processAndOutput(); - -private: + +private: ReadAlignChunk **RAchunk; Parameters &P; ParametersSolo &pSolo; diff --git a/SoloFeature.cpp b/SoloFeature.cpp index eff98cb..77aa9f7 100644 --- a/SoloFeature.cpp +++ b/SoloFeature.cpp @@ -1,12 +1,12 @@ #include "SoloFeature.h" #include "streamFuns.h" -SoloFeature::SoloFeature(int feTy, Parameters &Pin, Transcriptome &inTrans) +SoloFeature::SoloFeature(int feTy, Parameters &Pin, Transcriptome &inTrans) : featureType(feTy), P(Pin), pSolo(P.pSolo), Trans(inTrans) { readFeatSum = new SoloReadFeature(featureType,P,-1); - readBarSum = new SoloReadBarcode(P); + readBarSum = new SoloReadBarcode(P); readFeatAll = new SoloReadFeature*[P.runThreadN]; readBarAll = new SoloReadBarcode*[P.runThreadN]; diff --git a/SoloFeature.h b/SoloFeature.h index ca23ccc..3c96635 100644 --- a/SoloFeature.h +++ b/SoloFeature.h @@ -7,14 +7,14 @@ #include "SoloRead.h" -class SoloFeature { +class SoloFeature { public: SoloReadFeature *readFeatSum, **readFeatAll; SoloReadBarcode *readBarSum, **readBarAll; uint64 nReadsMapped, nCB; //total number of mapped reads - + uint32 *rGeneUMI;//mapped reads sorted by CB uint32 *indCB;//index of detected CBs in the whitelist uint32 *rCBn;//number of reads for detected CBs in the whitelist @@ -22,24 +22,24 @@ class SoloFeature { uint32 *nUperCB;//number of UMIs per CB uint32 *nGperCB;//number of genes (with >0 UMIs) per CB uint32 nCellGeneEntries;//total number of non-zero cell/gene combinations (entries in the output matrix) - + ofstream *statsStream; - + array,2> sjAll; - + SoloFeature(int feTy, Parameters &Pin, Transcriptome &inTrans); void processRecords(ReadAlignChunk **RAchunk); void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray); - void outputResults(); + void outputResults(); -private: +private: const int32 featureType; - + Parameters &P; ParametersSolo &pSolo; Transcriptome &Trans; - - static const uint32 umiArrayStride=3; + + static const uint32 umiArrayStride=3; }; #endif diff --git a/SoloFeature_collapseUMI.cpp b/SoloFeature_collapseUMI.cpp index 8d2a152..9ec83bd 100644 --- a/SoloFeature_collapseUMI.cpp +++ b/SoloFeature_collapseUMI.cpp @@ -5,10 +5,10 @@ #define def_MarkNoColor (uint32) -1 -void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) -{ +void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) +{ const uint32 bitTop=1<<31; - const uint32 bitTopMask=~bitTop; + const uint32 bitTopMask=~bitTop; for (uint32 iu=0; iu1MM //1MM UMI - + //graph coloring if ( rGU[iu+2] == def_MarkNoColor && rGU[iuu+2] == def_MarkNoColor ) {//no color //new color rGU[iu+2] = nC; rGU[iuu+2] = nC; - ++nC; + ++nC; nU1 -= 2;//subtract the duplicated UMIs } else if ( rGU[iu+2] == def_MarkNoColor ) { rGU[iu+2] = rGU[iuu+2]; - --nU1;//subtract the duplicated UMIs + --nU1;//subtract the duplicated UMIs } else if ( rGU[iuu+2] == def_MarkNoColor ) { rGU[iuu+2] = rGU[iu+2]; - --nU1;//subtract the duplicated UMIs + --nU1;//subtract the duplicated UMIs } else {//both color if (rGU[iuu+2] != rGU[iu+2]) {//color conflict //uint32 p[2]={rGU[iu+2],rGU[iuu+2]}; @@ -44,7 +44,7 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMas //vC.push_back({rGU[iuu+2],rGU[iu+2]}); }; }; - + //directional collapse if ( (rGU[iuu+1] & bitTop) == 0 && (rGU[iu+1] & bitTopMask)>(2*(rGU[iuu+1] & bitTopMask)-1) ) {//iuu is duplicate of iu rGU[iuu+1] |= bitTop; @@ -52,7 +52,7 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMas } else if ( (rGU[iu+1] & bitTop) == 0 && (rGU[iuu+1] & bitTopMask)>(2*(rGU[iu+1] & bitTopMask)-1) ) {//iu is duplicate of iuu rGU[iu+1] |= bitTop; --nU2;//subtract the duplicated UMIs - }; + }; }; }; }; @@ -70,20 +70,20 @@ uint32 graphNumberOfConnectedComponents(uint32 N, vector> V) {// //N=number of nodes //V=edges, list of connected nodes, each pair of nodes listed once //simple recursive DFS - + //sort -// qsort(V.data(),V.size(),2*sizeof(uint32),funCompareNumbers); +// qsort(V.data(),V.size(),2*sizeof(uint32),funCompareNumbers); if (V.size()==0) return N; - + vector> nodeEdges (N); for (uint32 ii=0; ii nodeVisited(N,false); - + uint32 nConnComp=0; for (uint32 ii=0; ii> V) {// void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray) {//iCB = CB to collapse, nReads=number of reads for this CB //uint32 nRumiMax=0; - + qsort(rGU,rN,2*sizeof(uint32),funCompareNumbers); //sort by gene number - + //compact reads per gene uint32 gid1=-1;//current gID nGenes=0; //number of genes @@ -114,19 +114,19 @@ void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nU if (rGU[iR]!=gid1) {//record gene boundary gReadS[nGenes]=iR; gid1=rGU[iR]; - gID[nGenes]=gid1; + gID[nGenes]=gid1; ++nGenes; }; rGU[iR]=rGU[iR+1]; //shift UMIs //rGU[iR+1] storage this will be used later for counting }; gReadS[nGenes]=2*rN;//so that gReadS[nGenes]-gReadS[nGenes-1] is the number of reads for nGenes - + uint32 *nUg = new uint32[nGenes*3];//3 types of counts nUtot=0; for (uint32 iG=0; iG); //exact collapse @@ -135,23 +135,23 @@ void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nU for (uint32 iR=0; iRnRumiMax) nRumiMax=umiArray[iR1+1]; }; uint32 nU0=(iR1+umiArrayStride)/umiArrayStride; - + //collapse with 1MM uint32 nU1=nU0, nU2=nU0;//2 types of 1MM collapsing uint32 nC=0; //graph colors vector> vC;//color connections - + collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); - + //exchange low and high half of UMIs, re-sort, and look for 1MM again for (uint32 iu=0; iu>(pSolo.umiL); @@ -161,7 +161,7 @@ void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nU }; qsort(umiArray, nU0, umiArrayStride*sizeof(uint32), funCompareNumbers); collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); - + nUg[3*iG]=nU0; nUg[3*iG+1]=nU1+graphNumberOfConnectedComponents(nC,vC); nUg[3*iG+2]=nU2; diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp index 05a1542..b04b14e 100644 --- a/SoloFeature_outputResults.cpp +++ b/SoloFeature_outputResults.cpp @@ -4,8 +4,8 @@ #include "serviceFuns.cpp" #include "SequenceFuns.h" -void SoloFeature::outputResults() -{ +void SoloFeature::outputResults() +{ if (featureType==0) {//this only need to be done once //output genes ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); @@ -17,7 +17,7 @@ void SoloFeature::outputResults() //output CBs ofstream &cbStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[2],ERROR_OUT, P); for (auto const &cb : pSolo.cbWL) - cbStr << convertNuclInt32toString(cb,pSolo.cbL) <<'\n'; + cbStr << convertNuclInt32toString(cb,pSolo.cbL) <<'\n'; cbStr.flush(); }; @@ -28,26 +28,26 @@ void SoloFeature::outputResults() //header countMatrixStream <<"%%MatrixMarket matrix coordinate integer general\n%\n"; countMatrixStream << Trans.nGe <<' '<< pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; - + for (uint32 icb=0; icb1) {//3 counts recorded - count1[0] = rCBpp[1]; + count1[0] = rCBpp[1]; count1[1] = rCBpp[2]; - count1[2] = rCBpp[3]; + count1[2] = rCBpp[3]; rCBpp += 4; } else {//1 recorded rCBpp +=2; }; - for (uint32 ii=0; iiflush(); }; diff --git a/SoloFeature_processRecords.cpp b/SoloFeature_processRecords.cpp index 1f2b6df..37b33ae 100644 --- a/SoloFeature_processRecords.cpp +++ b/SoloFeature_processRecords.cpp @@ -2,25 +2,25 @@ #include "streamFuns.h" #include "TimeFunctions.h" -void SoloFeature::processRecords(ReadAlignChunk **RAchunk) +void SoloFeature::processRecords(ReadAlignChunk **RAchunk) { if (pSolo.type==0) return; - + time_t rawTime; time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Starting Solo post-map for " <logMain << timeMonthDayTime(rawTime) << " ... Starting Solo post-map for " <RA->soloRead->readFeat[featureType]; - readBarAll[ii]=RAchunk[ii]->RA->soloRead->readBar; + readBarAll[ii]=RAchunk[ii]->RA->soloRead->readBar; }; for (int ii=0; iiaddCounts(*readFeatAll[ii]); - readBarSum->addCounts(*readBarAll[ii]); + readBarSum->addCounts(*readBarAll[ii]); }; - + //allocate arrays to store CB/gene/UMIs for all reads nCB=0;nReadsMapped=0; for (uint32 ii=0; iilogMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <inputRecords(rCBpa,readBarSum->cbReadCountExact); }; - + for (uint32 iCB=0; iCBnReadPerCBmax) nReadPerCBmax=nr; - readFeatSum->stats.V[readFeatSum->stats.nMatch] += nr; + readFeatSum->stats.V[readFeatSum->stats.nMatch] += nr; }; - + for (int ii=0; iiaddStats(*readFeatAll[ii]); readBarSum->addStats(*readBarAll[ii]); - }; - + }; + time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished reading reads from Solo files nCB="<statsOut(*statsStream); *statsStream << setw(50)<< pSolo.featureNames[featureType] <<":\n"; diff --git a/SoloRead.cpp b/SoloRead.cpp index 79c814e..21415de 100644 --- a/SoloRead.cpp +++ b/SoloRead.cpp @@ -4,11 +4,11 @@ SoloRead::SoloRead(Parameters &Pin, int32 iChunkIn) : iChunk(iChunkIn), P(Pin), { readBar = new SoloReadBarcode(P); readFeat = new SoloReadFeature*[pSolo.nFeatures]; - + if (pSolo.type==0) return; for (uint32 ii=0; ii &readTrGenes, Transcript *alignOut); - + private: const int32 iChunk; Parameters &P; diff --git a/SoloReadBarcode.cpp b/SoloReadBarcode.cpp index a837570..2dc0242 100644 --- a/SoloReadBarcode.cpp +++ b/SoloReadBarcode.cpp @@ -5,15 +5,15 @@ SoloReadBarcode::SoloReadBarcode(Parameters &Pin) : P(Pin), pSolo(P.pSolo) { if (pSolo.type==0) return; - + for (uint32 ii=0; ii names={"nNinBarcode","nUMIhomopolymer","nTooMany","nNoMatch"}; } stats; - + SoloReadBarcode(Parameters &Pin); void getCBandUMI(string &readNameExtra); void addCounts(const SoloReadBarcode &rfIn); void addStats(const SoloReadBarcode &rfIn); void statsOut(ofstream &streamOut); - -private: + +private: Parameters &P; ParametersSolo &pSolo; }; diff --git a/SoloReadBarcode_getCBandUMI.cpp b/SoloReadBarcode_getCBandUMI.cpp index dbfdea3..ff36da4 100644 --- a/SoloReadBarcode_getCBandUMI.cpp +++ b/SoloReadBarcode_getCBandUMI.cpp @@ -1,86 +1,86 @@ -#include "SoloReadBarcode.h" -#include "serviceFuns.cpp" -#include "SequenceFuns.h" - -void SoloReadBarcode::getCBandUMI(string &readNameExtra) -{ - if (pSolo.type==0) - return; - cbI=-999; - - cbMatch=-1; - cbMatchString=""; - - cbSeq=readNameExtra.substr(pSolo.cbS-1,pSolo.cbL); - umiSeq=readNameExtra.substr(pSolo.umiS-1,pSolo.umiL); - - uint32 qualStart = readNameExtra.find(' ',pSolo.cbL+pSolo.umiL); - cbQual=readNameExtra.substr(qualStart+pSolo.cbS,pSolo.cbL); - umiQual=readNameExtra.substr(qualStart+pSolo.umiS,pSolo.umiL); - - //check UMIs, return if bad UMIs - if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns - stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs - return; - }; - if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { - stats.V[stats.nUMIhomopolymer]++; - return; - }; - - //convert CB and check for Ns - int32 posN=convertNuclStrToInt32(cbSeq,cbB); - if (posN==-2) {//>2 Ns, might already be filtered by Illumina - stats.V[stats.nNinBarcode]++; - return; - } else if (posN==-1) {//no Ns, count only for feattureType==gene - cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); - if (cbI>=0) {//exact match - cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs - cbMatch=0; - return; - }; - }; - - if (posN>=0) {//one N - uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN - for (uint32 jj=0; jj<4; jj++) { - uint32 cbB1=cbB^(jj<=0) { - if (cbI>=0) {//had another match already - stats.V[stats.nTooMany]++; - return;//with N in CB, do not allow matching >1 in WL - }; - cbI=cbI1; - }; - }; - if (cbI>=0) { - cbMatch=1; - return; - } else {//no match - stats.V[stats.nNoMatch]++; - return; - }; - }; - - //look for 1MM, posN==-1, no Ns - cbMatch=0; - cbMatchInd.clear(); - for (uint32 ii=0; ii=0) {//found match - //output all - cbI=cbI1; - cbMatchInd.push_back(cbI1); - ++cbMatch; - cbMatchString += ' ' +to_string(cbI1) + ' ' + cbQual.at(pSolo.cbL-1-ii); - }; - }; - }; - if (cbMatch==0) {//no matches - stats.V[stats.nNoMatch]++; - cbMatch=-1; - };// else cbMatch contains number of matches (1 or >1), and cbMatchString contains matches for >1 case -}; +#include "SoloReadBarcode.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +void SoloReadBarcode::getCBandUMI(string &readNameExtra) +{ + if (pSolo.type==0) + return; + cbI=-999; + + cbMatch=-1; + cbMatchString=""; + + cbSeq=readNameExtra.substr(pSolo.cbS-1,pSolo.cbL); + umiSeq=readNameExtra.substr(pSolo.umiS-1,pSolo.umiL); + + uint32 qualStart = readNameExtra.find(' ',pSolo.cbL+pSolo.umiL); + cbQual=readNameExtra.substr(qualStart+pSolo.cbS,pSolo.cbL); + umiQual=readNameExtra.substr(qualStart+pSolo.umiS,pSolo.umiL); + + //check UMIs, return if bad UMIs + if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns + stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs + return; + }; + if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { + stats.V[stats.nUMIhomopolymer]++; + return; + }; + + //convert CB and check for Ns + int32 posN=convertNuclStrToInt32(cbSeq,cbB); + if (posN==-2) {//>2 Ns, might already be filtered by Illumina + stats.V[stats.nNinBarcode]++; + return; + } else if (posN==-1) {//no Ns, count only for feattureType==gene + cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + if (cbI>=0) {//exact match + cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs + cbMatch=0; + return; + }; + }; + + if (posN>=0) {//one N + uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN + for (uint32 jj=0; jj<4; jj++) { + uint32 cbB1=cbB^(jj<=0) { + if (cbI>=0) {//had another match already + stats.V[stats.nTooMany]++; + return;//with N in CB, do not allow matching >1 in WL + }; + cbI=cbI1; + }; + }; + if (cbI>=0) { + cbMatch=1; + return; + } else {//no match + stats.V[stats.nNoMatch]++; + return; + }; + }; + + //look for 1MM, posN==-1, no Ns + cbMatch=0; + cbMatchInd.clear(); + for (uint32 ii=0; ii=0) {//found match + //output all + cbI=cbI1; + cbMatchInd.push_back(cbI1); + ++cbMatch; + cbMatchString += ' ' +to_string(cbI1) + ' ' + cbQual.at(pSolo.cbL-1-ii); + }; + }; + }; + if (cbMatch==0) {//no matches + stats.V[stats.nNoMatch]++; + cbMatch=-1; + };// else cbMatch contains number of matches (1 or >1), and cbMatchString contains matches for >1 case +}; diff --git a/SoloReadFeature.cpp b/SoloReadFeature.cpp index 68ca052..575487c 100644 --- a/SoloReadFeature.cpp +++ b/SoloReadFeature.cpp @@ -1,29 +1,29 @@ #include "SoloReadFeature.h" #include "streamFuns.h" -SoloReadFeature::SoloReadFeature(int32 feTy, Parameters &Pin, int iChunk) +SoloReadFeature::SoloReadFeature(int32 feTy, Parameters &Pin, int iChunk) : featureType(feTy), P(Pin), pSolo(P.pSolo) { if (pSolo.type==0) return; - + for (uint32 ii=0; ii=0) { strU_0 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_0_"+std::to_string(iChunk),ERROR_OUT, P); strU_1 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_1_"+std::to_string(iChunk),ERROR_OUT, P); - strU_2 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_2_"+std::to_string(iChunk),ERROR_OUT, P); + strU_2 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_2_"+std::to_string(iChunk),ERROR_OUT, P); }; }; void SoloReadFeature::addCounts(const SoloReadFeature &rfIn) -{ +{ for (uint32 ii=0; ii=2 MM struct { @@ -20,19 +20,19 @@ class SoloReadFeature { uint64 V[nStats]; vector names={"nUnmapped","nNoFeature","nAmbigFeature","nAmbigFeatureMultimap","nTooMany","nNoExactMatch","nExactMatch","nMatch","nCellBarcodes","nUMIs",}; } stats; - + string cbSeq, umiSeq, cbQual, umiQual; - + SoloReadFeature (int32 feTy, Parameters &Pin, int iChunk); void record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut); void addCounts(const SoloReadFeature &soloCBin); void addStats(const SoloReadFeature &soloCBin); void statsOut(ofstream &streamOut); void inputRecords(uint32 **cbP, uint32 *cbReadCountExact); - + private: const int32 featureType; - + Parameters &P; ParametersSolo &pSolo; }; diff --git a/SoloReadFeature_getFeature.cpp b/SoloReadFeature_getFeature.cpp index cef4ff5..fa8a752 100644 --- a/SoloReadFeature_getFeature.cpp +++ b/SoloReadFeature_getFeature.cpp @@ -13,11 +13,11 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 g }; return readSJs.size(); }; - + return 0; //this should not happen }; -bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) +bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) { if (pSolo.type==0 || !pSolo.featureYes[featureType] || soloBar.cbMatch<0) return false; @@ -27,7 +27,7 @@ bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set stats.V[stats.nUnmapped]++; return false; }; - + vector> readSJs; if (featureType==0) {//genes //check genes, return if no gene @@ -43,7 +43,7 @@ bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set } else if (featureType==1) {//SJs alignOut->extractSpliceJunctions(readSJs); if (readSJs.empty()) { - stats.V[stats.nNoFeature]++; + stats.V[stats.nNoFeature]++; return false; } else if (nTr>1) {//record SJs from the read stats.V[stats.nAmbigFeature]++; @@ -51,7 +51,7 @@ bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set return false; }; }; - + if (soloBar.cbMatch==0) {//exact match cbReadCount[cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); return true; @@ -60,6 +60,6 @@ bool SoloReadFeature::recordFeature(SoloBarcodes &soloBar, uint nTr, set return true; } else { cbReadCount[cbI] += outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + cbOutString); - return true; + return true; }; }; diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp index 0fdfd81..6fbffb5 100644 --- a/SoloReadFeature_inputRecords.cpp +++ b/SoloReadFeature_inputRecords.cpp @@ -1,92 +1,92 @@ -#include "SoloReadFeature.h" -#include "binarySearch2.h" -#include - -bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) -{ - if (!(*strIn >> umi)) //end of file - return false; - - if (featureType==0) {//gene - *strIn >> feature; - } else if (featureType==1) {//sj - uint32 sj[2]; - *strIn >> sj[0] >> sj[1]; - feature=(uint32) binarySearch2(sj[0],sj[1],sjAll[0].data(),sjAll[1].data(),sjAll[0].size()); - }; - - return true; -}; - -void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) -{ - {//load exact matches - strU_0->flush(); - strU_0->seekg(0,ios::beg); - uint32 cb, feature, umi; - while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { - *strU_0 >> cb; - if (feature != (uint32)(-1)){ - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - stats.V[stats.nExactMatch]++; - }; - }; - }; - - {//1 match - strU_1->flush(); - strU_1->seekg(0,ios::beg); - uint32 cb, feature, umi; - while (inputFeatureUmi(strU_1,featureType, feature, umi, P.sjAll)) { - *strU_1 >> cb; - if (cbReadCountExactTotal[cb]>0) { - if (feature != (uint32)(-1)){ - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - }; - } else { - stats.V[stats.nNoExactMatch]++; - }; - }; - }; - - {//2 matches - strU_2->flush(); - strU_2->seekg(0,ios::beg); - uint32 cb=0, feature, umi, ncb; - while (inputFeatureUmi(strU_2,featureType, feature, umi, P.sjAll)) { - if (feature == (uint32) (-1)) { - strU_2->ignore((uint32) (-1),'\n');//ignore until the end of the line - continue; //nothing to record - }; - *strU_2 >> ncb; - float ptot=0.0,pmax=0.0; - for (uint32 ii=0; ii> cbin >> qin; - if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work - qin -= pSolo.QSbase; - qin = qin < pSolo.QSmax ? qin : pSolo.QSmax; - pin=cbReadCountExactTotal[cbin]*std::pow(10.0,-qin/10.0); - ptot+=pin; - if (pin>pmax) { - cb=cbin; - pmax=pin; - }; - }; - }; - if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - } else { - stats.V[stats.nTooMany]++; - }; - }; - }; -}; +#include "SoloReadFeature.h" +#include "binarySearch2.h" +#include + +bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) +{ + if (!(*strIn >> umi)) //end of file + return false; + + if (featureType==0) {//gene + *strIn >> feature; + } else if (featureType==1) {//sj + uint32 sj[2]; + *strIn >> sj[0] >> sj[1]; + feature=(uint32) binarySearch2(sj[0],sj[1],sjAll[0].data(),sjAll[1].data(),sjAll[0].size()); + }; + + return true; +}; + +void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) +{ + {//load exact matches + strU_0->flush(); + strU_0->seekg(0,ios::beg); + uint32 cb, feature, umi; + while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { + *strU_0 >> cb; + if (feature != (uint32)(-1)){ + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + stats.V[stats.nExactMatch]++; + }; + }; + }; + + {//1 match + strU_1->flush(); + strU_1->seekg(0,ios::beg); + uint32 cb, feature, umi; + while (inputFeatureUmi(strU_1,featureType, feature, umi, P.sjAll)) { + *strU_1 >> cb; + if (cbReadCountExactTotal[cb]>0) { + if (feature != (uint32)(-1)){ + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + }; + } else { + stats.V[stats.nNoExactMatch]++; + }; + }; + }; + + {//2 matches + strU_2->flush(); + strU_2->seekg(0,ios::beg); + uint32 cb=0, feature, umi, ncb; + while (inputFeatureUmi(strU_2,featureType, feature, umi, P.sjAll)) { + if (feature == (uint32) (-1)) { + strU_2->ignore((uint32) (-1),'\n');//ignore until the end of the line + continue; //nothing to record + }; + *strU_2 >> ncb; + float ptot=0.0,pmax=0.0; + for (uint32 ii=0; ii> cbin >> qin; + if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work + qin -= pSolo.QSbase; + qin = qin < pSolo.QSmax ? qin : pSolo.QSmax; + pin=cbReadCountExactTotal[cbin]*std::pow(10.0,-qin/10.0); + ptot+=pin; + if (pin>pmax) { + cb=cbin; + pmax=pin; + }; + }; + }; + if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + } else { + stats.V[stats.nTooMany]++; + }; + }; + }; +}; diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 471fd97..a879ffc 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -13,11 +13,11 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 g }; return readSJs.size(); }; - + return 0; //this should not happen }; -void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) +void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readTrGenes, Transcript *alignOut) { if (pSolo.type==0 || soloBar.cbMatch<0) return; @@ -27,7 +27,7 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re stats.V[stats.nUnmapped]++; return; }; - + vector> readSJs; if (featureType==0) {//genes //check genes, return if no gene of multimapping @@ -46,7 +46,7 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re stats.V[stats.nAmbigFeatureMultimap]++; return; }; - //for SJs, still check genes, return if multi-gene + //for SJs, still check genes, return if multi-gene if (readTrGenes.size()>1) { stats.V[stats.nAmbigFeature]++; return; @@ -54,11 +54,11 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re bool sjAnnot; alignOut->extractSpliceJunctions(readSJs, sjAnnot); if ( readSJs.empty() || (sjAnnot && readTrGenes.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) - stats.V[stats.nNoFeature]++; + stats.V[stats.nNoFeature]++; return; }; }; - + if (soloBar.cbMatch==0) {//exact match cbReadCount[soloBar.cbI] += outputReadCB(strU_0, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbI)); return; @@ -69,6 +69,6 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readTrGenes.begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); for (auto &cbi : soloBar.cbMatchInd) cbReadCount[cbi] += nfeat; - return; + return; }; }; diff --git a/SoloRead_record.cpp b/SoloRead_record.cpp index 20ee05e..4844bec 100644 --- a/SoloRead_record.cpp +++ b/SoloRead_record.cpp @@ -1,12 +1,12 @@ -#include "SoloRead.h" - -void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut) -{ - if (pSolo.type==0) - return; - - readBar->getCBandUMI(barcodeSeq); - - for (uint32 ii=0; iirecord(*readBar, nTr, readTrGenes, alignOut); -}; +#include "SoloRead.h" + +void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut) +{ + if (pSolo.type==0) + return; + + readBar->getCBandUMI(barcodeSeq); + + for (uint32 ii=0; iirecord(*readBar, nTr, readTrGenes, alignOut); +}; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 1b8cf45..33b2f90 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -1,13 +1,13 @@ #include "SuffixArrayFuns.h" #include "PackedArray.h" -inline uint medianUint2(uint a, uint b) +inline uint medianUint2(uint a, uint b) { // returns (a+b)/2 return a/2 + b/2 + (a%2 + b%2)/2; }; -uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& compRes) +uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& compRes) { /* compare s to g, find the maximum identity length * s2[0] read sequence; s2[1] complementary sequence @@ -103,7 +103,7 @@ uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint }; }; -uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S) +uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S) { // given SA index i3 and identity length L3, return the index of the farthest element with the same length, starting from i1,L1 or i1a,L1a, or i1b,L1b bool compRes; @@ -130,7 +130,7 @@ uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, return i1a; }; -uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd) +uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd) { /* find minimum mappable length of sequence s to the genome g with suffix array SA; length(s)=N; [i1 i2] is * returns number of mappings (1=unique);range indStartEnd; min mapped length = L @@ -206,7 +206,7 @@ int compareRefEnds (Genome &mapGen, uint64 SAstr, uint64 gInsert, bool strG, bo }; }; -uint compareSeqToGenome1(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, uint64 gInsert, int & compRes) +uint compareSeqToGenome1(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, uint64 gInsert, int & compRes) { /* compare s to g, find the maximum identity length * s2[0] read sequence; s2[1] complementary sequence @@ -382,7 +382,7 @@ uint funCalcSAiFromSA(char* gSeq, PackedArray& gSA, Genome &mapGen, uint iSA, in }; -int64 funCalcSAi(char *G, uint iL) +int64 funCalcSAi(char *G, uint iL) { int64 ind1=0; for (uint iL1=0;iL1<=iL;iL1++) { diff --git a/Transcript.h b/Transcript.h index a8f93e8..0259e05 100644 --- a/Transcript.h +++ b/Transcript.h @@ -47,7 +47,7 @@ class Transcript { uint lDel; //total genomic deletion length uint lIns; //total genomic insertion length - uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment + uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment vector varInd; vector varGenCoord, varReadCoord ; @@ -63,9 +63,9 @@ class Transcript { string generateCigarP(); //generates CIGAR void peOverlapSEtoPE(uint* mSta, Transcript &t); void extractSpliceJunctions(vector> &sjOut, bool &annotYes); - + private: - + }; #endif diff --git a/Transcript_generateCigarP.cpp b/Transcript_generateCigarP.cpp index 2f266bd..9e7c3ca 100644 --- a/Transcript_generateCigarP.cpp +++ b/Transcript_generateCigarP.cpp @@ -1,7 +1,7 @@ #include "Transcript.h" #include "SequenceFuns.h" -string Transcript::generateCigarP() +string Transcript::generateCigarP() {//generates CIGARp string for the transcript with "p" operation for PE reads //p is a special CIGAR operation to encode gap between mates. This gap is negative for overlapping mates. diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index 1a3f6a4..0e56959 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -4,15 +4,15 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R) { Variation &Var=*mapGen.Var; - + if (!Var.yes) {//no variation return 0; }; - + int dScore=0;//change in the score uint nMM1=0; - + //for each block, check whether it overlaps one or more SNPs for (uint ie=0; ie3) { igt=4; @@ -45,7 +45,7 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R) //}; varAllele.push_back(igt); - + if (igt<3 && ntR != Var.snp.nt[isnp][0]) {//non-reference allele, correct nMM and score ++nMM1; @@ -55,12 +55,12 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R) }; }; }; - + #define VAR_noScoreCorrection #ifndef VAR_noScoreCorrection if (nMM1>0) {//one or more mismtaches need to be corrected - uint nMMold=nMM; + uint nMMold=nMM; alignScore(Read1, G, P); nMM-=nMM1; nMatch+=nMM1; @@ -69,6 +69,6 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R) #else //#warning VAR_noScoreCorrection set: no variation score correction #endif - + return dScore; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 329be76..eb3c4a3 100755 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -7,9 +7,9 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ if (!P.quant.yes) return; - + trInfoDir = P.pGe.sjdbGTFfile=="-" ? P.pGe.gDir : P.sjdbInsert.outDir; //if GTF file is given at the mapping stage, it's always used for transcript info - + ifstream &geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotations.gtf option at the genome generation step or mapping step", P); geStream >> nGe; geID.resize(nGe); @@ -22,8 +22,8 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ istringstream stream1(line1); stream1 >> geID[ii] >> geName[ii] >> geBiotype[ii]; }; - geStream.close(); - + geStream.close(); + if ( P.quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); @@ -40,14 +40,14 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ uint16 str1; trinfo >> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr] >> trGene[itr]; trStr[itr]=str1; - + if (!trinfo.good()) { ostringstream errOut; errOut <<"EXITING because of FATAL GENOME INDEX FILE error: transcriptInfo.tab is corrupt, or is incompatible with the current STAR version\n"; errOut <<"SOLUTION: re-generate genome index"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; - + }; P.inOut->logMain << "Loaded transcript database, nTr="<geneCounts.nType; itype++){ qOut << "\t" <geneCounts.cMulti; }; qOut << "\n"; - + qOut << "N_noFeature"; for (int itype=0; itypegeneCounts.nType; itype++){ qOut << "\t" <geneCounts.cNone[itype]; diff --git a/Transcriptome.h b/Transcriptome.h index 31bc4d0..e3c4e13 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -33,13 +33,13 @@ class Transcriptome { } exG; Quantifications *quants; - + //methods: Transcriptome (Parameters &Pin); //create transcriptome structure, load and initialize parameters uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readTrGenes);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure - void quantsOutput(); //output quantification files + void quantsOutput(); //output quantification files private: Parameters &P; //normal "genomic" parameters diff --git a/Transcriptome_geneCountsAddAlign.cpp b/Transcriptome_geneCountsAddAlign.cpp index 298327a..1850257 100644 --- a/Transcriptome_geneCountsAddAlign.cpp +++ b/Transcriptome_geneCountsAddAlign.cpp @@ -2,7 +2,7 @@ #include "serviceFuns.cpp" void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1) { - + gene1.assign(quants->geneCounts.nType,-1); if (nA>1) { diff --git a/Variation.cpp b/Variation.cpp index 8097e84..994af33 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -10,13 +10,13 @@ Variation::Variation (Parameters &Pin, vector &chrStartIn, map &chrStart, ma string chr,id, ref, alt, dummy, sample; uint pos; nlines++; - + vcf >> chr; if (!vcf.good()) { break; }; - + if (chr.at(0)!='#') { vcf >> pos >> id >> ref >> alt >> dummy >> dummy >> dummy >> dummy >> sample; - + vector altV(3); - + if (ref.size()==1 && splitString(alt,',',altV)==1) { altV.insert(altV.begin(),ref);//add ref to the beginning - + if (chrNameIndex.count(chr)==0) {//chr not in Genome P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": chromosome '"<3 && sample.at(3)!=':') { P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": more than 2 alleles per sample for line number "<logMain << timeMonthDayTime(rawTime) <<" ..... loading variations VCF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... loading variations VCF\n" <logMain, EXIT_CODE_INPUT_FILES, P); }; - - + + uint *s1=new uint[2*snp.N]; for (uint ii=0;ii > nt1=snp.nt; for (uint ii=0;ii>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1) { +vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1) { vector>> snpV(2); - - if (!yes) {//no variation, return 1 empty element + + if (!yes) {//no variation, return 1 empty element vector>> snpV1(1); return snpV1; }; @@ -144,6 +144,6 @@ vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint s } else if (snpV.at(0) == snpV.at(1)) { snpV.pop_back(); }; - + return snpV; }; diff --git a/Variation.h b/Variation.h index dd16542..dd7ac8c 100644 --- a/Variation.h +++ b/Variation.h @@ -22,7 +22,7 @@ class SNP // char **nt; //reference and alternative bases // char *nt1; //1D array to store nt vector> nt;//reference and alternative bases - + //methods void snpOnBlocks(uint blockStart, uint blockL, int blockShift, vector>> &snpV); }; @@ -34,18 +34,18 @@ class Variation Variation (Parameters &Pin, vector &chrStart, map &chrNameIndex); //create transcriptome structure, load and initialize parameters void loadVCF(string fileIn); //load VCF file vector>> sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1); //calculates snp loci in sjdb sequences - + //variables - bool yes; + bool yes; SNP snp; - + Parameters &P; //TODO: make this private - + private: string vcfFile; //string varOutFileName; //ofstream varOutStream;//output file for variations - + vector &chrStart; //this needs to be replaced with a structure that contains basic genome variables map &chrNameIndex; }; diff --git a/bamRemoveDuplicates.cpp b/bamRemoveDuplicates.cpp index 3aa6567..ef8fc64 100644 --- a/bamRemoveDuplicates.cpp +++ b/bamRemoveDuplicates.cpp @@ -167,27 +167,27 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, uint32 chrE=0; uint32 leftE=0; uint32 rightE=0; - uint32 chrS=0; - + uint32 chrS=0; + if (!bamFileEnd) { uint32* bamP=(uint32*) (bamRaw+bamE);//pointer to the 1st mate of the pair - + bamA->data=((uint8_t*) bamP)+9*4+((bamP[3]<<24)>>24)+((bamP[4]<<16)>>16)*4+(bamP[5]+1)/2+bamP[5];//add length for: core, name, cigar, seq, qual bamA->l_data=((uint8_t*) bamP)+bamP[0]+1-bamA->data; - + nMult=bam_aux2i(bam_aux_get(bamA,"NH")); - - if (nMult==1 || (nMult>1 && P.removeDuplicates.markMulti)) + + if (nMult==1 || (nMult>1 && P.removeDuplicates.markMulti)) { bamP[4] |= (0x400<<16);//mark all aligns as duplicate, will unmark. If multimappers, onyl mark if markMult=true }; - + chrE=bamP[1]; leftE=bamP[2]; rightE=bamP[7]; - chrS=*(uint32*)(bamRaw+bamS+4*1); + chrS=*(uint32*)(bamRaw+bamS+4*1); }; if ( chrE !=chrS || (rightMax>0 && leftE>rightMax) || bamFileEnd ) {//found new group of reads to be processed, start collapsing procedure diff --git a/funCompareUintAndSuffixesMemcmp.cpp b/funCompareUintAndSuffixesMemcmp.cpp index 6b7604a..4673417 100644 --- a/funCompareUintAndSuffixesMemcmp.cpp +++ b/funCompareUintAndSuffixesMemcmp.cpp @@ -5,24 +5,24 @@ char* g_funCompareUintAndSuffixesMemcmp_G; uint64_t g_funCompareUintAndSuffixesMemcmp_L; int funCompareUintAndSuffixesMemcmp ( const void *a, const void *b) -{ +{ uint64_t* va= ((uint64_t*) a); uint64_t* vb= ((uint64_t*) b); - if (va[0]>vb[0]) + if (va[0]>vb[0]) { return 1; - } else if (va[0]vb[1] ? 1 : -1; diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp index 831d967..202397c 100644 --- a/genomeParametersWrite.cpp +++ b/genomeParametersWrite.cpp @@ -28,9 +28,9 @@ void genomeParametersWrite(string fileName, Parameters& P, string errorOut, Geno genomePar << "sjdbGTFtagExonParentGene\t" << mapGen.pGe.sjdbGTFtagExonParentGene <<"\n"; genomePar << "sjdbInsertSave\t" << mapGen.pGe.sjdbInsertSave <<"\n"; - + genomePar << "genomeFileSizes\t" << mapGen.pGe.gFileSizes.at(0); - for (uint ii=1;iilogMain << timeMonthDayTime(rawtime) << " Finished qsort - old " <logMain << timeMonthDayTime(rawtime) << " Finished qsort" <logMain << timeMonthDayTime(rawtime) << " Finished qsort"<logMain << timeMonthDayTime(rawtime) << " Finished ordering suffixes"<logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indices"<logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <> geneAttr; - + ifstream sjdbStreamIn ( mapGen.pGe.sjdbGTFfile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; @@ -288,8 +288,8 @@ uint64 loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen uint64 sjdbN1=sjdbLoci.chr.size(); sjdbLoci.gene.resize(sjdbN1); //need to resize in case sjdbLoci was loaded from files without gene attribute. TODO make sure gene is always present for (uint64 ii=0;ii> mapGen.pGe.gChrBinNbits]; sjdbLoci.chr.push_back(mapGen.chrName[chr1]); diff --git a/outputSJ.cpp b/outputSJ.cpp index c5041d0..750b446 100644 --- a/outputSJ.cpp +++ b/outputSJ.cpp @@ -117,11 +117,11 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters& P) {//collapses junctions fr }; }; }; - + //output junctions P.sjAll[0].reserve(allSJ.N); P.sjAll[1].reserve(allSJ.N); - + if (P.outFilterBySJoutStage!=1) {//output file ofstream outSJfileStream((P.outFileNamePrefix+"SJ.out.tab").c_str()); for (uint ii=0;ii> iReadAll >> readFilter >> readFilesIndex; //extract read number - + getline(readInStream, readNameExtra); if (!readNameExtra.empty()) { size_t n1=readNameExtra.find_first_not_of(" \t"); @@ -31,7 +31,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint readNameExtra=""; }; }; - + // readInStream.ignore(DEF_readNameSeqLengthMax,'\n');//ignore the resit of the line - just in case readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence @@ -43,7 +43,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint ++Lread; }; }; - + if (Lread<1) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in reads input: short read sequence line: " << Lread <<"\n"; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 5a78484..8678002 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -9,7 +9,7 @@ template for (uint ii=0;ii int funCompareNumbers (const void *a, const void *b) { numT va= *((numT*) a); numT vb= *((numT*) b); @@ -35,8 +35,8 @@ template int funCompareNumbersReverse (const void *a, const void *b return 1; }; }; - - + + inline int funCompareUint1 (const void *a, const void *b) { uint va= *((uint*) a); uint vb= *((uint*) b); @@ -157,20 +157,20 @@ inline int32 binarySearch1a(argType x, argType *X, int32 N) { }; template -inline int32 binarySearch1b(argType x, argType *X, int32 N) +inline int32 binarySearch1b(argType x, argType *X, int32 N) { //binary search in the sorted list //check the boundaries first //1b returns the first X element that is >= x //X are all distinct //if x>X[N-1], -1 is returned - + if (x>X[N-1]) { return -1; } else if (x<=X[0]) { return 0; }; - + int32 i1=0, i2=N-1, i3=N/2; while (i2>i1+1) {//binary search i3=(i1+i2)/2; @@ -180,7 +180,7 @@ inline int32 binarySearch1b(argType x, argType *X, int32 N) i1=i3; }; }; - + return i2; }; @@ -190,11 +190,11 @@ inline int32 binarySearchExact(argType x, argType *X, int32 N) { //check the boundaries first //returns -1 if no match found //if X are not all distinct, no guarantee which element is returned - - if (x>X[N-1] || xX[N-1] || xi1+1) {//binary search i3=(i1+i2)/2; @@ -204,9 +204,9 @@ inline int32 binarySearchExact(argType x, argType *X, int32 N) { i1=i3; }; }; - + if (x==X[i2]) { - return i2; + return i2; } else if (x==X[i1]) { return i1; } else { diff --git a/signalFromBAM.cpp b/signalFromBAM.cpp index 810e3ce..cdf9483 100644 --- a/signalFromBAM.cpp +++ b/signalFromBAM.cpp @@ -140,7 +140,7 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter //NH attribute uint8_t* aNHp=bam_aux_get(bamA,"NH"); - uint32_t aNH; + uint32_t aNH; if (aNHp==NULL) { aNH=1; //no NH tag: assume NH=1 //continue; //do not process lines without NH field diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index f8cf78d..805dee9 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -109,12 +109,12 @@ void sjdbBuildIndex (Parameters &P, char *Gsj, char *G, PackedArray &SA, PackedA mapGen.nGenome=mapGen.chrStart[mapGen.nChrReal]+nGsj; mapGen.nSA+=nInd; - char GstrandBit1 = (char) (uint) floor(log(mapGen.nGenome)/log(2))+1; + char GstrandBit1 = (char) (uint) floor(log(mapGen.nGenome)/log(2))+1; if (GstrandBit1<32) GstrandBit1=32; //TODO: use simple access function for SA - + P.inOut->logMain <<"Genome size with junctions="<logMain <<"GstrandBit1="< mapGen.GstrandBit) {//too many junctions were added - GstrandBit changed ostringstream errOut; diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 8d04c51..ff688f9 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -76,7 +76,7 @@ void sjdbInsertJunctions(Parameters & P, Genome & mapGen, Genome & mapGen1, Sjdb //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk //this is - to avoid valgrind complaints. Note that SApass1 is allocated with plenty of space to spare. mapGen.SA.writePacked(mapGen.nSA,0); - + if (P.pGe.sjdbInsertSave=="All") {//save and copy all genome files into sjdbInsert.outDir, except those created above if (P.pGe.gDir != P.sjdbInsert.outDir) @@ -89,7 +89,7 @@ void sjdbInsertJunctions(Parameters & P, Genome & mapGen, Genome & mapGen1, Sjdb mapGen.pGe.gFileSizes.clear(); mapGen.pGe.gFileSizes.push_back(mapGen.nGenome); - mapGen.pGe.gFileSizes.push_back(mapGen.SA.lengthByte); + mapGen.pGe.gFileSizes.push_back(mapGen.SA.lengthByte); genomeParametersWrite(P.sjdbInsert.outDir+("/genomeParameters.txt"), P, ERROR_OUT, mapGen); ofstream & genomeOut = ofstrOpen(P.sjdbInsert.outDir+"/Genome",ERROR_OUT, P); diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index 02a81fe..47b0e68 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -5,7 +5,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string outDir, Genome &mapGen, char *Gsj) { char *G=mapGen.G; - + uint *sjdbS=new uint [sjdbLoci.chr.size()]; uint *sjdbE=new uint [sjdbLoci.chr.size()]; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 4a01bd9..1d84ead 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -109,9 +109,9 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //filter strand consistency uint sjN=0; - trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; + trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex=0) + if (trA.canonSJ[iex]>=0) {//junctions - others are indels sjN++; trA.intronMotifs[trA.sjStr[iex]]++; @@ -189,8 +189,8 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if (trA.exons[0][EX_G] > \ trA.exons[iexM2][EX_G]+trA.exons[0][EX_R]+P.alignEndsProtrude.nBasesMax) return; //LeftMateStart > RightMateStart + allowance if (trA.exons[iexM2-1][EX_G]+trA.exons[iexM2-1][EX_L] > \ - trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]+P.alignEndsProtrude.nBasesMax) return; //LeftMateEnd > RightMateEnd +allowance - + trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]+P.alignEndsProtrude.nBasesMax) return; //LeftMateEnd > RightMateEnd +allowance + //check for junctions consistency uint iex1=1, iex2=iexM2+1; //last exons of the junction for (; iex1= wTr[0]->maxScore \ || ( trA.iFrag>=0 && Score+P.outFilterMultimapScoreRange >= RA->maxScoreMate[trA.iFrag] ) \ diff --git a/sysRemoveDir.cpp b/sysRemoveDir.cpp index 3a3be9f..39cb471 100644 --- a/sysRemoveDir.cpp +++ b/sysRemoveDir.cpp @@ -5,12 +5,12 @@ #include int removeFileOrDir(const char *fpath,const struct stat *sb, int typeflag, struct FTW *ftwbuf) { - + {//to avoid unused variable warning (void) sb; (void) ftwbuf; }; - + if (typeflag==FTW_F) {//file remove(fpath); } else if (typeflag==FTW_DP) {//dir From 1932e3474263dd434c2effe146b1dad8487d5429 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 20 Mar 2019 18:37:42 -0400 Subject: [PATCH 440/536] Preparing for 2.7.0f --- parametersDefault.xxd | 3842 ++++++++++++++++++++--------------------- 1 file changed, 1919 insertions(+), 1923 deletions(-) diff --git a/parametersDefault.xxd b/parametersDefault.xxd index 864b4f6..ea3a067 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -1143,2030 +1143,2026 @@ unsigned char parametersDefault[] = { 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, 0x2c, 0x43, 0x59, 0x2c, 0x55, - 0x52, 0x2c, 0x55, 0x59, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x71, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, - 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x55, - 0x4d, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, 0x65, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, 0x20, 0x43, 0x59, 0x20, 0x55, 0x52, + 0x20, 0x55, 0x59, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x71, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, + 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x55, 0x4d, + 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, 0x65, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, - 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, - 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, - 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, - 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, - 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, - 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, + 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, + 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, - 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, - 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, - 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, - 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, + 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, + 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, + 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, + 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, + 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, + 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, - 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, - 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, - 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, - 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, - 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, - 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, - 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, - 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, - 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, - 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, - 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, + 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, + 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, + 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, + 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, + 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, + 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, + 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, + 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, + 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, + 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, + 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, + 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, + 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, + 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, + 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, + 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, + 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, + 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, + 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, + 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, - 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, - 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, - 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, - 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, - 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, - 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, - 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, - 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, - 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, + 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, + 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, + 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, - 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, - 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, - 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, + 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, + 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, - 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, - 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, + 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, - 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, - 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, - 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, - 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, - 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, - 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, + 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, + 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, + 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, + 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, + 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, + 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, + 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, + 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, - 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, - 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, + 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, + 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, + 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, + 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, + 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, + 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, + 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, + 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, - 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, - 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, - 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, - 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, - 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, - 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, - 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, - 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, - 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, - 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, - 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, - 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, - 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, - 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, - 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, - 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, - 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, + 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, + 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, + 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, + 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, + 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, + 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, + 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, - 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, - 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, + 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, + 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, - 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, - 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, - 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, - 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, - 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, - 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, + 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, + 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, - 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, - 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, - 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, + 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, + 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, + 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, + 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, + 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, + 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, + 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, + 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, + 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, + 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, - 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, - 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, + 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, + 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, + 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, + 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, + 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, + 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, + 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, + 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, - 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, - 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, - 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, - 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, - 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, - 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, - 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, - 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, + 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, + 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, + 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, - 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, + 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, + 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, + 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, - 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, - 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, - 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, - 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, - 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, - 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, - 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, + 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, + 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, + 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, + 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, + 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, + 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, + 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, + 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, + 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, + 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, + 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, + 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, + 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, + 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, + 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, + 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, + 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, - 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, - 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, - 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, - 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, - 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, + 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, + 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, + 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, + 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, + 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, + 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, + 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, - 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, - 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, + 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, + 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, + 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, + 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, + 0x75, 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, - 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x61, 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, - 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, - 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, + 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, - 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x74, 0x6c, 0x79, 0x20, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x65, 0x64, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, - 0x61, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x6d, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, - 0x26, 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x6c, 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, - 0x20, 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, - 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, - 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x73, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, - 0x6e, 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, - 0x6c, 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, - 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, - 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x2e, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, - 0x61, 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, + 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, + 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, + 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, + 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, + 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, + 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, + 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, - 0x20, 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, - 0x20, 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, - 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, - 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, - 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, - 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, - 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, - 0x20, 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x6f, 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, - 0x68, 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, - 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, - 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, + 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, + 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, + 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, + 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, + 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, - 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, + 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, + 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, + 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, + 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, + 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, - 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, - 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, - 0x20, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, - 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, - 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, - 0x75, 0x74, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x2c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, + 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, + 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, + 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, + 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, - 0x4d, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, - 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, - 0x74, 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, 0x6f, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, + 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, + 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, + 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, + 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, + 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, + 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, + 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, + 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, + 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, + 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, + 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, + 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, + 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, + 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, + 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, + 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, + 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, + 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, - 0x6c, 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, - 0x72, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, - 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, - 0x66, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, - 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, + 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, + 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, + 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, + 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x29, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, - 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x70, 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, - 0x74, 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, - 0x20, 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, - 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, - 0x6f, 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, - 0x31, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, - 0x70, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, - 0x50, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x0a, 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, - 0x53, 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, - 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, - 0x20, 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, - 0x6e, 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, - 0x56, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, - 0x20, 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, - 0x61, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, - 0x63, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, - 0x20, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, - 0x32, 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, - 0x36, 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, - 0x2e, 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, - 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, - 0x53, 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, - 0x6c, 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, - 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x29, - 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, - 0x73, 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, - 0x73, 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x72, 0x6f, 0x70, - 0x6c, 0x65, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x55, - 0x4d, 0x49, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x65, 0x71, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x31, 0x30, 0x58, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, - 0x69, 0x75, 0x6d, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, - 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, - 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, - 0x42, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x63, + 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, + 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x44, + 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x65, 0x71, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x31, 0x30, 0x58, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, + 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, + 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, + 0x6c, 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, + 0x6f, 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, + 0x4d, 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, - 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, - 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x65, 0x71, 0x75, 0x61, - 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, - 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x2b, 0x73, 0x6f, - 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2c, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x0a, 0x73, - 0x6f, 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, - 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, - 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, - 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, - 0x6c, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, - 0x6c, 0x20, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, + 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, + 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, + 0x6f, 0x6c, 0x6f, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x6c, + 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x2b, 0x73, 0x6f, 0x6c, 0x6f, 0x55, + 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, + 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, + 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, + 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, + 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, + 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, + 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, + 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, - 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, - 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, - 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, - 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, - 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, - 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, - 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, - 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, - 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, - 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, - 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, - 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, - 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, - 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, - 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, - 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, + 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, + 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, + 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, + 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, + 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, + 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, + 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, + 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, + 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, + 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, - 0x65, 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, - 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, - 0x0a, 0x0a + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, + 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, + 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, + 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 38018; +unsigned int parametersDefault_len = 37979; From bbffcfd81af8f1827bb66a20fc533cfa3e0e2c0f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 22 Mar 2019 12:56:10 -0400 Subject: [PATCH 441/536] Fixed a problem in STARsolo with empty Unmapped.out.mate2 file. Issue #593. --- ReadAlignChunk.cpp | 2 +- ReadAlignChunk_processChunks.cpp | 2 +- ReadAlign_outputAlignments.cpp | 6 + VERSION | 2 +- parametersDefault | 2 +- parametersDefault.xxd | 5943 +++++++++++++++--------------- 6 files changed, 2982 insertions(+), 2975 deletions(-) diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 840d8ae..caea15b 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -79,7 +79,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome }; if (P.outReadsUnmapped=="Fastx" ) { chunkFstreamOpen(P.outFileTmp + "/Unmapped.out.mate1.thread",iChunk, RA->chunkOutUnmappedReadsStream[0]); - if (P.readNmates==2) chunkFstreamOpen(P.outFileTmp + "/Unmapped.out.mate2.thread",iChunk, RA->chunkOutUnmappedReadsStream[1]); + if (P.readNmatesIn==2) chunkFstreamOpen(P.outFileTmp + "/Unmapped.out.mate2.thread",iChunk, RA->chunkOutUnmappedReadsStream[1]); }; if (P.outFilterType=="BySJout") { chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate1.thread",iChunk, RA->chunkOutFilterBySJoutFiles[0]); diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index 93c2f4c..8bf0fe2 100755 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -232,7 +232,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutUnmappedFastx); - for (uint ii=0;iichunkOutUnmappedReadsStream[ii],P.inOut->outUnmappedReadsStream[ii], false, g_threadChunks.mutexOutUnmappedFastx); }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index bf1916e..af537e5 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -219,6 +219,12 @@ void ReadAlign::outputAlignments() { chunkOutUnmappedReadsStream[im] << Qual0[im] <<"\n"; }; }; + if (P.pSolo.type>0) {//need to output 2nd (barcode) read + chunkOutUnmappedReadsStream[1] << readNameMates[0] <<"\n"; + uint32 qualStart = readNameExtra[0].find(' '); + chunkOutUnmappedReadsStream[1] << readNameExtra[0].substr(0,qualStart) <<"\n+\n"; + chunkOutUnmappedReadsStream[1] << readNameExtra[0].substr(qualStart+1) <<"\n"; + }; }; }; diff --git a/VERSION b/VERSION index 9a56e41..469bb8b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0e_0320" +#define STAR_VERSION "2.7.0e_0322" diff --git a/parametersDefault b/parametersDefault index 20f56a7..02e1899 100755 --- a/parametersDefault +++ b/parametersDefault @@ -1,6 +1,6 @@ ### versions versionGenome 2.7.0d - string: latest genome index version compatible with this STAR release. Please do not change this value! + string: earliest genome index version compatible with this STAR release. Please do not change this value! ### Parameter Files parametersFiles - diff --git a/parametersDefault.xxd b/parametersDefault.xxd index ea3a067..b70e667 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -3,3166 +3,3167 @@ unsigned char parametersDefault[] = { 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x2e, 0x37, 0x2e, 0x30, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x50, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x21, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, - 0x22, 0x2d, 0x22, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x2e, 0x20, 0x43, - 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x0a, 0x73, 0x79, 0x73, 0x53, 0x68, 0x65, 0x6c, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x69, 0x6e, 0x61, - 0x72, 0x79, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x61, 0x62, - 0x6c, 0x79, 0x20, 0x62, 0x61, 0x73, 0x68, 0x2c, 0x20, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x68, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x79, - 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x2f, 0x62, 0x69, 0x6e, - 0x2f, 0x73, 0x68, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, - 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x6f, 0x6e, 0x20, 0x73, 0x6f, - 0x6d, 0x65, 0x20, 0x55, 0x62, 0x75, 0x6e, 0x74, 0x75, 0x20, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x6e, - 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x70, 0x61, 0x74, - 0x68, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x72, 0x75, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x42, - 0x41, 0x4d, 0x2e, 0x20, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x6c, - 0x79, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x57, - 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x2d, - 0x2d, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x4f, 0x76, - 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x69, 0x66, - 0x74, 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x47, 0x54, - 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x2d, 0x2d, 0x73, - 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x69, 0x65, - 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x50, 0x65, 0x72, 0x6d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x73, - 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, - 0x65, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2d, 0x74, 0x69, - 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x65, 0x61, 0x72, 0x6c, + 0x69, 0x65, 0x73, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, + 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x21, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, + 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x22, 0x2d, 0x22, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x2e, + 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, + 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x0a, 0x73, 0x79, 0x73, 0x53, 0x68, 0x65, + 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x61, 0x62, 0x6c, 0x79, 0x20, 0x62, 0x61, 0x73, 0x68, 0x2c, 0x20, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x62, 0x61, 0x73, + 0x68, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x20, 0x69, + 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x2c, 0x20, + 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x2f, 0x62, + 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x20, 0x6f, 0x6e, 0x20, + 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x55, 0x62, 0x75, 0x6e, 0x74, 0x75, 0x20, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x2d, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x61, 0x73, 0x68, 0x2e, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x72, 0x75, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x42, 0x41, 0x4d, 0x2e, 0x20, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x2d, 0x2d, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x69, 0x66, 0x74, + 0x4f, 0x76, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, + 0x69, 0x66, 0x74, 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x2d, + 0x2d, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x69, 0x6c, 0x65, + 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, + 0x69, 0x65, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x2e, + 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x50, 0x65, + 0x72, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x2d, + 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x72, 0x65, 0x61, 0x64, + 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x5f, 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x28, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, 0x68, 0x6d, 0x6f, 0x64, 0x20, - 0x37, 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x52, 0x4e, 0x47, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, - 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x2d, - 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, 0x20, 0x6f, 0x72, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x2d, - 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x29, - 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, - 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, - 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x5f, 0x52, 0x57, 0x58, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x28, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x63, 0x68, 0x6d, 0x6f, + 0x64, 0x20, 0x37, 0x37, 0x37, 0x29, 0x0a, 0x0a, 0x72, 0x75, 0x6e, 0x52, + 0x4e, 0x47, 0x73, 0x65, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x37, 0x37, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x44, + 0x69, 0x72, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x28, 0x66, 0x6f, 0x72, + 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, 0x20, 0x6f, + 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x66, 0x6f, 0x72, + 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x29, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x4b, 0x65, 0x65, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, + 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, + 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, - 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x64, 0x45, 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x20, 0x69, 0x74, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x72, 0x75, - 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x6e, 0x64, 0x45, - 0x78, 0x69, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, - 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, - 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x75, 0x6e, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x65, 0x78, 0x69, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, + 0x75, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, - 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x6a, 0x75, 0x73, - 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x6c, 0x6f, 0x61, - 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x6f, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, - 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x63, 0x6f, - 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x28, 0x73, 0x29, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, - 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x65, - 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x2a, 0x63, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, 0x7a, 0x69, 0x70, - 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x2d, 0x2d, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x29, 0x2e, 0x20, - 0x43, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x2d, 0x2d, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, - 0x64, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x28, 0x6e, 0x65, 0x77, - 0x29, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x73, 0x70, 0x69, 0x6b, - 0x65, 0x2d, 0x69, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x6f, 0x76, 0x65, 0x72, 0x2e, - 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, - 0x65, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x20, 0x2e, - 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3e, 0x30, 0x3a, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x79, - 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x56, 0x43, 0x46, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x20, 0x53, 0x4e, 0x50, 0x73, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x6a, - 0x6f, 0x72, 0x20, 0x28, 0x41, 0x46, 0x3e, 0x30, 0x2e, 0x35, 0x29, 0x20, - 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x20, 0x2d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x0a, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x4e, 0x62, - 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, 0x72, 0x42, - 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, - 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, - 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, - 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, - 0x67, 0x73, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x61, 0x73, - 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x38, 0x2c, 0x20, 0x6c, 0x6f, 0x67, - 0x32, 0x5b, 0x6d, 0x61, 0x78, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x2c, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x29, 0x5d, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, 0x73, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x20, 0x70, - 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x35, 0x2e, - 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, - 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x77, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x34, 0x2c, 0x20, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2f, 0x32, 0x20, 0x2d, 0x20, 0x31, - 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, - 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, 0x75, 0x66, - 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, 0x73, 0x70, - 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, - 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, 0x6e, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, - 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, - 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2c, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, - 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x6a, + 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, 0x61, 0x62, - 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, 0x61, 0x62, - 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, 0x3e, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, - 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, + 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x73, 0x20, + 0x6f, 0x77, 0x6e, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, + 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x28, 0x73, 0x29, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, + 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, + 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x2a, + 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x2a, 0x20, 0x62, 0x65, 0x20, 0x7a, + 0x69, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x29, + 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x64, 0x64, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x28, 0x6e, + 0x65, 0x77, 0x29, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x73, 0x70, + 0x69, 0x6b, 0x65, 0x2d, 0x69, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x6f, 0x76, 0x65, + 0x72, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x69, 0x66, 0x74, 0x4f, 0x76, 0x65, 0x72, + 0x20, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3e, 0x30, 0x3a, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x20, + 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2c, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x54, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, 0x72, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x20, 0x53, 0x4e, + 0x50, 0x73, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x65, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x6a, 0x6f, 0x72, 0x20, 0x28, 0x41, 0x46, 0x3e, 0x30, 0x2e, 0x35, + 0x29, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x29, 0x0a, 0x0a, 0x23, + 0x23, 0x23, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x2d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, + 0x2d, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x0a, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x72, 0x42, 0x69, 0x6e, + 0x4e, 0x62, 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x63, 0x68, + 0x72, 0x42, 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, + 0x20, 0x63, 0x68, 0x72, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x3a, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x20, 0x46, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x69, 0x67, 0x73, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, + 0x61, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x38, 0x2c, 0x20, 0x6c, + 0x6f, 0x67, 0x32, 0x5b, 0x6d, 0x61, 0x78, 0x28, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x2c, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x5d, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, + 0x20, 0x70, 0x72, 0x65, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x79, + 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x31, 0x30, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, + 0x35, 0x2e, 0x20, 0x4c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x6d, 0x6f, 0x72, 0x65, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x66, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x20, + 0x46, 0x6f, 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x2d, 0x2d, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x6f, + 0x77, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x34, + 0x2c, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2f, 0x32, 0x20, 0x2d, + 0x20, 0x31, 0x29, 0x2e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x53, 0x41, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x44, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x73, + 0x75, 0x66, 0x66, 0x75, 0x78, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x20, + 0x73, 0x70, 0x61, 0x72, 0x73, 0x69, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x69, + 0x63, 0x65, 0x73, 0x3a, 0x20, 0x75, 0x73, 0x65, 0x20, 0x62, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, + 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x52, 0x41, 0x4d, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x66, + 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x78, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x2c, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, + 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x72, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x6f, - 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, 0x72, 0x27, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x45, - 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, - 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x66, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x0a, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x63, 0x68, 0x72, 0x20, 0x3c, 0x74, + 0x61, 0x62, 0x3e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3c, 0x74, + 0x61, 0x62, 0x3e, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x3c, 0x74, 0x61, 0x62, + 0x3e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, + 0x64, 0x20, 0x77, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x6e, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, + 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, 0x0a, 0x73, - 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, - 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, + 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x63, 0x68, + 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x27, 0x63, 0x68, + 0x72, 0x27, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x45, 0x4e, 0x53, 0x4d, 0x45, 0x42, 0x4c, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x55, 0x43, 0x53, 0x43, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, - 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x67, 0x65, - 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, - 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, - 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, - 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, - 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, - 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x76, 0x61, 0x72, 0x56, 0x43, - 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x78, 0x6f, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x6f, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x0a, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, + 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, + 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, + 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, + 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, + 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, + 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, + 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, + 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, + 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x76, 0x61, 0x72, + 0x56, 0x43, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, - 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, - 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, - 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x46, 0x41, - 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, + 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, + 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x51, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x53, + 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x53, 0x45, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x50, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, - 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x50, 0x45, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, - 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, 0x6f, - 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x0a, 0x72, 0x65, - 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, - 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, - 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x69, 0x66, 0x78, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x49, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x3a, 0x20, - 0x6e, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x0a, 0x72, - 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, - 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, - 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, - 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, - 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, - 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, + 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, + 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, + 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x69, 0x66, + 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x69, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, - 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, - 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, + 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, + 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, + 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, + 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, + 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, + 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, + 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, + 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, + 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, + 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, + 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, + 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, + 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, + 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, - 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, - 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, - 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, + 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, + 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, + 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, + 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, + 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, - 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, - 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, - 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, - 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, - 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, - 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, - 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, - 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, - 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, - 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, - 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, - 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, - 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, - 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, - 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, + 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, - 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, + 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, - 0x75, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, - 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, - 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, - 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, - 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, + 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, + 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, + 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, + 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, + 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, - 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, - 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, - 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, + 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, + 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, + 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, - 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, + 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, + 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, + 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, - 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, + 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, + 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, + 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, + 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, + 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, - 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, - 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, - 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, - 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, - 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, - 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, - 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, + 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, - 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, - 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, - 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, - 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, - 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, - 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, - 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, - 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, - 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, + 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, + 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, + 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, - 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, - 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, - 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, + 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, + 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, + 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, + 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, + 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, + 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, - 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, - 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, + 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, - 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, - 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, + 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, - 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, + 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, + 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, + 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, + 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, - 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, - 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, - 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, - 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, - 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, - 0x49, 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, - 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, - 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, - 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x4d, 0x43, - 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x74, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, 0x20, - 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, - 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, 0x20, 0x43, 0x59, 0x20, 0x55, 0x52, - 0x20, 0x55, 0x59, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x71, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, - 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x55, 0x4d, - 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, 0x65, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, - 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, - 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, - 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, - 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, - 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, - 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, + 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, + 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, + 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x61, + 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, + 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, 0x20, 0x43, 0x59, 0x20, + 0x55, 0x52, 0x20, 0x55, 0x59, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, + 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x55, 0x4d, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, 0x65, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, - 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, + 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, + 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, + 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, + 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, - 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, - 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, - 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, - 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, - 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, - 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, - 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, - 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, - 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, - 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, - 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, - 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, - 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, - 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, - 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, - 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, - 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, - 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, - 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, + 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, + 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, + 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, + 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, + 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, + 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, + 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, + 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, + 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, + 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, + 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, + 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, + 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, + 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, + 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, + 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, + 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, + 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, - 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, - 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, - 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, - 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, - 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, - 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, - 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, - 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, - 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, - 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, - 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, - 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, + 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, + 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, + 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, + 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, + 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, - 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, - 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, - 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, - 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, + 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, + 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, + 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, + 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, + 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, - 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, - 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, - 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, - 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, - 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, + 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, + 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, - 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, + 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, + 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, + 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, + 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, - 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, - 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, - 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, - 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, - 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, - 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, - 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, - 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, - 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, - 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, + 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, + 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, + 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, + 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x62, 0x61, 0x6d, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, + 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, - 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, - 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, - 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, - 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, + 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, + 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, + 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, - 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, + 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, + 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, + 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, + 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, + 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, + 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, - 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, - 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, - 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, - 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, - 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, - 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, - 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, - 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, - 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, - 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, - 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, - 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, - 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, - 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, + 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, + 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, + 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, + 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, + 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, + 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, + 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, + 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, + 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, - 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, - 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, - 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, + 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, + 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, + 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, + 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, + 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, - 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, - 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, - 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, - 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, - 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, - 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, - 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, - 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, - 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, - 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, - 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, - 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, - 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, - 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, - 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, - 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, + 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, + 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, + 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, + 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, + 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, + 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, + 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, + 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, + 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, + 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, + 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, + 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, + 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, - 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, - 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, - 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, - 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, - 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, - 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, - 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, - 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, - 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, - 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, - 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, - 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, - 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, - 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, - 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, + 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, - 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, - 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, - 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, - 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, + 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, + 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, - 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, - 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, + 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, + 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, + 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, + 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, + 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, + 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, + 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, + 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, + 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, - 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, + 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, - 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, - 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, - 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, - 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, - 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, - 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, - 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, - 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, - 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, - 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, - 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, - 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, - 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, - 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, - 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, - 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, - 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, - 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, - 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, - 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, - 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, - 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, - 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, + 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, + 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, + 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, + 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, + 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, + 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, + 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, + 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, + 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, + 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, + 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, + 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, + 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, + 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, + 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, + 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, + 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, + 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, + 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, + 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, + 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, + 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, + 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, - 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, - 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, - 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, - 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, - 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, - 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, - 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, - 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, - 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, - 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, + 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, - 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, - 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, - 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, - 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, - 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, - 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, - 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, - 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, - 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, + 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, + 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, + 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, + 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, - 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, - 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, - 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, - 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, - 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, - 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, - 0x75, 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, - 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, + 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, + 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, + 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, + 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, + 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, + 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, + 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, + 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, + 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, + 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, + 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, + 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, + 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, + 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, + 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, + 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, + 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, + 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, + 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, + 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, - 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, - 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, - 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, - 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, - 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, - 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, - 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, - 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, - 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, - 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, - 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, - 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, - 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, - 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, - 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, - 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, - 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, - 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, - 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, - 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, - 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, - 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, + 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, + 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, + 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, + 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, + 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, + 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, + 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, + 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, - 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, - 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, - 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, - 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, - 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, - 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, + 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, + 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, + 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, + 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, + 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, + 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, - 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, + 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, + 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, + 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, + 0x74, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x2c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, - 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, - 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, - 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, - 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, - 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, - 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, + 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, + 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, - 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, - 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, 0x6f, 0x20, - 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, - 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, - 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, - 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, - 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, + 0x2d, 0x31, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, + 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, + 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, + 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, - 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, + 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, - 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, - 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, - 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, - 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, - 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, - 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, - 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, - 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, - 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, - 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, - 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, - 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, - 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, - 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, - 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, - 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, - 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, - 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, - 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, - 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, - 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, - 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, - 0x23, 0x23, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, - 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, - 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x29, 0x20, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, + 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, + 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x63, - 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, - 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x44, - 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x65, 0x71, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x31, 0x30, 0x58, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, - 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, - 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, - 0x6c, 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, - 0x4d, 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, + 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, + 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, + 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, + 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, + 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, + 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, + 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, + 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, + 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, + 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, + 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, + 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, + 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, + 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, + 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, + 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, + 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x29, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, + 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, + 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x6c, + 0x65, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, + 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x55, 0x4d, + 0x49, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x44, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x65, 0x71, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x31, 0x30, 0x58, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, + 0x75, 0x6d, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, + 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, + 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, + 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, - 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, - 0x6f, 0x6c, 0x6f, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x6c, - 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x2b, 0x73, 0x6f, 0x6c, 0x6f, 0x55, - 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, - 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, - 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, - 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, - 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x65, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, - 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x55, 0x4d, 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, + 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, + 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, + 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, + 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x2b, 0x73, 0x6f, 0x6c, + 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, - 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, - 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, - 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, - 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, - 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, - 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, - 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x0a, 0x73, 0x6f, + 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, - 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, - 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, - 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, - 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, - 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, - 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, - 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, - 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, + 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, + 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, + 0x20, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, + 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, + 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, 0x49, 0x20, + 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, + 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, 0x4d, 0x49, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x63, + 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, + 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x62, + 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, 0x65, 0x67, + 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, 0x62, 0x65, + 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x52, + 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, 0x31, 0x37, + 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x4e, + 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, 0x4d, 0x49, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, + 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, 0x6f, 0x2e, + 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x2e, 0x74, + 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, + 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x6d, + 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, 0x4a, 0x2e, + 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, + 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, + 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, - 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x65, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, - 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, - 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, + 0x0a }; -unsigned int parametersDefault_len = 37979; +unsigned int parametersDefault_len = 37981; From 72f29d3455ba33cc9060781bcf302fe991b9f10d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 25 Mar 2019 15:11:40 -0400 Subject: [PATCH 442/536] Fixed a solo output problem introduced in f8adfa4, now the results are again identical to 2.7.0e --- ReadAlign_outputAlignments.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index af537e5..bc25589 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -184,6 +184,7 @@ void ReadAlign::outputAlignments() { if (unmapType>=0) { statsRA.unmappedAll++; + soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]);//record CBs and stats for unmapped reads }; if ( P.outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped From 55517da11446221556e4d1b78b9468cc2afb44e7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 25 Mar 2019 15:28:02 -0400 Subject: [PATCH 443/536] Preparing for 2.7.0f --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 469bb8b..892df69 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0e_0322" +#define STAR_VERSION "2.7.0e_0325" From df7ab1adb27ace7515efe04f6fa22c419f09ca5f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 27 Mar 2019 15:38:36 -0400 Subject: [PATCH 444/536] Fixed several problems with previous changes. --- Parameters.cpp | 43 +++++++++++++++++++++++++++------ Parameters.h | 14 +++++++++-- ReadAlign_outputAlignments.cpp | 35 +++++++++++++++------------ ReadAlign_stitchWindowSeeds.cpp | 2 +- SoloRead.cpp | 6 ++--- SoloRead.h | 2 +- SoloRead_record.cpp | 4 +-- VERSION | 2 +- stitchWindowAligns.cpp | 4 +-- 9 files changed, 76 insertions(+), 36 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 426431e..c23534b 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -87,7 +87,7 @@ Parameters::Parameters() {//initalize parameters info //outSAM parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMtype", &outSAMtype)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMmode", &outSAMmode)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMstrandField", &outSAMstrandField)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMstrandField", &outSAMstrandField.in)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMattributes", &outSAMattributes)); parArray.push_back(new ParameterInfoVector (-1, -1, "outSAMunmapped", &outSAMunmapped.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "outSAMorder", &outSAMorder)); @@ -194,7 +194,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "alignWindowsPerReadNmax", &alignWindowsPerReadNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignTranscriptsPerWindowNmax", &alignTranscriptsPerWindowNmax)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignEndsType", &alignEndsType.in)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSoftClipAtReferenceEnds", &alignSoftClipAtReferenceEnds)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "alignSoftClipAtReferenceEnds", &alignSoftClipAtReferenceEnds.in)); parArray.push_back(new ParameterInfoVector (-1, -1, "alignEndsProtrude", &alignEndsProtrude.in)); parArray.push_back(new ParameterInfoScalar (-1, -1, "alignInsertionFlush", &alignInsertionFlush.in)); @@ -964,6 +964,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters quant.geCount.yes=false; quant.trSAM.yes=false; quant.trSAM.bamYes=false; + quant.trSAM.indel=false; + quant.trSAM.softClip=false; + quant.trSAM.singleEnd=false; if (quant.mode.at(0) != "-") { quant.yes=true; for (uint32 ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); }; }; }; - + + outSAMstrandField.type=0; //none + if (outSAMstrandField.in=="None") { + outSAMstrandField.type=0; + } else if (outSAMstrandField.in=="intronMotif") { + outSAMstrandField.type=1; + } else { + ostringstream errOut; + errOut << "EXITING because of fatal INPUT error: unrecognized option in outSAMstrandField=" << outSAMstrandField.in << "\n"; + errOut << "SOLUTION: use one of the allowed values of --outSAMstrandField : None or intronMotif \n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + //solo pSolo.initialize(this); @@ -1114,9 +1129,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (vAttr1.at(ii)== "XS") { outSAMattrOrder.push_back(ATTR_XS); outSAMattrPresent.XS=true; - if (outSAMstrandField!="intronMotif") { + if (outSAMstrandField.type!=1) { inOut->logMain << "WARNING --outSAMattributes contains XS, therefore STAR will use --outSAMstrandField intronMotif" <logMain, EXIT_CODE_PARAMETER, *this); }; - if (outSAMstrandField=="intronMotif" && !outSAMattrPresent.XS) { + if (outSAMstrandField.type==1 && !outSAMattrPresent.XS) { outSAMattrOrder.push_back(ATTR_XS); inOut->logMain << "WARNING --outSAMstrandField=intronMotif, therefore STAR will output XS attribute" <logMain, EXIT_CODE_PARAMETER, *this); + }; + //read parameters // if (pReads.strandString=="Unstranded") { // pReads.strand=0; diff --git a/Parameters.h b/Parameters.h index 18116d3..aa190ae 100644 --- a/Parameters.h +++ b/Parameters.h @@ -88,7 +88,6 @@ class Parameters { uint alignIntronMin;//min length to call a gap an intron uint alignIntronMax;//max length to call uint alignMatesGapMax;//max gap between the mates (if paired-end) - string alignSoftClipAtReferenceEnds; vector alignSJstitchMismatchNmax; // struct { @@ -96,6 +95,12 @@ class Parameters { // int32 strand; // } pReads; + struct { + string in; + bool yes; + } alignSoftClipAtReferenceEnds; + + struct { string in; bool ext[2][2]; @@ -133,13 +138,18 @@ class Parameters { //SAM output string outBAMfileCoordName, outBAMfileUnsortedName, outQuantBAMfileName; string samHeader, samHeaderHD, samHeaderSortedCoord, samHeaderExtra; - string outSAMmode, outSAMstrandField, outSAMorder, outSAMprimaryFlag; + string outSAMmode, outSAMorder, outSAMprimaryFlag; vector outSAMattributes, outSAMheaderHD, outSAMheaderPG; vector outSAMattrRGline,outSAMattrRGlineSplit,outSAMattrRG; uint outSAMmultNmax,outSAMattrIHstart; string outSAMheaderCommentFile; int outSAMmapqUnique; + struct { + string in; + uint32 type; + } outSAMstrandField; + int outSAMtlen; struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS,rB,vG,vA,vW,ch,MC,CR,CY,UR,UY;} outSAMattrPresent, outSAMattrPresentQuant; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index bc25589..295b302 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -93,19 +93,8 @@ void ReadAlign::outputAlignments() { nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files - //genes - if ( P.quant.geCount.yes ) { - chunkTr->geneCountsAddAlign(nTr, trMult, readGenes); - }; - - //transcripts - if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused - quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); - }; - - //solo - soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]); - + soloRead->readBar->getCBandUMI(readNameExtra.at(0)); + //write to SAM/BAM for (uint iTr=0;iTrN; - for (uint iTr=0;iTrgeneCountsAddAlign(nTr, trMult, readGenes); + }; + + //transcripts + if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused + quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readTrGenes); + }; + + //solo + }; }; + + if (outFilterPassed) { + soloRead->record(nTr, readTrGenes, trMult[0]); + }; if (unmapType>=0) { statsRA.unmappedAll++; - soloRead->record(readNameExtra.at(0), nTr, readTrGenes, trMult[0]);//record CBs and stats for unmapped reads }; if ( P.outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 4afce97..ddd3392 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -230,7 +230,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { if (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0 && P.outFilterIntronStrands=="RemoveInconsistentStrands") return; - if (sjN>0 && trA.sjMotifStrand==0 && P.outSAMstrandField=="intronMotif") {//strand not defined for a junction + if (sjN>0 && trA.sjMotifStrand==0 && P.outSAMstrandField.type==1) {//strand not defined for a junction return; }; diff --git a/SoloRead.cpp b/SoloRead.cpp index 21415de..6101f97 100644 --- a/SoloRead.cpp +++ b/SoloRead.cpp @@ -2,12 +2,12 @@ SoloRead::SoloRead(Parameters &Pin, int32 iChunkIn) : iChunk(iChunkIn), P(Pin), pSolo(P.pSolo) { + if (pSolo.type==0) + return; + readBar = new SoloReadBarcode(P); readFeat = new SoloReadFeature*[pSolo.nFeatures]; - if (pSolo.type==0) - return; - for (uint32 ii=0; ii &readTrGenes, Transcript *alignOut); + void record(uint64 nTr, set &readTrGenes, Transcript *alignOut); private: const int32 iChunk; diff --git a/SoloRead_record.cpp b/SoloRead_record.cpp index 4844bec..5ec3801 100644 --- a/SoloRead_record.cpp +++ b/SoloRead_record.cpp @@ -1,12 +1,10 @@ #include "SoloRead.h" -void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readTrGenes, Transcript *alignOut) +void SoloRead::record(uint64 nTr, set &readTrGenes, Transcript *alignOut) { if (pSolo.type==0) return; - readBar->getCBandUMI(barcodeSeq); - for (uint32 ii=0; iirecord(*readBar, nTr, readTrGenes, alignOut); }; diff --git a/VERSION b/VERSION index 892df69..f4ae235 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0e_0325" +#define STAR_VERSION "2.7.0f" diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 1d84ead..301e2ae 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -80,7 +80,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; }; - if (P.alignSoftClipAtReferenceEnds=="No" && \ + if (!P.alignSoftClipAtReferenceEnds.yes && \ ( (trA.exons[trA.nExons-1][EX_G] + Lread-trA.exons[trA.nExons-1][EX_R]) > (mapGen.chrStart[trA.Chr]+mapGen.chrLength[trA.Chr]) || \ trA.exons[0][EX_G]<(mapGen.chrStart[trA.Chr]+trA.exons[0][EX_R]) ) ) { return; //no soft clipping past the ends of the chromosome @@ -128,7 +128,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0 && P.outFilterIntronStrands=="RemoveInconsistentStrands") return; - if (sjN>0 && trA.sjMotifStrand==0 && P.outSAMstrandField=="intronMotif") {//strand not defined for a junction + if (sjN>0 && trA.sjMotifStrand==0 && P.outSAMstrandField.type==1) {//strand not defined for a junction return; }; From 8b645e3ae5e0556884232d97f5bbf329078617a4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 28 Mar 2019 15:16:46 -0400 Subject: [PATCH 445/536] Ready for 2.7.0f --- Parameters.cpp | 9 +++++---- ReadAlign_outputAlignments.cpp | 10 ++++------ SoloRead.cpp | 3 ++- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index c23534b..9ea03d7 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -336,10 +336,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - inOut->logMain << "STAR version=" << STAR_VERSION << "\n"<logMain << "STAR compilation time,server,dir=" << COMPILATION_TIME_PLACE << "\n"<logMain << "STAR version=" << STAR_VERSION << "\n"; + inOut->logMain << "STAR compilation time,server,dir=" << COMPILATION_TIME_PLACE << "\n"; + #ifdef COMPILE_FOR_LONG_READS + inOut->logMain << "Compiled for LONG reads" << "\n"; + #endif //define what goes to cout if (outStd=="Log") { diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 295b302..6ab22a4 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -180,16 +180,14 @@ void ReadAlign::outputAlignments() { }; //solo - + soloRead->record(nTr, readTrGenes, trMult[0]); }; }; - - if (outFilterPassed) { - soloRead->record(nTr, readTrGenes, trMult[0]); - }; - if (unmapType>=0) { + if (unmapType>=0) {//unmapped reads statsRA.unmappedAll++; + soloRead->readBar->getCBandUMI(readNameExtra.at(0)); + soloRead->record(nTr, readTrGenes, trMult[0]); }; if ( P.outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped diff --git a/SoloRead.cpp b/SoloRead.cpp index 6101f97..a29a8bd 100644 --- a/SoloRead.cpp +++ b/SoloRead.cpp @@ -2,10 +2,11 @@ SoloRead::SoloRead(Parameters &Pin, int32 iChunkIn) : iChunk(iChunkIn), P(Pin), pSolo(P.pSolo) { + readBar = new SoloReadBarcode(P); + if (pSolo.type==0) return; - readBar = new SoloReadBarcode(P); readFeat = new SoloReadFeature*[pSolo.nFeatures]; for (uint32 ii=0; ii Date: Thu, 28 Mar 2019 18:50:58 -0400 Subject: [PATCH 446/536] Fixed a problem which may cause seg-faults for reads with many blocks. --- VERSION | 2 +- stitchAlignToTranscript.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index f4ae235..f4da67f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0f" +#define STAR_VERSION "2.7.0f_0328" diff --git a/stitchAlignToTranscript.cpp b/stitchAlignToTranscript.cpp index 0e6b9e6..84bb427 100644 --- a/stitchAlignToTranscript.cpp +++ b/stitchAlignToTranscript.cpp @@ -9,9 +9,11 @@ intScore stitchAlignToTranscript(uint rAend, uint gAend, uint rBstart, uint gBstart, uint L, uint iFragB, uint sjAB, Parameters& P, char* R, Genome &mapGen, Transcript *trA, const uint outFilterMismatchNmaxTotal) { //stitch together A and B, extend in the gap, returns max score + if (trA->nExons>=MAX_N_EXONS) + return -1000010; + char *G=mapGen.G; int Score=0; -// int score2; if (sjAB!=((uint) -1) && trA->exons[trA->nExons-1][EX_sjA]==sjAB \ && trA->exons[trA->nExons-1][EX_iFrag]==iFragB && rBstart==rAend+1 && gAend+1 Date: Sat, 30 Mar 2019 14:27:34 -0400 Subject: [PATCH 447/536] Minor changes before mergin soloFullGene branch. --- Parameters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 9ea03d7..6b4b78b 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1532,7 +1532,7 @@ int Parameters::scanOneLine (string &lineIn, int inputLevel, int inputLevelReque if (iPar==parArray.size()) {//string is not identified ostringstream errOut; - errOut << "EXITING: FATAL INPUT ERROR: unrecoginzed parameter name \""<< parIn << "\" in input \"" << parameterInputName.at(inputLevel) <<"\"\n"; + errOut << "EXITING: FATAL INPUT ERROR: unrecognized parameter name \""<< parIn << "\" in input \"" << parameterInputName.at(inputLevel) <<"\"\n"; errOut << "SOLUTION: use correct parameter name (check the manual)\n"<logMain, EXIT_CODE_PARAMETER, *this); } else {//found the corresponding parameter From 73b650c0508032d32639adc138e4aa8f998a4aeb Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 30 Mar 2019 17:42:31 -0400 Subject: [PATCH 448/536] Removed trailing spaces and CR with sed -i -e 's/\r$//' -e 's/ \+$//' *.cpp *.c *.h parametersDefault --- BAMbinSortByCoordinate.cpp | 2 +- BAMbinSortUnmapped.cpp | 2 +- Chain.cpp | 40 ++-- Chain.h | 4 +- ChimericAlign.cpp | 16 +- ChimericAlign.h | 12 +- ChimericAlign_chimericJunctionOutput.cpp | 3 +- ChimericAlign_chimericStitching.cpp | 9 +- ChimericDetection.cpp | 4 +- ChimericDetection.h | 6 +- ChimericDetection_chimericDetectionMult.cpp | 46 ++--- ChimericSegment.cpp | 8 +- ChimericSegment.h | 4 +- ChimericTranscript.h | 2 +- Genome.cpp | 24 +-- Genome.h | 24 +-- Genome_genomeGenerate.cpp | 18 +- InOutStreams.cpp | 2 +- OutSJ.cpp | 2 +- OutSJ.h | 4 +- Parameters.cpp | 124 ++++++------ Parameters.h | 28 +-- ParametersChimeric.h | 4 +- ParametersGenome.h | 6 +- ParametersSolo.cpp | 36 ++-- ParametersSolo.h | 4 +- Parameters_closeReadsFiles.cpp | 4 +- Parameters_openReadsFiles.cpp | 6 +- Parameters_readSAMheader.cpp | 6 +- ReadAlign.cpp | 14 +- ReadAlign.h | 40 ++-- ReadAlignChunk.cpp | 10 +- ReadAlignChunk.h | 4 +- ReadAlignChunk_processChunks.cpp | 26 +-- ReadAlign_alignBAM.cpp | 66 +++---- ReadAlign_calcCIGAR.cpp | 2 +- ReadAlign_chimericDetection.cpp | 10 +- ReadAlign_chimericDetectionOld.cpp | 24 +-- ReadAlign_chimericDetectionOldOutput.cpp | 14 +- ReadAlign_chimericDetectionPEmerged.cpp | 16 +- ReadAlign_mapOneRead.cpp | 4 +- ReadAlign_mappedFilter.cpp | 4 +- ReadAlign_oneRead.cpp | 6 +- ReadAlign_outputAlignments.cpp | 18 +- ReadAlign_outputTranscriptSAM.cpp | 26 +-- ReadAlign_outputVariation.cpp | 8 +- ReadAlign_peOverlapMergeMap.cpp | 98 +++++----- ReadAlign_quantTranscriptome.cpp | 2 +- ReadAlign_stitchPieces.cpp | 2 +- ReadAlign_stitchWindowSeeds.cpp | 20 +- ReadAlign_waspMap.cpp | 22 +-- STAR.cpp | 34 ++-- SequenceFuns.cpp | 32 ++-- SequenceFuns.h | 2 +- SjdbClass.h | 2 +- Solo.cpp | 4 +- Solo.h | 8 +- SoloFeature.cpp | 4 +- SoloFeature.h | 20 +- SoloFeature_collapseUMI.cpp | 50 ++--- SoloFeature_outputResults.cpp | 18 +- SoloFeature_processRecords.cpp | 46 ++--- SoloRead.cpp | 2 +- SoloRead.h | 4 +- SoloReadBarcode.cpp | 14 +- SoloReadBarcode.h | 8 +- SoloReadBarcode_getCBandUMI.cpp | 194 +++++++++---------- SoloReadFeature.cpp | 12 +- SoloReadFeature.h | 14 +- SoloReadFeature_inputRecords.cpp | 200 ++++++++++---------- SoloReadFeature_record.cpp | 18 +- SoloRead_record.cpp | 24 +-- SuffixArrayFuns.cpp | 12 +- Transcript.h | 6 +- Transcript_generateCigarP.cpp | 2 +- Transcript_variationAdjust.cpp | 18 +- Transcriptome.cpp | 40 ++-- Transcriptome.h | 6 +- Transcriptome_geneCountsAddAlign.cpp | 2 +- Transcriptome_geneFullAlignOverlap.cpp | 2 +- Variation.cpp | 44 ++--- Variation.h | 12 +- bamRemoveDuplicates.cpp | 16 +- funCompareUintAndSuffixesMemcmp.cpp | 10 +- genomeParametersWrite.cpp | 4 +- genomeScanFastaFiles.cpp | 4 +- insertSeqSA.cpp | 18 +- loadGTF.cpp | 8 +- outputSJ.cpp | 4 +- parametersDefault | 6 +- readLoad.cpp | 6 +- serviceFuns.cpp | 24 +-- signalFromBAM.cpp | 2 +- sjdbBuildIndex.cpp | 6 +- sjdbInsertJunctions.cpp | 4 +- sjdbPrepare.cpp | 2 +- stitchWindowAligns.cpp | 12 +- sysRemoveDir.cpp | 4 +- 98 files changed, 934 insertions(+), 936 deletions(-) diff --git a/BAMbinSortByCoordinate.cpp b/BAMbinSortByCoordinate.cpp index d037d3d..359d90e 100644 --- a/BAMbinSortByCoordinate.cpp +++ b/BAMbinSortByCoordinate.cpp @@ -58,7 +58,7 @@ void BAMbinSortByCoordinate(uint32 iBin, uint binN, uint binS, uint nThreads, st errOut <<"SOLUTION: check that the disk is not full, increase the max number of open files with Linux command ulimit -n before running STAR"; exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); }; - + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,mapGen.chrNameAll,mapGen.chrLengthAll); //send ordered aligns to bgzf one-by-one for (uint ia=0;ialogMain, EXIT_CODE_PARAMETER, P); }; - + outBAMwriteHeader(bgzfBin,P.samHeaderSortedCoord,mapGen.chrNameAll,mapGen.chrLengthAll); diff --git a/Chain.cpp b/Chain.cpp index af900d4..2cff52a 100644 --- a/Chain.cpp +++ b/Chain.cpp @@ -10,11 +10,11 @@ Chain::Chain(Parameters &Pin, string chainFileNameIn) : P(Pin), chainFileName(ch void Chain::chainLoad() { ifstream &streamIn = ifstrOpen(chainFileName, ERROR_OUT, "SOLUTION: check path and permission for the chain file" + chainFileName, P); - + string chr1;//current chromsome 1 (old) - + while (streamIn.good()) - { + { string line1; getline(streamIn,line1); istringstream line1str(line1); @@ -32,20 +32,20 @@ void Chain::chainLoad() } else if (fields[3]=="") {//normal chain block chrChains[chr1].bLen.push_back(std::stoi(fields[0])); - + uint s=chrChains[chr1].bStart1.back() + chrChains[chr1].bLen.back() + std::stoi(fields[1]);//prev start + length + shift chrChains[chr1].bStart1.push_back(s); - + s=chrChains[chr1].bStart2.back() + chrChains[chr1].bLen.back() + std::stoi(fields[2]);//prev start + length + shift chrChains[chr1].bStart2.push_back(s); } else {//chain header - //chain score tName tSize tStrand tStart tEnd qName qSize qStrand qStart qEnd id - // 0 1 2 3 4 5 6 7 8 9 10 11 12 - + //chain score tName tSize tStrand tStart tEnd qName qSize qStrand qStart qEnd id + // 0 1 2 3 4 5 6 7 8 9 10 11 12 + for (int ii=4;ii<13;ii++) line1str >> fields[ii]; //read all the fields - + chr1=fields[2]; chrChains[chr1].chr1=chr1; chrChains[chr1].chr2=fields[7];//NOTE: the whole procedure (for now) only works for single chain per chromosome @@ -60,7 +60,7 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) ifstream &streamIn = ifstrOpen(gtfFileName, ERROR_OUT, "SOLUTION: check path and permission for the GTF file" + gtfFileName, P); ofstream &streamOut = ofstrOpen(outFileName, ERROR_OUT, P); ofstream &streamOutUnlifted = ofstrOpen(outFileName+".unlifted", ERROR_OUT, P); - + while (streamIn.good()) { string line1; @@ -69,32 +69,32 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) string chr1; line1str >> chr1; - + if (chr1=="" || chr1.substr(0,1)=="#") continue;//empty or comment line - + if (chrChains.count(chr1)==0) exitWithError("GTF contains chromosome " + chr1 + " not present in the chain file " + chainFileName,std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); - + OneChain *ch1 = & chrChains[chr1];//the chain for the chr1 - + string str1,str2; line1str >> str1 >> str2;//fields 2,3 - + uint c1, c2[2]; //coordinates: 1/2 (old/new) - + for (int ii=0;ii<2;ii++) {//read and transform the two coordinates line1str >> c1; int32 i1 = binarySearch1a (c1, ch1->bStart1.data(), ch1->bN); - + c2[ii]=-1;//-1 means impossible to lift this end - + if (i1>=0 && c1 < ch1->bStart1[i1]+ch1->bLen[i1]) {//c1 is inside the block, simple transformation c2[ii]=ch1->bStart2[i1] + c1 - ch1->bStart1[i1]; } else - {//c1 is outside of the block + {//c1 is outside of the block if (ii==0 && i1 < (int32) ch1->bN-1) {//left end => c2 will be at the start of the next block c2[ii]=ch1->bStart2[i1+1]; //if i1=-1, it will work = start of the 0-tn blocl @@ -121,6 +121,6 @@ void Chain::liftOverGTF(string gtfFileName, string outFileName) // errOut << "EXITING because of fatal INPUT file error: chain file contains chromosome (scaffold) not present in the genome " << oldname <<"\n"; // errOut << ERROR_OUT << "\n"; // exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); -// }; +// }; // uint ichr=mapGen.chrNameIndex[oldname];//chr index in the genome list // bStart1[bN] += mapGen.chrLength[ichr];//whole genome chain - shift by chr start diff --git a/Chain.h b/Chain.h index d5f70b8..9b0339a 100644 --- a/Chain.h +++ b/Chain.h @@ -5,7 +5,7 @@ #include "Parameters.h" #include "ErrorWarning.h" -class OneChain +class OneChain { public: uint bN; @@ -17,7 +17,7 @@ class Chain { public: // // uint bN;//number of blocks // // vector bStart1, bStart2, bLen; //blocks starts in 1/2, lengths - + Chain(Parameters &Pin, string chainFileNameIn); void liftOverGTF(string gtfFileName, string outFileName); private: diff --git a/ChimericAlign.cpp b/ChimericAlign.cpp index bf2dfc8..3038d9d 100644 --- a/ChimericAlign.cpp +++ b/ChimericAlign.cpp @@ -1,30 +1,30 @@ #include "ChimericAlign.h" -ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin) +ChimericAlign::ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin) : seg1(seg1in), seg2(seg2in),chimScore(chimScoreIn), P(seg1in.P), pCh(P.pCh), mapGen(genomeIn), RA(RAin) { stitchingDone=false; - + al1=&seg1.align; al2=&seg2.align; - - if (al1->roStart > al2->roStart) + + if (al1->roStart > al2->roStart) swap (al1,al2); - + ex1 = al1->Str==1 ? 0 : al1->nExons-1; ex2 = al2->Str==0 ? 0 : al2->nExons-1; }; bool ChimericAlign::chimericCheck() { bool chimGood=true; - + chimGood = chimGood && al1->exons[ex1][EX_iFrag] <= al2->exons[ex2][EX_iFrag];//otherwise - strange configuration, both segments contain two mates //if ( trChim[0].exons[e0][EX_iFrag] > trChim[1].exons[e1][EX_iFrag] ) {//strange configuration, rare, similar to the next one // chimN=0;//reject such chimeras //good test example: //CTTAGCTAGCAGCGTCTTCCCAGTGCCTGGAGGGCCAGTGAGAATGGCACCCTCTGGGATTTTTGCTCCTAGGTCT //TTGAGGTGAAGTTCAAAGATGTGGCTGGCTGTGAGGAGGCCGAGCTAGAGATCATGGAATTTGTGAATTTCTTGAA - //} else - + //} else + //junction overhangs too short for chimerically spliced mates chimGood = chimGood && (al1->exons[ex1][EX_iFrag] < al2->exons[ex2][EX_iFrag] || (al1->exons[ex1][EX_L] >= pCh.junctionOverhangMin && al2->exons[ex2][EX_L] >= pCh.junctionOverhangMin) ); diff --git a/ChimericAlign.h b/ChimericAlign.h index c99d944..b18347c 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -18,21 +18,21 @@ class ChimericAlign // std::unique_ptr al1, al2; //two chimeric alignments - modified by chimeric switching Transcript *al1, *al2; uint ex1, ex2; - + uint chimJ1, chimJ2, chimRepeat1, chimRepeat2; int chimMotif, chimStr, chimScore; - + ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin); //allocate void chimericJunctionOutput(fstream &outStream, uint chimN); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); - + bool stitchingDone; - + private: Parameters &P; - ParametersChimeric &pCh; - Genome &mapGen; + ParametersChimeric &pCh; + Genome &mapGen; ReadAlign *RA; }; diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 32026ab..9ee7aea 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -7,11 +7,10 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN) <<"\t"<< mapGen.chrName[al2->Chr] <<"\t"<< chimJ2 - mapGen.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ <<"\t"<< al1->exons[0][EX_G] - mapGen.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ - <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN; + <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN; if (P.outSAMattrPresent.RG) outStream <<"\t"<< P.outSAMattrRG.at(RA->readFilesIndex); if (P.pSolo.type>0) outStream <<"\t"<< RA->soloRead->readBar->cbSeq <<"\t"<< RA->soloRead->readBar->umiSeq; outStream <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate }; - \ No newline at end of file diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index 9251a3c..84665ea 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -1,12 +1,12 @@ #include "ChimericAlign.h" void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { - + if (stitchingDone) return; - + stitchingDone=true; - + al1=new Transcript(*al1); al2=new Transcript(*al2); @@ -38,7 +38,7 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { uint jRmax = roStart1+a2.exons[ex2][EX_L]; jRmax = jRmax>roStart0 ? jRmax-roStart0-1 : 0; for (jR=0; jR chimAligns; bool chimRecord; int chimScoreBest; - + ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream *ostreamChimJunctionIn, ReadAlign *RA); bool chimericDetectionMult(uint nWin, uint *readLengthIn); fstream *ostreamChimJunction; diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 957c6cb..3056373 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -10,11 +10,11 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) //segment lengths && (different mates || small gap between segments) if (seg1.roE > seg1.P.pCh.segmentMin + seg1.roS + chimOverlap && seg2.roE > seg1.P.pCh.segmentMin + seg2.roS + chimOverlap \ - && ( diffMates || ( (seg1.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg2.roS && (seg2.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg1.roS ) ) ) + && ( diffMates || ( (seg1.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg2.roS && (seg2.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg1.roS ) ) ) { chimScore = seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting }; - + return chimScore; }; @@ -22,7 +22,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { chimRecord=false; - + // for (uint ii=0;iial2; }; }; - + chimAligns.clear(); chimScoreBest=0; - - for (uint iW1=0; iW10) {//candidate chimera ChimericAlign chAl(seg1, seg2, chimScore, outGen, RA); - + if (!chAl.chimericCheck()) continue; //check chimeric alignment - - if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange) + + if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange) chimAligns.push_back(chAl);//add this chimeric alignment - + if ( chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { chimAligns.back().chimericStitching(outGen.G, Read1[0]); if (chimAligns.back().chimScore > chimScoreBest) @@ -82,20 +82,20 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { };//cycle over window2 aligns };//cycle over window2 };//cycle over window1 aligns - };//cycle over window1 + };//cycle over window1 if (chimScoreBest==0) return chimRecord; - - chimN=0; + + chimN=0; for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; if (chimN > 2*P.pCh.multimapNmax) //too many loci (considering 2* more candidates for stitching below) return chimRecord; - - chimN=0; + + chimN=0; for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) { cAit->chimericStitching(outGen.G, Read1[0]); @@ -105,7 +105,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { }; if (chimN > P.pCh.multimapNmax) //too many loci return chimRecord; - + for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) cAit->chimericJunctionOutput(*ostreamChimJunction, chimN); @@ -113,6 +113,6 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { if (chimN>0) chimRecord=true; - + return chimRecord; };//END diff --git a/ChimericSegment.cpp b/ChimericSegment.cpp index 3516d17..8e5b28b 100644 --- a/ChimericSegment.cpp +++ b/ChimericSegment.cpp @@ -4,7 +4,7 @@ ChimericSegment::ChimericSegment(Parameters &Pin, Transcript &alignIn) : P(Pin), { if ( (align.intronMotifs[1]==0 && align.intronMotifs[2]==0) || (align.intronMotifs[1]>0 && align.intronMotifs[2]>0)) {//strand is undefined str=0; - } else if ( (align.Str==0) == (align.intronMotifs[1]>0)) {//strand the same as RNA. + } else if ( (align.Str==0) == (align.intronMotifs[1]>0)) {//strand the same as RNA. //This assumes that the aligns have consistent strands, i.e. only intronMotifs[1]>0 OR intronMotifs[2]>0 str=1; } else {//strand opposite to RNA @@ -20,11 +20,11 @@ bool ChimericSegment::segmentCheck() { bool segGood = true; segGood = segGood && align.rLength >= pCh.segmentMin; //mapped length >= chim segmentMin - segGood = segGood && align.intronMotifs[0]==0; //no non-canonical unannotated juncions. + segGood = segGood && align.intronMotifs[0]==0; //no non-canonical unannotated juncions. return segGood; - + //this is already tested for each align with default --outFilterIntronStrands RemoveInconsistentStrands - //segGood = segGood && (align.intronMotifs[1]==0 || align.intronMotifs[2]==0); //consistent intron motifs. + //segGood = segGood && (align.intronMotifs[1]==0 || align.intronMotifs[2]==0); //consistent intron motifs. //this is not requiered since seg2 is tested for length // segGood = segGood && (align.exons[align.nExons-1][EX_R] + align.exons[align.nExons-1][EX_L] + P.pCh.segmentMin <= Lread // || align.exons[0][EX_R] >= P.pCh.segmentMin); //uncovered by seg1 read length is <= segmentMin diff --git a/ChimericSegment.h b/ChimericSegment.h index a1c0a47..90d014b 100644 --- a/ChimericSegment.h +++ b/ChimericSegment.h @@ -11,10 +11,10 @@ class ChimericSegment public: Parameters &P; ParametersChimeric &pCh; - + Transcript &align; //alignment uint roS,roE,str; //start/end/strand in original read coordinates - + ChimericSegment(Parameters &Pin, Transcript &alignIn); //allocate bool segmentCheck();//check if chimeric segment is good private: diff --git a/ChimericTranscript.h b/ChimericTranscript.h index 0cb76ec..e569e52 100644 --- a/ChimericTranscript.h +++ b/ChimericTranscript.h @@ -11,7 +11,7 @@ class ChimericTranscript Transcript **chTrs; //all chimeric transcripts uint nCh; //number of recorded (best) chimeric transcripts uint nChSize; //size of the chTrs array, will be increased if nCh > nChSize - + ChimericTranscript(Parameters &Pin); //allocate private: }; diff --git a/Genome.cpp b/Genome.cpp index b8524da..e520098 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -26,10 +26,10 @@ #define SHM_projectID 23 Genome::Genome (Parameters &Pin ): pGe(Pin.pGe), sharedMemory(NULL), P(Pin), shmStart(NULL) { - shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); - + shmKey=ftok(pGe.gDir.c_str(),SHM_projectID); + sjdbOverhang = pGe.sjdbOverhang; //will be re-defined later if another value was used for the generated genome - sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; + sjdbLength = pGe.sjdbOverhang==0 ? 0 : pGe.sjdbOverhang*2+1; }; // Genome::~Genome() @@ -96,14 +96,14 @@ void Genome::genomeLoad(){//allocate and load Genome uint L=200,K=6; Parameters P1; - + //some initializations before reading the parameters GstrandBit=0; ifstream parFile((pGe.gDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { P.inOut->logMain << "Reading genome generation parameters:\n"; - + //read genome internal parameters while (parFile.good()) { string word1; @@ -122,10 +122,10 @@ void Genome::genomeLoad(){//allocate and load Genome }; }; }; - parFile.clear(); + parFile.clear(); parFile.seekg(0,ios::beg);//rewind - + P1.inOut = P.inOut; P1.scanAllLines(parFile,3,-1); parFile.close(); @@ -175,7 +175,7 @@ void Genome::genomeLoad(){//allocate and load Genome pGe.gChrBinNbits=P1.pGe.gChrBinNbits; genomeChrBinNbases=1LLU<0) {//genomeFileSize was recorded in the genomeParameters file, copy the values to P pGe.gFileSizes = P1.pGe.gFileSizes; @@ -220,9 +220,9 @@ void Genome::genomeLoad(){//allocate and load Genome /////////////////////////////////// at this point all array sizes should be known: calculate packed array lengths if (GstrandBit==0) {//not defined before GstrandBit = (uint) floor(log(nGenome)/log(2))+1; - if (GstrandBit<32) GstrandBit=32; //TODO: use simple access function for SA + if (GstrandBit<32) GstrandBit=32; //TODO: use simple access function for SA }; - + GstrandMask = ~(1LLU<0 but alignMatesGapMax==0, winBinNbits will be defined by alignIntronMax P.inOut->logMain << "To accommodate alignIntronMax="< chrStartMap; for (uint ii=0;ii (chrName[ii], chrStart[ii])); }; - + uint nInserted=0, nWrongChr=0, nWrongRef=0, nRefN=0; while (consIn.good()) { string chr1, refIn, altIn, dummy; uint start1; char ref1,alt1; - + consIn >> chr1 >> start1 >> dummy >> refIn >> altIn; consIn.ignore(numeric_limits::max(),'\n'); - + convertNucleotidesToNumbers(refIn.c_str(),&ref1,1); convertNucleotidesToNumbers(altIn.c_str(),&alt1,1); --start1;//VCF positions are 1-based - + if (chrStartMap.count(chr1)==1) {//otherwise just skip start1+=chrStartMap[chr1]; if (G[start1]>3) ++nRefN; - + if (G[start1]==ref1 || G[start1]>3) { G[start1]=alt1; ++nInserted; @@ -441,7 +441,7 @@ void Genome::genomeGenerate() { SjdbClass sjdbLoci; Genome mainGenome1(*this); - + P.sjdbInsert.outDir=pGe.gDir; P.twoPass.pass2=false; @@ -452,7 +452,7 @@ void Genome::genomeGenerate() { pGe.gFileSizes.clear(); pGe.gFileSizes.push_back(nGenome); pGe.gFileSizes.push_back(SA.lengthByte); - + //write genome parameters file genomeParametersWrite(pGe.gDir+("/genomeParameters.txt"), P, ERROR_OUT, *this); diff --git a/InOutStreams.cpp b/InOutStreams.cpp index 0034ef9..2cadf2b 100644 --- a/InOutStreams.cpp +++ b/InOutStreams.cpp @@ -25,7 +25,7 @@ InOutStreams::~InOutStreams() { //logStdOutFile.close(); //do not want to close these log files, as some destructors (e.g. ~SharedMemory) might still write there //logMain.close(); - + outSAMfile.close(); outChimSAM.close(); outChimJunction.close(); diff --git a/OutSJ.cpp b/OutSJ.cpp index a10be32..ea01b84 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -94,7 +94,7 @@ void Junction::collapseOneSJ(char* isj1P, char* isjP, Parameters& P) {//collapse if (*(isj1P+motifP) != *(isjP+motifP) ) { uint s1=*(uint*)(isj1P+startP); uint c1=mapGen.chrBin[ s1 >> mapGen.pGe.gChrBinNbits]; - + stringstream errOut; errOut <<"EXITING becaues of BUG: different motifs for the same junction while collapsing junctions\n" \ << mapGen.chrName[c1] <<" "<< s1-mapGen.chrStart[c1]+1 <<" "< (-1, -1, "readFilesIn", &readFilesIn)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readFilesPrefix", &readFilesPrefix)); parArray.push_back(new ParameterInfoVector (-1, -1, "readFilesCommand", &readFilesCommand)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "readMatesLengthsIn", &readMatesLengthsIn)); parArray.push_back(new ParameterInfoScalar (-1, -1, "readMapNumber", &readMapNumber)); parArray.push_back(new ParameterInfoVector (-1, -1, "readNameSeparator", &readNameSeparator)); @@ -200,9 +200,9 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "alignInsertionFlush", &alignInsertionFlush.in)); //peOverlap - parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapNbasesMin", &peOverlap.NbasesMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapNbasesMin", &peOverlap.NbasesMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "peOverlapMMp", &peOverlap.MMp)); - + //chimeric parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &pCh.segmentMin)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &pCh.scoreMin)); @@ -229,14 +229,14 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &pGe.sjdbOverhang)); pGe.sjdbOverhang_par=parArray.size()-1; parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &pGe.sjdbScore)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &pGe.sjdbInsertSave)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &pGe.sjdbInsertSave)); + //variation - parArray.push_back(new ParameterInfoScalar (-1, -1, "varVCFfile", &var.vcfFile)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "varVCFfile", &var.vcfFile)); //WASP - parArray.push_back(new ParameterInfoScalar (-1, -1, "waspOutputMode", &wasp.outputMode)); - + parArray.push_back(new ParameterInfoScalar (-1, -1, "waspOutputMode", &wasp.outputMode)); + //quant parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quant.mode)); parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quant.trSAM.bamCompression)); @@ -250,10 +250,10 @@ Parameters::Parameters() {//initalize parameters info //solo parArray.push_back(new ParameterInfoScalar (-1, -1, "soloType", &pSolo.typeStr)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBstart", &pSolo.cbS)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIstart", &pSolo.umiS)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIstart", &pSolo.umiS)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBlen", &pSolo.cbL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloUMIlen", &pSolo.umiL)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "soloBarcodeReadLength", &pSolo.bL)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "soloBarcodeReadLength", &pSolo.bL)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloCBwhitelist", &pSolo.soloCBwhitelist)); parArray.push_back(new ParameterInfoScalar (-1, -1, "soloStrand", &pSolo.strandStr)); parArray.push_back(new ParameterInfoVector (-1, -1, "soloOutFileNames", &pSolo.outFileNames)); @@ -520,7 +520,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + //remove duplicates parameters if (removeDuplicates.mode=="UniqueIdentical") { @@ -535,9 +535,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --bamRemoveDuplicatesType="<logMain, EXIT_CODE_PARAMETER, *this); - }; - + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (runMode=="alignReads") { inOut->logProgress.open((outFileNamePrefix + "Log.progress.out").c_str()); } else if (runMode=="inputAlignmentsFromBAM") { @@ -676,7 +676,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"EXITING: fatal input ERROR: --outSAMorder=PairedKeepInputOrder is presently only compatible with SAM output, i.e. default --outSMAtype SAM\n"; errOut <<"SOLUTION: re-run STAR without --outSAMorder=PairedKeepInputOrder, or with --outSAMorder=PairedKeepInputOrder --outSMAtype SAM .\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; + }; //SJ filtering for (int ii=0;ii<4;ii++) { if (outSJfilterOverhangMin.at(ii)<0) outSJfilterOverhangMin.at(ii)=numeric_limits::max(); @@ -723,7 +723,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (outSAMfilter.mode.at(0)=="KeepOnlyAddedReferences") { outSAMfilter.KeepOnlyAddedReferences=true; - } else if (outSAMfilter.mode.at(0)=="KeepAllAddedReferences") + } else if (outSAMfilter.mode.at(0)=="KeepAllAddedReferences") { outSAMfilter.KeepAllAddedReferences=true; } else if (outSAMfilter.mode.at(0)=="None") @@ -743,8 +743,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: use default --outSAMfilter None, OR add references with --genomeFataFiles\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - + + if (outMultimapperOrder.mode=="Old_2.4") { outMultimapperOrder.random=false; @@ -770,7 +770,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: specify one of the allowed values: Fastx or SAM\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (readFilesTypeN==1) { readNmates=readFilesIn.size(); //for now the number of mates is defined by the number of input files } else if (readFilesTypeN==10) {//find the number of mates from the SAM file @@ -786,7 +786,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; readNmatesIn=readNmates; - + //two-pass if (parArray.at(twoPass.pass1readsN_par)->inputLevel>0 && twoPass.mode=="None") { @@ -838,8 +838,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: please check the path and writing permissions \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - }; - + }; + // openReadFiles depends on twoPass for reading SAM header if (runMode=="alignReads" && pGe.gLoad!="Remove" && pGe.gLoad!="LoadAndExit") {//open reads files to check if they are present openReadsFiles(); @@ -922,14 +922,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //inOut->fastaOutSeqs.open("Seqs.out.fasta"); }; }; - + //variation var.yes=false; if (var.vcfFile!="-") { var.yes=true; - }; - + }; + //WASP wasp.yes=false; wasp.SAMtag=false; @@ -951,7 +951,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --varVCFfile /path/to/file.vcf\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (wasp.yes && outSAMtype.at(0)!="BAM") { ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: --waspOutputMode requires output to BAM file\n"; @@ -1001,10 +1001,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; }; - + //solo pSolo.initialize(this); - + //outSAMattributes outSAMattrPresent.NH=false;//TODO re-write as class with constructor? outSAMattrPresent.HI=false; @@ -1015,7 +1015,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.jM=false; outSAMattrPresent.jI=false; outSAMattrPresent.RG=false; - outSAMattrPresent.MC=false; + outSAMattrPresent.MC=false; outSAMattrPresent.XS=false; outSAMattrPresent.vA=false; outSAMattrPresent.vG=false; @@ -1027,7 +1027,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.UR=false; outSAMattrPresent.UY=false; - + //for quant SAM output only NH and HI flags outSAMattrPresentQuant=outSAMattrPresent; outSAMattrPresentQuant.NH=true; @@ -1075,10 +1075,10 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrPresent.vA=true; } else if (vAttr1.at(ii)== "vG") { outSAMattrOrder.push_back(ATTR_vG); - outSAMattrPresent.vG=true; + outSAMattrPresent.vG=true; } else if (vAttr1.at(ii)== "vW") { outSAMattrOrder.push_back(ATTR_vW); - outSAMattrPresent.vW=true; + outSAMattrPresent.vW=true; } else if (vAttr1.at(ii)== "RG") { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); @@ -1086,31 +1086,31 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (vAttr1.at(ii)== "rB") { outSAMattrOrder.push_back(ATTR_rB); outSAMattrOrderQuant.push_back(ATTR_rB); - outSAMattrPresent.rB=true; + outSAMattrPresent.rB=true; } else if (vAttr1.at(ii)== "ch") { outSAMattrOrder.push_back(ATTR_ch); outSAMattrOrderQuant.push_back(ATTR_ch); - outSAMattrPresent.ch=true; + outSAMattrPresent.ch=true; } else if (vAttr1.at(ii)== "MC") { outSAMattrOrder.push_back(ATTR_MC); outSAMattrOrderQuant.push_back(ATTR_MC); - outSAMattrPresent.MC=true; + outSAMattrPresent.MC=true; } else if (vAttr1.at(ii)== "CR") { outSAMattrOrder.push_back(ATTR_CR); outSAMattrOrderQuant.push_back(ATTR_CR); - outSAMattrPresent.CR=true; + outSAMattrPresent.CR=true; } else if (vAttr1.at(ii)== "CY") { outSAMattrOrder.push_back(ATTR_CY); outSAMattrOrderQuant.push_back(ATTR_CY); - outSAMattrPresent.CY=true; + outSAMattrPresent.CY=true; } else if (vAttr1.at(ii)== "UR") { outSAMattrOrder.push_back(ATTR_UR); outSAMattrOrderQuant.push_back(ATTR_UR); - outSAMattrPresent.UR=true; + outSAMattrPresent.UR=true; } else if (vAttr1.at(ii)== "UY") { outSAMattrOrder.push_back(ATTR_UY); outSAMattrOrderQuant.push_back(ATTR_UY); - outSAMattrPresent.UY=true; + outSAMattrPresent.UY=true; } else if (vAttr1.at(ii)== "XS") { outSAMattrOrder.push_back(ATTR_XS); outSAMattrPresent.XS=true; @@ -1125,21 +1125,21 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + if (!var.yes && (outSAMattrPresent.vA | outSAMattrPresent.vG)) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETER error: --outSAMattributes contains vA and/or vG tag(s), but --varVCFfile is not set\n"; errOut <<"SOLUTION: re-run STAR with a --varVCFfile option, or without vA/vG tags in --outSAMattributes\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (!wasp.yes && outSAMattrPresent.vW) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETER error: --outSAMattributes contains vW tag, but --waspOutputMode is not set\n"; errOut <<"SOLUTION: re-run STAR with a --waspOutputMode option, or without vW tags in --outSAMattributes\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - + if (outSAMattrRG.size()>0 && !outSAMattrPresent.RG) { outSAMattrOrder.push_back(ATTR_RG); outSAMattrOrderQuant.push_back(ATTR_RG); @@ -1162,15 +1162,15 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrOrderQuant.push_back(ATTR_vW); outSAMattrPresent.vW=true; inOut->logMain << "WARNING --waspOutputMode is set, therefore STAR will output vW attribute" <logMain, EXIT_CODE_PARAMETER, *this); - }; - + }; + //chimeric pCh.out.bam=false; pCh.out.junctions=false; @@ -1187,7 +1187,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (type1=="HardClip") { pCh.out.bamHardClip=true; } else if (type1=="SoftClip") { - pCh.out.bamHardClip=false; + pCh.out.bamHardClip=false; } else { ostringstream errOut; errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); }; - if (pCh.multimapNmax>0 && (pCh.out.bam || pCh.out.samOld)) { + if (pCh.multimapNmax>0 && (pCh.out.bam || pCh.out.samOld)) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax > 0 (new chimeric detection) presently only works with --chimOutType Junctions\n"; errOut <<"SOLUTION: re-run with --chimOutType Junctions\n"; @@ -1262,8 +1262,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters alignEndsType.ext[0][0]=true; } else if (alignEndsType.in=="Extend5pOfReads12" ) { - alignEndsType.ext[0][0]=true; - alignEndsType.ext[1][0]=true; + alignEndsType.ext[0][0]=true; + alignEndsType.ext[1][0]=true; } else if (alignEndsType.in=="Extend3pOfRead1" ) { alignEndsType.ext[0][1]=true; @@ -1386,11 +1386,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else if (outSAMunmapped.mode.at(0)=="Within" && outSAMunmapped.mode.size()==1) { outSAMunmapped.yes=true; outSAMunmapped.within=true; - outSAMunmapped.keepPairs=false; + outSAMunmapped.keepPairs=false; } else if (outSAMunmapped.mode.at(0)=="Within" && outSAMunmapped.mode.at(1)=="KeepPairs") { outSAMunmapped.yes=true; outSAMunmapped.within=true; - outSAMunmapped.keepPairs=true; + outSAMunmapped.keepPairs=true; } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option for --outSAMunmapped="; @@ -1413,7 +1413,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; - + if (alignInsertionFlush.in=="None") { alignInsertionFlush.flushRight=false; } else if (alignInsertionFlush.in=="Right") { @@ -1424,35 +1424,35 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "SOLUTION: use allowed option: None or Right"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - + + //peOverlap if (peOverlap.NbasesMin>0) { peOverlap.yes=true; } else { peOverlap.yes=false; }; - + //read parameters // if (pReads.strandString=="Unstranded") { // pReads.strand=0; // } else if (pReads.strandString=="Forward") { - // pReads.strand=1; + // pReads.strand=1; // } else if (pReads.strandString=="Reverse") { - // pReads.strand=2; + // pReads.strand=2; // } else { // ostringstream errOut; // errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in of --readStrand="<logMain, EXIT_CODE_PARAMETER, *this); // }; - + // outSAMreadIDnumber=false; if (outSAMreadID=="Number") { outSAMreadIDnumber=true; }; - + //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" < outSAMattrOrder, outSAMattrOrderQuant; @@ -151,7 +151,7 @@ class Parameters { uint32 outBAMcoordNbins; uint32 outBAMsortingBinsN;//user-defined number of bins for sorting string outBAMsortTmpDir; - + // string bamRemoveDuplicatesType; // uint bamRemoveDuplicatesMate2basesN; struct { @@ -160,7 +160,7 @@ class Parameters { bool markMulti; uint mate2basesN; } removeDuplicates; - + int outBAMsortingThreadN, outBAMsortingThreadNactual; uint64 *outBAMsortingBinStart; //genomic starts for bins for sorting BAM files uint16 outSAMflagOR, outSAMflagAND; @@ -176,14 +176,14 @@ class Parameters { vector mode; bool yes; bool KeepOnlyAddedReferences; - bool KeepAllAddedReferences; + bool KeepAllAddedReferences; } outSAMfilter; struct { string mode; bool random; } outMultimapperOrder; - + struct { bool yes; uint NbasesMin; @@ -279,19 +279,19 @@ class Parameters { bool yes; string outFile; } geCount; - + struct { bool yes; } geneFull; } quant; - + //variation parameters struct { bool yes; string vcfFile; } var; - + struct { bool yes; bool SAMtag; @@ -300,7 +300,7 @@ class Parameters { //solo ParametersSolo pSolo; - + //chimeric ParametersChimeric pCh; @@ -310,7 +310,7 @@ class Parameters { //not really parameters, but global variables: array,2> sjAll; - uint64 sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered + uint64 sjNovelN, *sjNovelStart, *sjNovelEnd; //novel junctions collapased and filtered ////////////////////// CLEAN-UP needed InOutStreams *inOut; //main input output streams diff --git a/ParametersChimeric.h b/ParametersChimeric.h index ded96cc..b5da3e8 100644 --- a/ParametersChimeric.h +++ b/ParametersChimeric.h @@ -10,9 +10,9 @@ class ParametersChimeric uint segmentReadGapMax; //max read gap for stitching chimeric windows int scoreMin,scoreDropMax,scoreSeparation, scoreJunctionNonGTAG; //min chimeric score uint mainSegmentMultNmax; - + uint multimapScoreRange, multimapNmax, nonchimScoreDropMin; - + vector outJunctionFormat; struct diff --git a/ParametersGenome.h b/ParametersGenome.h index 0f4af95..53408c3 100644 --- a/ParametersGenome.h +++ b/ParametersGenome.h @@ -8,20 +8,20 @@ class ParametersGenome {//"constant" genome parameters - user input vector gFastaFiles; vector gChainFiles; string gConsensusFile; - + uint gSAindexNbases;//length of the SA pre-index strings uint gChrBinNbits; uint gSAsparseD;//SA sparsity uint gSuffixLengthMax;//maximum length of the suffixes, has to be longer than read length vector gFileSizes;//size of the genome files - + vector sjdbFileChrStartEnd; string sjdbGTFfile; string sjdbGTFchrPrefix; string sjdbGTFfeatureExon; string sjdbGTFtagExonParentTranscript; string sjdbGTFtagExonParentGene; - string sjdbInsertSave; + string sjdbInsertSave; uint sjdbOverhang; int sjdbOverhang_par; int sjdbScore; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 24a011a..09c42a3 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -9,10 +9,10 @@ const vector ParametersSolo::featureNames={"Gene","SJ","GeneFull"}; -void ParametersSolo::initialize(Parameters *pPin) +void ParametersSolo::initialize(Parameters *pPin) { pP=pPin; - + if (typeStr=="None") { type=0; return; @@ -26,21 +26,21 @@ void ParametersSolo::initialize(Parameters *pPin) errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloType="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); - }; - + }; + if (strandStr=="Unstranded") { strand=-1; } else if (strandStr=="Forward") { strand=0; } else if (strandStr=="Reverse") { - strand=1; + strand=1; } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloStrand="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; - + for (auto &fin : featureIn) { bool finGood=false; for (uint32 ii=0; iiinOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; - + nFeatures=features.size(); - + umiDedupYes.resize(3,false); umiDedupColumns.resize(umiDedup.size()); for (uint32 ii=0; iiinOut->logMain, EXIT_CODE_PARAMETER, *pP); + exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; ///////////// finished parameters input - + //make output directory if needed if ( outFileNames[0].find_last_of("/") < outFileNames[0].size() ) {//need to create dir string dir1=pP->outFileNamePrefix+outFileNames[0].substr(0,outFileNames[0].find_last_of("/")); @@ -94,14 +94,14 @@ void ParametersSolo::initialize(Parameters *pPin) exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; - + QSbase=33;//TODO make these user-definable QSmax=33; cbMinP=0.975; - + umiMaskLow=(uint32) ( (((uint64)1)<inOut->logMain << "WARNING: CB whitelist sequence contains non-ACGT and is ignored: " << seq1 <); }; - + if (!pP->quant.trSAM.yes) { pP->quant.yes = true; pP->quant.trSAM.yes = true; diff --git a/ParametersSolo.h b/ParametersSolo.h index 4923a38..16dfe04 100755 --- a/ParametersSolo.h +++ b/ParametersSolo.h @@ -33,8 +33,8 @@ class ParametersSolo { //output vector outFileNames; //constants - uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs - + uint32 umiMaskLow, umiMaskHigh; //low/high half bit-mask or UMIs + void initialize(Parameters *pPin); private: Parameters *pP; diff --git a/Parameters_closeReadsFiles.cpp b/Parameters_closeReadsFiles.cpp index da99101..f3a22ab 100644 --- a/Parameters_closeReadsFiles.cpp +++ b/Parameters_closeReadsFiles.cpp @@ -4,9 +4,9 @@ #include void Parameters::closeReadsFiles() { for (uint imate=0; imatereadIn[imate].is_open() ) + if ( inOut->readIn[imate].is_open() ) inOut->readIn[imate].close(); - if (readFilesCommandPID[imate]>0) + if (readFilesCommandPID[imate]>0) kill(readFilesCommandPID[imate],SIGKILL); }; }; \ No newline at end of file diff --git a/Parameters_openReadsFiles.cpp b/Parameters_openReadsFiles.cpp index d2bf289..d26ca94 100644 --- a/Parameters_openReadsFiles.cpp +++ b/Parameters_openReadsFiles.cpp @@ -16,9 +16,9 @@ void Parameters::openReadsFiles() { for (uint ii=0;iireadIn[ii].is_open() ) inOut->readIn[ii].close(); - + string rfName=(readFilesPrefix=="-" ? "" : readFilesPrefix)+readFilesIn.at(ii); - + inOut->readIn[ii].open(rfName.c_str()); //try to open the Sequences file right away, exit if failed if (inOut->readIn[ii].fail()) { ostringstream errOut; @@ -118,7 +118,7 @@ void Parameters::openReadsFiles() { }; }; readFilesIndex=0; - + if (readFilesTypeN==10) {//SAM file - skip header lines readSAMheader(readFilesCommandString, readFilesNames.at(0)); }; diff --git a/Parameters_readSAMheader.cpp b/Parameters_readSAMheader.cpp index a216fc5..b13227e 100644 --- a/Parameters_readSAMheader.cpp +++ b/Parameters_readSAMheader.cpp @@ -4,7 +4,7 @@ #include void Parameters::readSAMheader(const string readFilesCommandString, const vector readFilesNames) { - + if (readFilesCommandString=="") {//simply read from file while (inOut->readIn[0].peek()=='@') { string str1; @@ -15,11 +15,11 @@ void Parameters::readSAMheader(const string readFilesCommandString, const vector }; return; }; - + string tmpFifo=outFileTmp+"tmp.fifo.header"; remove(tmpFifo.c_str()); mkfifo(tmpFifo.c_str(), S_IRUSR | S_IWUSR ); - + ifstream tmpFifoIn; for (uint32 ii=0; ii " + tmpFifo + "&"; diff --git a/ReadAlign.cpp b/ReadAlign.cpp index 0f6b555..3c15ef0 100644 --- a/ReadAlign.cpp +++ b/ReadAlign.cpp @@ -3,11 +3,11 @@ #include "Transcript.h" #include "ReadAlign.h" -ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) - : mapGen(genomeIn), P(Pin), chunkTr(TrIn) -{ +ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, int iChunk) + : mapGen(genomeIn), P(Pin), chunkTr(TrIn) +{ readNmates=P.readNmates; - winBin = new uintWinBin* [2]; + winBin = new uintWinBin* [2]; winBin[0] = new uintWinBin [P.winBinN]; winBin[1] = new uintWinBin [P.winBinN]; memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); @@ -40,14 +40,14 @@ ReadAlign::ReadAlign (Parameters& Pin, Genome &genomeIn, Transcriptome *TrIn, in #endif WA=new uiWA*[P.alignWindowsPerReadNmax]; - for (uint ii=0;ii &readTranscripts, set &readTrGenes); - + void copyRead(ReadAlign&); void waspMap(); void peOverlapMergeMap(); void peMergeMates(); void peOverlapSEtoPE(ReadAlign &seRA); - + }; #endif diff --git a/ReadAlignChunk.cpp b/ReadAlignChunk.cpp index 083954c..840d8ae 100644 --- a/ReadAlignChunk.cpp +++ b/ReadAlignChunk.cpp @@ -14,7 +14,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome }; RA = new ReadAlign(P, mapGen, chunkTr, iChunk);//new local copy of RA for each chunk - + RA->iRead=0; chunkIn=new char* [P.readNmates]; @@ -70,10 +70,10 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome RA->chunkOutSJ1=chunkOutSJ1; if (P.pCh.segmentMin>0) { - if (P.pCh.out.samOld) { + if (P.pCh.out.samOld) { chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.sam.thread", iChunk, RA->chunkOutChimSAM); }; - if (P.pCh.out.junctions) { + if (P.pCh.out.junctions) { chunkFstreamOpen(P.outFileTmp + "/Chimeric.out.junction.thread", iChunk, *RA->chunkOutChimJunction); }; }; @@ -85,7 +85,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate1.thread",iChunk, RA->chunkOutFilterBySJoutFiles[0]); if (P.readNmates==2) chunkFstreamOpen(P.outFileTmp + "/FilterBySJoutFiles.mate2.thread",iChunk, RA->chunkOutFilterBySJoutFiles[1]); }; - + if (P.wasp.yes) { RA->waspRA= new ReadAlign(Pin,genomeIn,TrIn,iChunk); }; @@ -94,7 +94,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters& Pin, Genome &genomeIn, Transcriptome delete RA->peMergeRA->chunkOutChimJunction; RA->peMergeRA->chunkOutChimJunction=RA->chunkOutChimJunction;//point to the same out-stream RA->peMergeRA->chimDet->ostreamChimJunction=RA->peMergeRA->chunkOutChimJunction; - }; + }; }; /////////////// diff --git a/ReadAlignChunk.h b/ReadAlignChunk.h index d2e4489..c21b0b9 100644 --- a/ReadAlignChunk.h +++ b/ReadAlignChunk.h @@ -40,8 +40,8 @@ class ReadAlignChunk {//chunk of reads and alignments void chunkFstreamOpen(string filePrefix, int iChunk, fstream &fstreamOut); void chunkFstreamCat (fstream &chunkOut, ofstream &allOut, bool mutexFlag, pthread_mutex_t &mutexVal); void chunkFilesCat(ostream *allOut, string filePrefix, uint &iC); - - Genome &mapGen; + + Genome &mapGen; private: }; #endif diff --git a/ReadAlignChunk_processChunks.cpp b/ReadAlignChunk_processChunks.cpp index a447679..93c2f4c 100755 --- a/ReadAlignChunk_processChunks.cpp +++ b/ReadAlignChunk_processChunks.cpp @@ -21,12 +21,12 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks } else if (P.readFilesTypeN==10 && P.inOut->readIn[0].good() && P.outFilterBySJoutStage!=2) {//SAM input && not eof && not 2nd stage string str1; - + if (nextChar=='@') {//with SAM input linest that start with @ are headers getline(P.inOut->readIn[0], str1); //read line and skip it continue; }; - + P.inOut->readIn[0] >> str1; if (str1=="FILE") { newFile=true; @@ -68,13 +68,13 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks revComplementNucleotides(seq1); reverse(qual1.begin(),qual1.end()); }; - + getline(P.inOut->readIn[0],str1); //str1 is now all SAM attributes chunkInSizeBytesTotal[imate1] += sprintf(chunkIn[imate1] + chunkInSizeBytesTotal[imate1], "%s\n%s\n+\n%s\n", str1.c_str(), seq1.c_str(), qual1.c_str()); }; }; } else if (nextChar=='@') {//fastq, not multi-line - P.iReadAll++; //increment read number + P.iReadAll++; //increment read number if (P.outFilterBySJoutStage!=2) {//not the 2nd stage of the 2-stage mapping, read ID from the 1st read string readID; P.inOut->readIn[0] >> readID; @@ -86,15 +86,15 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks if (P.inOut->readIn[0].peek()!='\n') {//2nd field exists string field2; P.inOut->readIn[0] >> field2; - if (field2.length()>=3 && field2.at(1)==':' && field2.at(2)=='Y' && field2.at(3)==':' ) + if (field2.length()>=3 && field2.at(1)==':' && field2.at(2)=='Y' && field2.at(3)==':' ) passFilterIllumina='Y'; }; - readID += ' '+ to_string(P.iReadAll)+' '+passFilterIllumina+' '+to_string(P.readFilesIndex); - + readID += ' '+ to_string(P.iReadAll)+' '+passFilterIllumina+' '+to_string(P.readFilesIndex); + //ignore the rest of the read name for both mates for (uint imate=0; imatereadIn[imate].ignore(DEF_readNameSeqLengthMax,'\n'); - + if (P.pSolo.type==1) {//record barcode sequence string seq1; getline(P.inOut->readIn[1],seq1); @@ -111,7 +111,7 @@ void ReadAlignChunk::processChunks() {//read-map-write chunks getline(P.inOut->readIn[1],seq1); //read qualities readID += ' ' + seq1; }; - + //copy the same readID to both mates for (uint imate=0; imatereadIn[0].good()) {//end of stream P.inOut->logMain << "Thread #" <1) + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexOutUnmappedFastx); for (uint ii=0;iichunkOutUnmappedReadsStream[ii],P.inOut->outUnmappedReadsStream[ii], false, g_threadChunks.mutexOutUnmappedFastx); }; - if (P.runThreadN>1) + if (P.runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexOutUnmappedFastx); }; }; diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index b6025b2..82a4c77 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -97,10 +97,10 @@ int bamAttrArrayWriteSAMtags(string &attrStr, char *attrArray) {//write bam reco pos2 = attrStr.find('\t',pos1); string attr1 = attrStr.substr(pos1, pos2-pos1); pos1=pos2+1; - + if (attr1.empty()) continue; //extra tab at the beginning, or consecutive tabs - + switch (attr1.at(3)) { case 'i': { @@ -111,25 +111,25 @@ int bamAttrArrayWriteSAMtags(string &attrStr, char *attrArray) {//write bam reco case 'A': { char a1=attr1.at(5); - nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); break; - }; + }; break; case 'Z': { string a1=attr1.substr(5); - nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); break; }; case 'f': { float a1=stof(attr1.substr(5)); - nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); + nattr += bamAttrArrayWrite(a1,attr1.c_str(),attrArray+nattr); break; - }; + }; }; } while (pos2!= string::npos); - + return nattr; }; @@ -193,7 +193,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint uint iExMate=0; //last exon of the first mate uint16 samFLAG=0; - + bool flagPaired = P.readNmates==2; @@ -208,7 +208,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint } else { nMates=0; }; - + uint tLen=0,leftMostMate=0; if (nMates>1 && P.outSAMtlen==2) { tLen=max(trOut.exons[trOut.nExons-1][EX_G]+trOut.exons[trOut.nExons-1][EX_L],trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L])-min(trOut.exons[0][EX_G],trOut.exons[iExMate+1][EX_G]); @@ -219,7 +219,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (flagPaired) { leftMate=trOut.Str; }; - + if (P.outSAMattrPresent.MC) { calcCIGAR(trOut, nMates, iExMate, leftMate); }; @@ -280,7 +280,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWrite((to_string((uint) alignType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers if (!P.outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); - + } else {//this mate is mapped if (flagPaired) {//paired reads samFLAG=0x0001; @@ -425,7 +425,7 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWrite(tagMD,"MD",attrOutArray+attrN); break; case ATTR_RG: - attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(P.outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); break; case ATTR_rB: { @@ -434,58 +434,58 @@ int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint rb.push_back( (int32) trOut.exons[ii][EX_R]+1 ); rb.push_back( (int32) trOut.exons[ii][EX_R]+trOut.exons[ii][EX_L]); rb.push_back( (int32) (trOut.exons[ii][EX_G]-mapGen.chrStart[trOut.Chr]+1) ); - rb.push_back( (int32) (trOut.exons[ii][EX_G]-mapGen.chrStart[trOut.Chr]+trOut.exons[ii][EX_L]) ); + rb.push_back( (int32) (trOut.exons[ii][EX_G]-mapGen.chrStart[trOut.Chr]+trOut.exons[ii][EX_L]) ); }; - attrN+=bamAttrArrayWrite(rb,"rB",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(rb,"rB",attrOutArray+attrN); }; - break; + break; case ATTR_vG: { const vector &v1=trOut.varGenCoord; if (v1.size()>0) - attrN+=bamAttrArrayWrite(v1,"vG",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(v1,"vG",attrOutArray+attrN); break; }; case ATTR_vA: { const vector &v1=trOut.varAllele; if (v1.size()>0) - attrN+=bamAttrArrayWrite(v1,"vA",attrOutArray+attrN); + attrN+=bamAttrArrayWrite(v1,"vA",attrOutArray+attrN); break; }; case ATTR_vW: { if (waspType!=-1) - attrN+=bamAttrArrayWrite( (int32) waspType, "vW", attrOutArray+attrN ); + attrN+=bamAttrArrayWrite( (int32) waspType, "vW", attrOutArray+attrN ); break; }; - + case ATTR_ch: - if (alignType<=-10) + if (alignType<=-10) {//chimeric alignment attrN+=bamAttrArrayWrite('1',"ch",attrOutArray+attrN); - }; + }; break; case ATTR_MC: - if (nMates>1) + if (nMates>1) {//chimeric alignment attrN+=bamAttrArrayWrite(matesCIGAR[1-imate],"MC",attrOutArray+attrN); - }; + }; break; - + case ATTR_CR: attrN+=bamAttrArrayWrite(soloRead->readBar->cbSeq,"CR",attrOutArray+attrN); - break; + break; case ATTR_CY: attrN+=bamAttrArrayWrite(soloRead->readBar->cbQual,"CY",attrOutArray+attrN); - break; + break; case ATTR_UR: attrN+=bamAttrArrayWrite(soloRead->readBar->umiSeq,"UR",attrOutArray+attrN); - break; + break; case ATTR_UY: attrN+=bamAttrArrayWrite(soloRead->readBar->umiQual,"UY",attrOutArray+attrN); - break; - + break; + default: ostringstream errOut; errOut <<"EXITING because of FATAL BUG: unknown/unimplemented SAM/BAM atrribute (tag): "<1) {//no chimeric output for stage=2. REVISIT: NOT SURE why return; }; - + //output chains for out-of-STAR chimeric detection #ifdef OUTPUT_localChains { @@ -48,10 +48,10 @@ void ReadAlign::chimericDetection() { } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score chimRecord=chimDet->chimericDetectionMult(nW, readLength); }; - + if ( chimRecord ) { - statsRA.chimericAll++; - }; - + statsRA.chimericAll++; + }; + return; };//END diff --git a/ReadAlign_chimericDetectionOld.cpp b/ReadAlign_chimericDetectionOld.cpp index 1c3e897..715ece1 100644 --- a/ReadAlign_chimericDetectionOld.cpp +++ b/ReadAlign_chimericDetectionOld.cpp @@ -5,17 +5,17 @@ #include "blocksOverlap.h" bool ReadAlign::chimericDetectionOld() { - + //////////////////// chimeras //stich windows => chimeras //stich only the best window with one of the lower score ones for now - do not stich 2 lower score windows //stitch only one window on each end of the read - + if (nTr>P.pCh.mainSegmentMultNmax && nTr!=2) {//multimapping main segment, nTr==2 is a special case to be checked later return false; }; - + if ( !(P.pCh.segmentMin>0 && trBest->rLength >= P.pCh.segmentMin \ && ( trBest->exons[trBest->nExons-1][EX_R] + trBest->exons[trBest->nExons-1][EX_L] + P.pCh.segmentMin <= Lread \ || trBest->exons[0][EX_R] >= P.pCh.segmentMin ) \ @@ -23,7 +23,7 @@ bool ReadAlign::chimericDetectionOld() { //there sholud be unmapped space at the start/end, and the main window is not a multimapping window, and non non-canonical junctions, and consistend junction motif return false; }; - + int chimScoreBest=0,chimScoreNext=0; trChim[0]=*trBest; Transcript* trChim1=NULL; @@ -227,14 +227,14 @@ bool ReadAlign::chimericDetectionOld() { if ( chimN==0 ) {//the chimera was rejected because of mismatches return false; }; - + if (chimMotif==0) {//non-canonical chimera - chimScoreBest += 1+P.pCh.scoreJunctionNonGTAG; //+1 + chimScoreBest += 1+P.pCh.scoreJunctionNonGTAG; //+1 if ( !(chimScoreBest >= P.pCh.scoreMin && chimScoreBest+P.pCh.scoreDropMax >= (int) (readLength[0]+readLength[1])) ) { return false; }; }; - + //shift junction in trChim if (trChim[0].Str==1) { @@ -298,15 +298,15 @@ bool ReadAlign::chimericDetectionOld() { if ( trChim[0].Str!=trChim[1].Str || trChim[0].Chr!=trChim[1].Chr \ || (trChim[0].Str==0 ? chimJ1-chimJ0+1LLU : chimJ0-chimJ1+1LLU) > (chimMotif>=0 ? P.alignIntronMax : P.alignMatesGapMax) ) { //chimera has to bw from different chr/strand, or far away - + if (chimMotif>=0 && \ (trChim[0].exons[e0][EX_L]maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength); - }; - + }; + if ( chimRecord ) { - statsRA.chimericAll++; - }; - + statsRA.chimericAll++; + }; + return; }; diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 42f7dfd..f473eb5 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -32,7 +32,7 @@ int ReadAlign::mapOneRead() { trInit->readLength=readLength; trInit->readNmates=readNmates; trInit->readName=readName; - + trBest=trInit; uint seedSearchStartLmax=min(P.seedSearchStartLmax,(uint) (P.seedSearchStartLmaxOverLread*(Lread-1))); @@ -102,6 +102,6 @@ int ReadAlign::mapOneRead() { // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length stitchPieces(Read1, Lread); }; - + return 0; }; diff --git a/ReadAlign_mappedFilter.cpp b/ReadAlign_mappedFilter.cpp index f01a1b4..86b2345 100644 --- a/ReadAlign_mappedFilter.cpp +++ b/ReadAlign_mappedFilter.cpp @@ -16,6 +16,6 @@ void ReadAlign::mappedFilter() {//filter mapped read, add to stats statsRA.unmappedMulti++; unmapType=3; }; - - return; + + return; }; \ No newline at end of file diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index df5a057..cdd5de2 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -69,7 +69,7 @@ int ReadAlign::oneRead() {//process one read: load, map, write //map the read mapOneRead(); - + peOverlapMergeMap(); multMapSelect(); mappedFilter(); @@ -77,11 +77,11 @@ int ReadAlign::oneRead() {//process one read: load, map, write if (!peOv.yes) {//if the alignment was not mates merged - otherwise the chimeric detection was already done chimericDetection(); }; - + if (P.pCh.out.bam && chimRecord) {//chimeric alignment was recorded in main BAM files, and it contains the representative portion, so non-chimeric aligmnent is not output return 0; }; - + waspMap(); #ifdef OFF_BEFORE_OUTPUT diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 9187b00..84c8fee 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -11,7 +11,7 @@ void ReadAlign::outputAlignments() { set readGeneFull={},readGene={}; vector readTranscripts={}; vector readGeneExon={}; - + outFilterPassed=true;//only false if the alignment is held for outFilterBySJoutStage if (unmapType==-1) {//output transcripts if (P.outFilterBySJoutStage==1) {//filtering by SJout @@ -42,7 +42,7 @@ void ReadAlign::outputAlignments() { }; }; }; - + if (P.outSJfilterReads=="All" || nTr==1) { uint sjReadStartN=chunkOutSJ1->N; for (uint iTr=0;iTrlogMain, EXIT_CODE_BUG, P); }; - + nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files for (uint iTr=0;iTrChr], (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); - if (P.outBAMunsorted) {//unsorted + if (P.outBAMunsorted) {//unsorted for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; @@ -134,8 +134,8 @@ void ReadAlign::outputAlignments() { }; mateMapped[trBest->exons[0][EX_iFrag]]=true; - mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; - + mateMapped[trBest->exons[trBest->nExons-1][EX_iFrag]]=true; + if (P.readNmates>1 && !(mateMapped[0] && mateMapped[1]) ) { unmapType=4; }; @@ -168,7 +168,7 @@ void ReadAlign::outputAlignments() { if ( P.quant.geCount.yes ) { chunkTr->geneCountsAddAlign(nTr, trMult, readGeneExon); }; - + if ( P.quant.geneFull.yes ) { chunkTr->geneFullAlignOverlap(nTr, trMult, P.pSolo.strand, readGeneFull); }; @@ -178,7 +178,7 @@ void ReadAlign::outputAlignments() { }; }; }; - + if (outFilterPassed) {//otherwise the alignment was held and will be counted at the 2nd stage soloRead->record(readNameExtra.at(0), nTr, readGene, readGeneFull, trMult[0]); }; @@ -210,7 +210,7 @@ void ReadAlign::outputAlignments() { if (unmapType>=0 && P.outReadsUnmapped=="Fastx" ){//output to fasta/q files for (uint im=0;im1) + if (P.readNmates>1) chunkOutUnmappedReadsStream[im] <<" "<< int(mateMapped[0]) << int(mateMapped[1]); chunkOutUnmappedReadsStream[im] <<"\n"; chunkOutUnmappedReadsStream[im] << Read0[im] <<"\n"; diff --git a/ReadAlign_outputTranscriptSAM.cpp b/ReadAlign_outputTranscriptSAM.cpp index 8cd8ae1..f21d594 100644 --- a/ReadAlign_outputTranscriptSAM.cpp +++ b/ReadAlign_outputTranscriptSAM.cpp @@ -49,7 +49,7 @@ uint ReadAlign::outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint i *outStream <<"\t"<< '0' <<"\t"<< Read0[imate] <<"\t"<< (readFileType==2 ? Qual0[imate]:"*") \ <<"\tNH:i:0" <<"\tHI:i:0" <<"\tAS:i:"<mapGen.nChrReal) samFlagCommon+=0x0008; //not mapped as pair - } else + } else {//paired align if (P.alignEndsProtrude.concordantPair || \ ( (trOut.exons[0][EX_G] <= trOut.exons[iExMate+1][EX_G]+trOut.exons[0][EX_R]) && \ - (trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L] <= trOut.exons[trOut.nExons-1][EX_G]+Lread-trOut.exons[trOut.nExons-1][EX_R]) ) ) + (trOut.exons[iExMate][EX_G]+trOut.exons[iExMate][EX_L] <= trOut.exons[trOut.nExons-1][EX_G]+Lread-trOut.exons[trOut.nExons-1][EX_R]) ) ) {//properly paired samFlagCommon+=0x0002; }; }; - } else + } else {//single end samFlagCommon=0; }; - if (readFilter=='Y') samFlagCommon+=0x200; //not passing quality control + if (readFilter=='Y') samFlagCommon+=0x200; //not passing quality control uint Str= trOut.Str;//note that Strand = the mate on the left uint leftMate=0; //the mate (0 or 1) which is on the left if (flagPaired) { leftMate=Str; }; - + if (P.outSAMattrPresent.MC) { calcCIGAR(trOut, nMates, iExMate, leftMate); }; - + uint samFLAG; - + for (uint imate=0;imate1) { *outStream<< "\tMC:Z:" <" << readName+1; - + //merge PE mates into SE peMergeRA->copyRead(*this); peMergeRA->peMergeMates(); @@ -37,7 +37,7 @@ void ReadAlign::peOverlapMergeMap() { //cout << "\n"; return; }; - + //convert best alignment SE to PE //trA=*trInit; //trA.peOverlapSEtoPE(peOv.nOv, *peMergeRA->trBest); @@ -45,22 +45,22 @@ void ReadAlign::peOverlapMergeMap() { //if (trA.maxScoremaxScore || trA.nMM > outFilterMismatchNmaxTotal) {//merged-mate SE alignment has lower score than the PE // return; //}; - + intScore peScore=trBest->maxScore; - + //convert SE to PE *this ReadAlign peMergeRA->peOv=peOv; peOverlapSEtoPE(*peMergeRA); - + //debug //if (oldScore>trBest->maxScore || trBest->maxScoretrBest->maxScore) // cout << readName << " "<< oldScore << " "<< peMergeRA->trBest->maxScore << " "<maxScore << endl; - - + + //chimeric detection for SE chimericDetectionPEmerged(*peMergeRA); - //debug + //debug //cout << "\n"; //for (uint ii=0;iiLread;ii++) { // cout <Read1[0][ii]]; @@ -68,16 +68,16 @@ void ReadAlign::peOverlapMergeMap() { //cout << "\n"; //P.alignSplicedMateMapLminOverLmate=P_alignSplicedMateMapLminOverLmate; - + if (peScore<=trBest->maxScore || chimRecord) {//otherwise peOv.yes=false peOv.yes=true; }; - + return; }; void ReadAlign::peMergeMates() { - + uint s1=localSearchNisMM(Read1[0],readLength[0],Read1[0]+readLength[0]+1,readLength[1],P.peOverlap.MMp); uint s0=localSearchNisMM(Read1[0]+readLength[0]+1,readLength[1],Read1[0],readLength[0],P.peOverlap.MMp); @@ -90,7 +90,7 @@ void ReadAlign::peMergeMates() { peOv.nOv=0; return; }; - + if (o1>=o0) { peOv.mateStart[0]=0; peOv.mateStart[1]=s1; @@ -106,8 +106,8 @@ void ReadAlign::peMergeMates() { if (o0= mEnd[0] || t.exons[iex][EX_R]+t.exons[iex][EX_L] < mSta[0]) {//this exon is only in mate2, break this cycle // break; // }; // //record these exons for mate1 -// +// // exons[iex][EX_iFrag]=t.Str; // exons[iex][EX_sjA]=t.exons[iex][EX_sjA]; // canonSJ[iex]=t.canonSJ[iex]; @@ -179,16 +179,16 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig // sjStr[iex]=t.sjStr[iex]; // shiftSJ[iex][0]=t.shiftSJ[iex][0]; // shiftSJ[iex][1]=t.shiftSJ[iex][1]; -// +// // exons[iex][EX_R]=t.exons[iex][EX_R]-mSta[0]; -// exons[iex][EX_G]=t.exons[iex][EX_G]; +// exons[iex][EX_G]=t.exons[iex][EX_G]; // if (t.exons[iex][EX_R]+t.exons[iex][EX_L] < mEnd[0]) {//exon is fully in mate1 // exons[iex][EX_L]=t.exons[iex][EX_L]; // } else { // exons[iex][EX_L]=mEnd[0]-t.exons[iex][EX_R]; // }; // }; - + nExons=0; for (uint imate=0; imate<2; imate++) {//cycle over mate 1,2 for (uint iex=0; iex=mSta[imate]) {//exon left is inside the mate - exons[nExons][EX_G]=t.exons[iex][EX_G]; - exons[nExons][EX_L]=t.exons[iex][EX_L]; + exons[nExons][EX_G]=t.exons[iex][EX_G]; + exons[nExons][EX_L]=t.exons[iex][EX_L]; exons[nExons][EX_R]=t.exons[iex][EX_R]-mSta[imate]+mSta2[imate]; - } else {//need to split the exon - exons[nExons][EX_R]=mSta2[imate];//exon starts at the mate start + } else {//need to split the exon + exons[nExons][EX_R]=mSta2[imate];//exon starts at the mate start uint delta=mSta[imate]-t.exons[iex][EX_R]; //shorten exon by this length - exons[nExons][EX_L]=t.exons[iex][EX_L]-delta; - exons[nExons][EX_G]=t.exons[iex][EX_G]+delta; + exons[nExons][EX_L]=t.exons[iex][EX_L]-delta; + exons[nExons][EX_G]=t.exons[iex][EX_G]+delta; }; if (t.exons[iex][EX_R]+t.exons[iex][EX_L] > mEnd[imate]) {//exon right is to the left of the mate end, shorten the exon @@ -228,8 +228,8 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig sjStr[nExons-1]=0; shiftSJ[nExons-1][0]=0; shiftSJ[nExons-1][1]=0; - }; - + }; + //copy scalar variables for (uint ii=0;ii<3;ii++) { intronMotifs[ii]=t.intronMotifs[ii]; @@ -246,41 +246,41 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig rLength=0; for (uint iex=0;iexpeOverlapSEtoPE(peOv.mateStart, *seRA.trAll[iW][iTr]); - trAll[iW][iTr]->alignScore(Read1,mapGen.G,P); + trAll[iW][iTr]->alignScore(Read1,mapGen.G,P); if (trAll[iW][iTr]->maxScore > trAll[iW][0]->maxScore) { swap(trAll[iW][iTr],trAll[iW][0]); }; @@ -288,8 +288,8 @@ void ReadAlign::peOverlapSEtoPE(ReadAlign &seRA) {//ReAdAlign: convert SE to PE if (trAll[iW][0]->maxScore>bestScore) { trBest=trAll[iW][0]; bestScore=trBest->maxScore; - }; - }; - + }; + }; + return; }; diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 1c7f061..ee81859 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -67,7 +67,7 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript }; }; }; - + //not used anymore, at Colin Dewey's request // if (nAlignT==0 && P.outSAMunmapped=="Within") {//read could be mapped to genome, but not transcriptome - output as unmapped // uint unmapType=5; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index a7deebb..80c625a 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -310,7 +310,7 @@ std::time(&timeStart); WAincl[ia]=true; break; }; - + }; }; stitchWindowSeeds(iW, iW1, WAincl, R[trA.roStr==0 ? 0:2]); diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 1cf4896..4afce97 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -46,7 +46,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { //check the length of the iS2 exon. TODO: build the transcripts vs iS1, check the actual exon length bool exonLongEnough = trA1.exons[0][EX_L] >= ( trA1.sjAnnot[0]==0 ? P.alignSJoverhangMin : P.alignSJDBoverhangMin ); - + if (exonLongEnough && score2>0 && score2+scoreSeedBest[iS2] > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2+scoreSeedBest[iS2]; scoreSeedBestMM[iS1]=trA1.nMM; @@ -59,9 +59,9 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { P.alignEndsType.ext[WA[iW][iS1][WA_iFrag]][trA.Str], &trA1) ) {//if could extend score2 += trA1.maxScore; }; - + bool exonLongEnough = (WA[iW][iS1][WA_Length]+trA1.extendL) >= P.alignSJoverhangMin; //TODO new parameter to control end exons length - + if (exonLongEnough && score2 > scoreSeedBest[iS1] ) { scoreSeedBest[iS1]=score2; scoreSeedBestInd[iS1]=iS1; @@ -73,7 +73,7 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { intScore scoreBest=0; uint scoreBestInd=0; - + for (uint iS1=0;iS1= P.alignSJoverhangMin; //TODO new parameter to control end exons length - + if (exonLongEnough && scoreSeedBest[iS1]>scoreBest) {//record new best transcript scoreBest=scoreSeedBest[iS1]; scoreBestInd=iS1; @@ -211,9 +211,9 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { //filter strand consistency uint sjN=0; - trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; + trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex=0) + if (trA.canonSJ[iex]>=0) {//junctions - others are indels sjN++; trA.intronMotifs[trA.sjStr[iex]]++; @@ -228,8 +228,8 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R) { trA.sjMotifStrand=0; if (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0 && P.outFilterIntronStrands=="RemoveInconsistentStrands") - return; - + return; + if (sjN>0 && trA.sjMotifStrand==0 && P.outSAMstrandField=="intronMotif") {//strand not defined for a junction return; }; diff --git a/ReadAlign_waspMap.cpp b/ReadAlign_waspMap.cpp index b1dce67..1d61974 100644 --- a/ReadAlign_waspMap.cpp +++ b/ReadAlign_waspMap.cpp @@ -11,8 +11,8 @@ void ReadAlign::waspMap() { waspType=7; return; }; - - + + waspRA->copyRead(*this); vector vA=trBest->varAllele; @@ -23,9 +23,9 @@ void ReadAlign::waspMap() { return; }; }; - - + + vector> vvA {{}}; //all combinations for (const auto& u : vA) {//cycle over vars, each time add new variant by adding 2 variants to each of the existing combinations (void) u; //to avoid unused warning @@ -39,12 +39,12 @@ void ReadAlign::waspMap() { vvA=move(r); }; - + for (const auto& vA1 : vvA) {//cycle over all combinations if (vA1==vA) continue; //this combination was already mapped as the real read - + for (uint iv=0; ivmapOneRead(); waspRA->multMapSelect(); waspRA->mappedFilter(); - + if (waspRA->unmapType!=-1) { waspType=4; return; @@ -74,7 +74,7 @@ void ReadAlign::waspMap() { waspType=6; return; } else { - for (uint ii=0; iinExons; ii++) { + for (uint ii=0; iinExons; ii++) { for (uint jj=0; jj<=2; jj++) { if (trBest->exons[ii][jj]!=waspRA->trBest->exons[ii][jj]) { waspType=6; @@ -83,19 +83,19 @@ void ReadAlign::waspMap() { }; }; }; - }; + }; waspType=1; //all combinations resulted in the same alignment return; }; -void ReadAlign::copyRead(ReadAlign &r) {//copy read information only +void ReadAlign::copyRead(ReadAlign &r) {//copy read information only Lread=r.Lread; readLength[0]=r.readLength[0];readLength[1]=r.readLength[1]; readLengthOriginal[0]=r.readLengthOriginal[0];readLengthOriginal[1]=r.readLengthOriginal[1]; readLengthPairOriginal=r.readLengthPairOriginal; outFilterMismatchNmaxTotal=r.outFilterMismatchNmaxTotal; readName=r.readName; - + for (uint ii=0;ii<=2;ii++) memcpy(Read1[ii],r.Read1[ii],Lread);//need to copy since it will be changed Qual1=r.Qual1; diff --git a/STAR.cpp b/STAR.cpp index e762414..81993c8 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -49,7 +49,7 @@ void usage(int usageType) { } -int main(int argInN, char* argIn[]) { +int main(int argInN, char* argIn[]) { // If no argument is given, or the first argument is either '-h' or '--help', run usage() if (argInN == 1) { usage(0); @@ -65,17 +65,17 @@ int main(int argInN, char* argIn[]) { *(P.inOut->logStdOut) << timeMonthDayTime(g_statsAll.timeStart) << " ..... started STAR run\n" <logMain << "DONE: Genome generation, EXITING\n" << flush; exit(0); - } else if (P.runMode=="liftOver") - { + } else if (P.runMode=="liftOver") + { for (uint ii=0; iilogMain << "EXITING because of INPUT ERROR: unknown value of input parameter runMode=" <logProgress << timeMonthDayTime(g_statsAll.timeStartMap) <<"\tStarted 1st pass mapping\n" <chunkTr);//solo for genes soloMain.processAndOutput(); - + if ( P.quant.geCount.yes ) {//output gene quantifications for (int ichunk=1; ichunkchunkTr->quants->addQuants(*(RAchunk[ichunk]->chunkTr->quants)); @@ -449,7 +449,7 @@ int main(int argInN, char* argIn[]) { totalMem-=newMem;//"release" RAM }; }; - + //concatenate all BAM files, using bam_cat char **bamBinNames = new char* [nBins]; vector bamBinNamesV; @@ -476,7 +476,7 @@ int main(int argInN, char* argIn[]) { }; g_statsAll.writeLines(P.inOut->outChimJunction, P.pCh.outJunctionFormat, "#", STAR_VERSION + string(" ") + P.commandLine); - + g_statsAll.progressReport(P.inOut->logProgress); P.inOut->logProgress << "ALL DONE!\n"<logFinal.open((P.outFileNamePrefix + "Log.final.out").c_str()); diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index e47259f..cc9baf1 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -130,15 +130,15 @@ void nuclPackBAM(char* ReadsIn, char* ReadsOut, uint Lread) {//pack nucleotides void convertNucleotidesToNumbers(const char* R0, char* R1, const uint Lread) {//transform sequence from ACGT into 0-1-2-3 code for (uint jj=0;jj start,end; vector str; vector priority; - + vector> gene; }; diff --git a/Solo.cpp b/Solo.cpp index d1d2bd4..e63b2bb 100644 --- a/Solo.cpp +++ b/Solo.cpp @@ -1,6 +1,6 @@ #include "Solo.h" -Solo::Solo(ReadAlignChunk **RAchunkIn, Parameters &Pin, Transcriptome &inTrans) +Solo::Solo(ReadAlignChunk **RAchunkIn, Parameters &Pin, Transcriptome &inTrans) : RAchunk(RAchunkIn), P(Pin), pSolo(P.pSolo), Trans(inTrans) { if (pSolo.type==0 ) @@ -16,7 +16,7 @@ void Solo::processAndOutput() { if (pSolo.type==0 ) return; - + for (uint32 ii=0; iiprocessRecords(RAchunk); }; diff --git a/Solo.h b/Solo.h index 7362ce4..e2e17cb 100644 --- a/Solo.h +++ b/Solo.h @@ -8,15 +8,15 @@ #include "SoloFeature.h" -class Solo { +class Solo { public: SoloFeature **soloFeat; - + Solo(ReadAlignChunk **RAchunk, Parameters &Pin, Transcriptome &inTrans); void processAndOutput(); - -private: + +private: ReadAlignChunk **RAchunk; Parameters &P; ParametersSolo &pSolo; diff --git a/SoloFeature.cpp b/SoloFeature.cpp index eff98cb..77aa9f7 100644 --- a/SoloFeature.cpp +++ b/SoloFeature.cpp @@ -1,12 +1,12 @@ #include "SoloFeature.h" #include "streamFuns.h" -SoloFeature::SoloFeature(int feTy, Parameters &Pin, Transcriptome &inTrans) +SoloFeature::SoloFeature(int feTy, Parameters &Pin, Transcriptome &inTrans) : featureType(feTy), P(Pin), pSolo(P.pSolo), Trans(inTrans) { readFeatSum = new SoloReadFeature(featureType,P,-1); - readBarSum = new SoloReadBarcode(P); + readBarSum = new SoloReadBarcode(P); readFeatAll = new SoloReadFeature*[P.runThreadN]; readBarAll = new SoloReadBarcode*[P.runThreadN]; diff --git a/SoloFeature.h b/SoloFeature.h index ca23ccc..3c96635 100644 --- a/SoloFeature.h +++ b/SoloFeature.h @@ -7,14 +7,14 @@ #include "SoloRead.h" -class SoloFeature { +class SoloFeature { public: SoloReadFeature *readFeatSum, **readFeatAll; SoloReadBarcode *readBarSum, **readBarAll; uint64 nReadsMapped, nCB; //total number of mapped reads - + uint32 *rGeneUMI;//mapped reads sorted by CB uint32 *indCB;//index of detected CBs in the whitelist uint32 *rCBn;//number of reads for detected CBs in the whitelist @@ -22,24 +22,24 @@ class SoloFeature { uint32 *nUperCB;//number of UMIs per CB uint32 *nGperCB;//number of genes (with >0 UMIs) per CB uint32 nCellGeneEntries;//total number of non-zero cell/gene combinations (entries in the output matrix) - + ofstream *statsStream; - + array,2> sjAll; - + SoloFeature(int feTy, Parameters &Pin, Transcriptome &inTrans); void processRecords(ReadAlignChunk **RAchunk); void collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray); - void outputResults(); + void outputResults(); -private: +private: const int32 featureType; - + Parameters &P; ParametersSolo &pSolo; Transcriptome &Trans; - - static const uint32 umiArrayStride=3; + + static const uint32 umiArrayStride=3; }; #endif diff --git a/SoloFeature_collapseUMI.cpp b/SoloFeature_collapseUMI.cpp index 8d2a152..9ec83bd 100644 --- a/SoloFeature_collapseUMI.cpp +++ b/SoloFeature_collapseUMI.cpp @@ -5,10 +5,10 @@ #define def_MarkNoColor (uint32) -1 -void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) -{ +void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMaskLow, uint32 nU0, uint32 &nU1, uint32 &nU2, uint32 &nC, vector> &vC) +{ const uint32 bitTop=1<<31; - const uint32 bitTopMask=~bitTop; + const uint32 bitTopMask=~bitTop; for (uint32 iu=0; iu1MM //1MM UMI - + //graph coloring if ( rGU[iu+2] == def_MarkNoColor && rGU[iuu+2] == def_MarkNoColor ) {//no color //new color rGU[iu+2] = nC; rGU[iuu+2] = nC; - ++nC; + ++nC; nU1 -= 2;//subtract the duplicated UMIs } else if ( rGU[iu+2] == def_MarkNoColor ) { rGU[iu+2] = rGU[iuu+2]; - --nU1;//subtract the duplicated UMIs + --nU1;//subtract the duplicated UMIs } else if ( rGU[iuu+2] == def_MarkNoColor ) { rGU[iuu+2] = rGU[iu+2]; - --nU1;//subtract the duplicated UMIs + --nU1;//subtract the duplicated UMIs } else {//both color if (rGU[iuu+2] != rGU[iu+2]) {//color conflict //uint32 p[2]={rGU[iu+2],rGU[iuu+2]}; @@ -44,7 +44,7 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMas //vC.push_back({rGU[iuu+2],rGU[iu+2]}); }; }; - + //directional collapse if ( (rGU[iuu+1] & bitTop) == 0 && (rGU[iu+1] & bitTopMask)>(2*(rGU[iuu+1] & bitTopMask)-1) ) {//iuu is duplicate of iu rGU[iuu+1] |= bitTop; @@ -52,7 +52,7 @@ void collapseUMIwith1MMlowHalf(uint32 *rGU, uint32 umiArrayStride, uint32 umiMas } else if ( (rGU[iu+1] & bitTop) == 0 && (rGU[iuu+1] & bitTopMask)>(2*(rGU[iu+1] & bitTopMask)-1) ) {//iu is duplicate of iuu rGU[iu+1] |= bitTop; --nU2;//subtract the duplicated UMIs - }; + }; }; }; }; @@ -70,20 +70,20 @@ uint32 graphNumberOfConnectedComponents(uint32 N, vector> V) {// //N=number of nodes //V=edges, list of connected nodes, each pair of nodes listed once //simple recursive DFS - + //sort -// qsort(V.data(),V.size(),2*sizeof(uint32),funCompareNumbers); +// qsort(V.data(),V.size(),2*sizeof(uint32),funCompareNumbers); if (V.size()==0) return N; - + vector> nodeEdges (N); for (uint32 ii=0; ii nodeVisited(N,false); - + uint32 nConnComp=0; for (uint32 ii=0; ii> V) {// void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nUtot, uint32 *umiArray) {//iCB = CB to collapse, nReads=number of reads for this CB //uint32 nRumiMax=0; - + qsort(rGU,rN,2*sizeof(uint32),funCompareNumbers); //sort by gene number - + //compact reads per gene uint32 gid1=-1;//current gID nGenes=0; //number of genes @@ -114,19 +114,19 @@ void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nU if (rGU[iR]!=gid1) {//record gene boundary gReadS[nGenes]=iR; gid1=rGU[iR]; - gID[nGenes]=gid1; + gID[nGenes]=gid1; ++nGenes; }; rGU[iR]=rGU[iR+1]; //shift UMIs //rGU[iR+1] storage this will be used later for counting }; gReadS[nGenes]=2*rN;//so that gReadS[nGenes]-gReadS[nGenes-1] is the number of reads for nGenes - + uint32 *nUg = new uint32[nGenes*3];//3 types of counts nUtot=0; for (uint32 iG=0; iG); //exact collapse @@ -135,23 +135,23 @@ void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nU for (uint32 iR=0; iRnRumiMax) nRumiMax=umiArray[iR1+1]; }; uint32 nU0=(iR1+umiArrayStride)/umiArrayStride; - + //collapse with 1MM uint32 nU1=nU0, nU2=nU0;//2 types of 1MM collapsing uint32 nC=0; //graph colors vector> vC;//color connections - + collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); - + //exchange low and high half of UMIs, re-sort, and look for 1MM again for (uint32 iu=0; iu>(pSolo.umiL); @@ -161,7 +161,7 @@ void SoloFeature::collapseUMI(uint32 *rGU, uint32 rN, uint32 &nGenes, uint32 &nU }; qsort(umiArray, nU0, umiArrayStride*sizeof(uint32), funCompareNumbers); collapseUMIwith1MMlowHalf(umiArray, umiArrayStride, pSolo.umiMaskLow, nU0, nU1, nU2, nC, vC); - + nUg[3*iG]=nU0; nUg[3*iG+1]=nU1+graphNumberOfConnectedComponents(nC,vC); nUg[3*iG+2]=nU2; diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp index 05a1542..b04b14e 100644 --- a/SoloFeature_outputResults.cpp +++ b/SoloFeature_outputResults.cpp @@ -4,8 +4,8 @@ #include "serviceFuns.cpp" #include "SequenceFuns.h" -void SoloFeature::outputResults() -{ +void SoloFeature::outputResults() +{ if (featureType==0) {//this only need to be done once //output genes ofstream &geneStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[1],ERROR_OUT, P); @@ -17,7 +17,7 @@ void SoloFeature::outputResults() //output CBs ofstream &cbStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[2],ERROR_OUT, P); for (auto const &cb : pSolo.cbWL) - cbStr << convertNuclInt32toString(cb,pSolo.cbL) <<'\n'; + cbStr << convertNuclInt32toString(cb,pSolo.cbL) <<'\n'; cbStr.flush(); }; @@ -28,26 +28,26 @@ void SoloFeature::outputResults() //header countMatrixStream <<"%%MatrixMarket matrix coordinate integer general\n%\n"; countMatrixStream << Trans.nGe <<' '<< pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; - + for (uint32 icb=0; icb1) {//3 counts recorded - count1[0] = rCBpp[1]; + count1[0] = rCBpp[1]; count1[1] = rCBpp[2]; - count1[2] = rCBpp[3]; + count1[2] = rCBpp[3]; rCBpp += 4; } else {//1 recorded rCBpp +=2; }; - for (uint32 ii=0; iiflush(); }; diff --git a/SoloFeature_processRecords.cpp b/SoloFeature_processRecords.cpp index 2e884a6..8ed79bc 100644 --- a/SoloFeature_processRecords.cpp +++ b/SoloFeature_processRecords.cpp @@ -2,39 +2,39 @@ #include "streamFuns.h" #include "TimeFunctions.h" -void SoloFeature::processRecords(ReadAlignChunk **RAchunk) +void SoloFeature::processRecords(ReadAlignChunk **RAchunk) { if (pSolo.type==0) return; - + time_t rawTime; time(&rawTime); - P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Starting Solo post-map for " <logMain << timeMonthDayTime(rawTime) << " ... Starting Solo post-map for " <RA->soloRead->readFeat[featureType]; - readBarAll[ii]=RAchunk[ii]->RA->soloRead->readBar; + readBarAll[ii]=RAchunk[ii]->RA->soloRead->readBar; }; for (int ii=0; iiaddCounts(*readFeatAll[ii]); - readBarSum->addCounts(*readBarAll[ii]); + readBarSum->addCounts(*readBarAll[ii]); }; - + if (!pSolo.cbWLyes) {//now we can define WL and counts pSolo.cbWL.resize(readFeatSum->cbReadCountMap.size()); readFeatSum->cbReadCount = new uint32[pSolo.cbWL.size()]; readBarSum->cbReadCountExact = new uint32[pSolo.cbWL.size()]; - + uint64 icb=0; for (auto ii=readFeatSum->cbReadCountMap.cbegin(); ii!=readFeatSum->cbReadCountMap.cend(); ++ii) { pSolo.cbWL[icb]=ii->first; readFeatSum->cbReadCount[icb]=ii->second; - readBarSum->cbReadCountExact[icb]=ii->second; + readBarSum->cbReadCountExact[icb]=ii->second; ++icb; }; }; - + //allocate arrays to store CB/gene/UMIs for all reads nCB=0;nReadsMapped=0; for (uint32 ii=0; iilogMain << timeMonthDayTime(rawTime) << " ... Finished allocating arrays for Solo " << nReadsMapped*2.0*8/1024/1024/1024 <<" GB" <inputRecords(rCBpa,readBarSum->cbReadCountExact); }; - + for (uint32 iCB=0; iCBnReadPerCBmax) nReadPerCBmax=nr; - readFeatSum->stats.V[readFeatSum->stats.nMatch] += nr; + readFeatSum->stats.V[readFeatSum->stats.nMatch] += nr; }; - + for (int ii=0; iiaddStats(*readFeatAll[ii]); readBarSum->addStats(*readBarAll[ii]); - }; - + }; + time(&rawTime); P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Finished reading reads from Solo files nCB="<statsOut(*statsStream); *statsStream << setw(50)<< pSolo.featureNames[featureType] <<":\n"; diff --git a/SoloRead.cpp b/SoloRead.cpp index e153e0e..6075078 100644 --- a/SoloRead.cpp +++ b/SoloRead.cpp @@ -4,7 +4,7 @@ SoloRead::SoloRead(Parameters &Pin, int32 iChunkIn) : iChunk(iChunkIn), P(Pin), { readBar = new SoloReadBarcode(P); readFeat = new SoloReadFeature*[pSolo.nFeatures]; - + if (pSolo.type==0) return; diff --git a/SoloRead.h b/SoloRead.h index 3f9666d..52e4151 100644 --- a/SoloRead.h +++ b/SoloRead.h @@ -8,10 +8,10 @@ class SoloRead { public: SoloReadBarcode *readBar; SoloReadFeature **readFeat; - + SoloRead(Parameters &Pin, int32 iChunkIn); void record(string &barcodeSeq, uint64 nTr, set &readTrGenes, set &readGenes, Transcript *alignOut); - + private: const int32 iChunk; Parameters &P; diff --git a/SoloReadBarcode.cpp b/SoloReadBarcode.cpp index 1818b1e..9c39ad4 100644 --- a/SoloReadBarcode.cpp +++ b/SoloReadBarcode.cpp @@ -5,17 +5,17 @@ SoloReadBarcode::SoloReadBarcode(Parameters &Pin) : P(Pin), pSolo(P.pSolo) { if (pSolo.type==0) return; - + for (uint32 ii=0; ii names={"nNinBarcode","nUMIhomopolymer","nTooMany","nNoMatch"}; } stats; - + SoloReadBarcode(Parameters &Pin); void getCBandUMI(string &readNameExtra); void addCounts(const SoloReadBarcode &rfIn); void addStats(const SoloReadBarcode &rfIn); void statsOut(ofstream &streamOut); - -private: + +private: Parameters &P; ParametersSolo &pSolo; }; diff --git a/SoloReadBarcode_getCBandUMI.cpp b/SoloReadBarcode_getCBandUMI.cpp index 32b4212..1c332c5 100644 --- a/SoloReadBarcode_getCBandUMI.cpp +++ b/SoloReadBarcode_getCBandUMI.cpp @@ -1,97 +1,97 @@ -#include "SoloReadBarcode.h" -#include "serviceFuns.cpp" -#include "SequenceFuns.h" - -void SoloReadBarcode::getCBandUMI(string &readNameExtra) -{ - if (pSolo.type==0) - return; - cbI=-999; - - cbMatch=-1; - cbMatchString=""; - - cbSeq=readNameExtra.substr(pSolo.cbS-1,pSolo.cbL); - umiSeq=readNameExtra.substr(pSolo.umiS-1,pSolo.umiL); - - uint32 qualStart = readNameExtra.find(' ',pSolo.cbL+pSolo.umiL); - cbQual=readNameExtra.substr(qualStart+pSolo.cbS,pSolo.cbL); - umiQual=readNameExtra.substr(qualStart+pSolo.umiS,pSolo.umiL); - - //check UMIs, return if bad UMIs - if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns - stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs - return; - }; - if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { - stats.V[stats.nUMIhomopolymer]++; - return; - }; - - //convert CB and check for Ns - int32 posN=convertNuclStrToInt32(cbSeq,cbB); - - if (pSolo.cbWL.size()==0) {//no whitelist - no search - if (posN!=-1) {//Ns are present, discard this read - stats.V[stats.nNinBarcode]++; - } else {//no Ns - cbI=cbB;//all possible barcodes are accepted - cbMatch=0; - }; - return; - }; - - if (posN==-2) {//>2 Ns, might already be filtered by Illumina - stats.V[stats.nNinBarcode]++; - return; - } else if (posN==-1) {//no Ns, count only for feattureType==gene - cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); - if (cbI>=0) {//exact match - cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs - cbMatch=0; - return; - }; - }; - - if (posN>=0) {//one N - uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN - for (uint32 jj=0; jj<4; jj++) { - uint32 cbB1=cbB^(jj<=0) { - if (cbI>=0) {//had another match already - stats.V[stats.nTooMany]++; - return;//with N in CB, do not allow matching >1 in WL - }; - cbI=cbI1; - }; - }; - if (cbI>=0) { - cbMatch=1; - return; - } else {//no match - stats.V[stats.nNoMatch]++; - return; - }; - }; - - //look for 1MM, posN==-1, no Ns - cbMatch=0; - cbMatchInd.clear(); - for (uint32 ii=0; ii=0) {//found match - //output all - cbI=cbI1; - cbMatchInd.push_back(cbI1); - ++cbMatch; - cbMatchString += ' ' +to_string(cbI1) + ' ' + cbQual.at(pSolo.cbL-1-ii); - }; - }; - }; - if (cbMatch==0) {//no matches - stats.V[stats.nNoMatch]++; - cbMatch=-1; - };// else cbMatch contains number of matches (1 or >1), and cbMatchString contains matches for >1 case -}; +#include "SoloReadBarcode.h" +#include "serviceFuns.cpp" +#include "SequenceFuns.h" + +void SoloReadBarcode::getCBandUMI(string &readNameExtra) +{ + if (pSolo.type==0) + return; + cbI=-999; + + cbMatch=-1; + cbMatchString=""; + + cbSeq=readNameExtra.substr(pSolo.cbS-1,pSolo.cbL); + umiSeq=readNameExtra.substr(pSolo.umiS-1,pSolo.umiL); + + uint32 qualStart = readNameExtra.find(' ',pSolo.cbL+pSolo.umiL); + cbQual=readNameExtra.substr(qualStart+pSolo.cbS,pSolo.cbL); + umiQual=readNameExtra.substr(qualStart+pSolo.umiS,pSolo.umiL); + + //check UMIs, return if bad UMIs + if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns + stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs + return; + }; + if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { + stats.V[stats.nUMIhomopolymer]++; + return; + }; + + //convert CB and check for Ns + int32 posN=convertNuclStrToInt32(cbSeq,cbB); + + if (pSolo.cbWL.size()==0) {//no whitelist - no search + if (posN!=-1) {//Ns are present, discard this read + stats.V[stats.nNinBarcode]++; + } else {//no Ns + cbI=cbB;//all possible barcodes are accepted + cbMatch=0; + }; + return; + }; + + if (posN==-2) {//>2 Ns, might already be filtered by Illumina + stats.V[stats.nNinBarcode]++; + return; + } else if (posN==-1) {//no Ns, count only for feattureType==gene + cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + if (cbI>=0) {//exact match + cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs + cbMatch=0; + return; + }; + }; + + if (posN>=0) {//one N + uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN + for (uint32 jj=0; jj<4; jj++) { + uint32 cbB1=cbB^(jj<=0) { + if (cbI>=0) {//had another match already + stats.V[stats.nTooMany]++; + return;//with N in CB, do not allow matching >1 in WL + }; + cbI=cbI1; + }; + }; + if (cbI>=0) { + cbMatch=1; + return; + } else {//no match + stats.V[stats.nNoMatch]++; + return; + }; + }; + + //look for 1MM, posN==-1, no Ns + cbMatch=0; + cbMatchInd.clear(); + for (uint32 ii=0; ii=0) {//found match + //output all + cbI=cbI1; + cbMatchInd.push_back(cbI1); + ++cbMatch; + cbMatchString += ' ' +to_string(cbI1) + ' ' + cbQual.at(pSolo.cbL-1-ii); + }; + }; + }; + if (cbMatch==0) {//no matches + stats.V[stats.nNoMatch]++; + cbMatch=-1; + };// else cbMatch contains number of matches (1 or >1), and cbMatchString contains matches for >1 case +}; diff --git a/SoloReadFeature.cpp b/SoloReadFeature.cpp index 3c4f49a..c8c6087 100644 --- a/SoloReadFeature.cpp +++ b/SoloReadFeature.cpp @@ -1,31 +1,31 @@ #include "SoloReadFeature.h" #include "streamFuns.h" -SoloReadFeature::SoloReadFeature(int32 feTy, Parameters &Pin, int iChunk) +SoloReadFeature::SoloReadFeature(int32 feTy, Parameters &Pin, int iChunk) : featureType(feTy), P(Pin), pSolo(P.pSolo) { if (pSolo.type==0) return; - + for (uint32 ii=0; ii0) { cbReadCount = new uint32[pSolo.cbWL.size()]; for (uint32 ii=0; ii=0) { strU_0 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_0_"+std::to_string(iChunk),ERROR_OUT, P); strU_1 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_1_"+std::to_string(iChunk),ERROR_OUT, P); - strU_2 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_2_"+std::to_string(iChunk),ERROR_OUT, P); + strU_2 = &fstrOpen(P.outFileTmp+"/solo"+pSolo.featureNames[featureType]+"_2_"+std::to_string(iChunk),ERROR_OUT, P); }; }; void SoloReadFeature::addCounts(const SoloReadFeature &rfIn) -{ +{ if (pSolo.cbWLyes) {//WL for (uint32 ii=0; ii cbReadCountMap; - + fstream *strU_0 ,*strU_1, *strU_2; //unique mappers, CB matches whitelist with 0,1>=2 MM struct { @@ -22,19 +22,19 @@ class SoloReadFeature { uint64 V[nStats]; vector names={"nUnmapped","nNoFeature","nAmbigFeature","nAmbigFeatureMultimap","nTooMany","nNoExactMatch","nExactMatch","nMatch","nCellBarcodes","nUMIs",}; } stats; - + string cbSeq, umiSeq, cbQual, umiQual; - + SoloReadFeature (int32 feTy, Parameters &Pin, int iChunk); void record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut); void addCounts(const SoloReadFeature &soloCBin); void addStats(const SoloReadFeature &soloCBin); void statsOut(ofstream &streamOut); void inputRecords(uint32 **cbP, uint32 *cbReadCountExact); - + private: const int32 featureType; - + Parameters &P; ParametersSolo &pSolo; }; diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp index 6ecce91..196f437 100644 --- a/SoloReadFeature_inputRecords.cpp +++ b/SoloReadFeature_inputRecords.cpp @@ -1,100 +1,100 @@ -#include -#include "SoloReadFeature.h" -#include "binarySearch2.h" -#include "serviceFuns.cpp" - -bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) -{ - if (!(*strIn >> umi)) //end of file - return false; - - if (featureType==0 || featureType==2) {//gene - *strIn >> feature; - } else if (featureType==1) {//sj - uint32 sj[2]; - *strIn >> sj[0] >> sj[1]; - feature=(uint32) binarySearch2(sj[0],sj[1],sjAll[0].data(),sjAll[1].data(),sjAll[0].size()); - }; - - return true; -}; - -void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) -{ - {//load exact matches - strU_0->flush(); - strU_0->seekg(0,ios::beg); - uint32 cb, feature, umi; - while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { - *strU_0 >> cb; - - if (!pSolo.cbWLyes) //if no-WL, the full cbInteger was recorded - now has to be placed in order - cb=binarySearchExact(cb,pSolo.cbWL.data(),pSolo.cbWL.size()); - - if (feature != (uint32)(-1)){ - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - stats.V[stats.nExactMatch]++; - }; - }; - }; - - if (!pSolo.cbWLyes) //no WL => no mismatch check - return; - - {//1 match - strU_1->flush(); - strU_1->seekg(0,ios::beg); - uint32 cb, feature, umi; - while (inputFeatureUmi(strU_1,featureType, feature, umi, P.sjAll)) { - *strU_1 >> cb; - if (cbReadCountExactTotal[cb]>0) { - if (feature != (uint32)(-1)){ - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - }; - } else { - stats.V[stats.nNoExactMatch]++; - }; - }; - }; - - {//2 matches - strU_2->flush(); - strU_2->seekg(0,ios::beg); - uint32 cb=0, feature, umi, ncb; - while (inputFeatureUmi(strU_2,featureType, feature, umi, P.sjAll)) { - if (feature == (uint32) (-1)) { - strU_2->ignore((uint32) (-1),'\n');//ignore until the end of the line - continue; //nothing to record - }; - *strU_2 >> ncb; - float ptot=0.0,pmax=0.0; - for (uint32 ii=0; ii> cbin >> qin; - if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work - qin -= pSolo.QSbase; - qin = qin < pSolo.QSmax ? qin : pSolo.QSmax; - pin=cbReadCountExactTotal[cbin]*std::pow(10.0,-qin/10.0); - ptot+=pin; - if (pin>pmax) { - cb=cbin; - pmax=pin; - }; - }; - }; - if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { - cbP[cb][0]=feature; - cbP[cb][1]=umi; - cbP[cb]+=2; - } else { - stats.V[stats.nTooMany]++; - }; - }; - }; -}; +#include +#include "SoloReadFeature.h" +#include "binarySearch2.h" +#include "serviceFuns.cpp" + +bool inputFeatureUmi(fstream *strIn, int32 featureType, uint32 &feature, uint32 &umi, array,2> &sjAll) +{ + if (!(*strIn >> umi)) //end of file + return false; + + if (featureType==0 || featureType==2) {//gene + *strIn >> feature; + } else if (featureType==1) {//sj + uint32 sj[2]; + *strIn >> sj[0] >> sj[1]; + feature=(uint32) binarySearch2(sj[0],sj[1],sjAll[0].data(),sjAll[1].data(),sjAll[0].size()); + }; + + return true; +}; + +void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) +{ + {//load exact matches + strU_0->flush(); + strU_0->seekg(0,ios::beg); + uint32 cb, feature, umi; + while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { + *strU_0 >> cb; + + if (!pSolo.cbWLyes) //if no-WL, the full cbInteger was recorded - now has to be placed in order + cb=binarySearchExact(cb,pSolo.cbWL.data(),pSolo.cbWL.size()); + + if (feature != (uint32)(-1)){ + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + stats.V[stats.nExactMatch]++; + }; + }; + }; + + if (!pSolo.cbWLyes) //no WL => no mismatch check + return; + + {//1 match + strU_1->flush(); + strU_1->seekg(0,ios::beg); + uint32 cb, feature, umi; + while (inputFeatureUmi(strU_1,featureType, feature, umi, P.sjAll)) { + *strU_1 >> cb; + if (cbReadCountExactTotal[cb]>0) { + if (feature != (uint32)(-1)){ + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + }; + } else { + stats.V[stats.nNoExactMatch]++; + }; + }; + }; + + {//2 matches + strU_2->flush(); + strU_2->seekg(0,ios::beg); + uint32 cb=0, feature, umi, ncb; + while (inputFeatureUmi(strU_2,featureType, feature, umi, P.sjAll)) { + if (feature == (uint32) (-1)) { + strU_2->ignore((uint32) (-1),'\n');//ignore until the end of the line + continue; //nothing to record + }; + *strU_2 >> ncb; + float ptot=0.0,pmax=0.0; + for (uint32 ii=0; ii> cbin >> qin; + if (cbReadCountExactTotal[cbin]>0) {//otherwise this cbin does not work + qin -= pSolo.QSbase; + qin = qin < pSolo.QSmax ? qin : pSolo.QSmax; + pin=cbReadCountExactTotal[cbin]*std::pow(10.0,-qin/10.0); + ptot+=pin; + if (pin>pmax) { + cb=cbin; + pmax=pin; + }; + }; + }; + if (ptot>0.0 && pmax>=pSolo.cbMinP*ptot) { + cbP[cb][0]=feature; + cbP[cb][1]=umi; + cbP[cb]+=2; + } else { + stats.V[stats.nTooMany]++; + }; + }; + }; +}; diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 16c2484..6edd4a6 100644 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -13,11 +13,11 @@ uint32 outputReadCB(fstream *streamOut, int32 featureType, uint32 umiB, uint32 g }; return readSJs.size(); }; - + return 0; //this should not happen }; -void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut) +void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &readGene, set &readGeneFull, Transcript *alignOut) { if (pSolo.type==0 || soloBar.cbMatch<0) return; @@ -27,16 +27,16 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re stats.V[stats.nUnmapped]++; return; }; - + vector> readSJs; - + set *readGe; if (featureType==0) { readGe = &readGene; } else if (featureType==1) { readGe = &readGeneFull; }; - + if (featureType==0 || featureType==2) {//genes //check genes, return if no gene of multimapping if (readGe->size()==0) { @@ -54,18 +54,18 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re stats.V[stats.nAmbigFeatureMultimap]++; return; }; - if (readGene.size()>1) {//for SJs, still check genes, return if multi-gene + if (readGene.size()>1) {//for SJs, still check genes, return if multi-gene stats.V[stats.nAmbigFeature]++; return; }; bool sjAnnot; alignOut->extractSpliceJunctions(readSJs, sjAnnot); if ( readSJs.empty() || (sjAnnot && readGene.size()==0) ) {//no junctions, or annotated junction buy no gene (i.e. read does not fully match transcript) - stats.V[stats.nNoFeature]++; + stats.V[stats.nNoFeature]++; return; }; }; - + if (soloBar.cbMatch==0) {//exact match uint32 n1 = outputReadCB(strU_0, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbI)); if (pSolo.cbWL.size()>0) {//WL @@ -81,6 +81,6 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re uint32 nfeat=outputReadCB(strU_2, featureType, soloBar.umiB, *readGe->begin(), readSJs, to_string(soloBar.cbMatch) + soloBar.cbMatchString); for (auto &cbi : soloBar.cbMatchInd) cbReadCount[cbi] += nfeat; - return; + return; }; }; diff --git a/SoloRead_record.cpp b/SoloRead_record.cpp index 687bdcb..04b4e6d 100644 --- a/SoloRead_record.cpp +++ b/SoloRead_record.cpp @@ -1,12 +1,12 @@ -#include "SoloRead.h" - -void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readGenes, set &readGeneFull, Transcript *alignOut) -{ - if (pSolo.type==0) - return; - - readBar->getCBandUMI(barcodeSeq); - - for (uint32 ii=0; iirecord(*readBar, nTr, readGenes, readGeneFull, alignOut); -}; +#include "SoloRead.h" + +void SoloRead::record(string &barcodeSeq, uint64 nTr, set &readGenes, set &readGeneFull, Transcript *alignOut) +{ + if (pSolo.type==0) + return; + + readBar->getCBandUMI(barcodeSeq); + + for (uint32 ii=0; iirecord(*readBar, nTr, readGenes, readGeneFull, alignOut); +}; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 1b8cf45..33b2f90 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -1,13 +1,13 @@ #include "SuffixArrayFuns.h" #include "PackedArray.h" -inline uint medianUint2(uint a, uint b) +inline uint medianUint2(uint a, uint b) { // returns (a+b)/2 return a/2 + b/2 + (a%2 + b%2)/2; }; -uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& compRes) +uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, bool& compRes) { /* compare s to g, find the maximum identity length * s2[0] read sequence; s2[1] complementary sequence @@ -103,7 +103,7 @@ uint compareSeqToGenome(Genome &mapGen, char** s2, uint S, uint N, uint L, uint }; }; -uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S) +uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, uint L1a, uint i1b, uint L1b, char** s, bool dirR, uint S) { // given SA index i3 and identity length L3, return the index of the farthest element with the same length, starting from i1,L1 or i1a,L1a, or i1b,L1b bool compRes; @@ -130,7 +130,7 @@ uint findMultRange(Genome &mapGen, uint i3, uint L3, uint i1, uint L1, uint i1a, return i1a; }; -uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd) +uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i2, bool dirR, uint& L, uint* indStartEnd) { /* find minimum mappable length of sequence s to the genome g with suffix array SA; length(s)=N; [i1 i2] is * returns number of mappings (1=unique);range indStartEnd; min mapped length = L @@ -206,7 +206,7 @@ int compareRefEnds (Genome &mapGen, uint64 SAstr, uint64 gInsert, bool strG, bo }; }; -uint compareSeqToGenome1(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, uint64 gInsert, int & compRes) +uint compareSeqToGenome1(Genome &mapGen, char** s2, uint S, uint N, uint L, uint iSA, bool dirR, uint64 gInsert, int & compRes) { /* compare s to g, find the maximum identity length * s2[0] read sequence; s2[1] complementary sequence @@ -382,7 +382,7 @@ uint funCalcSAiFromSA(char* gSeq, PackedArray& gSA, Genome &mapGen, uint iSA, in }; -int64 funCalcSAi(char *G, uint iL) +int64 funCalcSAi(char *G, uint iL) { int64 ind1=0; for (uint iL1=0;iL1<=iL;iL1++) { diff --git a/Transcript.h b/Transcript.h index a8f93e8..0259e05 100644 --- a/Transcript.h +++ b/Transcript.h @@ -47,7 +47,7 @@ class Transcript { uint lDel; //total genomic deletion length uint lIns; //total genomic insertion length - uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment + uint nUnique, nAnchor; //number of unique pieces in the alignment, number of anchor pieces in the alignment vector varInd; vector varGenCoord, varReadCoord ; @@ -63,9 +63,9 @@ class Transcript { string generateCigarP(); //generates CIGAR void peOverlapSEtoPE(uint* mSta, Transcript &t); void extractSpliceJunctions(vector> &sjOut, bool &annotYes); - + private: - + }; #endif diff --git a/Transcript_generateCigarP.cpp b/Transcript_generateCigarP.cpp index 2f266bd..9e7c3ca 100644 --- a/Transcript_generateCigarP.cpp +++ b/Transcript_generateCigarP.cpp @@ -1,7 +1,7 @@ #include "Transcript.h" #include "SequenceFuns.h" -string Transcript::generateCigarP() +string Transcript::generateCigarP() {//generates CIGARp string for the transcript with "p" operation for PE reads //p is a special CIGAR operation to encode gap between mates. This gap is negative for overlapping mates. diff --git a/Transcript_variationAdjust.cpp b/Transcript_variationAdjust.cpp index 1a3f6a4..0e56959 100644 --- a/Transcript_variationAdjust.cpp +++ b/Transcript_variationAdjust.cpp @@ -4,15 +4,15 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R) { Variation &Var=*mapGen.Var; - + if (!Var.yes) {//no variation return 0; }; - + int dScore=0;//change in the score uint nMM1=0; - + //for each block, check whether it overlaps one or more SNPs for (uint ie=0; ie3) { igt=4; @@ -45,7 +45,7 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R) //}; varAllele.push_back(igt); - + if (igt<3 && ntR != Var.snp.nt[isnp][0]) {//non-reference allele, correct nMM and score ++nMM1; @@ -55,12 +55,12 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R) }; }; }; - + #define VAR_noScoreCorrection #ifndef VAR_noScoreCorrection if (nMM1>0) {//one or more mismtaches need to be corrected - uint nMMold=nMM; + uint nMMold=nMM; alignScore(Read1, G, P); nMM-=nMM1; nMatch+=nMM1; @@ -69,6 +69,6 @@ int Transcript::variationAdjust(const Genome &mapGen, char *R) #else //#warning VAR_noScoreCorrection set: no variation score correction #endif - + return dScore; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 2c9f41c..8ec3ad0 100755 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -8,9 +8,9 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ if (!P.quant.yes) return; - + trInfoDir = P.pGe.sjdbGTFfile=="-" ? P.pGe.gDir : P.sjdbInsert.outDir; //if GTF file is given at the mapping stage, it's always used for transcript info - + ifstream &geStream = ifstrOpen(trInfoDir+"/geneInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotations.gtf option at the genome generation step or mapping step", P); geStream >> nGe; geID.resize(nGe); @@ -23,8 +23,8 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ istringstream stream1(line1); stream1 >> geID[ii] >> geName[ii] >> geBiotype[ii]; }; - geStream.close(); - + geStream.close(); + if ( P.quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info ifstream & trinfo = ifstrOpen(trInfoDir+"/transcriptInfo.tab", ERROR_OUT, "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P); @@ -41,14 +41,14 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ uint16 str1; trinfo >> trID[itr] >> trS[itr] >> trE[itr] >> trEmax[itr] >> str1 >> trExN[itr] >> trExI[itr] >> trGene[itr]; trStr[itr]=str1; - + if (!trinfo.good()) { ostringstream errOut; errOut <<"EXITING because of FATAL GENOME INDEX FILE error: transcriptInfo.tab is corrupt, or is incompatible with the current STAR version\n"; errOut <<"SOLUTION: re-generate genome index"; exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; - + }; P.inOut->logMain << "Loaded transcript database, nTr="<> exG.nEx; - + geneFull.s=new uint64[nGe]; geneFull.e=new uint64[nGe]; geneFull.eMax=new uint64[nGe]; geneFull.g=new uint32[nGe]; geneFull.str=new uint8[nGe]; - - for (uint ig=1;ig> s1 >> e1 >> str1 >> g1 >> t1; + exinfo >> s1 >> e1 >> str1 >> g1 >> t1; geneFull.s[g1]=min(geneFull.s[g1],s1); geneFull.e[g1]=max(geneFull.e[g1],e1); geneFull.str[g1] = (uint8) str1; - }; + }; exinfo.close(); uint64 *gF=new uint64 [4*nGe]; @@ -117,23 +117,23 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ gF[4*ii+2] = geneFull.str[ii]; gF[4*ii+3] = ii; }; - + qsort((void*) gF, nGe, sizeof(uint64)*4, funCompareArrays); - + for (uint ii=0;iigeneCounts.nType; itype++){ qOut << "\t" <geneCounts.cMulti; }; qOut << "\n"; - + qOut << "N_noFeature"; for (int itype=0; itypegeneCounts.nType; itype++){ qOut << "\t" <geneCounts.cNone[itype]; diff --git a/Transcriptome.h b/Transcriptome.h index 1af74b4..dbfe9a2 100644 --- a/Transcriptome.h +++ b/Transcriptome.h @@ -37,15 +37,15 @@ class Transcriptome { uint8 *str; uint32 *g; } geneFull; - + Quantifications *quants; - + //methods: Transcriptome (Parameters &Pin); //create transcriptome structure, load and initialize parameters uint32 quantAlign (Transcript &aG, Transcript *aTall, vector &readTranscripts, set &readGene);//transform coordinates for all aligns from genomic in RA to transcriptomic in RAtr void geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1); //add one alignment to gene counts void quantsAllocate(); //allocate quants structure - void quantsOutput(); //output quantification files + void quantsOutput(); //output quantification files void geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap); private: diff --git a/Transcriptome_geneCountsAddAlign.cpp b/Transcriptome_geneCountsAddAlign.cpp index 298327a..1850257 100644 --- a/Transcriptome_geneCountsAddAlign.cpp +++ b/Transcriptome_geneCountsAddAlign.cpp @@ -2,7 +2,7 @@ #include "serviceFuns.cpp" void Transcriptome::geneCountsAddAlign(uint nA, Transcript **aAll, vector &gene1) { - + gene1.assign(quants->geneCounts.nType,-1); if (nA>1) { diff --git a/Transcriptome_geneFullAlignOverlap.cpp b/Transcriptome_geneFullAlignOverlap.cpp index 0c190de..6905fb7 100644 --- a/Transcriptome_geneFullAlignOverlap.cpp +++ b/Transcriptome_geneFullAlignOverlap.cpp @@ -1,7 +1,7 @@ #include "Transcriptome.h" #include "serviceFuns.cpp" -void Transcriptome::geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap) +void Transcriptome::geneFullAlignOverlap(uint nA, Transcript **aAll, int32 strandType, set &geneOverlap) { for (uint32 iA=0; iA &chrStartIn, map &chrStart, ma string chr,id, ref, alt, dummy, sample; uint pos; nlines++; - + vcf >> chr; if (!vcf.good()) { break; }; - + if (chr.at(0)!='#') { vcf >> pos >> id >> ref >> alt >> dummy >> dummy >> dummy >> dummy >> sample; - + vector altV(3); - + if (ref.size()==1 && splitString(alt,',',altV)==1) { altV.insert(altV.begin(),ref);//add ref to the beginning - + if (chrNameIndex.count(chr)==0) {//chr not in Genome P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": chromosome '"<3 && sample.at(3)!=':') { P.inOut->logMain << "WARNING: while processing varVCFfile file=" << P.var.vcfFile <<": more than 2 alleles per sample for line number "<logMain << timeMonthDayTime(rawTime) <<" ..... loading variations VCF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... loading variations VCF\n" <logMain, EXIT_CODE_INPUT_FILES, P); }; - - + + uint *s1=new uint[2*snp.N]; for (uint ii=0;ii > nt1=snp.nt; for (uint ii=0;ii>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1) { +vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1) { vector>> snpV(2); - - if (!yes) {//no variation, return 1 empty element + + if (!yes) {//no variation, return 1 empty element vector>> snpV1(1); return snpV1; }; @@ -144,6 +144,6 @@ vector>> Variation::sjdbSnp(uint sjStart, uint sjEnd, uint s } else if (snpV.at(0) == snpV.at(1)) { snpV.pop_back(); }; - + return snpV; }; diff --git a/Variation.h b/Variation.h index dd16542..dd7ac8c 100644 --- a/Variation.h +++ b/Variation.h @@ -22,7 +22,7 @@ class SNP // char **nt; //reference and alternative bases // char *nt1; //1D array to store nt vector> nt;//reference and alternative bases - + //methods void snpOnBlocks(uint blockStart, uint blockL, int blockShift, vector>> &snpV); }; @@ -34,18 +34,18 @@ class Variation Variation (Parameters &Pin, vector &chrStart, map &chrNameIndex); //create transcriptome structure, load and initialize parameters void loadVCF(string fileIn); //load VCF file vector>> sjdbSnp(uint sjStart, uint sjEnd, uint sjdbOverhang1); //calculates snp loci in sjdb sequences - + //variables - bool yes; + bool yes; SNP snp; - + Parameters &P; //TODO: make this private - + private: string vcfFile; //string varOutFileName; //ofstream varOutStream;//output file for variations - + vector &chrStart; //this needs to be replaced with a structure that contains basic genome variables map &chrNameIndex; }; diff --git a/bamRemoveDuplicates.cpp b/bamRemoveDuplicates.cpp index 3aa6567..ef8fc64 100644 --- a/bamRemoveDuplicates.cpp +++ b/bamRemoveDuplicates.cpp @@ -167,27 +167,27 @@ void bamRemoveDuplicates(const string bamFileName, const string bamFileNameOut, uint32 chrE=0; uint32 leftE=0; uint32 rightE=0; - uint32 chrS=0; - + uint32 chrS=0; + if (!bamFileEnd) { uint32* bamP=(uint32*) (bamRaw+bamE);//pointer to the 1st mate of the pair - + bamA->data=((uint8_t*) bamP)+9*4+((bamP[3]<<24)>>24)+((bamP[4]<<16)>>16)*4+(bamP[5]+1)/2+bamP[5];//add length for: core, name, cigar, seq, qual bamA->l_data=((uint8_t*) bamP)+bamP[0]+1-bamA->data; - + nMult=bam_aux2i(bam_aux_get(bamA,"NH")); - - if (nMult==1 || (nMult>1 && P.removeDuplicates.markMulti)) + + if (nMult==1 || (nMult>1 && P.removeDuplicates.markMulti)) { bamP[4] |= (0x400<<16);//mark all aligns as duplicate, will unmark. If multimappers, onyl mark if markMult=true }; - + chrE=bamP[1]; leftE=bamP[2]; rightE=bamP[7]; - chrS=*(uint32*)(bamRaw+bamS+4*1); + chrS=*(uint32*)(bamRaw+bamS+4*1); }; if ( chrE !=chrS || (rightMax>0 && leftE>rightMax) || bamFileEnd ) {//found new group of reads to be processed, start collapsing procedure diff --git a/funCompareUintAndSuffixesMemcmp.cpp b/funCompareUintAndSuffixesMemcmp.cpp index 6b7604a..4673417 100644 --- a/funCompareUintAndSuffixesMemcmp.cpp +++ b/funCompareUintAndSuffixesMemcmp.cpp @@ -5,24 +5,24 @@ char* g_funCompareUintAndSuffixesMemcmp_G; uint64_t g_funCompareUintAndSuffixesMemcmp_L; int funCompareUintAndSuffixesMemcmp ( const void *a, const void *b) -{ +{ uint64_t* va= ((uint64_t*) a); uint64_t* vb= ((uint64_t*) b); - if (va[0]>vb[0]) + if (va[0]>vb[0]) { return 1; - } else if (va[0]vb[1] ? 1 : -1; diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp index 831d967..202397c 100644 --- a/genomeParametersWrite.cpp +++ b/genomeParametersWrite.cpp @@ -28,9 +28,9 @@ void genomeParametersWrite(string fileName, Parameters& P, string errorOut, Geno genomePar << "sjdbGTFtagExonParentGene\t" << mapGen.pGe.sjdbGTFtagExonParentGene <<"\n"; genomePar << "sjdbInsertSave\t" << mapGen.pGe.sjdbInsertSave <<"\n"; - + genomePar << "genomeFileSizes\t" << mapGen.pGe.gFileSizes.at(0); - for (uint ii=1;iilogMain << timeMonthDayTime(rawtime) << " Finished qsort - old " <logMain << timeMonthDayTime(rawtime) << " Finished qsort" <logMain << timeMonthDayTime(rawtime) << " Finished qsort"<logMain << timeMonthDayTime(rawtime) << " Finished ordering suffixes"<logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indices"<logMain << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <logStdOut << timeMonthDayTime(rawTime) <<" ..... processing annotations GTF\n" <> geneAttr; - + ifstream sjdbStreamIn ( mapGen.pGe.sjdbGTFfile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; @@ -288,8 +288,8 @@ uint64 loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen uint64 sjdbN1=sjdbLoci.chr.size(); sjdbLoci.gene.resize(sjdbN1); //need to resize in case sjdbLoci was loaded from files without gene attribute. TODO make sure gene is always present for (uint64 ii=0;ii> mapGen.pGe.gChrBinNbits]; sjdbLoci.chr.push_back(mapGen.chrName[chr1]); diff --git a/outputSJ.cpp b/outputSJ.cpp index c5041d0..750b446 100644 --- a/outputSJ.cpp +++ b/outputSJ.cpp @@ -117,11 +117,11 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters& P) {//collapses junctions fr }; }; }; - + //output junctions P.sjAll[0].reserve(allSJ.N); P.sjAll[1].reserve(allSJ.N); - + if (P.outFilterBySJoutStage!=1) {//output file ofstream outSJfileStream((P.outFileNamePrefix+"SJ.out.tab").c_str()); for (uint ii=0;ii> iReadAll >> readFilter >> readFilesIndex; //extract read number - + getline(readInStream, readNameExtra); if (!readNameExtra.empty()) { size_t n1=readNameExtra.find_first_not_of(" \t"); @@ -31,7 +31,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint readNameExtra=""; }; }; - + // readInStream.ignore(DEF_readNameSeqLengthMax,'\n');//ignore the resit of the line - just in case readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence @@ -43,7 +43,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint ++Lread; }; }; - + if (Lread<1) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR in reads input: short read sequence line: " << Lread <<"\n"; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 5a78484..8678002 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -9,7 +9,7 @@ template for (uint ii=0;ii int funCompareNumbers (const void *a, const void *b) { numT va= *((numT*) a); numT vb= *((numT*) b); @@ -35,8 +35,8 @@ template int funCompareNumbersReverse (const void *a, const void *b return 1; }; }; - - + + inline int funCompareUint1 (const void *a, const void *b) { uint va= *((uint*) a); uint vb= *((uint*) b); @@ -157,20 +157,20 @@ inline int32 binarySearch1a(argType x, argType *X, int32 N) { }; template -inline int32 binarySearch1b(argType x, argType *X, int32 N) +inline int32 binarySearch1b(argType x, argType *X, int32 N) { //binary search in the sorted list //check the boundaries first //1b returns the first X element that is >= x //X are all distinct //if x>X[N-1], -1 is returned - + if (x>X[N-1]) { return -1; } else if (x<=X[0]) { return 0; }; - + int32 i1=0, i2=N-1, i3=N/2; while (i2>i1+1) {//binary search i3=(i1+i2)/2; @@ -180,7 +180,7 @@ inline int32 binarySearch1b(argType x, argType *X, int32 N) i1=i3; }; }; - + return i2; }; @@ -190,11 +190,11 @@ inline int32 binarySearchExact(argType x, argType *X, int32 N) { //check the boundaries first //returns -1 if no match found //if X are not all distinct, no guarantee which element is returned - - if (x>X[N-1] || xX[N-1] || xi1+1) {//binary search i3=(i1+i2)/2; @@ -204,9 +204,9 @@ inline int32 binarySearchExact(argType x, argType *X, int32 N) { i1=i3; }; }; - + if (x==X[i2]) { - return i2; + return i2; } else if (x==X[i1]) { return i1; } else { diff --git a/signalFromBAM.cpp b/signalFromBAM.cpp index 810e3ce..cdf9483 100644 --- a/signalFromBAM.cpp +++ b/signalFromBAM.cpp @@ -140,7 +140,7 @@ void signalFromBAM(const string bamFileName, const string sigFileName, Parameter //NH attribute uint8_t* aNHp=bam_aux_get(bamA,"NH"); - uint32_t aNH; + uint32_t aNH; if (aNHp==NULL) { aNH=1; //no NH tag: assume NH=1 //continue; //do not process lines without NH field diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index f8cf78d..805dee9 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -109,12 +109,12 @@ void sjdbBuildIndex (Parameters &P, char *Gsj, char *G, PackedArray &SA, PackedA mapGen.nGenome=mapGen.chrStart[mapGen.nChrReal]+nGsj; mapGen.nSA+=nInd; - char GstrandBit1 = (char) (uint) floor(log(mapGen.nGenome)/log(2))+1; + char GstrandBit1 = (char) (uint) floor(log(mapGen.nGenome)/log(2))+1; if (GstrandBit1<32) GstrandBit1=32; //TODO: use simple access function for SA - + P.inOut->logMain <<"Genome size with junctions="<logMain <<"GstrandBit1="< mapGen.GstrandBit) {//too many junctions were added - GstrandBit changed ostringstream errOut; diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 8d04c51..ff688f9 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -76,7 +76,7 @@ void sjdbInsertJunctions(Parameters & P, Genome & mapGen, Genome & mapGen1, Sjdb //write an extra 0 at the end of the array, filling the last bytes that otherwise are not accessible, but will be written to disk //this is - to avoid valgrind complaints. Note that SApass1 is allocated with plenty of space to spare. mapGen.SA.writePacked(mapGen.nSA,0); - + if (P.pGe.sjdbInsertSave=="All") {//save and copy all genome files into sjdbInsert.outDir, except those created above if (P.pGe.gDir != P.sjdbInsert.outDir) @@ -89,7 +89,7 @@ void sjdbInsertJunctions(Parameters & P, Genome & mapGen, Genome & mapGen1, Sjdb mapGen.pGe.gFileSizes.clear(); mapGen.pGe.gFileSizes.push_back(mapGen.nGenome); - mapGen.pGe.gFileSizes.push_back(mapGen.SA.lengthByte); + mapGen.pGe.gFileSizes.push_back(mapGen.SA.lengthByte); genomeParametersWrite(P.sjdbInsert.outDir+("/genomeParameters.txt"), P, ERROR_OUT, mapGen); ofstream & genomeOut = ofstrOpen(P.sjdbInsert.outDir+"/Genome",ERROR_OUT, P); diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index 02a81fe..47b0e68 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -5,7 +5,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters &P, uint nGenomeReal, string outDir, Genome &mapGen, char *Gsj) { char *G=mapGen.G; - + uint *sjdbS=new uint [sjdbLoci.chr.size()]; uint *sjdbE=new uint [sjdbLoci.chr.size()]; diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 4a01bd9..1d84ead 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -109,9 +109,9 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //filter strand consistency uint sjN=0; - trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; + trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex=0) + if (trA.canonSJ[iex]>=0) {//junctions - others are indels sjN++; trA.intronMotifs[trA.sjStr[iex]]++; @@ -189,8 +189,8 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui if (trA.exons[0][EX_G] > \ trA.exons[iexM2][EX_G]+trA.exons[0][EX_R]+P.alignEndsProtrude.nBasesMax) return; //LeftMateStart > RightMateStart + allowance if (trA.exons[iexM2-1][EX_G]+trA.exons[iexM2-1][EX_L] > \ - trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]+P.alignEndsProtrude.nBasesMax) return; //LeftMateEnd > RightMateEnd +allowance - + trA.exons[trA.nExons-1][EX_G]+Lread-trA.exons[trA.nExons-1][EX_R]+P.alignEndsProtrude.nBasesMax) return; //LeftMateEnd > RightMateEnd +allowance + //check for junctions consistency uint iex1=1, iex2=iexM2+1; //last exons of the junction for (; iex1= wTr[0]->maxScore \ || ( trA.iFrag>=0 && Score+P.outFilterMultimapScoreRange >= RA->maxScoreMate[trA.iFrag] ) \ diff --git a/sysRemoveDir.cpp b/sysRemoveDir.cpp index 3a3be9f..39cb471 100644 --- a/sysRemoveDir.cpp +++ b/sysRemoveDir.cpp @@ -5,12 +5,12 @@ #include int removeFileOrDir(const char *fpath,const struct stat *sb, int typeflag, struct FTW *ftwbuf) { - + {//to avoid unused variable warning (void) sb; (void) ftwbuf; }; - + if (typeflag==FTW_F) {//file remove(fpath); } else if (typeflag==FTW_DP) {//dir From c393cd92dc1db2f5de01b8b2c69be1800325dba5 Mon Sep 17 00:00:00 2001 From: Gert Hulselmans Date: Fri, 15 Mar 2019 12:35:55 +0100 Subject: [PATCH 449/536] Add support for cell barcodes which are longer than 16 nucleotides. Add support for cell barcodes which are longer than 16 nucleotides. The old code overwrote the first nucleotides of the cell barcodes with As for position 1 till (length cell barcode - 16) as cell barcodes where converted with "convertNuclStrToInt32" and converted back to "convertNuclInt32toString" and this would cause an overflow. The number of barcodes is still limited to 2^32 after this patch. UMIs are still limited to 16 nucleotides. Longer UMIs could be supported in a similar way. --- ParametersSolo.cpp | 15 +++++++++++---- ParametersSolo.h | 2 +- SequenceFuns.cpp | 31 +++++++++++++++++++++++++++++++ SequenceFuns.h | 3 +++ SoloFeature_outputResults.cpp | 2 +- SoloReadBarcode.h | 3 ++- SoloReadBarcode_getCBandUMI.cpp | 8 ++++---- 7 files changed, 53 insertions(+), 11 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index f2e8d3e..b8e0e69 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -21,6 +21,13 @@ void ParametersSolo::initialize(Parameters *pPin) if (bL==1) bL=cbL+umiL; pP->readNmates=1; //output mates TODO: check that readNmatesIn==2 + + if (umiL > 16) { + ostringstream errOut; + errOut << "EXITING because of to high UMI length: --soloUMIlen="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); + } } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloType="<inOut->logMain, EXIT_CODE_INPUT_FILES, *pP); }; - uint32 cb1; + uint64 cb1; //convert to 2-bit format - if (convertNuclStrToInt32(seq1,cb1)) { + if (convertNuclStrToInt64(seq1,cb1)) { //cbWL.insert(cb1); cbWL.push_back(cb1); } else { pP->inOut->logMain << "WARNING: CB whitelist sequence contains non-ACGT and is ignored: " << seq1 <); + + qsort(cbWL.data(),cbWL.size(),sizeof(uint64),funCompareNumbers); if (!pP->quant.trSAM.yes) { pP->quant.yes = true; diff --git a/ParametersSolo.h b/ParametersSolo.h index e228d0a..c409506 100755 --- a/ParametersSolo.h +++ b/ParametersSolo.h @@ -13,7 +13,7 @@ class ParametersSolo { uint32 umiS,umiL; //umi start,length uint32 bL; //total barcode length string soloCBwhitelist; - std::vector cbWL; + std::vector cbWL; string strandStr; int32 strand; //features diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index cc9baf1..f2476cb 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -219,6 +219,37 @@ string convertNuclInt32toString(uint32 nuclNum, const uint32 L) { nuclOut[L-ii] = nuclChar[nuclNum & 3]; nuclNum = nuclNum >> 2; }; + + return nuclOut; +}; + +int64 convertNuclStrToInt64(const string S, uint64 &intOut) { + intOut=0; + int64 posN=-1; + for (uint64 ii=0; ii3) {//N + if (posN>=0) + return -2; //two Ns + posN=ii; + nt=0; + }; + intOut = intOut << 2; + intOut +=nt; + //intOut += nt<<(2*ii); + }; + return posN; +}; + +string convertNuclInt64toString(uint64 nuclNum, const uint32 L) { + string nuclOut(L,'N'); + string nuclChar="ACGT"; + + for (uint64 ii=1; ii<=L; ii++) { + nuclOut[L-ii] = nuclChar[nuclNum & 3]; + nuclNum = nuclNum >> 2; + }; + return nuclOut; }; diff --git a/SequenceFuns.h b/SequenceFuns.h index 09cc367..2653936 100644 --- a/SequenceFuns.h +++ b/SequenceFuns.h @@ -24,4 +24,7 @@ uint qualitySplit(char*, char*, uint, char, uint, uint, uint**); int32 convertNuclStrToInt32(const string S, uint32 &intOut); string convertNuclInt32toString(const uint32 nuclNum, const uint32 L); +int64 convertNuclStrToInt64(const string S, uint64 &intOut); +string convertNuclInt64toString(const uint64 nuclNum, const uint32 L); + #endif diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp index b04b14e..8b56cfb 100644 --- a/SoloFeature_outputResults.cpp +++ b/SoloFeature_outputResults.cpp @@ -17,7 +17,7 @@ void SoloFeature::outputResults() //output CBs ofstream &cbStr=ofstrOpen(P.outFileNamePrefix+pSolo.outFileNames[0]+pSolo.outFileNames[2],ERROR_OUT, P); for (auto const &cb : pSolo.cbWL) - cbStr << convertNuclInt32toString(cb,pSolo.cbL) <<'\n'; + cbStr << convertNuclInt64toString(cb,pSolo.cbL) <<'\n'; cbStr.flush(); }; diff --git a/SoloReadBarcode.h b/SoloReadBarcode.h index 14990b4..99d070e 100644 --- a/SoloReadBarcode.h +++ b/SoloReadBarcode.h @@ -8,7 +8,8 @@ class SoloReadBarcode { public: uint32 homoPolymer[4];//homopolymer constants string cbSeq, umiSeq, cbQual, umiQual; - uint32 cbB,umiB; + uint64 cbB; + uint32 umiB; int32 cbI; int32 cbMatch;//0=exact, 1=1 match with 1MM, 2= >1 matches with 1MM string cbMatchString;//CB matches and qualities diff --git a/SoloReadBarcode_getCBandUMI.cpp b/SoloReadBarcode_getCBandUMI.cpp index ff36da4..c16ea40 100644 --- a/SoloReadBarcode_getCBandUMI.cpp +++ b/SoloReadBarcode_getCBandUMI.cpp @@ -20,7 +20,7 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) //check UMIs, return if bad UMIs if (convertNuclStrToInt32(umiSeq,umiB)!=-1) {//convert and check for Ns - stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have MMs + stats.V[stats.nNinBarcode]++;//UMIs are not allowed to have Ns return; }; if (umiB==homoPolymer[0] || umiB==homoPolymer[1] || umiB==homoPolymer[2] || umiB==homoPolymer[3]) { @@ -29,11 +29,11 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) }; //convert CB and check for Ns - int32 posN=convertNuclStrToInt32(cbSeq,cbB); + int64 posN=convertNuclStrToInt64(cbSeq,cbB); if (posN==-2) {//>2 Ns, might already be filtered by Illumina stats.V[stats.nNinBarcode]++; return; - } else if (posN==-1) {//no Ns, count only for feattureType==gene + } else if (posN==-1) {//no Ns, count only for featureType==gene cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); if (cbI>=0) {//exact match cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs @@ -45,7 +45,7 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) if (posN>=0) {//one N uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN for (uint32 jj=0; jj<4; jj++) { - uint32 cbB1=cbB^(jj<=0) { if (cbI>=0) {//had another match already From 984bf42603a1aeca75e6ecb75c723f9a867bf76c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 5 Apr 2019 16:43:02 -0400 Subject: [PATCH 450/536] Some tweaks and test on solo_GeneFull branch. First public release of the branch. --- Parameters.cpp | 14 +++++++------- ParametersSolo.cpp | 6 ++++++ ReadAlign_outputAlignments.cpp | 8 ++------ ReadAlign_quantTranscriptome.cpp | 2 +- VERSION | 2 +- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 13a8668..4bb4499 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -1395,24 +1395,24 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //outSAMunmapped + outSAMunmapped.yes=false; + outSAMunmapped.within=false; + outSAMunmapped.keepPairs=false; if (outSAMunmapped.mode.at(0)=="None" && outSAMunmapped.mode.size()==1) { - outSAMunmapped.yes=false; - outSAMunmapped.within=false; - outSAMunmapped.keepPairs=false; + //nothing to do, all false } else if (outSAMunmapped.mode.at(0)=="Within" && outSAMunmapped.mode.size()==1) { outSAMunmapped.yes=true; outSAMunmapped.within=true; - outSAMunmapped.keepPairs=false; } else if (outSAMunmapped.mode.at(0)=="Within" && outSAMunmapped.mode.at(1)=="KeepPairs") { outSAMunmapped.yes=true; outSAMunmapped.within=true; - outSAMunmapped.keepPairs=true; + if (readNmates==2) + outSAMunmapped.keepPairs=true; } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option for --outSAMunmapped="; for (uint ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); }; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 09c42a3..7e65aa4 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -21,6 +21,7 @@ void ParametersSolo::initialize(Parameters *pPin) if (bL==1) bL=cbL+umiL; pP->readNmates=1; //output mates TODO: check that readNmatesIn==2 + } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloType="<inOut->logMain, EXIT_CODE_INPUT_FILES, *pP); + } else if (soloCBwhitelist=="None") { cbWLyes=false; } else { cbWLyes=true; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 02f0e11..7b4e7e4 100755 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -96,10 +96,6 @@ void ReadAlign::outputAlignments() { //write to SAM/BAM for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; - //mateMapped[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; - //mateMapped1 = true if a mate is present in this transcript bool mateMapped1[2]={false,false}; mateMapped1[trMult[iTr]->exons[0][EX_iFrag]]=true; @@ -194,13 +190,13 @@ void ReadAlign::outputAlignments() { }; if ( P.outSAMunmapped.within && unmapType>=0 && unmapType<4 ) {//output unmapped within && unmapped read && both mates unmapped - if (P.outBAMcoord || P.outBAMunsorted || P.quant.trSAM.yes) {//BAM output + if (P.outBAMcoord || P.outBAMunsorted || P.quant.trSAM.bamYes) {//BAM output alignBAM(*trBest, 0, 0, mapGen.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imateunsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; - if (P.quant.trSAM.yes) { + if (P.quant.trSAM.bamYes) { outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; if (P.outBAMcoord) { diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index ee81859..b18c244 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -57,7 +57,7 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript nAlignT += Tr->quantAlign(*alignG[iag],alignT+nAlignT, readTranscripts, readTrGenes); }; - if (P.quant.trSAM.bamCompression>-2) {//output Aligned.toTranscriptome.bam + if (P.quant.trSAM.bamYes) {//output Aligned.toTranscriptome.bam alignT[int(rngUniformReal0to1(rngMultOrder)*nAlignT)].primaryFlag=true; for (uint iatr=0;iatr Date: Mon, 8 Apr 2019 18:53:35 -0400 Subject: [PATCH 451/536] Pulled in Gert's request #592 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 76f080e..d2d1d87 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0f_solo_GeneFull_0408" +#define STAR_VERSION "2.7.0f_solo_GeneFull_0408a" From 3a744d8f948786b35060382fd2debcd88afcb91e Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 10 Apr 2019 16:14:30 -0400 Subject: [PATCH 452/536] Fixed problems with CB>16. --- Makefile | 4 ---- Parameters.cpp | 1 + ParametersSolo.cpp | 25 ++++++++++++++++--------- SoloFeature_outputResults.cpp | 8 +++++++- SoloReadBarcode.h | 2 +- SoloReadBarcode_getCBandUMI.cpp | 8 ++++---- SoloReadFeature_inputRecords.cpp | 3 ++- serviceFuns.cpp | 2 +- 8 files changed, 32 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 0ca4e34..4bdbfc5 100644 --- a/Makefile +++ b/Makefile @@ -85,10 +85,6 @@ cleanRelease: rm -f *.o Depend.list $(MAKE) -C htslib clean -.PHONY: install -install: - 'mv' STAR STARlong ../bin - ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),cleanRelease) ifneq ($(MAKECMDGOALS),CLEAN) diff --git a/Parameters.cpp b/Parameters.cpp index 4bb4499..574b477 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -962,6 +962,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //quantification parameters quant.yes=false; + quant.geneFull.yes=false; quant.geCount.yes=false; quant.trSAM.yes=false; quant.trSAM.bamYes=false; diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index d70eb1e..9a62088 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -17,16 +17,22 @@ void ParametersSolo::initialize(Parameters *pPin) type=0; return; } else if (typeStr=="Droplet") { - type=1; - if (bL==1) - bL=cbL+umiL; - pP->readNmates=1; //output mates TODO: check that readNmatesIn==2 if (umiL > 16) { ostringstream errOut; - errOut << "EXITING because of to high UMI length: --soloUMIlen="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + if (cbL > 31) { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: CB length is too long: --soloCBlen="<inOut->logMain, EXIT_CODE_PARAMETER, *pP); - } + }; + type=1; + if (bL==1) + bL=cbL+umiL; + pP->readNmates=1; //output mates TODO: check that readNmatesIn==2 } else { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: unrecognized option in --soloType="<quant.trSAM.bamCompression = -2; pP->quant.trSAM.indel = true; pP->quant.trSAM.softClip = true; - if (featureYes[2]) - pP->quant.geneFull.yes=true; pP->inOut->logMain << "Turning on Genomic->Transcriptomic coordinate conversion for STARsolo\n"; }; + + if (featureYes[2]) + pP->quant.geneFull.yes=true; time_t rawTime; time(&rawTime); diff --git a/SoloFeature_outputResults.cpp b/SoloFeature_outputResults.cpp index 8b56cfb..5e5b171 100644 --- a/SoloFeature_outputResults.cpp +++ b/SoloFeature_outputResults.cpp @@ -26,8 +26,14 @@ void SoloFeature::outputResults() ofstream &countMatrixStream=ofstrOpen(matrixFileName,ERROR_OUT, P); //header + uint32 featureN=0; + if (featureType==0 || featureType==2) {//genes + featureN=Trans.nGe; + } else if (featureType==1) {//sj + featureN=P.sjAll[0].size(); + }; countMatrixStream <<"%%MatrixMarket matrix coordinate integer general\n%\n"; - countMatrixStream << Trans.nGe <<' '<< pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; + countMatrixStream << featureN <<' '<< pSolo.cbWL.size() <<' '<< nCellGeneEntries << '\n'; for (uint32 icb=0; icb1 matches with 1MM string cbMatchString;//CB matches and qualities vector cbMatchInd;//matches diff --git a/SoloReadBarcode_getCBandUMI.cpp b/SoloReadBarcode_getCBandUMI.cpp index 5c9eaf5..50192dc 100755 --- a/SoloReadBarcode_getCBandUMI.cpp +++ b/SoloReadBarcode_getCBandUMI.cpp @@ -35,7 +35,7 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) if (posN!=-1) {//Ns are present, discard this read stats.V[stats.nNinBarcode]++; } else {//no Ns - cbI=cbB;//all possible barcodes are accepted + cbI=(int64) cbB;//all possible barcodes are accepted. This will overflow if CB is longer than 31b cbMatch=0; }; return; @@ -45,7 +45,7 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) stats.V[stats.nNinBarcode]++; return; } else if (posN==-1) {//no Ns, count only for featureType==gene - cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); + cbI=binarySearchExact(cbB,pSolo.cbWL.data(),pSolo.cbWL.size()); if (cbI>=0) {//exact match cbReadCountExact[cbI]++;//note that this simply counts reads per exact CB, no checks of genes or UMIs cbMatch=0; @@ -57,7 +57,7 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) uint32 posNshift=2*(pSolo.cbL-1-posN);//shift bits for posN for (uint32 jj=0; jj<4; jj++) { uint64 cbB1=cbB^(jj<(cbB1,pSolo.cbWL.data(),pSolo.cbWL.size()); if (cbI1>=0) { if (cbI>=0) {//had another match already stats.V[stats.nTooMany]++; @@ -80,7 +80,7 @@ void SoloReadBarcode::getCBandUMI(string &readNameExtra) cbMatchInd.clear(); for (uint32 ii=0; ii(cbB^(jj<<(ii*2)),pSolo.cbWL.data(),pSolo.cbWL.size()); if (cbI1>=0) {//found match //output all cbI=cbI1; diff --git a/SoloReadFeature_inputRecords.cpp b/SoloReadFeature_inputRecords.cpp index 30d5e58..be3708e 100755 --- a/SoloReadFeature_inputRecords.cpp +++ b/SoloReadFeature_inputRecords.cpp @@ -25,7 +25,8 @@ void SoloReadFeature::inputRecords(uint32 **cbP, uint32 *cbReadCountExactTotal) {//load exact matches strU_0->flush(); strU_0->seekg(0,ios::beg); - uint32 cb, feature, umi; + uint32 feature, umi; + int64 cb; while (inputFeatureUmi(strU_0, featureType, feature, umi, P.sjAll)) { *strU_0 >> cb; if (!pSolo.cbWLyes) //if no-WL, the full cbInteger was recorded - now has to be placed in order diff --git a/serviceFuns.cpp b/serviceFuns.cpp index cb0eebb..08dcde7 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -185,7 +185,7 @@ inline int32 binarySearch1b(argType x, argType *X, int32 N) }; template -inline int32 binarySearchExact(argType x, argType *X, uint64 N) { +inline int64 binarySearchExact(argType x, argType *X, uint64 N) { //binary search in the sorted list //check the boundaries first //returns -1 if no match found From a80414d1ccc10b7bf86d8dddf998aa4179654f7c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 10 Apr 2019 17:48:18 -0400 Subject: [PATCH 453/536] Fixed problems with --soloFeatures GeneFull option. --- ParametersSolo.cpp | 2 ++ ParametersSolo.h | 2 +- SoloFeature_processRecords.cpp | 2 +- Transcriptome.cpp | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 9a62088..1493c53 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -53,6 +53,7 @@ void ParametersSolo::initialize(Parameters *pPin) exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; + featureInd.resize(featureNames.size(),-1); for (auto &fin : featureIn) { bool finGood=false; for (uint32 ii=0; ii featureNames; vector featureIn; - vector features; + vector features, featureInd; uint32 nFeatures; bool featureYes[3]; //which features are requested //filtering diff --git a/SoloFeature_processRecords.cpp b/SoloFeature_processRecords.cpp index 8ed79bc..c4ac187 100755 --- a/SoloFeature_processRecords.cpp +++ b/SoloFeature_processRecords.cpp @@ -12,7 +12,7 @@ void SoloFeature::processRecords(ReadAlignChunk **RAchunk) P.inOut->logMain << timeMonthDayTime(rawTime) << " ... Starting Solo post-map for " <RA->soloRead->readFeat[featureType]; + readFeatAll[ii]=RAchunk[ii]->RA->soloRead->readFeat[pSolo.featureInd[featureType]]; readBarAll[ii]=RAchunk[ii]->RA->soloRead->readBar; }; diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 8ec3ad0..7240864 100755 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -96,8 +96,8 @@ Transcriptome::Transcriptome (Parameters &Pin) : P(Pin){ geneFull.g=new uint32[nGe]; geneFull.str=new uint8[nGe]; - for (uint ig=1;ig Date: Thu, 11 Apr 2019 16:40:08 -0400 Subject: [PATCH 454/536] Fixed a problem with solo GeneFull --- SoloReadFeature_record.cpp | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SoloReadFeature_record.cpp b/SoloReadFeature_record.cpp index 206546d..87c3960 100755 --- a/SoloReadFeature_record.cpp +++ b/SoloReadFeature_record.cpp @@ -33,7 +33,7 @@ void SoloReadFeature::record(SoloReadBarcode &soloBar, uint nTr, set &re set *readGe; if (featureType==0) { readGe = &readGene; - } else if (featureType==1) { + } else if (featureType==2) { readGe = &readGeneFull; }; diff --git a/VERSION b/VERSION index d2d1d87..aa74b6c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0f_solo_GeneFull_0408a" +#define STAR_VERSION "2.7.0f_solo_GeneFull_0410" From 5a754f7633d7877fdafe1496b20d46c43d3fdd42 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 11 Apr 2019 19:00:39 -0400 Subject: [PATCH 455/536] 2.7.0f_solo_GeneFull_0411 --- Transcriptome_geneFullAlignOverlap.cpp | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Transcriptome_geneFullAlignOverlap.cpp b/Transcriptome_geneFullAlignOverlap.cpp index 6905fb7..5dd69d3 100644 --- a/Transcriptome_geneFullAlignOverlap.cpp +++ b/Transcriptome_geneFullAlignOverlap.cpp @@ -8,7 +8,7 @@ void Transcriptome::geneFullAlignOverlap(uint nA, Transcript **aAll, int32 stran int64 gi1=-1; - for (int ib=a.nExons-1; ib>=0; ib--) {//scan through all blocks of the alignments + for (int64 ib=a.nExons-1; ib>=0; ib--) {//scan through all blocks of the alignments uint64 be1=a.exons[ib][EX_G]+a.exons[ib][EX_L]-1;//end of the block gi1=binarySearch1a(be1, geneFull.s, (int32) nGe); diff --git a/VERSION b/VERSION index aa74b6c..c52582d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0f_solo_GeneFull_0410" +#define STAR_VERSION "2.7.0f_solo_GeneFull_0411" From fa21a5a39eb3fbabd14fe9b3e2d04406bd1bbef6 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 29 Apr 2019 18:25:41 -0400 Subject: [PATCH 456/536] Stratified the GTF gene ID/name/type and transcript ID loading to safely process missing fields. --- Parameters.cpp | 4 + ParametersGenome.h | 4 + loadGTF.cpp | 76 +- parametersDefault | 10 +- parametersDefault.xxd | 5212 +++++++++++++++++++++-------------------- 5 files changed, 2673 insertions(+), 2633 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 574b477..730afb1 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -223,9 +223,13 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &pGe.sjdbFileChrStartEnd)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfile", &pGe.sjdbGTFfile)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFchrPrefix", &pGe.sjdbGTFchrPrefix)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFfeatureExon", &pGe.sjdbGTFfeatureExon)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentTranscript", &pGe.sjdbGTFtagExonParentTranscript)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentGene", &pGe.sjdbGTFtagExonParentGene)); + parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbGTFtagExonParentGeneName", &pGe.sjdbGTFtagExonParentGeneName)); + parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbGTFtagExonParentGeneType", &pGe.sjdbGTFtagExonParentGeneType)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &pGe.sjdbOverhang)); pGe.sjdbOverhang_par=parArray.size()-1; parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &pGe.sjdbScore)); diff --git a/ParametersGenome.h b/ParametersGenome.h index 53408c3..905e7e1 100644 --- a/ParametersGenome.h +++ b/ParametersGenome.h @@ -18,9 +18,13 @@ class ParametersGenome {//"constant" genome parameters - user input vector sjdbFileChrStartEnd; string sjdbGTFfile; string sjdbGTFchrPrefix; + string sjdbGTFfeatureExon; string sjdbGTFtagExonParentTranscript; string sjdbGTFtagExonParentGene; + vector sjdbGTFtagExonParentGeneName; + vector sjdbGTFtagExonParentGeneType; + string sjdbInsertSave; uint sjdbOverhang; int sjdbOverhang_par; diff --git a/loadGTF.cpp b/loadGTF.cpp index 77f43bd..5c4d239 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -107,27 +107,25 @@ uint64 loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen uint64 ex1,ex2; char str1; oneLineStream >> ex1 >> ex2 >> ddd2 >> str1 >> ddd2; //read all fields except the last - + string oneLine1; - getline(oneLineStream, oneLine1);//get the last field + getline(oneLineStream, oneLine1);//get the last field replace(oneLine1.begin(),oneLine1.end(),';',' ');//to separate attributes replace(oneLine1.begin(),oneLine1.end(),'=',' ');//for GFF3 processing - oneLineStream.str(oneLine1); - oneLineStream.clear(); - + replace(oneLine1.begin(),oneLine1.end(),'\"',' ');//now the only separator is space + //string trID(""), gID(""), attr1(""),gName(""),gBiotype(""); - array exAttrNames({mapGen.pGe.sjdbGTFtagExonParentTranscript,mapGen.pGe.sjdbGTFtagExonParentGene,"gene_name", "gene_biotype"}); //trID, gID, gName, gBiotype - array exAttr; //trID, gID, gName, gBiotype - while (oneLineStream.good()) { - string attrName1(""); - oneLineStream >> attrName1; - string attr1; - oneLineStream >> attr1; - attr1.erase(remove(attr1.begin(),attr1.end(),'"'),attr1.end()); - attr1.erase(remove(attr1.begin(),attr1.end(),';'),attr1.end()); - for (uint32 ii=0; ii> exAttrNames({ {mapGen.pGe.sjdbGTFtagExonParentTranscript}, {mapGen.pGe.sjdbGTFtagExonParentGene}, mapGen.pGe.sjdbGTFtagExonParentGeneName, mapGen.pGe.sjdbGTFtagExonParentGeneType }); //trID, gID, gName, gBiotype + vector exAttr; //trID, gID, gName, gBiotype + exAttr.resize(exAttrNames.size()); + + for (uint32 ii=0; iilogMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": no transcript_id for line:\n"; P.inOut->logMain << oneLine <<"\n"< (exAttr[0],(uint64) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value - if (transcriptID.size() < transcriptIDnumber.size()) transcriptID.push_back(exAttr[0]); - if (str1=='+') { - transcriptStrand[transcriptIDnumber[exAttr[0]]]=1; - } else if (str1=='-') { - transcriptStrand[transcriptIDnumber[exAttr[0]]]=2; - } else { - transcriptStrand[transcriptIDnumber[exAttr[0]]]=0; - }; + exAttr[0]="tr_" + chr1 +"_"+ to_string(ex1) +"_"+ to_string(ex2) +"_"+ to_string(exonN); //unique name for the transcript }; - + if (exAttr[1]=="") {//no gene ID P.inOut->logMain << "WARNING: while processing pGe.sjdbGTFfile=" << mapGen.pGe.sjdbGTFfile <<": no gene_id for line:\n"; P.inOut->logMain << oneLine <<"\n"< (exAttr[1],(uint64) geneIDnumber.size()));//insert new element if necessary with a $ - if (geneID.size() < geneIDnumber.size()) {//new gene is added - geneID.push_back(exAttr[1]); - geneAttr.push_back({exAttr[2],exAttr[3]}); - }; + exAttr[1]="MissingGeneID"; + }; + + if (exAttr[2]=="") {//no gene name + exAttr[2]=exAttr[1]; + }; + + if (exAttr[3]=="") {//no gene name + exAttr[3]="MissingGeneType"; + }; + + transcriptIDnumber.insert(std::pair (exAttr[0],(uint64) transcriptIDnumber.size()));//insert new element if necessary with a new numeric value + if (transcriptID.size() < transcriptIDnumber.size()) transcriptID.push_back(exAttr[0]); + if (str1=='+') { + transcriptStrand[transcriptIDnumber[exAttr[0]]]=1; + } else if (str1=='-') { + transcriptStrand[transcriptIDnumber[exAttr[0]]]=2; + } else { + transcriptStrand[transcriptIDnumber[exAttr[0]]]=0; + }; + + geneIDnumber.insert(std::pair (exAttr[1],(uint64) geneIDnumber.size()));//insert new element if necessary with a $ + if (geneID.size() < geneIDnumber.size()) {//new gene is added + geneID.push_back(exAttr[1]); + geneAttr.push_back({exAttr[2],exAttr[3]}); }; exonLoci[GTF_exonTrID(exonN)]=transcriptIDnumber[exAttr[0]]; diff --git a/parametersDefault b/parametersDefault index 777a5d6..5bf94ca 100755 --- a/parametersDefault +++ b/parametersDefault @@ -85,10 +85,16 @@ sjdbGTFfeatureExon exon string: feature type in GTF file to be used as exons for building transcripts sjdbGTFtagExonParentTranscript transcript_id - string: tag name to be used as exons' transcript-parents (default "transcript_id" works for GTF files) + string: GTF attribute name for parent transcript ID (default "transcript_id" works for GTF files) sjdbGTFtagExonParentGene gene_id - string: tag name to be used as exons' gene-parents (default "gene_id" works for GTF files) + string: GTF attribute name for parent gene ID (default "gene_id" works for GTF files) + +sjdbGTFtagExonParentGeneName gene_name + string(s): GTF attrbute name for parent gene name + +sjdbGTFtagExonParentGeneType gene_type gene_biotype + string(s): GTF attrbute name for parent gene type sjdbOverhang 100 int>0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1) diff --git a/parametersDefault.xxd b/parametersDefault.xxd index e54d88c..f873c06 100644 --- a/parametersDefault.xxd +++ b/parametersDefault.xxd @@ -410,1534 +410,1619 @@ unsigned char parametersDefault[] = { 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, - 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x61, 0x67, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x27, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, - 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x73, 0x69, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, - 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, - 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, - 0x31, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x47, 0x54, 0x46, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, + 0x49, 0x44, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, + 0x69, 0x64, 0x22, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x47, 0x54, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, + 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, + 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x47, 0x54, 0x46, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x20, 0x49, 0x44, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x22, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x47, 0x54, 0x46, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x6a, 0x64, + 0x62, 0x47, 0x54, 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x47, 0x54, 0x46, 0x20, 0x61, 0x74, 0x74, 0x72, 0x62, 0x75, + 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x47, 0x54, + 0x46, 0x74, 0x61, 0x67, 0x45, 0x78, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x5f, 0x62, 0x69, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x47, 0x54, 0x46, 0x20, 0x61, 0x74, 0x74, 0x72, 0x62, 0x75, 0x74, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x69, 0x64, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x69, 0x64, 0x65, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x74, 0x65, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x0a, + 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x72, 0x6f, + 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, + 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x73, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x53, 0x61, 0x76, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, - 0x20, 0x73, 0x6a, 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, - 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, - 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x53, 0x41, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x76, 0x61, 0x72, - 0x56, 0x43, 0x46, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x73, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x61, 0x76, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x6a, + 0x64, 0x62, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, + 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x41, 0x6c, 0x6c, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x62, 0x69, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x2c, 0x20, 0x53, 0x41, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x41, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, + 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x76, 0x61, 0x72, 0x56, 0x43, 0x46, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, - 0x20, 0x42, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, - 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, - 0x6f, 0x6d, 0x42, 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, - 0x65, 0x61, 0x64, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x56, 0x43, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, - 0x54, 0x51, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x53, - 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x61, 0x6d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, + 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x42, 0x41, + 0x4d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x4d, + 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, + 0x41, 0x4d, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x52, 0x65, 0x61, 0x64, + 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x50, 0x45, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x61, 0x69, 0x72, - 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, - 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x0a, - 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, - 0x61, 0x64, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, - 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x2c, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x69, 0x66, - 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x46, 0x41, 0x53, + 0x54, 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, - 0x0a, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x41, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, - 0x65, 0x78, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, - 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2c, 0x20, 0x62, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, - 0x2e, 0x62, 0x7a, 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, - 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, - 0x70, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, - 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, - 0x75, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, - 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x2c, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, - 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x20, 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, - 0x75, 0x61, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, - 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, - 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, - 0x69, 0x70, 0x33, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x53, 0x45, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, + 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, + 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, - 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, - 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, - 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, - 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, - 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, - 0x29, 0x3a, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x50, 0x45, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x72, + 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, + 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, + 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, 0x74, 0x6f, 0x6f, + 0x6c, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x0a, 0x0a, 0x72, 0x65, 0x61, + 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x52, 0x65, 0x61, 0x64, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x73, 0x29, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x64, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2c, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x29, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x69, 0x66, 0x78, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, + 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x49, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x3a, 0x20, 0x6e, + 0x6f, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x0a, 0x72, 0x65, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, 0x41, 0x20, 0x6f, + 0x72, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x3a, 0x20, 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, + 0x2e, 0x67, 0x7a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x62, + 0x7a, 0x63, 0x61, 0x74, 0x20, 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x62, 0x7a, + 0x32, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x74, 0x63, + 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x70, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x73, 0x49, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x2f, 0x4e, 0x6f, 0x74, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x2d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x2c, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x20, + 0x2f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, + 0x6d, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x61, 0x66, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x69, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x28, + 0x73, 0x29, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x28, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x72, 0x69, + 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, + 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x73, 0x29, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, - 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, - 0x64, 0x70, 0x61, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, + 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, + 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x70, 0x35, 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x28, 0x73, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x53, 0x65, 0x71, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, + 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, + 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, + 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, + 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, + 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x70, 0x33, 0x70, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4d, 0x4d, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x2e, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x33, 0x70, 0x20, 0x61, 0x64, 0x70, 0x61, + 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, + 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x70, 0x33, 0x70, 0x41, 0x66, - 0x74, 0x65, 0x72, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x33, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, - 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x49, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x2c, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x73, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x52, 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x2c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, - 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, - 0x30, 0x30, 0x29, 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, - 0x4a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, - 0x73, 0x29, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, - 0x53, 0x4a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, + 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x73, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x47, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, - 0x41, 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, - 0x41, 0x4d, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x2e, 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, - 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x4e, 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, + 0x4d, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x49, 0x4f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, + 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x35, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x73, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x28, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x2f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, + 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x20, 0x3e, 0x28, 0x32, 0x2a, 0x28, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x31, 0x2b, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x4d, 0x61, 0x74, 0x65, 0x32, 0x2b, 0x31, 0x30, 0x30, 0x29, + 0x2a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x0a, 0x0a, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x6f, 0x6e, + 0x65, 0x52, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x6e, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x29, 0x0a, + 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x53, 0x4a, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6c, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x72, 0x75, 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x29, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x62, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x54, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, - 0x20, 0x53, 0x54, 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x54, 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, + 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x52, 0x41, 0x4d, 0x20, + 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x41, 0x4d, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x3d, 0x30, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2e, + 0x20, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x20, 0x4e, 0x6f, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x53, 0x6a, 0x64, 0x62, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4e, + 0x73, 0x6a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, + 0x6d, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, + 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2c, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x6f, 0x73, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x72, 0x75, + 0x6e, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, - 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, - 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, - 0x72, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x20, + 0x43, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x6d, 0x70, + 0x44, 0x69, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x65, 0x6d, + 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, + 0x41, 0x52, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x64, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, + 0x6d, 0x70, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x53, + 0x54, 0x41, 0x52, 0x74, 0x6d, 0x70, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, + 0x6d, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, - 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x70, 0x6f, 0x72, + 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, 0x20, 0x72, 0x75, 0x6e, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, - 0x20, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x74, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, - 0x28, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, - 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, - 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, + 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, - 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, - 0x4d, 0x5f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x52, 0x65, 0x61, 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x66, 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, - 0x71, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, - 0x74, 0x65, 0x31, 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x49, 0x6c, 0x6c, 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, - 0x53, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x2d, 0x33, 0x31, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, - 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, - 0x75, 0x61, 0x73, 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, - 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, - 0x69, 0x72, 0x73, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, - 0x61, 0x79, 0x73, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, - 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x42, 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, + 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x20, 0x28, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, + 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, + 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x6f, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, + 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, + 0x41, 0x4d, 0x5f, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, + 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x42, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x5f, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2c, 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, + 0x2d, 0x2d, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x53, 0x41, 0x4d, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x61, + 0x64, 0x73, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x29, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x73, 0x29, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, + 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x46, 0x61, 0x73, 0x74, 0x78, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, + 0x61, 0x73, 0x74, 0x61, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x71, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2c, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x65, 0x31, + 0x2f, 0x32, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x51, 0x53, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x64, + 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6c, 0x6c, + 0x75, 0x6d, 0x69, 0x6e, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x2d, 0x33, 0x31, + 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, + 0x6c, 0x64, 0x5f, 0x32, 0x2e, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6c, 0x64, 0x5f, + 0x32, 0x2e, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x71, 0x75, 0x61, 0x73, + 0x69, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x20, 0x32, 0x2e, 0x35, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x28, 0x70, 0x61, 0x69, 0x72, 0x73, + 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, + 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, + 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, + 0x41, 0x4d, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, + 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x73, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x6e, 0x64, 0x2c, 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, - 0x4d, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x42, 0x41, 0x4d, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x46, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, + 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x2c, + 0x20, 0x33, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x51, 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, - 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x55, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x2d, 0x2d, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x52, 0x41, 0x4d, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x6f, 0x64, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x75, 0x6c, + 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x41, + 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, - 0x2d, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, + 0x6c, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, - 0x6f, 0x74, 0x69, 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, - 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, - 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x53, 0x41, 0x4d, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, - 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, - 0x20, 0x6a, 0x49, 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, - 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, - 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x51, + 0x53, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x20, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, - 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x2d, 0x6c, 0x69, + 0x6b, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, - 0x64, 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, 0x74, 0x69, + 0x66, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x52, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, + 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, + 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, + 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2c, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x53, 0x41, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, - 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, - 0x4d, 0x43, 0x20, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x48, 0x20, 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, + 0x20, 0x4e, 0x4d, 0x20, 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, + 0x20, 0x58, 0x53, 0x20, 0x4d, 0x43, 0x20, 0x63, 0x68, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x76, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, - 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x61, - 0x6e, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, - 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x76, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, - 0x2f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, - 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, - 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, - 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x48, 0x20, + 0x48, 0x49, 0x20, 0x41, 0x53, 0x20, 0x6e, 0x4d, 0x20, 0x4e, 0x4d, 0x20, + 0x4d, 0x44, 0x20, 0x6a, 0x4d, 0x20, 0x6a, 0x49, 0x20, 0x4d, 0x43, 0x20, + 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x20, 0x61, + 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x52, 0x20, 0x43, 0x59, 0x20, - 0x55, 0x52, 0x20, 0x55, 0x59, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, - 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x55, 0x4d, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x2a, 0x20, 0x64, 0x65, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x6e, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x30, 0x2f, 0x31, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x2f, 0x20, 0x70, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x77, 0x61, 0x73, + 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x74, 0x61, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, - 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x43, 0x52, 0x20, 0x43, 0x59, 0x20, 0x55, 0x52, 0x20, + 0x55, 0x59, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x71, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, + 0x6f, 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x55, 0x4d, 0x49, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, + 0x6c, 0x6f, 0x2a, 0x20, 0x64, 0x65, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, - 0x48, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, - 0x20, 0x30, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, - 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, - 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x2f, 0x75, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x65, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, - 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x52, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x6e, 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x49, 0x48, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x48, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2e, 0x20, 0x30, 0x20, + 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, + 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x63, + 0x68, 0x20, 0x61, 0x73, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, + 0x6b, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x54, 0x69, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, - 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x75, 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, - 0x74, 0x20, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, - 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, - 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, + 0x20, 0x53, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, - 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, - 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, + 0x65, 0x65, 0x70, 0x50, 0x61, 0x69, 0x72, 0x73, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x75, 0x6e, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x69, + 0x6e, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x6e, + 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x69, 0x74, 0x20, 0x61, + 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, - 0x73, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, - 0x51, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, - 0x61, 0x67, 0x09, 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, - 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, - 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x41, 0x4d, 0x72, 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x49, 0x44, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, - 0x28, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, - 0x41, 0x53, 0x54, 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x69, 0x6e, 0x67, 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x29, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, - 0x41, 0x53, 0x54, 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x35, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, - 0x30, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x4d, 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, - 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, - 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, - 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, - 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x20, 0x62, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, - 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, - 0x73, 0x65, 0x20, 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, - 0x46, 0x4c, 0x41, 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, - 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, - 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, - 0x41, 0x52, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, - 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, - 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, - 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, - 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, - 0x3a, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, - 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, - 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x22, 0x49, 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, - 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, - 0x78, 0x78, 0x20, 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, - 0x3a, 0x7a, 0x20, 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, - 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x52, 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, - 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, - 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, - 0x49, 0x44, 0x3a, 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, - 0x20, 0x7a, 0x22, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, - 0x20, 0x44, 0x53, 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, - 0x20, 0x40, 0x48, 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x50, 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, - 0x50, 0x47, 0x20, 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, - 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x40, 0x43, 0x4f, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x29, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, - 0x69, 0x6e, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, - 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, - 0x65, 0x65, 0x70, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, - 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, - 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x4b, 0x65, 0x65, 0x70, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6d, 0x61, + 0x74, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6b, + 0x65, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, + 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x46, 0x41, 0x53, 0x54, 0x51, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x6c, 0x61, 0x67, 0x09, + 0x09, 0x4f, 0x6e, 0x65, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x30, 0x78, 0x31, 0x30, 0x30, 0x20, 0x62, 0x69, 0x74, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, - 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, - 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, - 0x61, 0x74, 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, - 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x6e, 0x65, + 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x72, + 0x65, 0x61, 0x64, 0x49, 0x44, 0x09, 0x09, 0x09, 0x53, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, + 0x20, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x28, 0x75, 0x6e, + 0x74, 0x69, 0x6c, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x29, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, + 0x78, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x49, 0x44, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, + 0x20, 0x2f, 0x31, 0x2c, 0x2f, 0x32, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x41, 0x53, 0x54, + 0x78, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x6d, 0x61, 0x70, 0x71, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x35, 0x35, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, + 0x6f, 0x20, 0x32, 0x35, 0x35, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, + 0x41, 0x50, 0x51, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3a, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, + 0x33, 0x35, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x4f, 0x52, 0x27, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2c, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, + 0x3d, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x7c, 0x20, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, + 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, + 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, + 0x54, 0x41, 0x52, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, + 0x67, 0x41, 0x4e, 0x44, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x74, + 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x77, 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, + 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x41, 0x4e, 0x44, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x36, 0x35, 0x35, 0x33, + 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x30, + 0x20, 0x74, 0x6f, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x3a, 0x20, 0x73, + 0x61, 0x6d, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x20, + 0x41, 0x4e, 0x44, 0x27, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x46, 0x4c, 0x41, 0x47, 0x3d, 0x46, 0x4c, 0x41, + 0x47, 0x20, 0x26, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, + 0x61, 0x67, 0x4f, 0x52, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, + 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x53, 0x54, 0x41, 0x52, 0x2c, + 0x20, 0x62, 0x75, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x52, + 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, + 0x69, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, + 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x22, 0x49, + 0x44, 0x3a, 0x22, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x2d, 0x2d, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, + 0x43, 0x4e, 0x3a, 0x79, 0x79, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, + 0x7a, 0x20, 0x7a, 0x22, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x78, 0x78, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x52, 0x47, 0x20, 0x74, 0x61, 0x67, 0x20, 0x74, 0x6f, + 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, + 0x41, 0x6e, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x67, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, + 0x47, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x29, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x2d, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x49, 0x6e, 0x2e, 0x20, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x75, 0x72, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2c, 0x20, + 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x61, 0x74, 0x74, 0x72, 0x52, 0x47, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x49, 0x44, 0x3a, 0x78, 0x78, 0x78, 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, + 0x7a, 0x7a, 0x7a, 0x20, 0x22, 0x44, 0x53, 0x3a, 0x7a, 0x20, 0x7a, 0x22, + 0x20, 0x2c, 0x20, 0x49, 0x44, 0x3a, 0x79, 0x79, 0x79, 0x20, 0x44, 0x53, + 0x3a, 0x79, 0x79, 0x79, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x44, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x20, 0x40, 0x48, + 0x44, 0x20, 0x28, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x29, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, + 0x47, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, + 0x3a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x40, 0x50, 0x47, 0x20, + 0x28, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x29, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x28, 0x69, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x53, 0x54, 0x41, 0x52, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x41, 0x4d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, + 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x40, 0x43, 0x4f, + 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, - 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, - 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, - 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, - 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2c, 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x6d, 0x69, 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, - 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x42, 0x69, 0x6e, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, - 0x30, 0x3a, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x62, 0x61, 0x6d, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, - 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, - 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6e, 0x6f, 0x77, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, - 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x42, 0x41, 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x28, 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x61, 0x6c, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, + 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, + 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6b, + 0x65, 0x65, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x46, + 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x65, 0x65, 0x70, + 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, + 0x6b, 0x65, 0x65, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x46, 0x61, 0x73, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x73, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x53, 0x41, 0x4d, 0x6d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, + 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, - 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, - 0x20, 0x46, 0x4c, 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, - 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, - 0x70, 0x70, 0x65, 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, - 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, + 0x20, 0x20, 0x2d, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x28, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x53, 0x41, 0x4d, 0x74, 0x6c, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x54, 0x4c, 0x45, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x41, 0x4d, 0x2f, + 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2d, 0x29, 0x6d, 0x61, 0x74, 0x65, + 0x2e, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x28, 0x2b, 0x29, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, + 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x20, + 0x28, 0x2b, 0x29, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x6d, 0x6f, + 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x65, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x31, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x2c, 0x20, 0x2d, 0x31, 0x3d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x36, 0x3f, 0x29, 0x2c, 0x20, 0x30, 0x3d, 0x6e, 0x6f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x31, 0x30, 0x3d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x42, 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x20, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, + 0x6e, 0x28, 0x36, 0x2c, 0x2d, 0x2d, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x4e, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x42, + 0x41, 0x4d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x6e, + 0x73, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x3e, 0x30, 0x3a, 0x20, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x67, + 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x20, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x2d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, - 0x4d, 0x61, 0x74, 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x52, 0x41, 0x4d, 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, - 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, - 0x52, 0x20, 0x22, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, - 0x74, 0x53, 0x41, 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x6d, 0x61, 0x72, 0x6b, + 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x69, 0x29, 0x20, 0x73, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x41, + 0x4d, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, + 0x69, 0x69, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, - 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, - 0x4d, 0x50, 0x41, 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, - 0x6e, 0x64, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, - 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, - 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, - 0x2c, 0x20, 0x73, 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, - 0x74, 0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x57, 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, - 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, - 0x20, 0x2d, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, - 0x6d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x20, 0x70, 0x65, 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x2f, + 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, - 0x61, 0x77, 0x22, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x46, 0x4c, + 0x41, 0x47, 0x2c, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x72, + 0x6b, 0x20, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, + 0x0a, 0x0a, 0x62, 0x61, 0x6d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x74, + 0x65, 0x32, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4e, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x32, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, + 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x41, 0x4d, + 0x50, 0x41, 0x47, 0x45, 0x29, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x0a, 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x62, 0x65, + 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x22, 0x20, 0x4f, 0x52, 0x20, 0x22, + 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x5f, 0x35, 0x70, 0x22, 0x2e, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x42, 0x41, 0x4d, 0x3a, 0x20, 0x2d, 0x2d, 0x6f, 0x75, 0x74, 0x53, 0x41, + 0x4d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x6e, 0x6f, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x5f, 0x35, 0x70, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x35, 0x27, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x43, 0x41, 0x47, 0x45, 0x2f, 0x52, 0x41, 0x4d, 0x50, 0x41, + 0x47, 0x45, 0x20, 0x65, 0x74, 0x63, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x32, + 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x57, 0x69, 0x67, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, + 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, + 0x2f, 0x62, 0x65, 0x64, 0x47, 0x72, 0x61, 0x70, 0x68, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x73, + 0x74, 0x72, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x72, 0x32, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x57, + 0x69, 0x67, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, - 0x53, 0x4a, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, - 0x65, 0x70, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, - 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, - 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x74, 0x6f, 0x2e, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x6d, 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x77, 0x69, 0x67, + 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x22, 0x63, 0x68, 0x72, 0x22, 0x2c, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x22, 0x2d, 0x22, 0x20, 0x2d, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x57, 0x69, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x52, 0x50, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x50, 0x4d, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x20, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x22, 0x72, 0x61, 0x77, 0x22, + 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, + 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x79, 0x53, 0x4a, 0x6f, + 0x75, 0x74, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, + 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x2e, + 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x28, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6d, + 0x29, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, + 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, + 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x22, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x6f, 0x6f, 0x20, + 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x22, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, 0x2e, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x0a, 0x0a, 0x6f, + 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x6f, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x74, 0x68, - 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6e, 0x6f, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, - 0x22, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x6f, 0x6f, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x69, - 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x6f, 0x67, - 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x2e, 0x6f, 0x75, 0x74, 0x20, 0x2e, - 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, + 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, + 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, + 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x33, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, - 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6d, 0x69, - 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, 0x65, - 0x72, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x2e, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, - 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, - 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x2a, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, - 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x4e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, - 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, - 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, - 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, - 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x2a, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, - 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, - 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, - 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, - 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, - 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, - 0x6d, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, - 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, - 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, - 0x6e, 0x4d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x69, 0x72, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, - 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, - 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, - 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x20, 0x6f, 0x66, 0x20, + 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x2a, 0x72, 0x65, 0x61, 0x64, 0x2a, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x3a, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x41, 0x6c, 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, - 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x73, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, - 0x69, 0x64, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, + 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x74, 0x73, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, + 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, + 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x20, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x20, 0x69, 0x73, 0x20, 0x68, 0x69, 0x67, 0x68, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x61, 0x6d, 0x20, 0x61, + 0x73, 0x20, 0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, 0x69, 0x6e, 0x2c, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x6f, + 0x74, 0x69, 0x66, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, + 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x6f, 0x75, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x55, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x75, 0x6e, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, + 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x6b, 0x65, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2d, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x3a, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, + 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x30, 0x20, 0x20, 0x31, 0x32, 0x20, + 0x20, 0x31, 0x32, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, + 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, + 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, + 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, + 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, + 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, 0x2d, 0x31, + 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, + 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, + 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, 0x75, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, @@ -1952,1233 +2037,1166 @@ unsigned char parametersDefault[] = { 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6c, 0x79, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, - 0x3a, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, - 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, - 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, - 0x20, 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, - 0x4d, 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, - 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, - 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x33, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, - 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2b, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x3a, - 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, - 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, - 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, - 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, - 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, - 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x20, - 0x2d, 0x31, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, - 0x69, 0x6e, 0x20, 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, - 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, - 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, - 0x61, 0x64, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x30, 0x30, 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, - 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, - 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x31, 0x2c, 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, - 0x61, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, - 0x20, 0x3c, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, - 0x79, 0x20, 0x32, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, - 0x3d, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, - 0x20, 0x33, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, - 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, - 0x3d, 0x34, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x67, 0x61, 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x75, + 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x69, 0x6e, 0x20, + 0x4f, 0x52, 0x20, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, + 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x53, 0x4a, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x4a, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x35, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6a, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x27, 0x20, 0x64, 0x6f, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x53, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x47, 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x6f, 0x75, 0x74, + 0x53, 0x4a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x72, + 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x30, 0x30, + 0x30, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x20, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x31, 0x2c, + 0x32, 0x2c, 0x33, 0x2c, 0x2c, 0x2c, 0x4e, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x31, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x67, 0x61, 0x70, 0x73, 0x20, 0x3c, 0x3d, + 0x35, 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x32, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x31, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x62, 0x2c, 0x20, 0x62, 0x79, 0x20, 0x33, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x3c, 0x3d, 0x32, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x3e, 0x3d, 0x34, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x67, 0x61, + 0x70, 0x20, 0x3c, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, + 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, - 0x20, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, - 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, - 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x47, 0x61, 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, - 0x61, 0x6c, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, - 0x47, 0x43, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, - 0x54, 0x2f, 0x41, 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, - 0x2f, 0x41, 0x54, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, - 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, - 0x67, 0x32, 0x28, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, - 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, - 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, - 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, - 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, - 0x69, 0x66, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, - 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, - 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, - 0x65, 0x70, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x53, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, - 0x78, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, - 0x20, 0x20, 0x31, 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x6c, 0x3a, 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x28, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, - 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, - 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, - 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, - 0x65, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, - 0x70, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, - 0x75, 0x72, 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, - 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, - 0x64, 0x4e, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x69, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, - 0x74, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, - 0x6e, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, - 0x20, 0x62, 0x79, 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x20, 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x32, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x3a, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, - 0x67, 0x61, 0x70, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x3e, 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, - 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, - 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, - 0x61, 0x78, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, - 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x32, 0x5e, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, - 0x74, 0x73, 0x29, 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, - 0x2e, 0x65, 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, - 0x74, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, - 0x20, 0x30, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, - 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x28, 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, - 0x29, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, - 0x28, 0x32, 0x29, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x43, 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, - 0x66, 0x2c, 0x20, 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, - 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, - 0x2f, 0x41, 0x43, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, - 0x54, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, - 0x2e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, - 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, - 0x61, 0x74, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, - 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x63, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, + 0x61, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, + 0x6e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x20, 0x6f, + 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x74, + 0x69, 0x66, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, + 0x70, 0x4e, 0x6f, 0x6e, 0x63, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x38, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x47, 0x43, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x47, 0x43, 0x2f, 0x41, + 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, + 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x47, 0x61, 0x70, 0x41, 0x54, 0x41, 0x43, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2d, 0x38, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x41, 0x54, 0x2f, 0x41, + 0x43, 0x20, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x47, 0x61, 0x70, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x32, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x61, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x69, + 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x3a, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x47, 0x65, 0x6e, 0x6f, + 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4c, 0x6f, 0x67, + 0x32, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2a, 0x6c, 0x6f, 0x67, 0x32, 0x28, + 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x42, + 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, + 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x20, 0x28, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x42, 0x61, 0x73, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2d, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x28, + 0x69, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x4f, + 0x70, 0x65, 0x6e, 0x29, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, + 0x74, 0x69, 0x74, 0x63, 0x68, 0x53, 0x4a, 0x73, 0x68, 0x69, 0x66, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x53, 0x4a, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x74, 0x65, 0x70, 0x0a, + 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x65, 0x65, + 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, + 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x20, + 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x4f, 0x76, + 0x65, 0x72, 0x4c, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x2e, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3a, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4c, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x28, + 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x27, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x70, 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x29, 0x0a, 0x0a, 0x73, 0x65, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x6d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x3d, 0x30, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x73, + 0x65, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x0a, 0x0a, 0x73, + 0x65, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x66, + 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, + 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x50, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x0a, 0x73, 0x65, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4e, + 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x73, 0x65, 0x65, 0x64, 0x4e, 0x6f, + 0x6e, 0x65, 0x4c, 0x6f, 0x63, 0x69, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x64, 0x65, 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, - 0x6e, 0x64, 0x73, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x20, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x69, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, + 0x0a, 0x73, 0x65, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x69, + 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x65, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x62, 0x79, + 0x20, 0x4e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, + 0x67, 0x61, 0x70, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x31, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x67, 0x61, 0x70, + 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, + 0x3d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x6e, + 0x4d, 0x69, 0x6e, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, + 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x2c, + 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x4d, 0x61, 0x74, 0x65, 0x73, 0x47, 0x61, 0x70, 0x4d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x20, 0x69, 0x66, 0x20, 0x30, 0x2c, 0x20, 0x6d, 0x61, 0x78, 0x20, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x20, 0x67, 0x61, 0x70, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x28, 0x32, 0x5e, + 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, 0x29, + 0x2a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, + 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x53, 0x4a, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x4a, 0x73, 0x74, 0x69, 0x74, + 0x63, 0x68, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6d, + 0x61, 0x78, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x20, + 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x34, 0x2a, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, + 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, + 0x2d, 0x31, 0x3a, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x31, 0x29, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x73, 0x2c, 0x20, 0x28, 0x32, 0x29, + 0x20, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, + 0x54, 0x2f, 0x41, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x66, 0x2c, 0x20, + 0x28, 0x33, 0x29, 0x20, 0x47, 0x43, 0x2f, 0x41, 0x47, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x43, 0x54, 0x2f, 0x47, 0x43, 0x20, 0x6d, 0x6f, 0x74, 0x69, + 0x66, 0x2c, 0x20, 0x28, 0x34, 0x29, 0x20, 0x41, 0x54, 0x2f, 0x41, 0x43, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x54, 0x2f, 0x41, 0x54, 0x20, 0x6d, + 0x6f, 0x74, 0x69, 0x66, 0x2e, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x53, 0x4a, 0x44, 0x42, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x68, 0x61, 0x6e, 0x67, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x29, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x28, 0x73, 0x6a, 0x64, 0x62, 0x29, 0x20, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x70, 0x4c, + 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x30, 0x2e, 0x36, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x3e, 0x30, 0x3a, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x70, 0x4c, 0x6d, 0x69, 0x6e, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x50, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x65, 0x6e, + 0x64, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, - 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, - 0x64, 0x2d, 0x74, 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, - 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, - 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x6e, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2d, 0x74, + 0x6f, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, 0x6f, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, + 0x69, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, - 0x66, 0x52, 0x65, 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, + 0x66, 0x52, 0x65, 0x61, 0x64, 0x31, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, - 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, - 0x68, 0x20, 0x72, 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, - 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x2b, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, - 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x28, 0x65, 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x2d, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, - 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, - 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x31, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x35, 0x70, 0x4f, 0x66, 0x52, 0x65, + 0x61, 0x64, 0x73, 0x31, 0x32, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x35, 0x70, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x32, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x3a, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, + 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x64, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x72, 0x75, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x65, 0x6e, 0x64, 0x73, 0x2c, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, 0x6e, 0x64, + 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2b, 0x73, 0x74, + 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x64, 0x6f, + 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x28, 0x65, + 0x6e, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2d, + 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, - 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x73, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, - 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x70, 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, - 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, - 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, - 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x69, 0x6e, + 0x74, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, - 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, - 0x61, 0x69, 0x72, 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, - 0x70, 0x4e, 0x62, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, - 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, - 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, - 0x20, 0x3c, 0x31, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, - 0x61, 0x70, 0x20, 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, - 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, - 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x35, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, - 0x68, 0x6f, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, - 0x74, 0x6f, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, - 0x69, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x36, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x3d, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, - 0x69, 0x6e, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, - 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, - 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, - 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, - 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x62, 0x69, 0x6e, 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, - 0x20, 0x74, 0x77, 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, - 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, - 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, - 0x6b, 0x4e, 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, - 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, - 0x61, 0x6e, 0x6b, 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, - 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, - 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x61, 0x6c, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, - 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x53, 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, - 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, - 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, - 0x63, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, + 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, - 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, - 0x6c, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, - 0x6d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, - 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x2e, 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, - 0x48, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, - 0x68, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, - 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, - 0x72, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, - 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, - 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, - 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x20, 0x28, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, - 0x20, 0x6d, 0x61, 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, - 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x29, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x28, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, - 0x6f, 0x6e, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x6e, 0x47, 0x54, 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, - 0x61, 0x6c, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, - 0x6f, 0x6e, 0x2d, 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, - 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, - 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, - 0x61, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, - 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, + 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x63, 0x4e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, - 0x69, 0x6d, 0x4d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x20, 0x3d, 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, - 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, - 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, - 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, - 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, + 0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x69, 0x72, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x6e, 0x6f, 0x6e, 0x2d, 0x7a, 0x65, 0x72, 0x6f, 0x20, 0x70, 0x72, 0x6f, + 0x74, 0x72, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x64, + 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x74, 0x20, 0x70, 0x61, + 0x69, 0x72, 0x73, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x53, 0x6f, + 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x74, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x59, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, + 0x61, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, + 0x6f, 0x73, 0x6f, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, - 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, - 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x61, 0x73, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, - 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, - 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, - 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, - 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, - 0x3a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, - 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, - 0x74, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, - 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x59, 0x65, 0x73, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, + 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x43, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x0a, 0x0a, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, + 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, + 0x66, 0x6c, 0x75, 0x73, 0x68, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, + 0x6f, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x2c, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, - 0x23, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x50, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x2d, 0x45, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x0a, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4e, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6d, 0x65, 0x72, 0x67, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x0a, 0x70, 0x65, 0x4f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x4d, 0x4d, 0x70, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x2e, 0x30, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x6c, 0x2c, 0x20, 0x3e, 0x3d, 0x30, 0x20, 0x26, 0x20, 0x3c, 0x31, + 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x20, + 0x61, 0x72, 0x65, 0x61, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x73, 0x2c, 0x20, 0x42, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x6c, 0x6f, 0x63, 0x69, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x74, 0x6f, 0x0a, + 0x0a, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x4e, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x3d, + 0x6c, 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x42, 0x69, 0x6e, 0x29, + 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x42, + 0x69, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, + 0x63, 0x63, 0x75, 0x70, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x77, 0x69, + 0x6e, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x74, 0x4e, + 0x62, 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x39, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x69, 0x6e, + 0x73, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x77, + 0x6f, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, + 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x74, + 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x4e, 0x62, + 0x69, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6c, + 0x6f, 0x67, 0x32, 0x28, 0x77, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x6e, 0x6b, + 0x29, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, + 0x20, 0x46, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6c, 0x61, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x20, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x2e, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, + 0x65, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, + 0x52, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x77, + 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x65, 0x64, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x20, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x63, 0x68, + 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, + 0x6f, 0x75, 0x74, 0x2e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x41, 0x4d, 0x6f, 0x6c, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x6c, 0x64, 0x20, + 0x53, 0x41, 0x4d, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x61, 0x6d, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x6d, 0x65, 0x53, 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, - 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, - 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, - 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x20, 0x28, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x2a, 0x2e, 0x62, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, - 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, + 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, 0x4d, 0x20, 0x48, 0x61, 0x72, + 0x64, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x28, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x20, 0x68, 0x61, 0x72, + 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x66, 0x20, + 0x6e, 0x6f, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x42, 0x41, + 0x4d, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x43, 0x6c, 0x69, 0x70, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x2d, 0x63, 0x6c, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x43, 0x49, 0x47, 0x41, 0x52, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, + 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x69, 0x66, + 0x20, 0x3d, 0x3d, 0x30, 0x2c, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x28, 0x73, + 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x29, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, + 0x78, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x20, 0x28, 0x64, 0x69, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, + 0x66, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, + 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x28, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x65, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x47, 0x54, + 0x41, 0x47, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, + 0x47, 0x54, 0x2f, 0x41, 0x47, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, 0x4d, 0x69, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x67, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x47, 0x61, 0x70, 0x4d, 0x61, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x4e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, + 0x29, 0x3a, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x31, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x69, + 0x63, 0x4e, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, + 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x6a, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4d, + 0x61, 0x69, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x75, + 0x6c, 0x74, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, + 0x3e, 0x3d, 0x31, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x3d, + 0x31, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x63, 0x68, 0x69, + 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x4e, 0x6d, 0x61, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x69, 0x6d, + 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x70, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x61, 0x73, + 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x2d, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6d, + 0x61, 0x70, 0x4e, 0x6d, 0x61, 0x78, 0x20, 0x3e, 0x20, 0x31, 0x0a, 0x0a, + 0x63, 0x68, 0x69, 0x6d, 0x4e, 0x6f, 0x6e, 0x63, 0x68, 0x69, 0x6d, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x69, 0x6e, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x3d, 0x30, 0x3a, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x63, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, + 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x69, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6d, 0x4f, 0x75, 0x74, 0x4a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x68, + 0x69, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x2e, 0x6f, 0x75, 0x74, 0x2e, 0x6a, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x4e, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x2c, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, + 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, - 0x69, 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, - 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, - 0x69, 0x6f, 0x75, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, 0x53, + 0x41, 0x4d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x20, 0x53, 0x41, 0x4d, 0x2f, 0x42, 0x41, 0x4d, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, + 0x65, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, + 0x70, 0x65, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x0a, 0x0a, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x42, 0x41, 0x4d, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x6e, 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x20, 0x74, 0x6f, 0x20, 0x31, + 0x30, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x6d, 0x65, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x32, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x42, 0x41, 0x4d, 0x20, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x31, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x36, 0x3f, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x30, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x6d, 0x65, + 0x42, 0x61, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, + 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x70, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x75, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x6e, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, 0x70, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x2e, 0x2e, 0x2e, + 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x20, 0x69, 0x6e, + 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x63, + 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x2d, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x49, 0x6e, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x66, 0x74, 0x63, 0x6c, 0x69, - 0x70, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x20, 0x20, - 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x20, 0x69, 0x6e, 0x64, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x66, - 0x74, 0x20, 0x63, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x6e, - 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x53, 0x45, 0x4d, 0x0a, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, + 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x31, 0x2d, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x65, 0x6e, - 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x70, 0x72, 0x6f, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, - 0x65, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x73, + 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, + 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x65, 0x20, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, 0x77, 0x6f, 0x70, + 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x31, + 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, 0x55, 0x73, 0x65, + 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x72, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x74, + 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x0a, 0x0a, + 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x77, 0x61, 0x73, + 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x61, + 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, + 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, + 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, 0x76, 0x61, 0x6e, + 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, 0x2c, 0x20, 0x47, + 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, 0x69, 0x63, 0x6b, + 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, 0x47, 0x69, 0x6c, + 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x74, 0x68, 0x61, + 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, 0x68, 0x61, 0x72, + 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x63, 0x69, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x70, 0x61, 0x70, + 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, 0x2c, 0x20, 0x31, + 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, 0x33, 0x20, 0x28, + 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, + 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, + 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, 0x33, 0x35, 0x38, + 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x41, 0x4d, 0x74, + 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x74, 0x61, 0x67, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x0a, 0x23, 0x23, + 0x23, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x28, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, + 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x29, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x2d, 0x70, 0x61, - 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x6d, - 0x6f, 0x64, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x63, + 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x20, + 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x62, + 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x32, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x44, 0x72, + 0x6f, 0x70, 0x2d, 0x73, 0x65, 0x71, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, + 0x30, 0x58, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x0a, + 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, + 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, + 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, + 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, + 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, + 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x37, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, + 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x6c, + 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x30, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x55, 0x4d, + 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, + 0x6c, 0x6f, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, + 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3a, + 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x6f, 0x6c, 0x6f, + 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x2b, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, + 0x49, 0x6c, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x53, + 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, - 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x31, 0x2d, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x32, 0x2d, 0x70, 0x61, 0x73, 0x73, - 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x31, 0x73, 0x74, 0x20, 0x70, - 0x61, 0x73, 0x73, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x6f, - 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x79, 0x0a, 0x0a, 0x74, - 0x77, 0x6f, 0x70, 0x61, 0x73, 0x73, 0x31, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x31, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x20, - 0x55, 0x73, 0x65, 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x61, 0x72, - 0x67, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x6f, - 0x72, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2d, 0x31, - 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, - 0x2e, 0x0a, 0x0a, 0x0a, 0x23, 0x23, 0x23, 0x20, 0x57, 0x41, 0x53, 0x50, - 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, - 0x77, 0x61, 0x73, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x57, 0x41, 0x53, - 0x50, 0x20, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x65, 0x2d, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, - 0x57, 0x41, 0x53, 0x50, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x42, 0x72, 0x79, 0x63, 0x65, 0x20, - 0x76, 0x61, 0x6e, 0x20, 0x64, 0x65, 0x20, 0x47, 0x65, 0x69, 0x6a, 0x6e, - 0x2c, 0x20, 0x47, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x4d, 0x63, 0x56, - 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2c, 0x20, 0x59, 0x6f, 0x61, 0x76, 0x20, - 0x47, 0x69, 0x6c, 0x61, 0x64, 0x20, 0x26, 0x20, 0x4a, 0x6f, 0x6e, 0x61, - 0x74, 0x68, 0x61, 0x6e, 0x20, 0x4b, 0x20, 0x50, 0x72, 0x69, 0x74, 0x63, - 0x68, 0x61, 0x72, 0x64, 0x2e, 0x20, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x20, 0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x20, 0x4e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x31, 0x32, - 0x2c, 0x20, 0x31, 0x30, 0x36, 0x31, 0xe2, 0x80, 0x93, 0x31, 0x30, 0x36, - 0x33, 0x20, 0x28, 0x32, 0x30, 0x31, 0x35, 0x29, 0x2c, 0x20, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x6c, 0x65, 0x73, 0x2f, 0x6e, 0x6d, 0x65, 0x74, 0x68, 0x2e, - 0x33, 0x35, 0x38, 0x32, 0x20, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x55, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, + 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x41, 0x4d, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x61, 0x64, 0x64, 0x20, 0x57, 0x41, 0x53, 0x50, 0x20, - 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x57, 0x41, 0x53, - 0x50, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x0a, - 0x0a, 0x23, 0x23, 0x23, 0x20, 0x53, 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, - 0x6f, 0x20, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x65, - 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, 0x65, 0x71, 0x29, 0x20, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x0a, 0x73, - 0x6f, 0x6c, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, + 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x2d, 0x73, - 0x65, 0x71, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x6c, - 0x65, 0x74, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6f, 0x6e, 0x65, - 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x55, 0x4d, - 0x49, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x32, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, - 0x20, 0x44, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x65, 0x71, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x31, 0x30, 0x58, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, - 0x75, 0x6d, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x77, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x6c, - 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, - 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, + 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, + 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, + 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, 0x6f, 0x6c, 0x65, + 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, + 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x20, 0x42, 0x61, + 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, 0x75, 0x74, 0x2e, + 0x74, 0x61, 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, + 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x73, 0x3a, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x67, 0x65, 0x6e, 0x65, + 0x73, 0x27, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x73, 0x6f, + 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, 0x70, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x74, 0x3e, 0x30, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, - 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x43, 0x42, - 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x36, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, 0x20, - 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, - 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x55, 0x4d, 0x49, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x31, 0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, - 0x30, 0x3a, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x20, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, - 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x3e, 0x30, 0x3a, - 0x20, 0x55, 0x4d, 0x49, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0a, - 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x20, 0x72, 0x65, 0x61, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x4d, + 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x73, - 0x6f, 0x6c, 0x6f, 0x43, 0x42, 0x6c, 0x65, 0x6e, 0x2b, 0x73, 0x6f, 0x6c, - 0x6f, 0x55, 0x4d, 0x49, 0x6c, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x30, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2c, 0x20, 0x64, 0x6f, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x0a, 0x73, 0x6f, - 0x6c, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x73, 0x74, - 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6c, - 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, - 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x46, 0x6f, 0x72, 0x77, - 0x61, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, - 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, - 0x20, 0x6d, 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, - 0x74, 0x72, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x52, 0x4e, 0x41, 0x20, 0x6d, - 0x6f, 0x6c, 0x65, 0x63, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, - 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x47, 0x65, 0x6e, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x65, - 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x43, 0x65, 0x6c, 0x6c, - 0x20, 0x42, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x4a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x20, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x53, 0x4a, 0x2e, 0x6f, - 0x75, 0x74, 0x2e, 0x74, 0x61, 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x47, - 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x3a, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x73, 0x27, 0x20, 0x65, 0x78, 0x6f, 0x6e, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x6e, 0x73, 0x0a, - 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x55, 0x4d, 0x49, 0x64, 0x65, 0x64, 0x75, - 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, 0x6c, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, 0x5f, 0x41, + 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x55, + 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, + 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x6f, 0x6c, + 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x22, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x73, + 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, 0x2c, 0x20, 0x48, + 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x75, 0x64, + 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, 0x6f, 0x6d, 0x65, + 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x32, 0x30, + 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, 0x4d, + 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x55, + 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x31, 0x20, 0x6d, + 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, 0x28, 0x69, 0x2e, + 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, 0x4f, 0x75, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x6f, 0x6c, + 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x73, + 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, + 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, + 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x53, + 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, + 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x2e, 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x73, 0x29, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x55, 0x4d, 0x49, 0x20, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x6f, 0x6c, 0x6c, - 0x61, 0x70, 0x73, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x4d, - 0x4d, 0x5f, 0x41, 0x6c, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x64, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x4d, 0x4d, 0x5f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x22, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x4d, 0x49, 0x2d, 0x74, 0x6f, - 0x6f, 0x6c, 0x73, 0x20, 0x62, 0x79, 0x20, 0x53, 0x6d, 0x69, 0x74, 0x68, - 0x2c, 0x20, 0x48, 0x65, 0x67, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x53, 0x75, 0x64, 0x62, 0x65, 0x72, 0x79, 0x20, 0x28, 0x47, 0x65, 0x6e, - 0x6f, 0x6d, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x20, 0x32, 0x30, 0x31, 0x37, 0x29, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x31, 0x4d, 0x4d, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, - 0x2e, 0x20, 0x55, 0x4d, 0x49, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x31, 0x20, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x20, - 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x0a, 0x73, 0x6f, 0x6c, 0x6f, - 0x4f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x6f, 0x6c, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x2f, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x62, 0x61, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x74, 0x73, 0x76, 0x20, 0x6d, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, 0x72, - 0x69, 0x78, 0x53, 0x4a, 0x2e, 0x6d, 0x74, 0x78, 0x20, 0x6d, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x2e, - 0x6d, 0x74, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, - 0x54, 0x41, 0x52, 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x54, 0x41, 0x52, + 0x73, 0x6f, 0x6c, 0x6f, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, - 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, - 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, - 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x31, 0x73, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, - 0x72, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, - 0x2e, 0x2e, 0x20, 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x32, 0x6e, 0x64, 0x20, 0x77, 0x6f, 0x72, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x20, 0x49, 0x44, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0x72, 0x64, 0x20, + 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, + 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x34, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, - 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x47, 0x65, - 0x6e, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x34, 0x74, + 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, + 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x47, 0x65, 0x6e, 0x65, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, + 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, - 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, - 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x53, 0x4a, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x74, 0x68, 0x20, 0x77, 0x6f, + 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x2f, 0x53, 0x4a, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x36, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, - 0x20, 0x20, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, - 0x47, 0x65, 0x6e, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a + 0x36, 0x74, 0x68, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x2e, 0x2e, 0x2e, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x2f, 0x47, 0x65, 0x6e, + 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x0a }; -unsigned int parametersDefault_len = 38172; +unsigned int parametersDefault_len = 38385; From 4af25ab3ba8bea6594aa88fd0ca14cfd15e98fb1 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 1 May 2019 11:18:56 -0400 Subject: [PATCH 457/536] 2.7.0f_solo_GeneFull_0430 --- ErrorWarning.cpp | 12 ++++++++++++ ErrorWarning.h | 1 + Genome_genomeGenerate.cpp | 7 +++++++ VERSION | 2 +- loadGTF.cpp | 1 + 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ErrorWarning.cpp b/ErrorWarning.cpp index 4ba201f..a23d194 100644 --- a/ErrorWarning.cpp +++ b/ErrorWarning.cpp @@ -19,3 +19,15 @@ void exitWithError(string messageOut, ostream &streamOut1, ostream &streamOut2, // if (P.runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexError); exit(errorInt); }; + +void warningMessage(string messageOut, ostream &streamOut1, ostream &streamOut2, Parameters &P) { + time_t timeCurrent; + time( &timeCurrent); + if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexError); + if (streamOut1.good()) { + streamOut1 << "WARNING: " << messageOut << " : " << timeMonthDayTime(timeCurrent) < log2(nGenome)/2-1) { + ostringstream warnOut; + warnOut << "--genomeSAindexNbases " << pGe.gSAindexNbases << " is too large for the genome size=" << nGenome; + warnOut << ", which may cause seg-fault at the mapping step. Re-run genome generation with recommended --genomeSAindexNbases " << int(log2(nGenome)/2-1); + warningMessage(warnOut.str(),P.inOut->logMain,std::cerr,P); + }; + ofstream & chrN = ofstrOpen(pGe.gDir+"/chrName.txt",ERROR_OUT, P); ofstream & chrS = ofstrOpen(pGe.gDir+"/chrStart.txt",ERROR_OUT, P); ofstream & chrL = ofstrOpen(pGe.gDir+"/chrLength.txt",ERROR_OUT, P); diff --git a/VERSION b/VERSION index c52582d..426acb7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.0f_solo_GeneFull_0411" +#define STAR_VERSION "2.7.0f_solo_GeneFull_0430" diff --git a/loadGTF.cpp b/loadGTF.cpp index 5c4d239..8cc5d9a 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -112,6 +112,7 @@ uint64 loadGTF(SjdbClass &sjdbLoci, Parameters &P, string dirOut, Genome &mapGen getline(oneLineStream, oneLine1);//get the last field replace(oneLine1.begin(),oneLine1.end(),';',' ');//to separate attributes replace(oneLine1.begin(),oneLine1.end(),'=',' ');//for GFF3 processing + replace(oneLine1.begin(),oneLine1.end(),'\t',' ');//replace tabs replace(oneLine1.begin(),oneLine1.end(),'\"',' ');//now the only separator is space //string trID(""), gID(""), attr1(""),gName(""),gBiotype(""); From cee656899370afd5a4d71131bc4d5e442625b307 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 14 May 2019 11:59:03 -0400 Subject: [PATCH 458/536] Added collapsing of CB in whitelist. Added output of unmapped read numbers to Log.final.out. Fixed a problem with --quantMode TranscriptomeSAM and --twopassMode Basic. --- ParametersSolo.cpp | 5 ++++- STAR.cpp | 2 ++ Stats.cpp | 3 +++ VERSION | 2 +- parametersDefault | 2 +- parametersDefault.xxd | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ParametersSolo.cpp b/ParametersSolo.cpp index 1493c53..5f1c9e1 100755 --- a/ParametersSolo.cpp +++ b/ParametersSolo.cpp @@ -146,7 +146,10 @@ void ParametersSolo::initialize(Parameters *pPin) }; }; - qsort(cbWL.data(),cbWL.size(),sizeof(uint64),funCompareNumbers); + std::sort(cbWL.begin(),cbWL.end()); + auto un1=std::unique(cbWL.begin(),cbWL.end()); + cbWL.resize(std::distance(cbWL.begin(),un1)); + //qsort(cbWL.data(),cbWL.size(),sizeof(uint64),funCompareNumbers); if (!pP->quant.trSAM.yes) { pP->quant.yes = true; diff --git a/STAR.cpp b/STAR.cpp index 81993c8..e2076d9 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -147,6 +147,8 @@ int main(int argInN, char* argIn[]) { P1.quant.yes=false; P1.quant.trSAM.yes=false; P1.quant.geCount.yes=false; + P1.outSAMunmapped.within=false; + P1.quant.trSAM.bamYes=false; P1.outFilterBySJoutStage=0; diff --git a/Stats.cpp b/Stats.cpp index ff990da..e9c136e 100644 --- a/Stats.cpp +++ b/Stats.cpp @@ -130,8 +130,11 @@ void Stats::reportFinal(ofstream &streamOut) { <0 ? double(unmappedMulti)/double(readN)*100 : 0) <<'%' <<"\n" \ <0 ? double(unmappedMismatch)/double(readN)*100 : 0) <<'%' <<"\n" \ + <0 ? double(unmappedShort)/double(readN)*100 : 0) <<'%' <<"\n" \ + <0 ? double(unmappedOther)/double(readN)*100 :0) <<'%'<<"\n" \ < Date: Tue, 21 May 2019 12:43:46 -0400 Subject: [PATCH 459/536] Implemented extras/scripts/soloBasicCellFilter.awk script to perform basic filtering of the STARsolo count matrices. --- Transcriptome_quantAlign.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 1668236..98c3469 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -110,6 +110,12 @@ uint32 Transcriptome::quantAlign (Transcript &aG, Transcript *aTall, vector100000) +// // cerr << distTTS <<"\t"<< trLen[tr1] << "\n"; +// }; }; }; }; From 87cee09a96bbd8c58edbd0a5060f026191f0a2a8 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 19 Jun 2019 19:01:01 -0400 Subject: [PATCH 460/536] Fixed the problem with ALT=* in STAR-WASP. --- Variation.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Variation.cpp b/Variation.cpp index 994af33..51b7f48 100644 --- a/Variation.cpp +++ b/Variation.cpp @@ -40,7 +40,7 @@ void scanVCF(ifstream& vcf, Parameters& P, SNP& snp, vector &chrStart, ma vector altV(3); - if (ref.size()==1 && splitString(alt,',',altV)==1) { + if (ref.size()==1 && splitString(alt,',',altV)==1) {//only SNVs allowed - ref=1-char, alt could be comma separated list of 1-char. splitString returns the max lenght of the split strings altV.insert(altV.begin(),ref);//add ref to the beginning if (chrNameIndex.count(chr)==0) {//chr not in Genome @@ -55,13 +55,15 @@ void scanVCF(ifstream& vcf, Parameters& P, SNP& snp, vector &chrStart, ma //both alleles are reference, no need to do anything //this is a strange case in VCF when ALT allele(s) are equal to REF } else { - snp.lociV.push_back(pos-1+chrStart[chrNameIndex[chr]]); array nt1; nt1[0]=convertNt01234( ref.at(0) ); nt1[1]=convertNt01234( altV.at( atoi(&sample.at(0)) ).at(0) ); nt1[2]=convertNt01234( altV.at( atoi(&sample.at(2)) ).at(0) ); - snp.nt.push_back(nt1); - snp.N++; + if (nt1[0]<4 && nt1[1]<4 && nt1[2]<4) {//only record if variant is ACGT + snp.lociV.push_back(pos-1+chrStart[chrNameIndex[chr]]); + snp.nt.push_back(nt1); + snp.N++; + }; }; }; }; From 333c34fd70f0e74585da94a777729794df9f9841 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Tue, 6 Aug 2019 08:21:22 -0400 Subject: [PATCH 461/536] added comments --- ReadAlign_mapOneRead.cpp | 25 ++++++++++++++++++------- ReadAlign_maxMappableLength2strands.cpp | 6 +++++- SuffixArrayFuns.cpp | 2 +- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index f473eb5..72c61e4 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -15,6 +15,9 @@ int ReadAlign::mapOneRead() { if (Lread>0) { Nsplit=qualitySplit(Read1[0], Qual1[0], Lread, P.Qsplit, P.maxNsplit, P.minLsplit, splitR); + // splitR[0][fragnum] => good region start position (from SequenceFuns.cpp) + // splitR[1][fragnum] => good reagion length + // splitR[2][fragnum] => fragnum ? } else { Nsplit=0; }; @@ -35,31 +38,38 @@ int ReadAlign::mapOneRead() { trBest=trInit; - uint seedSearchStartLmax=min(P.seedSearchStartLmax,(uint) (P.seedSearchStartLmaxOverLread*(Lread-1))); + uint seedSearchStartLmax=min(P.seedSearchStartLmax, // 50 + (uint) (P.seedSearchStartLmaxOverLread*(Lread-1))); // read length // align all good pieces for (uint ip=0; ip0 && seedSearchStartLmax0) {//check if the 1st piece in reveree direction does not need to be remapped - Lmapped=0; - while ( istart*Lstart + Lmapped + P.minLmap < splitR[1][ip] ) {//map until unmapped portion is <=minLmap + Lmapped=0; // length of segment mapped so far. + + // begin mapping starting from segment start position (istart*Lstart) + while ( istart*Lstart + Lmapped + P.minLmap < splitR[1][ip] ) {//map until unmapped portion is <=minLmap (default: 5) + // Shift is the position in the read to begin mapping from. uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart + Lmapped ) : \ ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1-Lmapped); //choose Shift for forward or reverse //uint seedLength=min(splitR[1][ip] - Lmapped - istart*Lstart, P.seedSearchLmax); - uint seedLength=splitR[1][ip] - Lmapped - istart*Lstart; + uint seedLength=splitR[1][ip] - Lmapped - istart*Lstart; // what's left of the read to align. maxMappableLength2strands(Shift, seedLength, iDir, 0, mapGen.nSA-1, L, splitR[2][ip]);//L=max mappable length, unique or multiple if (iDir==0 && istart==0 && Lmapped==0 && Shift+L == splitR[1][ip] ) {//this piece maps full length and does not need to be mapped from the opposite direction flagDirMap=false; @@ -69,6 +79,7 @@ int ReadAlign::mapOneRead() { };//if (flagDirMap || istart>0) if (P.seedSearchLmax>0) {//search fixed length. Not very efficient, need to improve + // off by default. uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart ) : \ ( splitR[0][ip] + splitR[1][ip] - istart*Lstart-1); //choose Shift for forward or reverse uint seedLength = min(P.seedSearchLmax, iDir==0 ? (splitR[0][ip] + splitR[1][ip]-Shift):(Shift+1) ); diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index e2a1549..a3396b7 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -11,6 +11,10 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, bool dirR = iDir==0; + // defaults: (from genomeParameters.txt) + // gSAsparseD = 1 + // gSAindexNbases = 14 + for (uint iDist=0; iDistmaxL - if ( (iSA1 & mapGen.SAiMarkNmaskC)==0 ) {//no N in the prefix + if ( (iSA1 & mapGen.SAiMarkNmaskC)==0 ) {//no N in the prefix maxL=Lind; } else { maxL=0; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index 33b2f90..6b97413 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -149,7 +149,7 @@ uint maxMappableLength(Genome &mapGen, char** s, uint S, uint N, uint i1, uint i L= min(L1,L2); L1a=L1;L1b=L1;i1a=i1;i1b=i1; - L2a=L2;L2b=L2;i2a=i2;i2b=i2; + L2a=L2;L2b=L2;i2a=i2;i2b=i2; // track boundaries of best matching suffix array ranges i3=i1;L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+1 Date: Tue, 6 Aug 2019 13:18:28 -0400 Subject: [PATCH 462/536] more comments --- ReadAlign_maxMappableLength2strands.cpp | 4 +++- ReadAlign_stitchPieces.cpp | 13 +++++++------ SuffixArrayFuns.cpp | 14 +++++++++++++- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/ReadAlign_maxMappableLength2strands.cpp b/ReadAlign_maxMappableLength2strands.cpp index a3396b7..ff5653f 100644 --- a/ReadAlign_maxMappableLength2strands.cpp +++ b/ReadAlign_maxMappableLength2strands.cpp @@ -39,7 +39,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, //find SA boundaries uint Lind=Lmax; while (Lind>0) {//check the precense of the prefix for Lind - iSA1=mapGen.SAi[mapGen.genomeSAindexStart[Lind-1]+ind1]; + iSA1=mapGen.SAi[mapGen.genomeSAindexStart[Lind-1]+ind1]; // starting point for suffix array search. if ((iSA1 & mapGen.SAiMarkAbsentMaskC) == 0) {//prefix exists break; } else {//this prefix does not exist, reduce Lind @@ -48,6 +48,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, }; }; + // define lower bound for suffix array range search. if (mapGen.genomeSAindexStart[Lind-1]+ind1+1 < mapGen.genomeSAindexStart[Lind]) {//we are not at the end of the SA iSA2=((mapGen.SAi[mapGen.genomeSAindexStart[Lind-1]+ind1+1] & mapGen.SAiMarkNmask) & mapGen.SAiMarkAbsentMask) - 1; } else { @@ -63,6 +64,7 @@ uint ReadAlign::maxMappableLength2strands(uint pieceStartIn, uint pieceLengthIn, Nrep = maxMappableLength(mapGen, Read1, pieceStart, pieceLength, iSA1 & mapGen.SAiMarkNmask, iSA2, dirR, maxL, indStartEnd); #else if (Lind < P.pGe.gSAindexNbases && (iSA1 & mapGen.SAiMarkNmaskC)==0 ) {//no need for SA search + // very short seq, already found hits in suffix array w/o having to search the genome for extensions. indStartEnd[0]=iSA1; indStartEnd[1]=iSA2; Nrep=indStartEnd[1]-indStartEnd[0]+1; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 80c625a..db5c3e7 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -40,6 +40,8 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { nW=0; //number of windows for (uint iP=0; iP=readLength[PC[iP][PC_iFrag]] ) {//proceed if piece is an anchor, i.e. maps few times or is long enough if (PC[iP][PC_Nrep]<=P.winAnchorMultimapNmax ) {//proceed if piece is an anchor, i.e. maps few times @@ -48,7 +50,7 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { uint aLength= PC[iP][PC_Length]; for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) {//scan through all alignments of this piece - + // going through ordered positions in the suffix array from PC_SAstart to PC_SAend uint a1 = mapGen.SA[iSA]; uint aStr = a1 >> mapGen.GstrandBit; a1 &= mapGen.GstrandMask; //remove strand bit @@ -169,13 +171,13 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { assignAlignToWindow(a1D, aLengthD, aStr, aNrep, aFrag, aRstart, aAnchor, isj1); assignAlignToWindow(a1A, aLengthA, aStr, aNrep, aFrag, aRstart+aLengthD, aAnchor, isj1); - } else {//align does not cross the junction + } else {//align does not cross the junction continue; //do not check this align, continue to the next one - }; + }; - } else {//this is a normal genomic read + } else {//this is a normal genomic read assignAlignToWindow(a1, aLength, aStr, aNrep, aFrag, aRstart, aAnchor, -1); - }; + }; }; // for (uint ii=0;ii=i2 an not iteration of the loope below is ever made while (i1+1L1) { L1b=L1a; L1a=L1; i1b=i1a; i1a=i1; + // L1b, i1b - captures history of last time the max score shifted. + // L1a, i1a - tracks current shift. }; i1=i3;L1=L3; } From 3917c7996ea1b9fce1d55b90a11a0712729f800a Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Tue, 6 Aug 2019 13:19:40 -0400 Subject: [PATCH 463/536] comparing chim score to non-chim align score --- ChimericDetection_chimericDetectionMult.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 3056373..04fc98d 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -40,6 +40,8 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { chimAligns.clear(); chimScoreBest=0; + int bestNonchimAlignScore = trBest->maxScore; + for (uint iW1=0; iW1 Date: Tue, 6 Aug 2019 13:26:12 -0400 Subject: [PATCH 464/536] comparing chim score to non-chim align score --- ChimericDetection_chimericDetectionMult.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 04fc98d..1dcc85a 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -40,8 +40,8 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { chimAligns.clear(); chimScoreBest=0; - int bestNonchimAlignScore = trBest->maxScore; - + int bestNonchimAlignScore = RA->trBest->maxScore; + for (uint iW1=0; iW1 Date: Tue, 6 Aug 2019 13:32:13 -0400 Subject: [PATCH 465/536] comparing chim score to non-chim align score --- ChimericDetection.h | 4 ++-- ChimericDetection_chimericDetectionMult.cpp | 4 +--- ReadAlign_chimericDetection.cpp | 2 +- ReadAlign_chimericDetectionPEmerged.cpp | 3 +-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/ChimericDetection.h b/ChimericDetection.h index 9bbe9d2..bc91d17 100644 --- a/ChimericDetection.h +++ b/ChimericDetection.h @@ -26,8 +26,8 @@ class ChimericDetection { int chimScoreBest; ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream *ostreamChimJunctionIn, ReadAlign *RA); - bool chimericDetectionMult(uint nWin, uint *readLengthIn); + bool chimericDetectionMult(uint nWin, uint *readLengthIn, int maxNonChimAlignScore); fstream *ostreamChimJunction; }; -#endif \ No newline at end of file +#endif diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 1dcc85a..30a56a9 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -19,7 +19,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) }; ///////////////////////////////////////////////////////////// -bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { +bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int maxNonChimAlignScore) { chimRecord=false; @@ -40,8 +40,6 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength) { chimAligns.clear(); chimScoreBest=0; - int bestNonchimAlignScore = RA->trBest->maxScore; - for (uint iW1=0; iW1maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score - chimRecord=chimDet->chimericDetectionMult(nW, readLength); + chimRecord=chimDet->chimericDetectionMult(nW, readLength, trBest->maxScore); }; if ( chimRecord ) { diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index 9be7334..c386d69 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -67,7 +67,7 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { chimericDetectionOldOutput(); } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score - chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength); + chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, trBest->maxScore); }; if ( chimRecord ) { @@ -76,4 +76,3 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { return; }; - From fb8c2b200902b52a5231de2db732f386cf68fc25 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Tue, 6 Aug 2019 13:42:58 -0400 Subject: [PATCH 466/536] comparing chim score to non-chim align score --- ChimericAlign.h | 4 ++-- ChimericAlign_chimericJunctionOutput.cpp | 7 +++++-- ChimericDetection_chimericDetectionMult.cpp | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChimericAlign.h b/ChimericAlign.h index b18347c..f6dd3c8 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -23,7 +23,7 @@ class ChimericAlign int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin); //allocate - void chimericJunctionOutput(fstream &outStream, uint chimN); + void chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); @@ -37,4 +37,4 @@ class ChimericAlign }; -#endif \ No newline at end of file +#endif diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 9ee7aea..61a3b31 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -1,13 +1,16 @@ #include "ChimericAlign.h" #include "ReadAlign.h" -void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN) +void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore) { outStream << mapGen.chrName[al1->Chr] <<"\t"<< chimJ1 - mapGen.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ <<"\t"<< mapGen.chrName[al2->Chr] <<"\t"<< chimJ2 - mapGen.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ <<"\t"<< al1->exons[0][EX_G] - mapGen.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ - <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN; + <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN + << "\t" << maxNonChimAlignScore + << "\t" << chimScore; + if (P.outSAMattrPresent.RG) outStream <<"\t"<< P.outSAMattrRG.at(RA->readFilesIndex); if (P.pSolo.type>0) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 30a56a9..85dae29 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -108,7 +108,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) - cAit->chimericJunctionOutput(*ostreamChimJunction, chimN); + cAit->chimericJunctionOutput(*ostreamChimJunction, chimN, maxNonChimAlignScore); }; if (chimN>0) From 66f2bb4257207bde9c2af52c9edb46c66bbffb23 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Tue, 6 Aug 2019 14:05:00 -0400 Subject: [PATCH 467/536] comparing chim score to non-chim align score --- ChimericAlign.h | 2 +- ChimericAlign_chimericJunctionOutput.cpp | 7 ++++--- ChimericDetection_chimericDetectionMult.cpp | 4 ++-- ReadAlign_chimericDetection.cpp | 2 +- ReadAlign_chimericDetectionPEmerged.cpp | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ChimericAlign.h b/ChimericAlign.h index f6dd3c8..eb5eb8e 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -23,7 +23,7 @@ class ChimericAlign int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin); //allocate - void chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore); + void chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 61a3b31..bd1c730 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -1,7 +1,7 @@ #include "ChimericAlign.h" #include "ReadAlign.h" -void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore) +void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag) { outStream << mapGen.chrName[al1->Chr] <<"\t"<< chimJ1 - mapGen.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ <<"\t"<< mapGen.chrName[al2->Chr] <<"\t"<< chimJ2 - mapGen.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ @@ -9,8 +9,9 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int m <<"\t"<< al1->exons[0][EX_G] - mapGen.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN << "\t" << maxNonChimAlignScore - << "\t" << chimScore; - + << "\t" << chimScore + << "\t" << PEmerged; + if (P.outSAMattrPresent.RG) outStream <<"\t"<< P.outSAMattrRG.at(RA->readFilesIndex); if (P.pSolo.type>0) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 85dae29..9dc710e 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -19,7 +19,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) }; ///////////////////////////////////////////////////////////// -bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int maxNonChimAlignScore) { +bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int maxNonChimAlignScore, bool PEmerged_flag) { chimRecord=false; @@ -108,7 +108,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) - cAit->chimericJunctionOutput(*ostreamChimJunction, chimN, maxNonChimAlignScore); + cAit->chimericJunctionOutput(*ostreamChimJunction, chimN, maxNonChimAlignScore, PEmerged_flag); }; if (chimN>0) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 0a16262..aabd355 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -46,7 +46,7 @@ void ReadAlign::chimericDetection() { chimRecord=chimericDetectionOld(); chimericDetectionOldOutput(); } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score - chimRecord=chimDet->chimericDetectionMult(nW, readLength, trBest->maxScore); + chimRecord=chimDet->chimericDetectionMult(nW, readLength, trBest->maxScore, false); }; if ( chimRecord ) { diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index c386d69..b6eb88d 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -67,7 +67,7 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { chimericDetectionOldOutput(); } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score - chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, trBest->maxScore); + chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, trBest->maxScore, true); }; if ( chimRecord ) { From 04ea76fac9d7a93c38113ac9478b4812b7633352 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Tue, 6 Aug 2019 14:07:55 -0400 Subject: [PATCH 468/536] comparing chim score to non-chim align score --- ChimericDetection.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChimericDetection.h b/ChimericDetection.h index bc91d17..1dcf379 100644 --- a/ChimericDetection.h +++ b/ChimericDetection.h @@ -26,7 +26,7 @@ class ChimericDetection { int chimScoreBest; ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream *ostreamChimJunctionIn, ReadAlign *RA); - bool chimericDetectionMult(uint nWin, uint *readLengthIn, int maxNonChimAlignScore); + bool chimericDetectionMult(uint nWin, uint *readLengthIn, int maxNonChimAlignScore, bool PEmerged_flag); fstream *ostreamChimJunction; }; From 3e4d7d95e6923a1f8094dae823979aca676072d4 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Tue, 6 Aug 2019 14:10:36 -0400 Subject: [PATCH 469/536] comparing chim score to non-chim align score --- ChimericAlign_chimericJunctionOutput.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index bd1c730..21c91d5 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -10,7 +10,7 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int m <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN << "\t" << maxNonChimAlignScore << "\t" << chimScore - << "\t" << PEmerged; + << "\t" << PEmerged_flag; if (P.outSAMattrPresent.RG) outStream <<"\t"<< P.outSAMattrRG.at(RA->readFilesIndex); From c1f533db0d95cf4d4fd511d01fb60dfd7bb810e7 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Tue, 6 Aug 2019 14:56:10 -0400 Subject: [PATCH 470/536] comparing chim score to non-chim align score --- ChimericAlign_chimericJunctionOutput.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 21c91d5..16ab2fa 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -10,6 +10,7 @@ void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int m <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN << "\t" << maxNonChimAlignScore << "\t" << chimScore + << "\t" << chimScoreBest << "\t" << PEmerged_flag; if (P.outSAMattrPresent.RG) From 16c035c657f5e79a4a63a33e049d700373bfbed7 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Tue, 6 Aug 2019 14:58:03 -0400 Subject: [PATCH 471/536] comparing chim score to non-chim align score --- ChimericAlign.h | 2 +- ChimericAlign_chimericJunctionOutput.cpp | 2 +- ChimericDetection_chimericDetectionMult.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChimericAlign.h b/ChimericAlign.h index eb5eb8e..050dc4c 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -23,7 +23,7 @@ class ChimericAlign int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin); //allocate - void chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag); + void chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag, int chimScoreBest); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 16ab2fa..5efbd5a 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -1,7 +1,7 @@ #include "ChimericAlign.h" #include "ReadAlign.h" -void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag) +void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag, int chimScoreBest) { outStream << mapGen.chrName[al1->Chr] <<"\t"<< chimJ1 - mapGen.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ <<"\t"<< mapGen.chrName[al2->Chr] <<"\t"<< chimJ2 - mapGen.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 9dc710e..1e6aadf 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -108,7 +108,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) - cAit->chimericJunctionOutput(*ostreamChimJunction, chimN, maxNonChimAlignScore, PEmerged_flag); + cAit->chimericJunctionOutput(*ostreamChimJunction, chimN, maxNonChimAlignScore, PEmerged_flag, chimScoreBest); }; if (chimN>0) From 689e9873588ffd48fc131c53c88253427960ef22 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Wed, 7 Aug 2019 10:53:39 -0400 Subject: [PATCH 472/536] include max possible alignment score in chim output --- ChimericAlign.h | 2 +- ChimericAlign_chimericJunctionOutput.cpp | 14 ++++++++------ ChimericDetection.h | 2 +- ChimericDetection_chimericDetectionMult.cpp | 4 ++-- ReadAlign_chimericDetection.cpp | 2 +- ReadAlign_chimericDetectionPEmerged.cpp | 7 ++++++- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/ChimericAlign.h b/ChimericAlign.h index 050dc4c..a7c51d3 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -23,7 +23,7 @@ class ChimericAlign int chimMotif, chimStr, chimScore; ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin); //allocate - void chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag, int chimScoreBest); + void chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag, int chimScoreBest, int maxPossibleAlignScore); void chimericStitching(char *genSeq, char *readSeq); bool chimericCheck(); diff --git a/ChimericAlign_chimericJunctionOutput.cpp b/ChimericAlign_chimericJunctionOutput.cpp index 5efbd5a..330f563 100644 --- a/ChimericAlign_chimericJunctionOutput.cpp +++ b/ChimericAlign_chimericJunctionOutput.cpp @@ -1,17 +1,19 @@ #include "ChimericAlign.h" #include "ReadAlign.h" -void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag, int chimScoreBest) +void ChimericAlign::chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag, int chimScoreBest, int maxPossibleAlignScore) { outStream << mapGen.chrName[al1->Chr] <<"\t"<< chimJ1 - mapGen.chrStart[al1->Chr]+1 <<"\t"<< (al1->Str==0 ? "+":"-") \ <<"\t"<< mapGen.chrName[al2->Chr] <<"\t"<< chimJ2 - mapGen.chrStart[al2->Chr]+1 <<"\t"<< (al2->Str==0 ? "+":"-") \ <<"\t"<< chimMotif <<"\t"<< chimRepeat1 <<"\t"<< chimRepeat2 <<"\t"<< al1->readName+1 \ <<"\t"<< al1->exons[0][EX_G] - mapGen.chrStart[al1->Chr]+1 <<"\t"<< al1->generateCigarP() \ - <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() <<"\t"<< chimN - << "\t" << maxNonChimAlignScore - << "\t" << chimScore - << "\t" << chimScoreBest - << "\t" << PEmerged_flag; + <<"\t"<< al2->exons[0][EX_G] - mapGen.chrStart[al2->Chr]+1 <<"\t"<< al2->generateCigarP() + <<"\t"<< chimN // number of multimapping chimeric alignments for this read. + << "\t" << maxPossibleAlignScore // the maximum possible alignment score (currently the sum of the (paired) read lengths) + << "\t" << maxNonChimAlignScore // trBest - the best alignment score from a non-chimeric alignment of this read to the ref genome. + << "\t" << chimScore // current chimeric alignment score + << "\t" << chimScoreBest // best chimeric score among multimapping chimeric alignments. + << "\t" << PEmerged_flag; // boolean indicating paired reads were merged into a single read before alignment & chimer detection. if (P.outSAMattrPresent.RG) outStream <<"\t"<< P.outSAMattrRG.at(RA->readFilesIndex); diff --git a/ChimericDetection.h b/ChimericDetection.h index 1dcf379..86ae2c4 100644 --- a/ChimericDetection.h +++ b/ChimericDetection.h @@ -26,7 +26,7 @@ class ChimericDetection { int chimScoreBest; ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream *ostreamChimJunctionIn, ReadAlign *RA); - bool chimericDetectionMult(uint nWin, uint *readLengthIn, int maxNonChimAlignScore, bool PEmerged_flag); + bool chimericDetectionMult(uint nWin, uint *readLengthIn, int maxNonChimAlignScore, bool PEmerged_flag, int maxPossibleAlignScore); fstream *ostreamChimJunction; }; diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 1e6aadf..0a048fa 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -19,7 +19,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) }; ///////////////////////////////////////////////////////////// -bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int maxNonChimAlignScore, bool PEmerged_flag) { +bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int maxNonChimAlignScore, bool PEmerged_flag, int maxPossibleAlignScore) { chimRecord=false; @@ -108,7 +108,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest-(int)P.pCh.multimapScoreRange) - cAit->chimericJunctionOutput(*ostreamChimJunction, chimN, maxNonChimAlignScore, PEmerged_flag, chimScoreBest); + cAit->chimericJunctionOutput(*ostreamChimJunction, chimN, maxNonChimAlignScore, PEmerged_flag, chimScoreBest, maxPossibleAlignScore); }; if (chimN>0) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index aabd355..ce24c00 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -46,7 +46,7 @@ void ReadAlign::chimericDetection() { chimRecord=chimericDetectionOld(); chimericDetectionOldOutput(); } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score - chimRecord=chimDet->chimericDetectionMult(nW, readLength, trBest->maxScore, false); + chimRecord=chimDet->chimericDetectionMult(nW, readLength, trBest->maxScore, false, readLength[0]+readLength[1]); }; if ( chimRecord ) { diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index b6eb88d..b89ba86 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -10,6 +10,8 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { if (P.pCh.multimapNmax==0) { + // runs old chimeric detection routines. + seRA.multMapSelect(); //this needs to be done for ChimericDetectionOld, may not need it for the new algorithm seRA.mappedFilter(); @@ -67,7 +69,10 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { chimericDetectionOldOutput(); } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score - chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, trBest->maxScore, true); + + // new chimeric detection routine + + chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, trBest->maxScore, true, readLength[0]+readLength[1]); }; if ( chimRecord ) { From 5fc68be867b7f7ff3f1bb4c2803fca6b6456ae06 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Wed, 7 Aug 2019 11:44:53 -0400 Subject: [PATCH 473/536] need to count overlapping bases in chimeric reads in chim score for comparisions to other scores --- ChimericDetection_chimericDetectionMult.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 0a048fa..bba9d1f 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -12,7 +12,10 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) if (seg1.roE > seg1.P.pCh.segmentMin + seg1.roS + chimOverlap && seg2.roE > seg1.P.pCh.segmentMin + seg2.roS + chimOverlap \ && ( diffMates || ( (seg1.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg2.roS && (seg2.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg1.roS ) ) ) { - chimScore = seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + //chimScore = seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting + + chimScore = seg1.align.maxScore + seg2.align.maxScore; // need to double count overlapping bases since all other scores are also containing the overlapping bases. + }; return chimScore; From 0fa8c518740097f884ce6c15bf85f719d0d6461c Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Wed, 7 Aug 2019 12:40:23 -0400 Subject: [PATCH 474/536] perform chimeric stitching on all chim alignments captured for evaluation --- ChimericDetection_chimericDetectionMult.cpp | 29 +++++++++++---------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index bba9d1f..2c1c03f 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -12,10 +12,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) if (seg1.roE > seg1.P.pCh.segmentMin + seg1.roS + chimOverlap && seg2.roE > seg1.P.pCh.segmentMin + seg2.roS + chimOverlap \ && ( diffMates || ( (seg1.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg2.roS && (seg2.roE + seg1.P.pCh.segmentReadGapMax + 1) >= seg1.roS ) ) ) { - //chimScore = seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting - - chimScore = seg1.align.maxScore + seg2.align.maxScore; // need to double count overlapping bases since all other scores are also containing the overlapping bases. - + chimScore = seg1.align.maxScore + seg2.align.maxScore - (int)chimOverlap; //subtract overlap to avoid double counting }; return chimScore; @@ -72,16 +69,20 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max if (!chAl.chimericCheck()) continue; //check chimeric alignment - if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange) - chimAligns.push_back(chAl);//add this chimeric alignment - - if ( chimScore > chimScoreBest && chimScore >= P.pCh.scoreMin && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { - chimAligns.back().chimericStitching(outGen.G, Read1[0]); - if (chimAligns.back().chimScore > chimScoreBest) - chimScoreBest=chimAligns.back().chimScore; - }; - - }; + if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange) { + chAl.chimericStitching(outGen.G, Read1[0]); + + if (chimScore >= P.pCh.scoreMin && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { + // rescore after stitching. + chimScore=chimericAlignScore(chAl.seg1,chAl.seg2); + chAl.chimScore = chimScore + chimAligns.push_back(chAl);//add this chimeric alignment + + if (chimAligns.back().chimScore > chimScoreBest) + chimScoreBest=chimAligns.back().chimScore; + }; // endif add chimeric alignment vector + }; // endif in range of best chimeric score so far. + }; // endif chim score > 0 };//cycle over window2 aligns };//cycle over window2 };//cycle over window1 aligns From 6b68211508a7c6f114e6e846304ee19f7d9cdb59 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Wed, 7 Aug 2019 12:41:01 -0400 Subject: [PATCH 475/536] perform chimeric stitching on all chim alignments captured for evaluation --- ChimericDetection_chimericDetectionMult.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 2c1c03f..971025e 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -75,9 +75,9 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max if (chimScore >= P.pCh.scoreMin && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { // rescore after stitching. chimScore=chimericAlignScore(chAl.seg1,chAl.seg2); - chAl.chimScore = chimScore + chAl.chimScore = chimScore; chimAligns.push_back(chAl);//add this chimeric alignment - + if (chimAligns.back().chimScore > chimScoreBest) chimScoreBest=chimAligns.back().chimScore; }; // endif add chimeric alignment vector From 5b2f14188df14fa698cd3b999ab5b75ddb7736e1 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Wed, 7 Aug 2019 12:52:39 -0400 Subject: [PATCH 476/536] perform chimeric stitching on all chim alignments captured for evaluation --- ChimericDetection_chimericDetectionMult.cpp | 31 ++++++++++++--------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 971025e..4c13980 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -62,27 +62,32 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max int chimScore=chimericAlignScore(seg1,seg2); - if (chimScore>0) + if (chimScore>0 + && + chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax + && + chimScore >= P.pCh.scoreMin + && + chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange + ) {//candidate chimera ChimericAlign chAl(seg1, seg2, chimScore, outGen, RA); if (!chAl.chimericCheck()) continue; //check chimeric alignment - if (chimScore>=chimScoreBest-(int)P.pCh.multimapScoreRange) { - chAl.chimericStitching(outGen.G, Read1[0]); + chAl.chimericStitching(outGen.G, Read1[0]); + // rescore after stitching. + if (chAl.chimScore > 0) { // survived stitching. + chimScore=chimericAlignScore(chAl.seg1,chAl.seg2); + chAl.chimScore = chimScore; + chimAligns.push_back(chAl);//add this chimeric alignment - if (chimScore >= P.pCh.scoreMin && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax ) { - // rescore after stitching. - chimScore=chimericAlignScore(chAl.seg1,chAl.seg2); - chAl.chimScore = chimScore; - chimAligns.push_back(chAl);//add this chimeric alignment + if (chimAligns.back().chimScore > chimScoreBest) + chimScoreBest=chimAligns.back().chimScore; + }; // endif stitched chimera survived. - if (chimAligns.back().chimScore > chimScoreBest) - chimScoreBest=chimAligns.back().chimScore; - }; // endif add chimeric alignment vector - }; // endif in range of best chimeric score so far. - }; // endif chim score > 0 + }; // endif meets chim score criteria };//cycle over window2 aligns };//cycle over window2 };//cycle over window1 aligns From eb17539d6af05fa9cd24e67daef31809bcf841ab Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Wed, 7 Aug 2019 15:10:41 -0400 Subject: [PATCH 477/536] require chimscore to exceed non-chim score --- ChimericDetection_chimericDetectionMult.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 4c13980..1062601 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -62,7 +62,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max int chimScore=chimericAlignScore(seg1,seg2); - if (chimScore>0 + if (chimScore > maxNonChimAlignScore && chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax && @@ -78,7 +78,8 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max chAl.chimericStitching(outGen.G, Read1[0]); // rescore after stitching. - if (chAl.chimScore > 0) { // survived stitching. + if (chAl.chimScore > maxNonChimAlignScore) { // survived stitching. + // rescore the stitched alignment. chimScore=chimericAlignScore(chAl.seg1,chAl.seg2); chAl.chimScore = chimScore; chimAligns.push_back(chAl);//add this chimeric alignment @@ -101,6 +102,8 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max if (cAit->chimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; + + /* if (chimN > 2*P.pCh.multimapNmax) //too many loci (considering 2* more candidates for stitching below) return chimRecord; @@ -112,6 +115,8 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max ++chimN; }; }; + */ + if (chimN > P.pCh.multimapNmax) //too many loci return chimRecord; From b0a452465945e2609b30a0d7554eb4206fb54610 Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Wed, 7 Aug 2019 15:32:49 -0400 Subject: [PATCH 478/536] include max possible alignment score in chim detection routine directly --- ChimericDetection.h | 2 +- ChimericDetection_chimericDetectionMult.cpp | 6 ++++-- ReadAlign_chimericDetection.cpp | 2 +- ReadAlign_chimericDetectionPEmerged.cpp | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ChimericDetection.h b/ChimericDetection.h index 86ae2c4..1dcf379 100644 --- a/ChimericDetection.h +++ b/ChimericDetection.h @@ -26,7 +26,7 @@ class ChimericDetection { int chimScoreBest; ChimericDetection(Parameters &Pin, Transcript ***trAll, uint *nWinTr, char** Read1in, Genome &genomeIn, fstream *ostreamChimJunctionIn, ReadAlign *RA); - bool chimericDetectionMult(uint nWin, uint *readLengthIn, int maxNonChimAlignScore, bool PEmerged_flag, int maxPossibleAlignScore); + bool chimericDetectionMult(uint nWin, uint *readLengthIn, int maxNonChimAlignScore, bool PEmerged_flag); fstream *ostreamChimJunction; }; diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 1062601..401f284 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -19,7 +19,7 @@ int chimericAlignScore (ChimericSegment & seg1, ChimericSegment & seg2) }; ///////////////////////////////////////////////////////////// -bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int maxNonChimAlignScore, bool PEmerged_flag, int maxPossibleAlignScore) { +bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int maxNonChimAlignScore, bool PEmerged_flag) { chimRecord=false; @@ -40,6 +40,8 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max chimAligns.clear(); chimScoreBest=0; + int maxPossibleAlignScore = (int)(readLength[0]+readLength[1]) + for (uint iW1=0; iW1 maxNonChimAlignScore && - chimScore >= (int)(readLength[0]+readLength[1]) - P.pCh.scoreDropMax + chimScore >= maxPossibleAlignScore - P.pCh.scoreDropMax && chimScore >= P.pCh.scoreMin && diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index ce24c00..aabd355 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -46,7 +46,7 @@ void ReadAlign::chimericDetection() { chimRecord=chimericDetectionOld(); chimericDetectionOldOutput(); } else if (trBest->maxScore <= (int) (readLength[0]+readLength[1]) - (int) P.pCh.nonchimScoreDropMin) {//require big enough drop in the best score - chimRecord=chimDet->chimericDetectionMult(nW, readLength, trBest->maxScore, false, readLength[0]+readLength[1]); + chimRecord=chimDet->chimericDetectionMult(nW, readLength, trBest->maxScore, false); }; if ( chimRecord ) { diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index b89ba86..c5d727b 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -72,7 +72,7 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { // new chimeric detection routine - chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, trBest->maxScore, true, readLength[0]+readLength[1]); + chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, trBest->maxScore, true); }; if ( chimRecord ) { From 6f9e2f59a5b5cc899640772285ae4b0025a671fd Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Wed, 7 Aug 2019 15:35:24 -0400 Subject: [PATCH 479/536] include max possible alignment score in chim detection routine directly --- ChimericDetection_chimericDetectionMult.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChimericDetection_chimericDetectionMult.cpp b/ChimericDetection_chimericDetectionMult.cpp index 401f284..3316205 100644 --- a/ChimericDetection_chimericDetectionMult.cpp +++ b/ChimericDetection_chimericDetectionMult.cpp @@ -40,7 +40,7 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max chimAligns.clear(); chimScoreBest=0; - int maxPossibleAlignScore = (int)(readLength[0]+readLength[1]) + int maxPossibleAlignScore = (int)(readLength[0]+readLength[1]); for (uint iW1=0; iW1 Date: Wed, 7 Aug 2019 16:24:35 -0400 Subject: [PATCH 480/536] incorporated Alex Chimeric_1 branch updates --- ChimericAlign.h | 2 +- ChimericAlign_chimericStitching.cpp | 9 +++++++-- ChimericDetection_chimericDetectionMult.cpp | 9 ++++----- Transcript.h | 2 +- Transcript_alignScore.cpp | 3 ++- VERSION | 2 +- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/ChimericAlign.h b/ChimericAlign.h index a7c51d3..5fa184a 100644 --- a/ChimericAlign.h +++ b/ChimericAlign.h @@ -24,7 +24,7 @@ class ChimericAlign ChimericAlign(ChimericSegment &seg1in, ChimericSegment &seg2in, int chimScoreIn, Genome &genomeIn, ReadAlign *RAin); //allocate void chimericJunctionOutput(fstream &outStream, uint chimN, int maxNonChimAlignScore, bool PEmerged_flag, int chimScoreBest, int maxPossibleAlignScore); - void chimericStitching(char *genSeq, char *readSeq); + void chimericStitching(char *genSeq, char **Read1); bool chimericCheck(); bool stitchingDone; diff --git a/ChimericAlign_chimericStitching.cpp b/ChimericAlign_chimericStitching.cpp index 84665ea..90ad22e 100644 --- a/ChimericAlign_chimericStitching.cpp +++ b/ChimericAlign_chimericStitching.cpp @@ -1,12 +1,14 @@ #include "ChimericAlign.h" -void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { +void ChimericAlign::chimericStitching(char *genSeq, char **Read1) { if (stitchingDone) return; stitchingDone=true; + char *readSeq=Read1[0]; //only direct read sequence is used - reverse complemented if necessary in the algorithm + al1=new Transcript(*al1); al2=new Transcript(*al2); @@ -168,9 +170,12 @@ void ChimericAlign::chimericStitching(char *genSeq, char *readSeq) { chimRepeat1=jR; };//chimeric junction is within a mate - if (chimMotif>=0 && (a1.exons[ex1][EX_L]=0 && (a1.exons[ex1][EX_L] maxNonChimAlignScore) { // survived stitching. - // rescore the stitched alignment. - chimScore=chimericAlignScore(chAl.seg1,chAl.seg2); - chAl.chimScore = chimScore; chimAligns.push_back(chAl);//add this chimeric alignment if (chimAligns.back().chimScore > chimScoreBest) @@ -100,7 +98,8 @@ bool ChimericDetection::chimericDetectionMult(uint nW, uint *readLength, int max return chimRecord; chimN=0; - for (auto cAit=chimAligns.begin(); cAitchimScore >= chimScoreBest - (int)P.pCh.multimapScoreRange) ++chimN; }; diff --git a/Transcript.h b/Transcript.h index 0259e05..14c0b28 100644 --- a/Transcript.h +++ b/Transcript.h @@ -58,7 +58,7 @@ class Transcript { void resetMapG(); // reset map to 0 void resetMapG(uint); // reset map to 0 for Lread bases void add(Transcript*); // add - void alignScore(char **Read1, char *G, Parameters &P); + intScore alignScore(char **Read1, char *G, Parameters &P); int variationAdjust(const Genome &mapGen, char *R); string generateCigarP(); //generates CIGAR void peOverlapSEtoPE(uint* mSta, Transcript &t); diff --git a/Transcript_alignScore.cpp b/Transcript_alignScore.cpp index 147f046..9fd40ea 100644 --- a/Transcript_alignScore.cpp +++ b/Transcript_alignScore.cpp @@ -1,7 +1,7 @@ #include #include "Transcript.h" -void Transcript::alignScore(char **Read1, char *G, Parameters &P) {//re-calculates score and number of mismatches +intScore Transcript::alignScore(char **Read1, char *G, Parameters &P) {//re-calculates score and number of mismatches maxScore=0; nMM=0; nMatch=0; @@ -52,4 +52,5 @@ void Transcript::alignScore(char **Read1, char *G, Parameters &P) {//re-calculat maxScore += int(ceil( log2( (double) ( max(1LLU,exons[nExons-1][EX_G]+exons[nExons-1][EX_L] - exons[0][EX_G]) ) ) \ * P.scoreGenomicLengthLog2scale - 0.5)); }; + return maxScore; }; diff --git a/VERSION b/VERSION index 1d06043..8c15048 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.1a" +#define STAR_VERSION "2.7.1a_Chimeric_2" From 53ef2c01dc225111027f983c65c807846b783c1a Mon Sep 17 00:00:00 2001 From: Brian Haas Date: Fri, 9 Aug 2019 12:38:03 -0400 Subject: [PATCH 481/536] use mergedPE align score for comparison w/ chimeric mergedPE score --- ReadAlign_chimericDetectionPEmerged.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadAlign_chimericDetectionPEmerged.cpp b/ReadAlign_chimericDetectionPEmerged.cpp index c5d727b..7df2060 100644 --- a/ReadAlign_chimericDetectionPEmerged.cpp +++ b/ReadAlign_chimericDetectionPEmerged.cpp @@ -72,7 +72,7 @@ void ReadAlign::chimericDetectionPEmerged(ReadAlign &seRA) { // new chimeric detection routine - chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, trBest->maxScore, true); + chimRecord=seRA.chimDet->chimericDetectionMult(seRA.nW, seRA.readLength, seRA.trBest->maxScore, true); }; if ( chimRecord ) { From 7d3c72b50da6993e74e5a924a84d63cd2252ac21 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 12 Aug 2019 18:25:47 -0400 Subject: [PATCH 482/536] Added header to Chimeric.out.junction. Remove all parameters output from Log.out. --- Makefile | 2 +- Parameters.cpp | 92 ++++-------------------- ParametersChimeric.h | 6 ++ ParametersChimeric_initialize.cpp | 112 ++++++++++++++++++++++++++++++ STAR.cpp | 14 +--- 5 files changed, 133 insertions(+), 93 deletions(-) create mode 100644 ParametersChimeric_initialize.cpp diff --git a/Makefile b/Makefile index 4bdbfc5..8e34074 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS) ########################################################################################################## -OBJECTS = ParametersSolo.o SoloRead.o SoloRead_record.o \ +OBJECTS = ParametersChimeric_initialize.o ParametersSolo.o SoloRead.o SoloRead_record.o \ SoloReadBarcode.o SoloReadBarcode_getCBandUMI.o \ SoloReadFeature.o SoloReadFeature_record.o SoloReadFeature_inputRecords.o \ Solo.o SoloFeature.o SoloFeature_collapseUMI.o SoloFeature_outputResults.o SoloFeature_processRecords.o\ diff --git a/Parameters.cpp b/Parameters.cpp index 730afb1..50fbcfe 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -359,13 +359,15 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; + /* inOut->logMain << "##### DEFAULT parameters:\n" <inputLevel==0) { inOut->logMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; }; }; - + */ + inOut->logMain <<"##### Command Line:\n"<logMain << "##### Initial USER parameters from Command Line:\n"; @@ -418,14 +420,16 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters commandLineFull=clFull.str(); inOut->logMain << "\n-------------------------------\n##### Final effective command line:\n" << clFull.str() << "\n"; -// parOut.close(); + /* + // parOut.close(); inOut->logMain << "\n##### Final parameters after user input--------------------------------:\n" << flush; -// parOut.open("Parameters.all.out"); + // parOut.open("Parameters.all.out"); for (uint ii=0; iilogMain << setw(PAR_NAME_PRINT_WIDTH) << parArray[ii]->nameString <<" "<< *(parArray[ii]) << endl; }; -// parOut.close(); - + // parOut.close(); + */ + inOut->logMain << "----------------------------------------\n\n" << flush; @@ -1191,81 +1195,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: re-run STAR without these attribures, or with --soloType set\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - //chimeric - pCh.out.bam=false; - pCh.out.junctions=false; - pCh.out.samOld=false; - pCh.out.bamHardClip=true;//default - if (pCh.segmentMin>0) {//only if chimeric detection is activated - for (const auto& type1 : pCh.out.type) { - if (type1=="WithinBAM") { - pCh.out.bam=true; - } else if (type1=="SeparateSAMold") { - pCh.out.samOld=true; - } else if (type1=="Junctions") { - pCh.out.junctions=true; - } else if (type1=="HardClip") { - pCh.out.bamHardClip=true; - } else if (type1=="SoftClip") { - pCh.out.bamHardClip=false; - } else { - ostringstream errOut; - errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --chimOutType: "<logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - - if (pCh.out.bam && !outBAMunsorted && !outBAMcoord) { - ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; - errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - - if (pCh.multimapNmax>0 && (pCh.out.bam || pCh.out.samOld)) { - ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax > 0 (new chimeric detection) presently only works with --chimOutType Junctions\n"; - errOut <<"SOLUTION: re-run with --chimOutType Junctions\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - - if (peOverlap.NbasesMin > 0) { - if (pCh.multimapNmax == 0 && (pCh.out.junctions || pCh.out.samOld)) { - ostringstream errOut; - errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax 0 (default old chimeric detection) and --peOverlapNbasesMin > 0 (merging ovelrapping mates) presently only works with --chimOutType WithinBAM\n"; - errOut <<"SOLUTION: re-run with --chimOutType WithinBAM\n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - - - - if (pCh.out.bam && !outSAMattrPresent.NM) { - outSAMattrOrder.push_back(ATTR_NM); - inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <logMain, EXIT_CODE_PARAMETER, *this); - }; - }; - }; + + //initialize chimeric parameters + pCh.initialize(this); alignEndsType.ext[0][0]=false; alignEndsType.ext[0][1]=false; diff --git a/ParametersChimeric.h b/ParametersChimeric.h index b5da3e8..2f4602b 100644 --- a/ParametersChimeric.h +++ b/ParametersChimeric.h @@ -3,6 +3,8 @@ #include "IncludeDefine.h" +class Parameters; + class ParametersChimeric {// public: @@ -29,7 +31,11 @@ class ParametersChimeric bool samOld; bool junctions; } out; + + void initialize(Parameters *pPin); + private: + Parameters *pP; }; #endif \ No newline at end of file diff --git a/ParametersChimeric_initialize.cpp b/ParametersChimeric_initialize.cpp new file mode 100644 index 0000000..2f91c3d --- /dev/null +++ b/ParametersChimeric_initialize.cpp @@ -0,0 +1,112 @@ +#include "ParametersChimeric.h" +#include "Parameters.h" +#include "ErrorWarning.h" +#include "GlobalVariables.h" + +void ParametersChimeric::initialize(Parameters *pPin) +{ + if (segmentMin==0) + return; + + pP=pPin; + + if (out.junctions) { + pP->inOut->outChimJunction.open((pP->outFileNamePrefix + "Chimeric.out.junction").c_str()); + + if (multimapNmax>0) + pP->inOut->outChimJunction << + "chr_donorA" <<"\t"<< + "brkpt_donorA" <<"\t"<< + "strand_donorA" <<"\t"<< + "chr_acceptorB" <<"\t"<< + "brkpt_acceptorB" <<"\t"<< + "strand_acceptorB" <<"\t"<< + "junction_type" <<"\t"<< + "repeat_left_lenA" <<"\t"<< + "repeat_right_lenB" <<"\t"<< + "read_name" <<"\t"<< + "start_alnA" <<"\t"<< + "cigar_alnA" <<"\t"<< + "start_alnB" <<"\t"<< + "cigar_alnB" <<"\t"<< + "num_chim_aln" <<"\t"<< + "max_poss_aln_score" <<"\t"<< + "non_chim_aln_score" <<"\t"<< + "this_chim_aln_score" <<"\t"<< + "bestall_chim_aln_score" <<"\t"<< + "PEmerged_bool" <<"\t"<< + "readgrp" <<"\n"; + }; + if (out.samOld) { + pP->inOut->outChimSAM.open((pP->outFileNamePrefix + "Chimeric.out.sam").c_str()); + pP->inOut->outChimSAM << pP->samHeader; + }; + pthread_mutex_init(&g_threadChunks.mutexOutChimSAM, NULL); + pthread_mutex_init(&g_threadChunks.mutexOutChimJunction, NULL); + + out.bam=false; + out.junctions=false; + out.samOld=false; + out.bamHardClip=true;//default + for (const auto& type1 : out.type) { + if (type1=="WithinBAM") { + out.bam=true; + } else if (type1=="SeparateSAMold") { + out.samOld=true; + } else if (type1=="Junctions") { + out.junctions=true; + } else if (type1=="HardClip") { + out.bamHardClip=true; + } else if (type1=="SoftClip") { + out.bamHardClip=false; + } else { + ostringstream errOut; + errOut <<"EXITING because of FATAL INPUT ERROR: unknown/unimplemented value for --chimOutType: "<inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + }; + + if (out.bam && !pP->outBAMunsorted && !pP->outBAMcoord) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; + errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; + exitWithError(errOut.str(), std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + + if (multimapNmax>0 && (out.bam || out.samOld)) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax > 0 (new chimeric detection) presently only works with --chimOutType Junctions\n"; + errOut <<"SOLUTION: re-run with --chimOutType Junctions\n"; + exitWithError(errOut.str(), std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + + if (pP->peOverlap.NbasesMin > 0) { + if (multimapNmax == 0 && (out.junctions || out.samOld)) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax 0 (default old chimeric detection) and --peOverlapNbasesMin > 0 (merging ovelrapping mates) presently only works with --chimOutType WithinBAM\n"; + errOut <<"SOLUTION: re-run with --chimOutType WithinBAM\n"; + exitWithError(errOut.str(), std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + }; + + if (out.bam && !pP->outSAMattrPresent.NM) { + pP->outSAMattrOrder.push_back(ATTR_NM); + pP->inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <inOut->logMain, EXIT_CODE_PARAMETER, *pP); + }; + }; +}; \ No newline at end of file diff --git a/STAR.cpp b/STAR.cpp index e2076d9..a20d7f5 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -310,18 +310,8 @@ int main(int argInN, char* argIn[]) { }; - if (P.pCh.segmentMin>0) { - if (P.pCh.out.junctions) { - P.inOut->outChimJunction.open((P.outFileNamePrefix + "Chimeric.out.junction").c_str()); - }; - if (P.pCh.out.samOld) { - P.inOut->outChimSAM.open((P.outFileNamePrefix + "Chimeric.out.sam").c_str()); - P.inOut->outChimSAM << P.samHeader; - }; - pthread_mutex_init(&g_threadChunks.mutexOutChimSAM, NULL); - pthread_mutex_init(&g_threadChunks.mutexOutChimJunction, NULL); - }; - + //initialize chimeric parameters here + // P.inOut->logMain << "mlock value="< Date: Mon, 12 Aug 2019 20:48:21 -0400 Subject: [PATCH 483/536] bugfix needed to output column headers for Chimeric.out.junction file --- ParametersChimeric_initialize.cpp | 60 ++++++++++++++++--------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/ParametersChimeric_initialize.cpp b/ParametersChimeric_initialize.cpp index 2f91c3d..7fff3ee 100644 --- a/ParametersChimeric_initialize.cpp +++ b/ParametersChimeric_initialize.cpp @@ -10,33 +10,6 @@ void ParametersChimeric::initialize(Parameters *pPin) pP=pPin; - if (out.junctions) { - pP->inOut->outChimJunction.open((pP->outFileNamePrefix + "Chimeric.out.junction").c_str()); - - if (multimapNmax>0) - pP->inOut->outChimJunction << - "chr_donorA" <<"\t"<< - "brkpt_donorA" <<"\t"<< - "strand_donorA" <<"\t"<< - "chr_acceptorB" <<"\t"<< - "brkpt_acceptorB" <<"\t"<< - "strand_acceptorB" <<"\t"<< - "junction_type" <<"\t"<< - "repeat_left_lenA" <<"\t"<< - "repeat_right_lenB" <<"\t"<< - "read_name" <<"\t"<< - "start_alnA" <<"\t"<< - "cigar_alnA" <<"\t"<< - "start_alnB" <<"\t"<< - "cigar_alnB" <<"\t"<< - "num_chim_aln" <<"\t"<< - "max_poss_aln_score" <<"\t"<< - "non_chim_aln_score" <<"\t"<< - "this_chim_aln_score" <<"\t"<< - "bestall_chim_aln_score" <<"\t"<< - "PEmerged_bool" <<"\t"<< - "readgrp" <<"\n"; - }; if (out.samOld) { pP->inOut->outChimSAM.open((pP->outFileNamePrefix + "Chimeric.out.sam").c_str()); pP->inOut->outChimSAM << pP->samHeader; @@ -67,6 +40,37 @@ void ParametersChimeric::initialize(Parameters *pPin) }; }; + if (out.junctions) { + pP->inOut->outChimJunction.open((pP->outFileNamePrefix + "Chimeric.out.junction").c_str()); + + if (multimapNmax>0) + // column headers for Chimeric.out.junction file + pP->inOut->outChimJunction << + "chr_donorA" <<"\t"<< + "brkpt_donorA" <<"\t"<< + "strand_donorA" <<"\t"<< + "chr_acceptorB" <<"\t"<< + "brkpt_acceptorB" <<"\t"<< + "strand_acceptorB" <<"\t"<< + "junction_type" <<"\t"<< + "repeat_left_lenA" <<"\t"<< + "repeat_right_lenB" <<"\t"<< + "read_name" <<"\t"<< + "start_alnA" <<"\t"<< + "cigar_alnA" <<"\t"<< + "start_alnB" <<"\t"<< + "cigar_alnB" <<"\t"<< + "num_chim_aln" <<"\t"<< + "max_poss_aln_score" <<"\t"<< + "non_chim_aln_score" <<"\t"<< + "this_chim_aln_score" <<"\t"<< + "bestall_chim_aln_score" <<"\t"<< + "PEmerged_bool" <<"\t"<< + "readgrp" <<"\n"; + }; + + + if (out.bam && !pP->outBAMunsorted && !pP->outBAMcoord) { ostringstream errOut; errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; @@ -109,4 +113,4 @@ void ParametersChimeric::initialize(Parameters *pPin) exitWithError(errOut.str(),std::cerr, pP->inOut->logMain, EXIT_CODE_PARAMETER, *pP); }; }; -}; \ No newline at end of file +}; From 85c4977512e8454b503c11d495708ebe672d5ae7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 13 Aug 2019 17:24:28 -0400 Subject: [PATCH 484/536] Ready for 2.7.2a. --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 8c15048..6fff7bf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "2.7.1a_Chimeric_2" +#define STAR_VERSION "2.7.2a" From a41d7bac94ca623719870a0bb380952f7a9be48f Mon Sep 17 00:00:00 2001 From: "michael.kirsche" Date: Wed, 17 Jul 2019 16:27:38 +0000 Subject: [PATCH 485/536] Initial orbit commit --- 1.fastq | 2220 ++++++++++++++++++++ Genome.cpp | 2 +- Parameters.cpp | 11 +- ReadAlign.h | 18 +- ReadAlign_assignAlignToWindow.cpp | 4 + ReadAlign_createExtendWindowsWithAlign.cpp | 7 +- ReadAlign_mapOneRead.cpp | 7 +- ReadAlign_oneRead.cpp | 11 +- ReadAlign_outputAlignments.cpp | 50 +- ReadAlign_stitchPieces.cpp | 20 +- STAR.cpp | 4 +- orbit.cpp | 109 + 12 files changed, 2430 insertions(+), 33 deletions(-) create mode 100644 1.fastq create mode 100644 orbit.cpp diff --git a/1.fastq b/1.fastq new file mode 100644 index 0000000..b465e0f --- /dev/null +++ b/1.fastq @@ -0,0 +1,2220 @@ +@D000684:779:H53GNBCXY:1:1101:1303:2361 3:N:0:0 +GTGCGGGGAGAAGTTTCAAGAAGGTTCTTATGGAAAAAAGGCTGTGAGCATAGAAAGCAGTCATAGGAGGTTGGGGAACTAGCTTGTCCCTCCCCACC ++ +GGGAGIGIIIGIIGGGGIIGGIGGAGGAGGAAG.GGIIIGlogMain, EXIT_CODE_GENOME_FILES, P); + //exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_GENOME_FILES, P); }; //find chr starts from files diff --git a/Parameters.cpp b/Parameters.cpp index 50fbcfe..cc99b12 100755 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -275,7 +275,6 @@ Parameters::Parameters() {//initalize parameters info void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters: default, from files, from command line ///////// Default parameters - #include "parametersDefault.xxd" string parString( (const char*) parametersDefault,parametersDefault_len); stringstream parStream (parString); @@ -326,7 +325,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters istringstream parStreamCommandLine(commandLineFile); scanAllLines(parStreamCommandLine, 1, 2); //read only initial Command Line parameters }; - // need to be careful since runMode and pGe.gDir are not Command-Line-Initial // if (runMode=="genomeGenerate" && outFileNamePrefix=="./") {// for genome generation, output into pGe.gDir // outFileNamePrefix=pGe.gDir; @@ -851,8 +849,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters // openReadFiles depends on twoPass for reading SAM header if (runMode=="alignReads" && pGe.gLoad!="Remove" && pGe.gLoad!="LoadAndExit") {//open reads files to check if they are present - openReadsFiles(); - + //openReadsFiles(); + readNmates = 2; //check sizes of the mate files, if not the same, assume mates are not the same length if (readNmates==1) { readMatesEqualLengths=true; @@ -1405,6 +1403,9 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //////////////////////////////////////////////// inOut->logMain << "Finished loading and checking parameters\n" <> parIn; if (parIn=="" || parIn.substr(0,2)=="//" || parIn.substr(0,1)=="#") return 0; //this is a comment - uint iPar; for (iPar=0; iParnameString) {// @@ -1451,7 +1451,6 @@ int Parameters::scanOneLine (string &lineIn, int inputLevel, int inputLevelReque }; lineInStream.str(lineIn); lineInStream.clear(); lineInStream >> parIn; //get the correct state of stream, past reading parIn - if (iPar==parArray.size()) {//string is not identified ostringstream errOut; errOut << "EXITING: FATAL INPUT ERROR: unrecognized parameter name \""<< parIn << "\" in input \"" << parameterInputName.at(inputLevel) <<"\"\n"; diff --git a/ReadAlign.h b/ReadAlign.h index f75fdab..33a0660 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -54,6 +54,12 @@ class ReadAlign { SoloRead *soloRead; //counts reads per CB per and outputs CB/UMI/gene into file, per thread + uint readNmates; + char **Read0; + char **Qual0; + void multMapSelect(); + int mapOneRead(); + string outputAlignments(); private: Parameters& P; //pointer to the parameters, will be initialized on construction @@ -96,13 +102,13 @@ class ReadAlign { vectorreadNameExtra; char dummyChar[4096]; - char** Read0; - char** Qual0; + //char** Read0; + //char** Qual0; char** readNameMates; char* readName; char** Qual1; //modified QSs for scoring - uint readNmates; + //uint readNmates; //split uint** splitR; uint Nsplit; @@ -156,8 +162,8 @@ class ReadAlign { } peOv;//PE mates overlap/merge/remap structure void resetN();//resets the counters to 0 - void multMapSelect(); - int mapOneRead(); + //void multMapSelect(); + //int mapOneRead(); uint maxMappableLength2strands(uint pieceStart, uint pieceLength, uint iDir, uint iSA1, uint iSA2, uint& maxL, uint iFrag); void storeAligns (uint iDir, uint Shift, uint Nrep, uint L, uint indStartEnd[2], uint iFrag); @@ -179,7 +185,7 @@ class ReadAlign { void chimericDetectionPEmerged(ReadAlign &seRa); // void chimericDetectionPEmergedTrim(); - void outputAlignments(); + //string outputAlignments(); void calcCIGAR(Transcript const &trOut, uint nMates, uint iExMate, uint leftMate); void stitchWindowSeeds (uint iW, uint iWrec, bool *WAexcl, char *R);//stitches all seeds in one window: iW diff --git a/ReadAlign_assignAlignToWindow.cpp b/ReadAlign_assignAlignToWindow.cpp index c1f6fe6..4b1728f 100644 --- a/ReadAlign_assignAlignToWindow.cpp +++ b/ReadAlign_assignAlignToWindow.cpp @@ -65,6 +65,8 @@ void ReadAlign::assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep }; }; + //printf("nWA[iW] %llu\n", nWA[iW]); + if (nWA[iW]==P.seedPerWindowNmax) {//too many aligns per window, re-calcualte min-length, remove the shortest one, WALrec[iW]=Lread+1; @@ -75,6 +77,7 @@ void ReadAlign::assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep if (WALrec[iW]==Lread+1) {//this could happen if there are too many anchors mapMarker=MARKER_TOO_MANY_ANCHORS_PER_WINDOW; + //printf("too many anchors per window\n"); nW=0; return; }; @@ -115,6 +118,7 @@ void ReadAlign::assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep }; // now iW is the window to which this align belongs, record it + //printf("recording window %llu %llu %llu\n", aRstart, aLength, a1); WA[iW][iA][WA_rStart]=aRstart; WA[iW][iA][WA_Length]=aLength; WA[iW][iA][WA_gStart]=a1; diff --git a/ReadAlign_createExtendWindowsWithAlign.cpp b/ReadAlign_createExtendWindowsWithAlign.cpp index c04fd21..73588ab 100644 --- a/ReadAlign_createExtendWindowsWithAlign.cpp +++ b/ReadAlign_createExtendWindowsWithAlign.cpp @@ -6,16 +6,16 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { - + //printf("hiiiii\n"); uint aBin = (a1 >> P.winBinNbits); //align's bin uint iBinLeft=aBin, iBinRight=aBin; uintWinBin* wB=winBin[aStr]; uint iBin=-1, iWin=-1, iWinRight=-1; - + //printf("wB[aBin] %hu, uintWinBinMax %hu\n", wB[aBin], uintWinBinMax); if (wB[aBin]==uintWinBinMax) {//proceed if there is no window at this bin //check neighboring bins - + //printf("window bin\n"); bool flagMergeLeft=false; if (aBin>0) {//merge left only if there are bins on the left for (iBin=aBin-1; iBin >= ( aBin>P.winAnchorDistNbins ? aBin-P.winAnchorDistNbins : 0 ); --iBin) {//go left, find windows in Anchor range @@ -66,6 +66,7 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { WC[iWin][WC_Chr]=mapGen.chrBin[aBin >> P.winBinChrNbits]; WC[iWin][WC_Str]=aStr; WC[iWin][WC_gEnd]=WC[iWin][WC_gStart]=aBin; + //printf("new window!!!\n"); ++nW; if (nW>=P.alignWindowsPerReadNmax) { nW=P.alignWindowsPerReadNmax-1; diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 72c61e4..2a1f691 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -77,7 +77,7 @@ int ReadAlign::mapOneRead() { Lmapped+=L; };//while ( istart*Lstart + Lmapped + P.minLmap < splitR[1][ip] ) };//if (flagDirMap || istart>0) - + //printf("Lmapped %llu, %llu\n", Lmapped, L); if (P.seedSearchLmax>0) {//search fixed length. Not very efficient, need to improve // off by default. uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart ) : \ @@ -98,20 +98,25 @@ int ReadAlign::mapOneRead() { #endif if (LreadrLength=0; //min good piece length nW=0; } else if (Nsplit==0) {//no good pieces + //printf("no good pieces\n"); mapMarker=MARKER_NO_GOOD_PIECES; trBest->rLength=splitR[1][0]; //min good piece length nW=0; } else if (Nsplit>0 && nA==0) { + //printf("not sure what this case is\n"); mapMarker=MARKER_ALL_PIECES_EXCEED_seedMultimapNmax; trBest->rLength=multNminL; nW=0; } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length + //printf("stitching %llu pieces\n", nP); stitchPieces(Read1, Lread); + }; return 0; diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index cdd5de2..143d808 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -8,8 +8,8 @@ int ReadAlign::oneRead() {//process one read: load, map, write //load read name, sequence, quality from the streams into internal arrays int readStatus[2]; - - readStatus[0]=readLoad(*(readInStream[0]), P, 0, readLength[0], readLengthOriginal[0], readNameMates[0], Read0[0], Read1[0], Qual0[0], Qual1[0], clip3pNtotal[0], clip5pNtotal[0], clip3pAdapterN[0], iReadAll, readFilesIndex, readFilter, readNameExtra[0]); + readStatus[0] = 0; + //readStatus[0]=readLoad(*(readInStream[0]), P, 0, readLength[0], readLengthOriginal[0], readNameMates[0], Read0[0], Read1[0], Qual0[0], Qual1[0], clip3pNtotal[0], clip5pNtotal[0], clip3pAdapterN[0], iReadAll, readFilesIndex, readFilter, readNameExtra[0]); if (P.readNmates==2) {//read the 2nd mate readStatus[1]=readLoad(*(readInStream[1]), P, 1, readLength[1], readLengthOriginal[1], readNameMates[1], Read0[1], Read1[0]+readLength[0]+1, Qual0[1], Qual1[0]+readLength[0]+1, clip3pNtotal[1], clip5pNtotal[1], clip3pAdapterN[1], iReadAll, readFilesIndex, readFilter, readNameExtra[1]); @@ -88,9 +88,14 @@ int ReadAlign::oneRead() {//process one read: load, map, write #warning OFF_BEFORE_OUTPUT return 0; #endif + if(trBest != NULL) + { + //printf("best transcript %llu %llu %llu\n", trBest->Chr, trBest->gStart, trBest->gLength); + } + //printf("unmapType %u\n", unmapType); //write out alignments - outputAlignments(); + //outputAlignments(); return 0; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 7b4e7e4..4423f47 100755 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -2,8 +2,8 @@ #include "GlobalVariables.h" #include "ErrorWarning.h" -void ReadAlign::outputAlignments() { - +string ReadAlign::outputAlignments() { + //printf("Outputting alignment\n"); outBAMbytes=0; bool mateMapped[2]={false,false}; @@ -12,9 +12,16 @@ void ReadAlign::outputAlignments() { vector readTranscripts={}; vector readGeneExon={}; + std::ostringstream stream; + + //printf("unmap type %d\n", unmapType); + outFilterPassed=true;//only false if the alignment is held for outFilterBySJoutStage + + //printf("go\n"); if (unmapType==-1) {//output transcripts if (P.outFilterBySJoutStage==1) {//filtering by SJout + //printf("nTr %llu\n", nTr); for (uint iTr=0;iTrnExons-1;iex++) {//check all junctions if (trMult[iTr]->canonSJ[iex]>=0 && trMult[iTr]->sjAnnot[iex]==0) { @@ -28,7 +35,7 @@ void ReadAlign::outputAlignments() { unmapType=-3; //the read is not conisddred unmapped statsRA.readN--; statsRA.readBases -= readLength[0]+readLength[1]; - + //printf("readnmates %llu\n", P.readNmates); for (uint im=0;imN; + //printf("looping\n"); for (uint iTr=0;iTr1) {//multimappers statsRA.mappedReadsM++; unmapType=-1; @@ -93,22 +108,26 @@ void ReadAlign::outputAlignments() { nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files soloRead->readBar->getCBandUMI(readNameExtra.at(0)); - + //printf("sub check2\n"); //write to SAM/BAM for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; mateMapped1[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; if (P.outSAMbool && outSAMfilterYes) {//SAM output - outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); + //printf("starting sam output\n"); + outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, &stream); if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) {//keep pairs && paired reads && one of the mates not mapped in this transcript - outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, outSAMstream); + outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, &stream); }; + //printf("done sam output\n"); }; if ((P.outBAMunsorted || P.outBAMcoord) && outSAMfilterYes) {//BAM output + //printf("bam output\n"); alignBAM(*(trMult[iTr]), nTr, iTr, mapGen.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); if (P.outBAMunsorted) {//unsorted @@ -121,9 +140,11 @@ void ReadAlign::outputAlignments() { outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; }; + //printf("done bam\n"); }; if (P.outBAMcoord) {//coordinate sorted + //printf("bam coord\n"); for (uint imate=0; imatecoordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; @@ -139,12 +160,16 @@ void ReadAlign::outputAlignments() { unmapType=4; }; + //printf("sub check3\n"); + if (unmapType==4 && P.outSAMunmapped.yes) {//output unmapped end for single-end alignments if (P.outSAMbool && !P.outSAMunmapped.keepPairs && outSAMfilterYes) { - outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); + //printf("sam or bam? the world may never know\n"); + outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, &stream); }; if ( (P.outBAMcoord || (P.outBAMunsorted && !P.outSAMunmapped.keepPairs) ) && outSAMfilterYes) {//BAM output + //printf("pure-bred bam\n"); alignBAM(*trBest, 0, 0, mapGen.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imateN; for (uint iTr=0;iTrgeneFullAlignOverlap(nTr, trMult, P.pSolo.strand, readGeneFull); }; + //printf("sub check5\n"); + //transcripts if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused quantTranscriptome(chunkTr, nTrOut, trMult, alignTrAll, readTranscripts, readGene); @@ -183,6 +213,8 @@ void ReadAlign::outputAlignments() { }; }; + //printf("outputAlignment checkpoint 2\n"); + if (unmapType>=0) {//unmapped reads statsRA.unmappedAll++; soloRead->readBar->getCBandUMI(readNameExtra.at(0)); @@ -206,7 +238,7 @@ void ReadAlign::outputAlignments() { }; if (P.outSAMbool) {//output SAM - outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, outSAMstream); + outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, &stream); }; }; @@ -229,6 +261,8 @@ void ReadAlign::outputAlignments() { chunkOutUnmappedReadsStream[1] << readNameExtra[0].substr(qualStart+1) <<"\n"; }; }; + std::string str = stream.str(); + return str; }; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index db5c3e7..7e1c1a6 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -15,7 +15,7 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { //zero-out winBin memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); memset(winBin[1],255,sizeof(winBin[0][0])*P.winBinN); - + //printf("winBinN %llu\n", P.winBinN); // for (uint iWin=0;iWin=mapGen.sjGstart) {//this is sj align + //printf("sj align\n"); uint a1D, aLengthD, a1A, aLengthA, sj1; if (sjAlignSplit(a1, aLength, mapGen, a1D, aLengthD, a1A, aLengthA, sj1)) {//align crosses the junction @@ -84,6 +88,7 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { }; }; } else {//this is a normal genomic read + //printf("normal create extend\n"); int addStatus=createExtendWindowsWithAlign(a1, aStr); if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows break; @@ -93,6 +98,8 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { };//if (PC[iP][PC_Nrep]<=P.winAnchorMultimapNmax) //proceed if anchor };//for (uint iP=0; iPP.seedNoneLociPerWindow) nWA[ii] -= nWAP[ii]; // }; @@ -201,6 +212,7 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { // }; #ifdef COMPILE_FOR_LONG_READS +//printf("long reads\n"); uint swWinCovMax=0; for (uint iW=0;iW +#include + +#include "Genome.h" +#include "Parameters.h" +#include "ReadAlign.h" +#include "Transcriptome.h" +#include "Variation.h" + +class Aligner +{ + public: + Parameters *p; + ReadAlign *ra; +}; + +string align_read(Aligner a, char **Read1, char **Qual1, unsigned long long read_length) +{ + a.p->readNmates = 1; + a.ra->readNmates = 1; + a.ra->Read0 = Read1; + a.ra->Qual0 = Qual1; + a.ra->Lread = read_length; + a.ra->readLength[0] = read_length; + a.ra->readLength[1] = read_length; + int readStatus = a.ra->oneRead(); + if(readStatus != 0) + { + return ""; + } + //a.ra->peOverlapMergeMap(); + //a.ra->multMapSelect(); + //a.ra->mappedFilter(); + string str = a.ra->outputAlignments(); + return str; +} + +Aligner init(int argInN, char* argIn[]) +{ + Parameters *P = (Parameters*)malloc(sizeof(Parameters)); + new(P) Parameters(); + P->inputParameters(argInN, argIn); + + Genome *mainGenome = (Genome*)malloc(sizeof(Genome)); + new(mainGenome) Genome(*P); + mainGenome->genomeLoad(); + + Transcriptome *mainTranscriptome = NULL; + + mainGenome->Var = new Variation(*P, mainGenome->chrStart, mainGenome->chrNameIndex); + + ReadAlign *RA = (ReadAlign*)malloc(sizeof(ReadAlign)); + new(RA) ReadAlign(*P, *mainGenome, mainTranscriptome, 0); + + Aligner res; + res.ra = RA; + res.p = P; + return res; +} + +int main() +{ + char* arr[] = { + "STAR", "--genomeDir", "/mnt/opt/refdata_cellranger/GRCh38-3.0.0/star", + "--outSAMmultNmax", "50", + "--runThreadN", "1", + "--readNameSeparator", "space", + "--outSAMunmapped", "Within", "KeepPairs", + "--outSAMtype", "SAM", + "--outStd", "SAM", + "--outSAMorder", "PairedKeepInputOrder", + }; + int len = sizeof(arr) / sizeof(arr[0]); + Aligner a = init(len, arr); + + std::string line; + std::ifstream infile("1.fastq"); + int lineNum = 0; + char** curRead = (char**)malloc(sizeof(char*)); + curRead[0] = (char*)malloc(500*sizeof(char)); + while(std::getline(infile, line)) + { + //printf("line %s\n", line.c_str()); + //printf("lineNum %d\n", lineNum); + if(lineNum%4 == 1) + { + strcpy(curRead[0], line.c_str()); + //printf("copied %s\n", curRead[0]); + } + else if(lineNum%4 == 3) + { + char** curQual = (char**)malloc(sizeof(char*)); + curQual[0] = (char*)malloc(500*sizeof(char)); + strcpy(curQual[0], line.c_str()); + //printf("copied %s\n", curQual[0]); + printf("read = %s\n", curRead[0]); + printf("qual = %s\n", curQual[0]); + string bam_line = align_read(a, curRead, curQual, line.length()); + printf("%s\n", bam_line.c_str()); + free(curQual[0]); + free(curQual); + } + lineNum++; + if(lineNum == 100) break; + } + free(curRead[0]); + free(curRead); + return 0; +} From f73c7bb874fcce9ce32735cc48458c713d5c6a86 Mon Sep 17 00:00:00 2001 From: "michael.kirsche" Date: Wed, 17 Jul 2019 16:50:36 +0000 Subject: [PATCH 486/536] Removed deprecated print statements, added current output --- 1.sam | 151 +++++++++++++++++++++ Makefile | 3 +- ReadAlign_assignAlignToWindow.cpp | 3 - ReadAlign_createExtendWindowsWithAlign.cpp | 4 - ReadAlign_mapOneRead.cpp | 5 - ReadAlign_oneRead.cpp | 5 - ReadAlign_outputAlignments.cpp | 26 ---- ReadAlign_stitchPieces.cpp | 12 -- orbit.cpp | 5 - 9 files changed, 153 insertions(+), 61 deletions(-) create mode 100644 1.sam diff --git a/1.sam b/1.sam new file mode 100644 index 0000000..8eb0cfa --- /dev/null +++ b/1.sam @@ -0,0 +1,151 @@ +parameters readNmates 2 +read = GTGCGGGGAGAAGTTTCAAGAAGGTTCTTATGGAAAAAAGGCTGTGAGCATAGAAAGCAGTCATAGGAGGTTGGGGAACTAGCTTGTCCCTCCCCACC +qual = GGGAGIGIIIGIIGGGGIIGGIGGAGGAGGAAG.GGIIIG> P.winBinNbits); //align's bin uint iBinLeft=aBin, iBinRight=aBin; uintWinBin* wB=winBin[aStr]; uint iBin=-1, iWin=-1, iWinRight=-1; - //printf("wB[aBin] %hu, uintWinBinMax %hu\n", wB[aBin], uintWinBinMax); if (wB[aBin]==uintWinBinMax) {//proceed if there is no window at this bin //check neighboring bins - //printf("window bin\n"); bool flagMergeLeft=false; if (aBin>0) {//merge left only if there are bins on the left for (iBin=aBin-1; iBin >= ( aBin>P.winAnchorDistNbins ? aBin-P.winAnchorDistNbins : 0 ); --iBin) {//go left, find windows in Anchor range @@ -66,7 +63,6 @@ int ReadAlign::createExtendWindowsWithAlign(uint a1, uint aStr) { WC[iWin][WC_Chr]=mapGen.chrBin[aBin >> P.winBinChrNbits]; WC[iWin][WC_Str]=aStr; WC[iWin][WC_gEnd]=WC[iWin][WC_gStart]=aBin; - //printf("new window!!!\n"); ++nW; if (nW>=P.alignWindowsPerReadNmax) { nW=P.alignWindowsPerReadNmax-1; diff --git a/ReadAlign_mapOneRead.cpp b/ReadAlign_mapOneRead.cpp index 2a1f691..012c84a 100644 --- a/ReadAlign_mapOneRead.cpp +++ b/ReadAlign_mapOneRead.cpp @@ -77,7 +77,6 @@ int ReadAlign::mapOneRead() { Lmapped+=L; };//while ( istart*Lstart + Lmapped + P.minLmap < splitR[1][ip] ) };//if (flagDirMap || istart>0) - //printf("Lmapped %llu, %llu\n", Lmapped, L); if (P.seedSearchLmax>0) {//search fixed length. Not very efficient, need to improve // off by default. uint Shift = iDir==0 ? ( splitR[0][ip] + istart*Lstart ) : \ @@ -98,23 +97,19 @@ int ReadAlign::mapOneRead() { #endif if (LreadrLength=0; //min good piece length nW=0; } else if (Nsplit==0) {//no good pieces - //printf("no good pieces\n"); mapMarker=MARKER_NO_GOOD_PIECES; trBest->rLength=splitR[1][0]; //min good piece length nW=0; } else if (Nsplit>0 && nA==0) { - //printf("not sure what this case is\n"); mapMarker=MARKER_ALL_PIECES_EXCEED_seedMultimapNmax; trBest->rLength=multNminL; nW=0; } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length - //printf("stitching %llu pieces\n", nP); stitchPieces(Read1, Lread); }; diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index 143d808..cadc1de 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -88,11 +88,6 @@ int ReadAlign::oneRead() {//process one read: load, map, write #warning OFF_BEFORE_OUTPUT return 0; #endif - if(trBest != NULL) - { - //printf("best transcript %llu %llu %llu\n", trBest->Chr, trBest->gStart, trBest->gLength); - } - //printf("unmapType %u\n", unmapType); //write out alignments //outputAlignments(); diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 4423f47..30ac961 100755 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -3,7 +3,6 @@ #include "ErrorWarning.h" string ReadAlign::outputAlignments() { - //printf("Outputting alignment\n"); outBAMbytes=0; bool mateMapped[2]={false,false}; @@ -14,14 +13,10 @@ string ReadAlign::outputAlignments() { std::ostringstream stream; - //printf("unmap type %d\n", unmapType); - outFilterPassed=true;//only false if the alignment is held for outFilterBySJoutStage - //printf("go\n"); if (unmapType==-1) {//output transcripts if (P.outFilterBySJoutStage==1) {//filtering by SJout - //printf("nTr %llu\n", nTr); for (uint iTr=0;iTrnExons-1;iex++) {//check all junctions if (trMult[iTr]->canonSJ[iex]>=0 && trMult[iTr]->sjAnnot[iex]==0) { @@ -35,7 +30,6 @@ string ReadAlign::outputAlignments() { unmapType=-3; //the read is not conisddred unmapped statsRA.readN--; statsRA.readBases -= readLength[0]+readLength[1]; - //printf("readnmates %llu\n", P.readNmates); for (uint im=0;imN; - //printf("looping\n"); for (uint iTr=0;iTr1) {//multimappers statsRA.mappedReadsM++; unmapType=-1; @@ -108,26 +95,21 @@ string ReadAlign::outputAlignments() { nTrOut=min(P.outSAMmultNmax,nTrOut); //number of to write to SAM/BAM files soloRead->readBar->getCBandUMI(readNameExtra.at(0)); - //printf("sub check2\n"); //write to SAM/BAM for (uint iTr=0;iTrexons[0][EX_iFrag]]=true; mateMapped1[trMult[iTr]->exons[trMult[iTr]->nExons-1][EX_iFrag]]=true; if (P.outSAMbool && outSAMfilterYes) {//SAM output - //printf("starting sam output\n"); outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, &stream); if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) {//keep pairs && paired reads && one of the mates not mapped in this transcript outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, &stream); }; - //printf("done sam output\n"); }; if ((P.outBAMunsorted || P.outBAMcoord) && outSAMfilterYes) {//BAM output - //printf("bam output\n"); alignBAM(*(trMult[iTr]), nTr, iTr, mapGen.chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P.outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); if (P.outBAMunsorted) {//unsorted @@ -140,11 +122,9 @@ string ReadAlign::outputAlignments() { outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (imate>0 || iTr>0) ? 0 : (outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1])*2*nTrOut); }; }; - //printf("done bam\n"); }; if (P.outBAMcoord) {//coordinate sorted - //printf("bam coord\n"); for (uint imate=0; imatecoordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; @@ -160,16 +140,13 @@ string ReadAlign::outputAlignments() { unmapType=4; }; - //printf("sub check3\n"); if (unmapType==4 && P.outSAMunmapped.yes) {//output unmapped end for single-end alignments if (P.outSAMbool && !P.outSAMunmapped.keepPairs && outSAMfilterYes) { - //printf("sam or bam? the world may never know\n"); outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, &stream); }; if ( (P.outBAMcoord || (P.outBAMunsorted && !P.outSAMunmapped.keepPairs) ) && outSAMfilterYes) {//BAM output - //printf("pure-bred bam\n"); alignBAM(*trBest, 0, 0, mapGen.chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P.outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imategeneFullAlignOverlap(nTr, trMult, P.pSolo.strand, readGeneFull); }; - //printf("sub check5\n"); //transcripts if ( P.quant.trSAM.yes ) {//NOTE: the transcripts are changed by this function (soft-clipping extended), cannot be reused @@ -213,7 +188,6 @@ string ReadAlign::outputAlignments() { }; }; - //printf("outputAlignment checkpoint 2\n"); if (unmapType>=0) {//unmapped reads statsRA.unmappedAll++; diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index 7e1c1a6..dfbf2ce 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -15,7 +15,6 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { //zero-out winBin memset(winBin[0],255,sizeof(winBin[0][0])*P.winBinN); memset(winBin[1],255,sizeof(winBin[0][0])*P.winBinN); - //printf("winBinN %llu\n", P.winBinN); // for (uint iWin=0;iWin=mapGen.sjGstart) {//this is sj align - //printf("sj align\n"); uint a1D, aLengthD, a1A, aLengthA, sj1; if (sjAlignSplit(a1, aLength, mapGen, a1D, aLengthD, a1A, aLengthA, sj1)) {//align crosses the junction @@ -88,7 +83,6 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { }; }; } else {//this is a normal genomic read - //printf("normal create extend\n"); int addStatus=createExtendWindowsWithAlign(a1, aStr); if (addStatus==EXIT_createExtendWindowsWithAlign_TOO_MANY_WINDOWS) {//too many windows break; @@ -98,7 +92,6 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { };//if (PC[iP][PC_Nrep]<=P.winAnchorMultimapNmax) //proceed if anchor };//for (uint iP=0; iPP.seedNoneLociPerWindow) nWA[ii] -= nWAP[ii]; @@ -212,7 +203,6 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { // }; #ifdef COMPILE_FOR_LONG_READS -//printf("long reads\n"); uint swWinCovMax=0; for (uint iW=0;iWpeOverlapMergeMap(); - //a.ra->multMapSelect(); - //a.ra->mappedFilter(); string str = a.ra->outputAlignments(); return str; } @@ -85,14 +82,12 @@ int main() if(lineNum%4 == 1) { strcpy(curRead[0], line.c_str()); - //printf("copied %s\n", curRead[0]); } else if(lineNum%4 == 3) { char** curQual = (char**)malloc(sizeof(char*)); curQual[0] = (char*)malloc(500*sizeof(char)); strcpy(curQual[0], line.c_str()); - //printf("copied %s\n", curQual[0]); printf("read = %s\n", curRead[0]); printf("qual = %s\n", curQual[0]); string bam_line = align_read(a, curRead, curQual, line.length()); From 3cca0c7b5ca8bacce51ee73522702d2b510eb9c0 Mon Sep 17 00:00:00 2001 From: "michael.kirsche" Date: Wed, 17 Jul 2019 22:21:29 +0000 Subject: [PATCH 487/536] Added orbit.h which includes extern C for main API, refactored methods a bit --- 1.sam | 2676 +++++++++++++++++++++++++++++++++++++++++++++++- Makefile | 3 + Parameters.cpp | 1 - orbit.a | Bin 0 -> 3097906 bytes orbit.cpp | 103 +- orbit.h | 15 + 6 files changed, 2716 insertions(+), 82 deletions(-) create mode 100644 orbit.a create mode 100644 orbit.h diff --git a/1.sam b/1.sam index 8eb0cfa..cdc2b07 100644 --- a/1.sam +++ b/1.sam @@ -1,151 +1,2775 @@ -parameters readNmates 2 read = GTGCGGGGAGAAGTTTCAAGAAGGTTCTTATGGAAAAAAGGCTGTGAGCATAGAAAGCAGTCATAGGAGGTTGGGGAACTAGCTTGTCCCTCCCCACC qual = GGGAGIGIIIGIIGGGGIIGGIGGAGGAGGAAG.GGIIIGlogMain << "Finished loading and checking parameters\n" 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

    XQ66&+_ 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

    b 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

    gtM`_UfAE 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 z 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

    8eafqWyixHjVcg^^tBizcsv2simz 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 z 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

    t`Sg#w+j~h`P}JXlZ=4M^Ut_(qkuOfp*058L{2k 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�(mv-2JfhQ-pCfQ-AF~JJ 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 -#include +#include "orbit.h"; -#include "Genome.h" -#include "Parameters.h" -#include "ReadAlign.h" -#include "Transcriptome.h" -#include "Variation.h" - -class Aligner +struct Aligner { public: Parameters *p; ReadAlign *ra; + Genome *g; + + Aligner(int argInN, char* argIn[]) + { + p = new Parameters(); + p->inputParameters(argInN, argIn); + g = new Genome(*p); + g->genomeLoad(); + Transcriptome *mainTranscriptome = nullptr; + g->Var = new Variation(*p, g->chrStart, g->chrNameIndex); + ra = new ReadAlign(*p, *g, mainTranscriptome, 0); + } + + ~Aligner() + { + delete ra; + delete g; + delete p; + } }; -string align_read(Aligner a, char **Read1, char **Qual1, unsigned long long read_length) +const char* align_read(Aligner* a, char *Read1, char *Qual1, unsigned long long read_length) { - a.p->readNmates = 1; - a.ra->readNmates = 1; - a.ra->Read0 = Read1; - a.ra->Qual0 = Qual1; - a.ra->Lread = read_length; - a.ra->readLength[0] = read_length; - a.ra->readLength[1] = read_length; - int readStatus = a.ra->oneRead(); + a->p->readNmates = 1; + a->ra->readNmates = 1; + a->ra->Read0 = &Read1; + a->ra->Qual0 = &Qual1; + a->ra->Lread = read_length; + a->ra->readLength[0] = read_length; + a->ra->readLength[1] = read_length; + int readStatus = a->ra->oneRead(); if(readStatus != 0) { return ""; } - string str = a.ra->outputAlignments(); - return str; + string str = a->ra->outputAlignments(); + return str.c_str(); } -Aligner init(int argInN, char* argIn[]) +Aligner* init_aligner(int argc, char* argv[]) { - Parameters *P = (Parameters*)malloc(sizeof(Parameters)); - new(P) Parameters(); - P->inputParameters(argInN, argIn); - - Genome *mainGenome = (Genome*)malloc(sizeof(Genome)); - new(mainGenome) Genome(*P); - mainGenome->genomeLoad(); - - Transcriptome *mainTranscriptome = NULL; - - mainGenome->Var = new Variation(*P, mainGenome->chrStart, mainGenome->chrNameIndex); - - ReadAlign *RA = (ReadAlign*)malloc(sizeof(ReadAlign)); - new(RA) ReadAlign(*P, *mainGenome, mainTranscriptome, 0); + return new Aligner(argc, argv); +} - Aligner res; - res.ra = RA; - res.p = P; - return res; +void destroy_aligner(Aligner *a) +{ + delete a; } int main() @@ -68,37 +67,31 @@ int main() "--outSAMorder", "PairedKeepInputOrder", }; int len = sizeof(arr) / sizeof(arr[0]); - Aligner a = init(len, arr); + Aligner* a = init_aligner(len, arr); std::string line; std::ifstream infile("1.fastq"); int lineNum = 0; - char** curRead = (char**)malloc(sizeof(char*)); - curRead[0] = (char*)malloc(500*sizeof(char)); + char* curRead = (char*)malloc(500*sizeof(char)); while(std::getline(infile, line)) { - //printf("line %s\n", line.c_str()); - //printf("lineNum %d\n", lineNum); if(lineNum%4 == 1) { - strcpy(curRead[0], line.c_str()); + strcpy(curRead, line.c_str()); } else if(lineNum%4 == 3) { - char** curQual = (char**)malloc(sizeof(char*)); - curQual[0] = (char*)malloc(500*sizeof(char)); - strcpy(curQual[0], line.c_str()); - printf("read = %s\n", curRead[0]); - printf("qual = %s\n", curQual[0]); - string bam_line = align_read(a, curRead, curQual, line.length()); - printf("%s\n", bam_line.c_str()); - free(curQual[0]); + char* curQual = (char*)malloc(500*sizeof(char)); + strcpy(curQual, line.c_str()); + printf("read = %s\n", curRead); + printf("qual = %s\n", curQual); + const char* bam_line = align_read(a, curRead, curQual, line.length()); + printf("%s", bam_line); free(curQual); } lineNum++; - if(lineNum == 100) break; } - free(curRead[0]); free(curRead); + destroy_aligner(a); return 0; } diff --git a/orbit.h b/orbit.h new file mode 100644 index 0000000..05532f6 --- /dev/null +++ b/orbit.h @@ -0,0 +1,15 @@ +#include +#include + +#include "Genome.h" +#include "Parameters.h" +#include "ReadAlign.h" +#include "Transcriptome.h" +#include "Variation.h" + +extern "C" { + struct Aligner; + const char* align_read(Aligner*, char*, char*, unsigned long long); + Aligner* init_aligner(int, char*[]); + void destroy_aligner(Aligner*); +} From 1decdbcaa23569d5e1a202b935b69beeada49224 Mon Sep 17 00:00:00 2001 From: "michael.kirsche" Date: Thu, 18 Jul 2019 23:02:39 +0000 Subject: [PATCH 488/536] Fixed a few bugs, and added a new barrage of commented-out print statements used for debugging, which I will leave for now until I am sure I have worked out all issues --- 1.sam | 2300 ++++++++--------------------- ReadAlign.h | 6 +- ReadAlign_mapOneRead.cpp | 4 + ReadAlign_multMapSelect.cpp | 7 +- ReadAlign_oneRead.cpp | 20 +- ReadAlign_outputAlignments.cpp | 7 + ReadAlign_outputTranscriptSAM.cpp | 2 + ReadAlign_peOverlapMergeMap.cpp | 2 + ReadAlign_stitchPieces.cpp | 6 +- orbit.cpp | 15 +- readLoad.cpp | 5 +- 11 files changed, 695 insertions(+), 1679 deletions(-) diff --git a/1.sam b/1.sam index cdc2b07..99e3188 100644 --- a/1.sam +++ b/1.sam @@ -1,2775 +1,1745 @@ read = GTGCGGGGAGAAGTTTCAAGAAGGTTCTTATGGAAAAAAGGCTGTGAGCATAGAAAGCAGTCATAGGAGGTTGGGGAACTAGCTTGTCCCTCCCCACC qual = GGGAGIGIIIGIIGGGGIIGGIGGAGGAGGAAG.GGIIIG0) { + //printf("splitting\n"); Nsplit=qualitySplit(Read1[0], Qual1[0], Lread, P.Qsplit, P.maxNsplit, P.minLsplit, splitR); // splitR[0][fragnum] => good region start position (from SequenceFuns.cpp) // splitR[1][fragnum] => good reagion length @@ -21,6 +22,8 @@ int ReadAlign::mapOneRead() { } else { Nsplit=0; }; + //printf("read %s; qual %s\n", Read1[0], Qual1[0]); + //printf("Nsplit %llu\n", Nsplit); resetN(); //reset aligns counters to 0 @@ -110,6 +113,7 @@ int ReadAlign::mapOneRead() { nW=0; } else if (Nsplit>0 && nA>0) {//otherwise there are no good pieces, or all pieces map too many times: read cannot be mapped // qsort((void*) PC, nP, sizeof(uint)*PC_SIZE, funCompareUint2);//sort PC by rStart and length + //printf("stitching\n"); stitchPieces(Read1, Lread); }; diff --git a/ReadAlign_multMapSelect.cpp b/ReadAlign_multMapSelect.cpp index 94fffa5..aaac465 100644 --- a/ReadAlign_multMapSelect.cpp +++ b/ReadAlign_multMapSelect.cpp @@ -11,7 +11,7 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts if (nW==0) {//no good windows return; }; - + //printf("heyyyy %llu\n", nW); maxScore=-10*Lread; for (uint iW=0; iWmaxScore) maxScore = trAll[iW][0]->maxScore; @@ -32,7 +32,7 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts errOut << "EXITING: Fatal ERROR: number of alignments exceeds MAX_N_MULTMAP, increase it and re-compile STAR"; exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P); }; - + //printf("resetting trMult element yay %lld %lld\n", trAll[iW][iTr]->gStart, trAll[iW][iTr]->cStart); trMult[nTr]=trAll[iW][iTr]; trMult[nTr]->Chr = trAll[iW][0]->Chr; trMult[nTr]->Str = trAll[iW][0]->Str; @@ -50,10 +50,13 @@ void ReadAlign::multMapSelect() {//select multiple mappers from all transcripts return; }; + //printf("made it here\n"); + for (uint iTr=0; iTrroStart = trMult[iTr]->roStr==0 ? trMult[iTr]->rStart : Lread - trMult[iTr]->rStart - trMult[iTr]->rLength; trMult[iTr]->cStart=trMult[iTr]->gStart - mapGen.chrStart[trMult[iTr]->Chr]; + //printf("new beginnings %llu %llu\n", trMult[iTr]->roStart, trMult[iTr]->cStart); }; // if (P.outMultimapperOrder.sortCoord) diff --git a/ReadAlign_oneRead.cpp b/ReadAlign_oneRead.cpp index cadc1de..0c06adf 100644 --- a/ReadAlign_oneRead.cpp +++ b/ReadAlign_oneRead.cpp @@ -4,13 +4,20 @@ #include "ErrorWarning.h" int ReadAlign::oneRead() {//process one read: load, map, write - + //printf("at least called the method\n"); //load read name, sequence, quality from the streams into internal arrays int readStatus[2]; readStatus[0] = 0; - //readStatus[0]=readLoad(*(readInStream[0]), P, 0, readLength[0], readLengthOriginal[0], readNameMates[0], Read0[0], Read1[0], Qual0[0], Qual1[0], clip3pNtotal[0], clip5pNtotal[0], clip3pAdapterN[0], iReadAll, readFilesIndex, readFilter, readNameExtra[0]); + + char *val = (char*)malloc(1010); + //printf("read is: %s\n", Read0[0]); + //printf("qual is: %s\n", Qual0[0]); + sprintf(val, "%s\n%s\n%s\n%s\n", "@a 1 xx", Read0[0], "+", Qual0[0]); + std::istringstream is(val); + readStatus[0]=readLoad(is, P, 0, readLength[0], readLengthOriginal[0], readNameMates[0], Read0[0], Read1[0], Qual0[0], Qual1[0], clip3pNtotal[0], clip5pNtotal[0], clip3pAdapterN[0], iReadAll, readFilesIndex, readFilter, readNameExtra[0]); if (P.readNmates==2) {//read the 2nd mate + //printf("mating\n"); readStatus[1]=readLoad(*(readInStream[1]), P, 1, readLength[1], readLengthOriginal[1], readNameMates[1], Read0[1], Read1[0]+readLength[0]+1, Qual0[1], Qual1[0]+readLength[0]+1, clip3pNtotal[1], clip5pNtotal[1], clip3pAdapterN[1], iReadAll, readFilesIndex, readFilter, readNameExtra[1]); if (readStatus[0]!=readStatus[1]) { @@ -53,23 +60,28 @@ int ReadAlign::oneRead() {//process one read: load, map, write }; + //printf("complementing\n"); + readFileType=readStatus[0]; complementSeqNumbers(Read1[0],Read1[1],Lread); //returns complement of Reads[ii] + //printf("big strong numbers\n"); for (uint ii=0;iigStart); peOverlapMergeMap(); multMapSelect(); mappedFilter(); diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 30ac961..168eac6 100755 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -48,6 +48,7 @@ string ReadAlign::outputAlignments() { OutSJ *chunkOutSJ1=new OutSJ (P.limitOutSJcollapsed, P, mapGen); uint sjReadStartN=chunkOutSJ1->N; for (uint iTr=0;iTrreadBar->getCBandUMI(readNameExtra.at(0)); //write to SAM/BAM + //printf("nTrOut %llu\n", nTrOut); for (uint iTr=0;iTrexons[trMult[iTr]->nExons-1][EX_iFrag]]=true; if (P.outSAMbool && outSAMfilterYes) {//SAM output + //printf("samout\n"); outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, &stream); if (P.outSAMunmapped.keepPairs && P.readNmates>1 && ( !mateMapped1[0] || !mateMapped1[1] ) ) {//keep pairs && paired reads && one of the mates not mapped in this transcript + //printf("samout no null\n"); outBAMbytes+= outputTranscriptSAM(*(trMult[iTr]), 0, 0, (uint) -1, (uint) -1, 0, 4, mateMapped1, &stream); }; }; @@ -143,6 +147,7 @@ string ReadAlign::outputAlignments() { if (unmapType==4 && P.outSAMunmapped.yes) {//output unmapped end for single-end alignments if (P.outSAMbool && !P.outSAMunmapped.keepPairs && outSAMfilterYes) { + //printf("gotcha\n"); outBAMbytes+= outputTranscriptSAM(*trBest, 0, 0, (uint) -1, (uint) -1, 0, unmapType, mateMapped, &stream); }; @@ -164,6 +169,7 @@ string ReadAlign::outputAlignments() { chunkOutSJ=new OutSJ (P.limitOutSJcollapsed, P, mapGen); uint sjReadStartN=chunkOutSJ->N; for (uint iTr=0;iTr=0) {//unmapped reads: SAM + //printf("not a map\n"); for (uint imate=0;imatepeOverlapSEtoPE(peOv.mateStart, *seRA.trAll[iW][iTr]); diff --git a/ReadAlign_stitchPieces.cpp b/ReadAlign_stitchPieces.cpp index dfbf2ce..e577d9f 100644 --- a/ReadAlign_stitchPieces.cpp +++ b/ReadAlign_stitchPieces.cpp @@ -51,6 +51,7 @@ void ReadAlign::stitchPieces(char **R, uint Lread) { for (uint iSA=PC[iP][PC_SAstart]; iSA<=PC[iP][PC_SAend]; iSA++) {//scan through all alignments of this piece // going through ordered positions in the suffix array from PC_SAstart to PC_SAend uint a1 = mapGen.SA[iSA]; + //printf("a1 %llu\n", a1); uint aStr = a1 >> mapGen.GstrandBit; a1 &= mapGen.GstrandMask; //remove strand bit @@ -288,13 +289,14 @@ std::time(&timeStart); trA.Str = WC[iW][WC_Str]; trA.roStr = revertStrand ? 1-trA.Str : trA.Str; //original strand of the read trA.maxScore=0; - + //printf("something something trAll %llu\n", trNtotal); trAll[iW1]=trArrayPointer+trNtotal; if (trNtotal+P.alignTranscriptsPerWindowNmax >= P.alignTranscriptsPerReadNmax) { P.inOut->logMain << "WARNING: not enough space allocated for transcript. Did not process all windows for read "<< readName+1 <logMain <<" SOLUTION: increase alignTranscriptsPerReadNmax and re-run\n" << flush; break; }; + //printf("trA %llu\n", trA.Chr); *(trAll[iW1][0])=trA; nWinTr[iW1]=0; //initialize number of transcripts per window @@ -330,7 +332,7 @@ std::time(&timeStart); if (trAll[iW1][0]->maxScore > trBest->maxScore || (trAll[iW1][0]->maxScore == trBest->maxScore && trAll[iW1][0]->gLength < trBest->gLength ) ) { trBest=trAll[iW1][0]; }; - + //printf("why not add here %llu\n", nWinTr[iW1]); trNtotal += nWinTr[iW1]; iW1++; }; diff --git a/orbit.cpp b/orbit.cpp index 8dfb4a6..6af083c 100644 --- a/orbit.cpp +++ b/orbit.cpp @@ -1,4 +1,4 @@ -#include "orbit.h"; +#include "orbit.h" struct Aligner { @@ -28,13 +28,20 @@ struct Aligner const char* align_read(Aligner* a, char *Read1, char *Qual1, unsigned long long read_length) { + a->p->iReadAll++; + a->ra->iRead++; + //printf("iRead %llu\n", a->ra->iRead); a->p->readNmates = 1; a->ra->readNmates = 1; a->ra->Read0 = &Read1; a->ra->Qual0 = &Qual1; - a->ra->Lread = read_length; + //a->ra->Read1 = &Read1; + //a->ra->Qual1 = &Qual1; + //a->ra->Lread = read_length; a->ra->readLength[0] = read_length; - a->ra->readLength[1] = read_length; + a->ra->readLengthOriginal[0] = read_length; + //a->ra->readLength[1] = read_length; + int readStatus = a->ra->oneRead(); if(readStatus != 0) { @@ -85,11 +92,13 @@ int main() strcpy(curQual, line.c_str()); printf("read = %s\n", curRead); printf("qual = %s\n", curQual); + const char* bam_line = align_read(a, curRead, curQual, line.length()); printf("%s", bam_line); free(curQual); } lineNum++; + //if(lineNum == 100) break; } free(curRead); destroy_aligner(a); diff --git a/readLoad.cpp b/readLoad.cpp index 29c621a..c64653f 100644 --- a/readLoad.cpp +++ b/readLoad.cpp @@ -20,7 +20,9 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint exitWithError(errOut.str(),std::cerr, P.inOut->logMain, EXIT_CODE_INPUT_FILES, P); }; - readInStream >> iReadAll >> readFilter >> readFilesIndex; //extract read number + //printf("read name is: %s\n", readName); + + //readInStream >> iReadAll >> readFilter >> readFilesIndex; //extract read number getline(readInStream, readNameExtra); if (!readNameExtra.empty()) { @@ -35,6 +37,7 @@ int readLoad(istream& readInStream, Parameters& P, uint iMate, uint& Lread, uint // readInStream.ignore(DEF_readNameSeqLengthMax,'\n');//ignore the resit of the line - just in case readInStream.getline(Seq,DEF_readSeqLengthMax+1); //extract sequence + //printf("seq is: %s\n", Seq); Lread=0; for (int ii=0; ii Date: Fri, 19 Jul 2019 18:29:47 +0000 Subject: [PATCH 489/536] Update orbit c++ building config --- Makefile | 2 +- liborbit.a | Bin 0 -> 3106550 bytes orbit.cpp | 5 +++++ orbit.h | 22 ++++++++++------------ 4 files changed, 16 insertions(+), 13 deletions(-) create mode 100644 liborbit.a diff --git a/Makefile b/Makefile index d41b1dc..1d075b1 100644 --- a/Makefile +++ b/Makefile @@ -70,7 +70,7 @@ SOURCES := $(wildcard *.cpp) $(wildcard *.c) %.o : %.c $(CXX) -c $(CPPFLAGS) $(CFLAGS) $< -orbit.a : $(OBJECTS) orbit.o +liborbit.a : $(OBJECTS) ar -csru $@ $(OBJECTS) all: STAR diff --git a/liborbit.a b/liborbit.a new file mode 100644 index 0000000000000000000000000000000000000000..40b79fe5c6a07e7d83e29d583b8a575ad8d67f50 GIT binary patch literal 3106550 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�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%0DOb#{3*FJj~1TiY~G4Xazm%u$$61sut<9 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¬5OcObhJj3!RMWlr{4u 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
    nZEJyw& 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
  1. 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 z z1>FBS>ZN)m1w4}eIMOdY(U15GPsEcHk~FV!*b^7x?OFdL2#fqvM z|7QF%87}etG9!0KVo$jJy-cfXHbQ@yQJVW~IPs(=IUTTpyV7xfnNgDaX5#7gcYt3Z z@N<8Y*vkZXPpSVh{7WNSr{l>AJV?`R7fT6;t=qaI{_abPO z)~rM~>H?}Op7}*_F10iKQivt(gPGSIy$LBFPV@|yXvfc3sUeq=XkK?prs4K~WL}rG z3E9~nPCVq4aL0EMM@aZ)>Jmo^8P?5f;X*XHu4m0n{IeV{*y8=qjx|p1=99Y-6#mHf zSr8)!FU+*oZ4xvg$#t8_kt~#suh5N}3GVQ+?{8QlC$jWnC;Cg;-v{!KfIxYQ`2Qb! zUjrXiaqhjF4H`9aVnvOLb){QP3SyQovp{VYHgFDXBucEbMUxnUr1Fs_yNWGJU^mEd zUCp($*K2Ldz1QAaYg?+8q9PK$)v9P)#jlF3R@R8(M**Rd_y3hWrw2RU_l$Cfigt9o>#i!= zQ?%_ND2mGn&GdzXm4~3z)s=rWR&;y2jn&=zcHl)!UgLNZhE{J2x*rSK+dE&39*aZ8 z=R(Os?(L9qU0_={L5;@o#2uhlV;{8acSL1dT!gcQP7Q2}o)olyuo7YR^CrrwB8)mw zWOrLQog_Stm38Tm@%tMunpS2QGVd`MrJfSBM z5PGu6#KAsks10ZhP;i)yjmo@*)!f>;g=VhjE3zgE4$ashcjP7~O%RYNhItOUMk1Vu zz)U)H#GWAhgnbQR4|3u+V-E^b85vTOn7EL~=a~DRt117x<^FrvGiyT$sylw*E9#ky zlU}|8Ufig-4svnF`^JL8$7Y+x{B5(1)<;9LjX!LIWiNg#L&QDnu@Z!JUpU(`uHS^y zZF+0$|D>%6C%!MtXF@OlMXTw2CNc|0sT=Wo5$xX`wo}HLRjvuf>O%kc!bPXRGxMxo z)YC<0RPKnJlX@9gs9#R~O$T207XV(ce_y%7=%j{-LwsW0P{xmDwcVGx3!rJq!NYLm zj(ciy)G%!3=|yE6&Le-~2m{I0#Y1_ZJC5) z-}T@qpeNiy7k|Yj8=^7dzlKMMhvyA25#S@SK}d9i+n+wk8@1~K)}}?1Ag{4PUg65; z9gB**UBIBJIG$)MC3z7;LZF8;eUN_dthV(jP7-D;Sl22~*)|)M%As}L{dnJDZ>)Si za&L+sj;6x}!RvmN4*o^zEyeI};E}?H&9TZtH(H#5;u3(JG!xoHkd&A_6^O4?2VLWk+zO#5Ae^USxE7_o~H4;>yV zD_v>=-g{gYY=3%tWA82}3_T+EDLm@9w&;ZuT{AGim{+vpL|1e_*X0m4jmNjl8Sv0i zu6bQ3u8-UU{_7~$(gON#^$fsK4*%-m_nWsD7X5gD>pu#=hCzB^5wK$ejs;?Jz_COb zz`!35SPR5{PU~;t6h3q(E&K1*IvOjuuZV-=1gka4wZ8pmRd5Lq&cTWczqK{)E0SYE z>;~j`-x~Tbu_6u5QU3+u!28AxC!#Yhh@fwZqo8~O5l>>mvfV})>0pa1L0002#4yX> z$1(cXpNvZg)Twc%`(?|%$BCbe`*=DXyEr9^DREpKnDQck4ovY<2QbBuzDzBHG<2o} zA{Y@wB~zpWrUco<4~dbVDG?t`@nAeMRiv0AfRd`jQ!-US(9nk&(wC`&K+u^Ih+s+( zl}wQim=a_YKO{zerWhKw4=Prw7!|D4;z?JNc-VxuX6VBViPYENxO@6)I(rvh7q%TG zm4!w`7L=gj-dba?6=cAPfFyoMg#4U{(7tDUr4vA_>+C`mZK242dLJb;CUF7mW)uhE zL#So~-TmI^bf>zBm&oxJc%k?m$tA`SV_wfff|;xYr(;Jp^qdHxAYU5E$S;Uad8N_O z(2B%X_WV49u7HW2?^7_iDg}*=;J}rRD{syCryd~1bsM^Td&a^D^9c->Yd6O27?7ZI zC{9~<_KZ#74zbF~1Gl^NqoitcpP#k9_ZzzPjX4Vl!T%6P5nI<2giIjiQX`*xKuRu~-&# zT;I$^hw{h;Pv(K=+jB+nFMSPHPR9$m zl!;$w-i>J}=a(MJ0Bw8PEtEd83&WXqOQcWXD?4}m(V1hD)FDVmw1DY+^qM{+J+rcx zIjH<&mkQJ8dCPOkKlz~XBfSaw;}^*E6;<8>IMq3YC~LvlpZEN6wW8G29`TRqcXzNK z_g?2XpFDf1sv=!Z|ET9xM3k!4hs4*VVzFDMyR28&bOaKn>kRR$_yecxtMk_12408& zT|X7xN@*;+B!G39x~bZyQVD+wPo^)cnS^4lo(c=s>O9iF*=cRmmvaW^9Xu>NZsGX8oM zQ9c#_3e0dNO9kU|rz}uq*GP_bS;bfS^Phm_THBZ*^G;Scf2?hcmdDqK6^r!R#+ck|8zXUzVdW97ZPd027Q|1L{QW98(#D!g-r{0l*nT|B zAt65tH3R$Fju981je)E_zTk0^!68 zCp7V32U;17UyS%zm>F~2J-*wR5Uv$lgQpRD55Zv!a~M?(GE{6Uv2;Jm7DLhwE3s(9 z9!}M+5@}bM$xARf@DlH;tFd=k_HNVO#aTl8kJiw;t3cEA#6?Q}7p-w(O6)zH8QrlR zy&hx5Mx1HA&{%!PxCS6P2XhC-^rpBS4GG|eMl*4Tk847`_mx6rg1z_N2HZ<(Meg`9 z87~_vWjc~~Mx{Ii0!Bu~NS_6ck!Laa-VXyA2Al59Vf!zp8wZX%60#CEI(fvjhCB4w zE+ya8)66-RQ?T$blM~qY_*Q~^IC-ZO)f+g4UnEv@)kl?Bq9GMT=$VqJ`*M*H-wUO@ zFi|*eN+LY2-m~~?7-WE-pII$baw5{oY%z! z>>YxQB_FNFf`)Ok2W2{OOW`p0l-Qzi_{Q-VGlqdRvhBv~<~Yu@GQjJ?U3LhlVgT;C zU4=~Vv=AF60hC$7CMC}+gg_8E_9~EP}0OObPrw} zQ6Plppru20=pk$Lko77g>^_K3X(9BrzLh${T?#=}B{Mdz!03FGbt$%P4|EF)HxJ=0 zRReCV*n?E-OwEb&oV4tkgDR0xtZ$>Z(iH}ENmPquEiNa!aRxP)vK0!Jyv%KuZ^Q}T zfpksjWKF3uzPH&*F1ikriuZiksVkg?3O>N!OkKHz$|>r~Z?w8Hy>DHqW$izbx{|3M zi=Gw%J4Cg7}1rcNoe*a#f|Kiew_k=3QDsan3 zP?~fRJ2p`iWc++AW3X-@+n6Fl`=M^{I^ohoxs!vToxeh8 z>bLk&Y6xqmOd8CeviqVzxEumjYHh@?$*In-SoWJ#FPc^}ah$j2@tCrT2Ju483(M_p)Y^NzDV-2l)Y=@P&w-uz)0=1vQ;RwRY zBp&I2Ow2^_yJlh(?t^&J47_LD&I)-Go5!WF1y_v?jLV#SxdXwJg8 z!XxmUvGkWD#ltd^gOIJYUn&z}Pg#LQ&!F9Tx&5}(O#)+oLEBl7LBTJ!nAB{o? zc3gn2!bd<0#vbOSO1Mzw9lWImfgtWC#$s#-X`noA6y>q-46e39sPSVrF_~C=1Czs= zxzpiB$y42N_jB9hfRP88GVJwEytyJ}ysr3svH>!kUW``naz}7!b!Qp8W^DhdM(0e* zuY!0pfLB0vJ1-*at9W&b*9m-`Y(BlqiNPzBt>nX`hT7$9MS4JRzUEXsgjwJ{HU+>- zosZ$15<};Quy$7R7e$B(ev*9hvXrNHb>Nzp#P>?X`?EMPW)D{R3!@XW$um!?eePVZ zI`c++2wEj(kOUJi_(njcv1&CKjOF#T)i#O zo!I0sz5OjiG^&U)A?&a?B%(ZM(j0ldSBps&5g=$hFbBvO4GI(-&QT$b2wCK-5`df; zCQxK_uah%(1XM;xPb8#<#wjtXFUzqcKU ziVlu27Rl+@ig!(^fBkHu3?`4ISB3>_pco}oBbTMrqa*kLZU*Ybg;OtPR`y~4JoERP zfen%3#7#GlrEuWU=yzb4BbSB)e>9eEVJ9y!kmINA$TX_usTgqD( z&NgPe^`7yyT}b-%_l%i;dCxS4{Vwe9=JVy*#_%4~nE1RIc-dIG5Y+rH`gd~+4BDTv zaA1eA^xNR7$EWrhnBA!}&Dgtc>^|#*MSGo=aVK|=i@VB-9J%z&Hn#`zeXj~ygi~`&JgO6&oVXE%teJu3k3;IRkVS)t z3#6dPWoF>L?D2k`bG3<{*0Nv4}jKs?bKtJoL z5^Py|s>mEVxkzsMxk8rPO!?$SA7e(h;0Khx)=5h58ElQU{ybIiJ!9B<|Dzb)7rVC@ z=DTL>kq#n3-`H6*Iv3+5b&G&RkYu6`iSt_cY1j?<7|#CzQaD-o6vo&^;p8AZahF!I zey9JLjDmETfj5oV5)R~I8_QyA|CPf1$VC4z`nqMmfG9kX(w}=|T4PE0xPwk0*$-beIVYe|p70pcQ*qUW#}R1Yu!E zEuzs`iSLRmaGTK`csG+%dhPA8o#;A#=xHB_7P%L#Vze>ELg6Sj`Sa!Q5uTAY_F|cy z8uafHBnvP4cgl)j_I6_PB}#MO4io)Kg}nj&yY=Yb zS+VgxWcnVFc_W^LWeF#*tMu>g8PJ7(DMqNTgzXoF!)K z7o*2lkGq$mGj0+lFR&qcu9&Aw6#8IRj2K7MmYuTpJ#D$M;qODwHGVV#sXrp`PJcGg z9X&?UScLsQo6&R^BPzOR-$IF|Y%*s*X~zEgcQbkY-%a~NSP1O1>UIb1Z9&{6C6%71CuVBaB3E@|E;J5A- zSg#XizOo-$j!m}R1<|dzJdehhxsIHHdVZSe?m^VTr%3B5Y{)yIkW|92lvsgxBZGPO zpZjgt(?s!e*r2$N{RGq!$e`^lGihS`bFnXM*KOUO&fcx)zNGG^4!o$P6ba9HibKZQ`1?rtfv2B*O0P z79!qo9Op$m_d9d1?q|)RqnE>&bmTO1-z%&?iJ4FEKEWqY11%WrtztZL=;$`I0uhEltn}@nZ$HX1^aR?@lJFDM zk-8_KBPY~7L1hR(LB$9?u?^~g7V_!EkA&^WW_67xx>|pd6$HHq=!g~AV#H%Y4cF~w z-V>{wM^|P~3I@IcHMy-Wgl_TXERW!pp+R3lTiH!%7a`5nFqMfL{AK zp*(1O5UDMdS}8~jTa8JNcZ$q$SCtu^LtrPSq3O7g4cvvEIyQAz6`7u)7TT`PLbeM| ze*?7b2JtCKdWtzZjKv{mm7@W^$cg0WB)-T=xYn0* zI{HC|q^F}bl17}P0fuUG(P_;v;^&j$M*f^3@bCf4T3;0k6x!i%EoTxPu1jQy;9AZX zg6r34OOQs+DM-O}1tO-kPg02pu1och^c3W+lA=owRa21hB?wLZ96vqZq@Z&Rk3NfT zzf|~>dnWc2^r#}0OhnJ4q+~scj^~T4I#G)+vbIFOsy3ifJ~`{)CWhp!gTG}+&N_HE zLo#(x?s0`cuqr+g|JA~q{vnJm8}2||uAMS`=OewI^=|k5Zr5^X!*X}Y)-kTmg1VoL zay?(b4@KVgta3j-#`VyE%l40OZ8)02zb>kKWwfjFm_H-GFI>PlYgNvRS z;o3O(>Q_g*HlK0IZ$`NOZODN4N4S18SB`MqS$5o`V_d%~+X@r7cli9b zN4Q=)&o08$hRV%9V-Ihy=Op)W-yHUr0{8dbFCitB*gyM>N1o?9of~_%LK$K5lh?GG zTPL?V{>Au~Ycg^UIZQU)Sb$4>XNIU`YD_D}%t`^#Tzn&Vd9a?#*=eV(5C898WbU;U zZS?={MgHHt$XrPObbFCm$(;I&{(7QnS2#KTXme|!tjLk0QIkVQi>i!X5N6FV6am1g z&mr{iBga^Y#ZHA*by!qrRl9Rl=+D+(2xEe@Gj>DIkKj6Iewb5S&)qLSpJ<@^Cz!TW zjz_bFdnZ>pHczhHfz3XqO+@%u{B&xWc+>6QW5T2&oR~bLCa|sj=&(I)Mvc7rXcsTzAjP5BF$F2n)I_#PCVQ!u=7 z@40q#&$q*g`dSqpNyQEpL`q5TioM-M(Z(Yy4RqK z-Me>kLlK6-iA%j^;4ubG^J3BlsQ5_d>2{B?+P#q^bH(RunxJ6@E-h&v5## zM31VfZ0n7lfT;}h(=RP0&8p=i>^&QGh=08xEcxx*ev#C$ppDV^!Ej;$R@$$u2oGI= ziafc}3T%p$VlUAQ>Y$mN-jG@e68_z(xAAybWv&jKO3DzG&Lg>wiXJm>iLnZ*r33_l@OSF=KwzT~HYu z#m|)m95SAmXoeH*wd5u2-V?Ulk>zvE@j&oJ%wit6R# zePH7qY@_P?RS1Cl%!CIvY7Q!U-@x9TYIG!OOV0-6T5}os*IG78?T=oAQ%cP5rnuUTY1y+0h-)pm`A4@&~uu3n%_qh>X~EjRl>m+M-Bz;j zJS*@PWriggd`M@N?~C9Y9?TXV=p!~LbP*7*J{|ju`0?0R`SFmwMSVZ^PrfleBOh$H zDHEqNu=ca6K>3|Hn-2J0j-7V294)cW6Hd(al;OW95%+XKDzW{&(P~k})CCRVMYOn1 z(Itx3c_}`7Ywtys%R@dxAUMKahu0vwkEB%NKD6ZZRV4Y57t*qf(6b?9-8Lb+Lt*>f z8hfWh5EH~OwXAo$%;b1aBI5DJo*dwWF$0dz-hmofrfEx$VL`q$1_GhSBVQeS@tQG2 zn45UT^el8%%pCk*V9YE@zapQ`WC&R9BTsgJjCeW5IyLqd%YKTwXMYsJKG9;Xyq52= z5@sp3;b5}gn1)ZiS^25+C*z6<%ueAO!Z&+s8_d8iqf^WfVEzB*`;iDwM8HB{#8(C- zHOlcdAxG<8gkU1_;3@5&vv;_5K)@won7<@Z|Vlx1~9(^6tc#d{kHipfJ!>@kR zTPQJA3ViIbDmGTbpuVAWFu0{~unVh&CGN-oOf2Fs1cyISFJAzQ-1vpoakIc7Mj3A& zSmg6M;t9MQJ*TGp4eYtO{-ktNoI`PdQ3Ly<$D)#zlKUP{HNV29eXZ0A4DxnT*NN(5 zcE)ua`&Z)r7F6}bq=vgnqJ!@$GCDcekyW8nGcY1H6O+(anT^v!Hn9z!G=p+UTu!-S zgF(9T*VwOHL?1~ahagX#8gx64om#_-LstBtktctK&!Wsx`C9Hw4Rx|c?2NEcZ-UX&3 z=OHUtQ+lC~d=YDpQBpjTk@grT6juNVwQz$w`dSStdVDQ74ZAnu#E#SsEI{|?JoB0P znIS0ke=GhsM^6m9cWt4C+LNxo8)bI7kR4@L^IpH`x)67Uxtw5l(>F%u09}%~L()|} z!>Y3`ob0`#xv4SQ-t1j4+dC;(7Yuu?3u`Z_^ES7&Eod8yTPNF^n-*L-zvbJwMN3>e zPQ-Jw?}&76pZzk6d;r=(~z=>suM{AS2VV_G}ZG&(iU8E_A%#@ z_P?4vYclrZGw}a7RONTHlV2yhS43x9;wE^1)11ciJ@)dVd0g$bpo#a}TfBz;u=Cn9 z7ZZP?~glwc*XDvZ&{@A%J%avt`1iRr&rgXUr})$E;Yt&t0PB^8Bsa9+*>wx z?$z_o`#7Xg zfh)@|9C%mxcMSQCIXSz=8FR<*<`xO}*)ZFp@6D0NvV zlYugM;5HE3j^_?McM8In40nB9{52wlDv`=3GV;)H7r3r-5^Bhk5WYzl2?etg0*?i? z_@CQ1$CHrb30jUrK>02H7xhP@U?#{c1I@G71H5|tUyT3B_@6Y~bqyuqS~%P_b+`-Q zy5X*`4Rx;HS%gt$ z{N#-8eg24e1%Dn`1P@;MACckMJS`kyT(_bd?>q$F9TIklgw4X!Tj;#BAxwDt*Zu5s z6^6NUt5fa8x!@B9)|yD7RF)@CI?HhuL~vl0ZeBbUInzK?(wZe{c@K|PK~7pok$UDG zfFC%X-HzSE_j`hp#R0*=pE#CO4jW2sr($wEKRn5TZy&vW$ALm^F!he^9a}27xxe{KH1)nP6$~LGtNeSPi0NOME872Ms zVKh(r3uBFlfK$u*yIl865zCYFt8&7riT#~NXk{)qHMGC;h?A0Y!KuCdoyT=ne;^

    CMk_$c#1|t`IIO14E zpkPDvFX%fP6)_k7T+kn)$ywbGvo}w=JS8+2otN^+tsQMyF8sIilo!97$%X$BjCn5j zn`l3B!GD=YK3BuE<-*^ehtIA&@bBlz?}K^D{R?QIa;5v%Jmu1m2Y+-Pe(ujBhhcf( z_k;cr&2GH!sEex-^U$kP*bvRmsD9eNqdpE1 zEv<+y+DrQ8fzKhD-TQ(Q?79&Q3@OOi2X(&qR6&QWy5kz;^F);U5Y2ASknkmt^AOGc zus=k1S)Ot%Kw;%7uP^4&pKaLXKSZ;8UP=Eb0ngY;(LY4GOYxtJ{*`&)r{u9$kLJ;b z+B|g5MxtlAf(UgS@#qqO4`cI`?{1-2nfCfy zlHPBCKScC29YBkOH{h8|p58q5{im!)1w&%lP z75odR7j%Sw5&sH)y9U?shr|BR5x*J#3SXUPpAEkv4}L5U{7DV2=eL1`;rQ_4U!}W5 zgX{SXKo98{ya4|Szg>gt`P!qw^?V%*`$a$t!DoN*6jn2h@seHL*!%aF3_*Zm}&w^JW zjP4`}XMQ>ERCGSC;nxGMY=R}>N^Z3XqnobLnTmHsXK5bz4Ow)4BB;1rEArs~C=36m z6929|_`lKM!!&*#*XU$gC6{Z5hW`Z(Kc&I-`tqKHXUq9e7Q9OGc{JKDI^yf{{Jexy z{yP1$HFy=mlsqdWobta6|FSx`Mr-&SJt_PzYw$V^&VD-`%_9F5{%abXrc1%!(%|G( z!B0awOGnsQ_*d{15}r-}4h^o;zgwd-SEKWghCe`q^9U0bQdcTORmBdEh%W_%w}nt%jFk&;9K*+U(EwgX>dJV%8@Qxp0XOH;Z*`lt~p42U7o7F z&6ej_8ISNP{405WMZ&Y?Ia$JqugjA%q$6CHr%yop+Y>cDApUIpt8{;s2mg=;*YPjV z`n|fn`mP4o@%gP99n;nE^|N<%eEsZQ9bZ3t_gv6Y{Of1$>Tvz+T^+8Uy{p6Zvv+lU z)6d@3;riLTI$S?{SBL9o@9O#{n}xJqNpmXN2+B?AVHIECMmi4x*Y$0pgj3FXx>GfH z75qwWs^65YZ!~z2DfCXH)4;wZ3eE1cezi4pET)}y!5*_L5_HCF3*YVj;r6a!1 zzmhZIoa0pV$G}gQ&HwEVSip5YAJ*V{x-V&PozGqkuH&nNZH2V7e-?|?1Y9Bi0SBD2RIP0L21J`Bfh)-E5_?-m85w4fx(*o+i7r?LZ zOEfyVebDd!*5UIse4U>wG`ODbEqUPo>2Vk$pTl*29I#lw`nvSiM0d!M)N?`T-4IroqQ)@Cpqc)Zn^&CTQ>~4PW69q|4_5iNi;&^phX8rbN&T z4PGt%d^AWu@l~Inpg9^mB>jA}YVa>>@P!(Dq6Sx9($803-%v<+>hf1SGx$V_Lp%IU z>E}bqneCG5;}Om_myY;yYE!&(y^@ZP`8Lc<0}{!bA;=f|hP zOEvhp60YQ+_MzOQ;maup5sRm^(UJaX!sq<>1~^Z`<@O&chzvNb}VouPzCh z9vN9*@2_lG&|Z&i#Lc5x=C?$uYl$JZ7pH?p09Iv_$F~=g+EdS}?!8Wma=r zeOq&6PTPWOsnTp`LU(p$LsIkREtqeGukcq_kEp1x z7vieVx^yMO2~n5iA0I3FK>M5p*UW32e{EAA=F=rU=E~*>HjMux zr8=tp+WCDV%1!yuv)tR$t3xCDq%$(Ji6415yf_(+`PgiWl=><_Ke-)Q`DgKdn0(-x z8oj<8R*uKCH_wl>T^sW2QO9ss|J-H?th>6Re*TD2_3HD0!=l@lp#SjW^pRtB(x2u_ z48c(!>MBE@nrfC&nCJ*IoB6|&L4{rrhbcG4>65eUq(4;-`%(W)#LJehA<@ctc=QlOymS=TN@zvGWRZxEC*Vj&+ zKB|76tEstVF8S|gct6&1k6GA`CTV_kZPPyz8LEPA#6K8$VLPONl&2!;;qwm${I3)BvDB-^f?j7NWKr} zH*EEdvu5GLw=3C|<|meYa#=4vjRX4Jx%KJpwd+W4w##JfAF9S<(5b~|rq%PBs35vo z@sGZ`v8|;sg3tDXv%VQ^kKkTBHBJ!7Ql9@%vVqoU`y6yno35&Ea%Er6m&M3P2(h{r zSMv2~_WJOuF74}!;V?MH=?hyeeXVs1zF{2G*p9-PZ`I<3q0RFfubA6h-!j{p(b(AD zHUi4q(q2D%LEANrZL{iIP)OqY$2wRe2xo4zxxLLl1{fU5MB1WFkrqT33He7W?D|Ms zV@ssng88Zrv^CFeZlnD};tqxCtE)#vu5E3mdBa~;9{c8ipJoR7eukOOf&57Gv&n(@ z2K2Mcfqx7dg2q{5+_xYafi=w603eJ0zye6qvE{nZomOCs(+Z$9#UESSv^lFrvns4JxjK}W&Z31MC@;XKDNCY-GYH{Gb$Yzmz{J$MUE0BD1fiX z>t{DMVPFbjRMd}XnWd#Qx``a%gIxi3YDe3GS&flK7{t1Xila}{Wvs5iU?ESJhtjcB zB8Sx_76MI2$#f4tR#Mfn)?{+_Rh8(c%2_|Mb)Oa4bP-JdtSC0mZB)0A>O%i)^Pd)L zreKb&4P{C7&-WaSabothFlYN4n-NxN<~4 z3L{i_{~&)l%%4sLhR{F!urH96Nmr;z!B6qzepxxS+K0+iPIAL}^vPMgbN*X*yN_~U zc=T~q@{Ql(>rS6bCVUqn$|+VI&9x)syz)C0I(g0nu4uJ9`5B8-~z zXa1+)U&U9?<1tUn^pDDB;PVb8eeHpee)&OsK`SeMiQK@k-XSC8&pfMqEBWW+Ka_+2 zFCo6-TRs1T4Cdm$LGu4ecj-Ql___GsF8N&X&!{vWY4*r`EU-7M;Z{*ScF3JD5Wcuon&HtbC=zr;S zCx*^HP2u74AIZT#*I^ak>UkxMZ!Y~Q`GS+ad^j)o&E}uqrwCeE<+n%jZ_1dIKi9_& zm;a6&{7*uB#kYF?Admi3NydlD^wlGq|L^C~pUOHXMuUt<{<;2kxcuKF`B(UiAH=`n zTRneyOm6wNO8(zR9NlH}pU?iS$dUd85K`%?=LocKxyrxQ=cKBy;SzGV>EDqf{puX) ze*jpn^gCqwv9hGnOG-Ugk-F~f?>9gE)cev@_Bh%O0&xs(U(pArg z^2p!&MJHAD{j1_3JN?y&FKA`ezuR)?FG(tW{G|4CO%DERbMVi_|6Jv_@@$7=^&M(H z{txD9Kle-iyJSR`LmB=Lm;X&U_~-s9C3p4w_dMml=NufQgJF| zWWEl?|Kak#JqQ2nQYgOFb3-2as|_7q7LMk!`F|MkbMe1M@~_LE`?n64|Ce&`KNay6 z-|G1t5X_}N-g1X&_5HNULN@WkL>yY_pcKrB1T>f|E;NL`i#kYFKVIXty z-^$J=ocfO3dFyXK7bAWy{Fj(&;4sE{wLYrV!4S-=bzu- zDZbTn8alPP_%ETd!+FJT<_GNdaZ?aK7yqSSbI=+jHu=8*|A)(eX%7BbB^BT5`FSvu zi~kDAf2~YkJ+k>f6@Xm)FO>Xu$%y1Xi2uXo-zWK3_>4aj|B7$*{P#Ta?~wen&#Jp@ z{`2YYupILHItZzB)pLKI^ta3Om7XacveSPb@dd3c{V!r-aHjJR^_O{3@=$d1@n4yP z|9Zq%e5>a)Oq}E@|6P**4w=4ssPxtQ6vWTPf34(y4vE9D{5bwp@jr?GkmO(CGd}lM zD!$e8hk5vKl?IJ{Zrx?eKcD=NVm+7l~Dju@a??HS)E35q1Ftc!` z^APg85Pl^OMfdZVKca{$B%XTgkm<`}P+)<}7g;Q>AIb4g8bNwSjLe2O?<$@OeFpt6 zz*@7|cU7wR7~knm@vmS{Aik2Nf{7<9J6x3{%<{h&|0=%9|1!k)gnJhts006LS0(2! z5iA_z(`EDj01SLK@5GxS%fAEtdpgGBKK$(TwcRMg7o6wy`bUo$IeK&;5IEoK9qk`e ziQkHf3cxEW#*7-}^^WlKm#*R1#ns_S1?~(-Zdmxt8&h@MO3YCxS0y}En9Fi&XS;_J zbv_(=&a0&pbA6RJhI})ETbJ@)Pdc139bX?=WF-1NGCceQ_g zwI7$<^6X|@b&BKRPX>aqdho!Gg9D8CG2-QvjswRT@pIwtIOth?X2$`~;?pXBA2otF zU_8icDvCvX=Z&}Qx^dk_*!?`NAy{;G>Ovzi<67bua4m5UFVXE0*AiRC{5OE1E-ZeDAuj>_FYg(by>2C!-i2)P?D+jPO^=Ff zeS}P{p&)06j4~kuoZ?>Xe+}0>XO6z+U6Ufeyr46k-(JKrRy+CS&>#6VZh4xX1MqBv zr}Fnk=Xdc8#x}WwxY52E_t)QaF90=7FXJ9fpNY#`Ph{@i1JCawH+Z%lBF~2yjLZ)z z$PRv+!EehunBPaX{)StJ_qEkqw#Z!2zMDm9HQ}`WTf5+^v2VW(kD$G)XIv&nT~^Z{ zO%FIA`8Sbz3YXH)#9f%Je^WGg5`BJu}YWmz4bkp;c9z==%jYJ$24yOlswVliXa@p{vdf<nI?c8U5=N0XlYrnZc#_c12iP$B9rhI1;$1==r+me8h2D&JHoL6Sb+XtE% zn<_ozc$4w7g;^!ze^TG1R>sdt#&vrxq2|DCcVPYcCM#w9hAhG={|Y=Go?P-%--M_> z2<3-vSU>qS0G6w7qRJn^!pSa%kd=b**@=IaOFt)>>XHGJF$`+I^w0B;I3L}Rv`hC* z*el7=H#vXg2=r9w4!>`*#Gkaeq7SOAROPaBgEw3^$X(UMqGG9hH-iZ(cWC z6PWpu*XTTouWW#MZ+AHGo)P;1{Fup0@p8cEd;>2vf$&SEM(0cLh7-$nLbek-#`7v6 zKQzKjtlI@h*!_x``2HT@djUNayT+co2{&TL1-Afn)Y#)U^?i?QDw=4lE-Y1f!o@*1 z@%Cd};ni!bKHBVlwGdZP7PHxKX3DJYKvJl&qMO zzPrYKkB_bAR9xree-sUO$e5I>_S}6xB8Kdq)IcDI!E7s}M#8J`-X|qe1HchJ88nll zYzXFq(rDY%N}<&2roiRp*;wEPEDA17)~CSx1y{5Vx^x9i?aA z4ky+&*;U}1Z%50~xjdkAodSCR`nZ7kb}(9{d~5m#L&!njc_(A{=Au1&L= zZtXz!aOvHeHB2G!n6dP7fp}vP;kX*F)bfNsDB@4anzg_Q2i`T7js*_y4XWi;arWzB zu+xE5Gh(uL8I!u%O{@$j@APd)7%mjrg-7~{3me@gcrkhNno*JzofIe{74SWyWZ8BM zmCQsZm6mFNe$wVW#_IT_M)1WOkjljUMUee+L|{s#xPt{b+gj+m5v3CpUDDtKtgU8Z zttcVfWKND>5PYDIeu0_1U+|``MPg^H(i8V}pbZero1ni?yu58Dk`6D$w&@N%v5VJM z1Gr2v7`Df6>GK-df=lYO;JI5$!tP%(o7o~UQQw$trq%&|Z;Vf5F2Ui2>zEf@dew8W ztR@qT)#FcF^Pnh*cZ}GtMKu&v2_eJIv;uQqDlwMv9_+CD1yQ@4x}Ewl`Vk<+OPhv9 zao=~8{YRJr)EP(k5PFP47s54Gug@c2dz3FIt{)7F%jNpW7I!)c+2UGxU!`Tgg&bU@ zWUR{HbB7~dDcN-0z?I}ydExK+zK4ES)Cb@W{Vr`Bf?MNpR(sql)2k|Vrsk5b63SFv z;9iOs$=q7sewL{UVQZ2O*{O$cyG%M{n;x=Vg@jSJS!T*+Dl_AluJ9&Y@}=9dnVa_G zLb4^B%8;hk2RD?8ymX>uYrxx=Xy$T(<28i3bL8aR3&dSn<3dxeE@dC z_I})YpDc$L_u@5ev=XiA#eJ&J$h^>1k9S}|lD z!K{s_{C%W^**nhvOmOVrk;aM*<=aE{W9|(LPfDCHMO;L?r8hZf1g><79dIvxBy8W| zTQ3s1$w%T$RMd5pc4E0O9)K)I$k33lA#v|uuxsD%TM0noUZ3-_f-kpv`Le>tZiw04 z>osp`epDBt-2K^@~Uvh8GM#sljnJTXP^APsctCrdYC&>)^nN@@5BdDvGw#kkz)TdD4~^t&c#Q)>fM))td{>yESTjZN#-1Gw|Ww?oR5bP#d$x)vRBUbIy zoPeef^$Ue@-h{D(4P5w#%$Q#m^CLHK;2~y4o+3~f?G32)&t9{Y7l*O8Femi@g35Oo zH~$iB@;*bh%{5JUqEg`A!1!W_(O5o{RS1S*VRE87*zus4=@NCrh<_l0*c?-r&`UWs z3=2wYVYz$FrpK-Fr%bTRj*jJi3c42X_dd+B^FNB|9xy(flU1jqR#XoD5^6=V_#)vy z&-fnwvF<~G4?{-HZlmTy&RF4A!{}qFcaW&mN!S%RJ+>Fs5Gir4BJBQf%>%6D&^b2q z#tq#EdV8xocP~6Y82jibXyIsQDz|7q~sYb9ptx5#cj$)oI9Or!2EVFU4wk? zB=h-r3+H0by%kopGB=0RlVmRT6kDos=2fY=8fWtQ^nMl|Z5Rq=C9}nf5_Uf$)LM>7 z%*5(as(k?F>K-TzoFsK&1`)=9J?`=D0B13A7S` zy0;rQ-wIVR-A_4s3;P@KRV636WBUt)DKo;`LxDpfd%sb$C9vW8<8gyw7$q|!^)E=A z)wPM)>#b?pYBoJ-HtkX2=z0rNZW+_MO%Ln@s#F21)O2a43roQGq{;oo|W2Ppk|V;J_KHH@60w+5M^ zdmNT>uSqPs3vw5_BvcN1jxt|}3?RcMC!C+O65rnr94m1%P1G)A&;`|7&O@LO!~q{} z&qh9u?R+u2o1})Cye724i1R$?%urR<2Qo_OLVpHvUdq?|f8rkyw)C2lu<;&euvYE8eTjuF*-H)CpizF<=FR8OpOvO2_DILq+=2SDVRdh>GYj&9K_n~WNvd)aG zd_4MjA$vg{**0Ua_vmz@+6O+0KGJiJ421zgsM8^J!v3@8I3%Z15_+O+y(+uN<>d!L zlod|R#&}W)5gLUWR|@u2A~3#!jM7E3dnayIM>oZ?R}_}8 zVY1g2mg1=pg7zI^C>QKlE9PcEiHmEnM^&PHA_FY@<({)K9yu8v`}vMn-S-xhJr-QP zqL33TJ;i{sPKwzUAr-7i3A;&g&47(f{cIl_n~mDAF#5S3-0QAGBFCHdT3@b#Vsr>2 z%CTV-mxr(Q$>CshJcbCu^f7MEq2$vH$vKq7CCqDm>7k?|ghK7@b(gw+jwbu(1HN0Z z=4{vRit7LCY}e0^`48^X|0k})3$ z5B*w%<)S|)58TQF=YFNpM z#pp`n>vR$%AmKWlpK5TOP8n2O;lqHW=}*W5=Kv-bKIgJ?!8@gXF?qBlY5Et*@*!ML zw?l)Iq>_Vk|Cu8n9sj2qz7Frs1AkP5>+~g9oI7?r(p9cZdRT0-CiCj0JetdTbuB>{VXTX~ ztCBCuPN}eLTe1iNx_&9VT6rj(`reB+fI3J_PR3XC)pMDQuin*@Y3Xi=!+&cw|I20kg*r0)D*p=1{k++E5@Aw6 zrbMLtXrEMkB|m09*P5m&5fopHPnXUABmfkSgCT!Ua-Ov^0w1(T+3BC>A6X$cP>Gew z^qOWM&zdGa)E9_Hu%_9i9WYoW*s8)kqWXR-GxpXD4!_YO{98DAwOh>J;f{H8-=9P1 zz88nk$s3G0YffdE=GKiI@t8(%hw4ySSmne7yJh@p3no6zan7`_al-{D8ij+N;FRQ` z-!OgPV9<^(a7oyH$Fl#pi$MQg&ZT*Q9=6{UkeW`cirxpwiMgMf;n_FSSIj>1O5k&X z86$6OwQ*LWI8F8%N7$I_UgWF5eyFg$0USLm<`p^I3`)fTI#0d0|J^tR% z(0fFL@>ha^j~01C_B%oQBL`_Wk!mqMsVnG3r+cuNha6isx;IjY*W!@-DMYz`1%S?7ragx{kU^sH}0n&oM(qO<=#V>^~6F;}v6YZNC;*9I%3W^*)yGqny5R zm8yk z%gn(3wr9;)Z-KFNCsR*WdCjfel%Fmdq0g8@16PljiG@3@#IWtAJ!hw7k56-mVu7R( zy30z;1*7(yU6#FQJEnY`Os2!J!Zvq%3Bva4!YQb3`suwd+w2p?{w72$NRB3NElZ$+1fX&^_jq<5v{8rybu};GTKbUbp+F?vvpCy?ek1ZubuN zMK0IR3I_b9!1c=l@U*62z~%z?!@RzcN+le|s3op9@%pB__>Tpyz3%U*5a)SG@Y3K{ zgO>#Bro()Lku(FF%wn0!bzVeoS5q=!+%jC?xAIi z?eC3NGad}`U!AP-MF`J%h2*@XAtbjvZ0~a-BfnT&^eo&ZULE{jKvkU3bZKuD?_jx)JS(w!ZN$qV{Th13PPx za}#VODUcE49`>v0=ez^WEBzd+>*H*^_H$0Y-sPfEA9tq6toZ2zPlFI?l54KYfoG586dmTSzsq%Z`V918O8TP;!RT{X)D^nh!GA9NkWMZ*lg|Y| zArJhUdFaf_0}l#0P?H^}zP;hM{khWRGHNdPu~6k)@UeN){YoDAB*_PB#_9N1b7$Yo z1HVy&57F@N$OHeata7Zw`tW_N2G3}P%e6(q`QZGT;%BD@rwvf>*EKqFc#Ke&Yqy3^ zX)FArW&L0Ha~3vrZ}apENk@h=MBvoGoY0 z-O~}S&znj(&H|DH>eAyXH&{9?xBNpBKnEv$oHLIuf)9bmGh_1!vWiu;vC>MTpCc@gfo9} zKzBi#qR@-WA=gwqEsAL((y z837JQ)VYoGul($e2|lbM9*HAbbDYep^OZi&^nc9RuCjR2C%3ArJN|*AR3}fISl_&` zskt>$AK{t7IZku@2hVWS?8-mtT?d1PE@MA8Q+}}Jr$N=6G|Oqo0r&{hZ6yP%_yec< z+s<46KH1+8kd=f$-6IDwx5)%)S802dEoB=^cQt@SVVLfgOQSwl2g0A77S|Hk&Stv~ z8fZB73Fw$U+Y%LDJ)?-v^s~>NQUX!^b)X2B-6w5DWI-z{1IyW&g6kl0IHpe-XXig3 z|2O5}pGB(pR?pu{`DOE8D;qgA4nb7mviW}!@pJKCB!#+A#v}ji#~v>Kx8>lU{SU>r zdXCG(|8|*>8b3%j`i%+3Hb`ed66E^@n>f=@^fo?DVk~IAV;m zxF>$aTHqKQx8Tpc7KqOw{eclgJ%aBW#cVdYP2oVLH4^N z$Mt;4d>Ye(``yvAu-ND9&=*T_&H|oDiEBU~ehrk8__6?Ln8`bQEEjWY+~;MQaP*7x z>E}$VGu2Hn_q@>&8(y)jlsBfF=0`YFpqp*HvmR?M*pvr=@XUb+2+Q#(0fL!aE7%Y- z;}0$e#F0-Q@Y%V+D|IjpP?~Yf+E#`W9c2DN6OD!C>8gdzWn#n=i9Ik!Mc*42P&YQy zCD!^%fZ*_uFP~ce5S1B{QJG06s+tSevmry?5zky@ymiK>DC7B;IMSX?Y41eVSbBT# zq+{VP=hJpl=SIUy>`A78%*1UWFsYKtX?6?XYU4gMf*g_L5Vh9({&+cz%n03%|Z*8KfW(~hk|eZ^-;&zSb}P6qfTizA3> z$zfxxC7Zn$a*aaD9ZO_OHkUv+4sCnrI(B8S2&9(iO(z|(F`r*+O0r@59^V`)GE9T9 z+HBa{?T#E}Cd@hbrt|3(R{R?9g|s`2y_sF07q;&d-(!T4Kbnu|uw3Q=sS1{9A@)P* zg-VhVl$I^5X>SqXti#YMu8&}0r2_O^k9hGT0=aHdArDdE;)~bdH!RSb6RM8E@~iNp z-n+I`oeC|)B8X5ACu+jPLQB}!3OpDJB+wwu1$4KH#zDlWTK8Y@i5OV&_f=67VFR)8 zpDXcZPm$2Uh%ZR;4I1T}d|nieBp%0lP1+o3^ikgd&t~c-q2}qR)YN{gK^CH&+Y<5> z4K}g1bd0$MwSz*JFTp3NqxFy9YVV)|XfG$+f2Ms5{bhbF&26)>YuNU6y9CWIUtkOHvsVC8jWMuEW@T*7)UTnuUV-L^( zpp|2Xm-}5{u7oW@RDlKT9YDYak<^_;#P^$zRKeq94?Ed~RkFU zp*tjO%k&jGC1rqb{@Ae&6W@kUm>J}S8VN2OC5k^J;8-GefR5y` zHRIP3KW*qqigGjJcPdhNRivP3@qd-1oJCB~hswp1642QNUBz z;U|+vGfShg<*>>TR6kMt2+U>ny-@$m1orMIF34I!w55xDlC^Z!mk4;D0u$Q?WYL5` zIkf;dI{6TE91ZU>aI<_6I(z7#P*@NGB-7~zcIqgS&9uIP6Q}7#05nZDxlkm0gmxQ2 zFbz%vAMq7E2!Jp~j_TnQf-oer5KK3EGHoxDWcrb*=4O0@0nnwp?G4)hZe{|tQN@V9|mTK&T$QQwa1L?Et3ZuwA_(5YGHlnEhrt0tC?=)LdV+0v~H@ODsPfZq% z5zS0E`Lj}_8n%DU2b&5<4VE-O3^;3}Y9S8Q6H|A_pl?b=j?#l zIFs*B&Z&Lkw7!iDcJ>M36g$x?e9xF6o*;CSkQ9!e+h#0FA+0bpw~L(MAQp}@*mP4K zbo4Wf4jYrw+p7R(2c3@C@Uq_JkNJipO5idDy4l!2G}}1A8LJ8phju_%jzGZ@tsR+j?^Ztcrh-I30l)5+_sa?sd&;iS2=)0aA4 zFQAPMIu${x({1oN=}9GN1>nDtlDv?uBu1QbZ)QS`OjGxYSM3u^M^N$Su-V&8^zS4; zA>dk15z>^MG`QJ*Rg{c2O zQRwx$La!1pqH~gNsH8$ug{aU(5hcQ28+)x#Xu_b-WBBG+=!s4M>mdS!AyyWq^Xm>; z6#}kwybbVjg%FXw@N%;vry(oQZh$&dmWn+GUXi$J&Z_|Uzo6I;r&~WYlPFD1-iH09 zY!&A@c3l7(@oxNTwwvs8f`bJi@+MWC#~9?Y-Hsv7X}kYRL_v=p0#u|R=D0ArXa@S& z?pq}NKDN740v+3(T?j_!H3&~FCenW&8$S0)ZTL!|<epwvscZ;p78iW-qy<18K4LaY*Oi9efzCt{`_{IN!p_$v}R#ws#Nbum?^_)a~6r zB{6Dm&oTVA4u@Bu^yJ!sGk740%-{jz>ruOeP68})-XBYh#wlKwMGA7&TciCcr8Y)CnZe zBNK>%%C1*p2!e9NWJZFp8q5ST41>6y>w2K;u6W~xcmRnY!5i?xV>O;IjtX7@bus_n ztD~o8GJ~+o_y6>3m{irPSFc{ZdUd_3t|qe~E+EOmRY6GpoN?8Ir18wifi_B-!%8CB zXu4=F@kU6E!4tO8Z<+O>Ya9KH!Qa;0nB--WO4LLa zQ=vqKEo8|L4sHE~O7;YwZh#8l4HECMW@s)hIO*P5UO*<}PL>1S1TxIFM#7;7x2zv3 zUkrjtN^j$@2Biva_;_Ikmp1?xFWh*G=!HF@GAyW@+ z&YA4}UV3wB^OvUny;*e6R-8~V*dF0;!lY3Q2?(t?2>lgtAKO03J|-d57gNW|TdvDW zN~*%Qka^5eacOexQR9RsXp7&Ur)ZWiW`CZbVzx01-tC~tEJ4J8^h>MI0kTkF0}YhR znzqm#h&WBajXZ|G4bYOnTaDXrkJ*p9Z*1Y0?8P?f_T54IqW*cfF6qzR9qi{>?+pk)~h(cT;D&EXKMwkNkYR@{KnF3k0!q6yCb2oisoV)oO(-`!u$&R%kuLiTQl^`v! z7UD(0QLU-^2$6TIrl;fgRimj z5r)N;0k5FH)?x;(B7>bLbTQt4+<*R9H3Snfq%OR1M}y1|X&P3oB4+3s zsI73lzr%SACO6bL6KCjIg#&NvMq+?(#*+= z#!d7%bwNf@Wyj%{PP1TPKs77}B3{YVK`Ls%$|>iU{PYmbR2Z1?B2Kd8%D$53t;9IP z*bipJXt>`@;3ZiTx3ms}O$fOb2i`7j{1ETI|D^kR7Pgc%J@4~{naTy;@#MWw*b?1> zoU+v9#%godTc(ZQs)|nL6m&`5ntPtojP4}RYBoL(6@pE>t&Mj#Z4wptuB8IEe@1iv zQ%agsGjKqK_dWL@Q?JtumO+fqn!C2p9SYPBx)u%Xy{Nz5+`qT0c_@ftr#-;B1T%PR z1x-bQjf~OO?RW*5Mc^!*oy(CnwmYz1vm*_kep^-4)2#z2!+e<+tlYcUv26c6f|p+!xK~fbzd5)EBckA=^(3yJ0CH;yR1fzSSo7~(0~HoKJGgP;E+ zMq$l63G3uHFgqM^1Y$13{dN;y!DR>iH<}?gUZ3{lI3sD$pTN%;EK*b=mpyHUF2{Yg z^9X%t6kX8uEjL4_gTO?*Qr%Yaid{!uM3(i2ZgrcEj*qe?1V*q)5Yu1Kdr}hOZv6!6 zf_*x^6~dbj%oi4dM2zoH_NOB$!B{|t$bP9qiD|)KH!KE$W zo}Fba5j&t}2(|7BLBBj9zIn`|+2J;32%@eO8iPwC&z!((u5mqH$dB#D(PG$096Uf> zc#Oo4BL;+~NcaD{#P@>mVq_6mxr&C*iQYT<_h$6%m3TH^s`q+W1b;u0; zBWpZzxlbMKa+)R3*}=2n!4hgC96NBa2(Qq+2Zt|3I69y#Ez`GAAIv&RtPMN-sV*Sk z@)|lt_7rg|2T8fD4!aKZhTi82-$njdl)X=52Ik?!D84&j_W0Z^+GrXhH{qu80hTQ2 zcIBdvYhR6oqPZh|^0Q#zolHXX(9(f~Ll3R~l!MTAut^VL!%O`wVJAu{jW`rfBBqC( z<}0Q{j@!Rw&Q?U$BhrD$_){lI^pfPqs-7nNeaVJ|DSoL{AlXEHwOw$><=3+8FLI8%h3L&s#cBCND6F110 zV$Hy}j0|B{(5x8`yi?(oA|n-`MH<#u| z`@&ih`4YHNwnT9jC@Ot^xP@DnDC2|z6P!ltSvDUoeo-A(T_n^~(3biMm79e6looxd z4YHSz^}{qOM#rR-NFFVa4x1O!4apm6|Bpe2V{kC8nu}vNbfpPy-`d65qM4~@_-ZPi z;eQ`lN+SuK|I7t6zVJ%{qX!hEje$^T(4dDzl|;{EN;#dUWRwFv;-KxmzN0V-Nh}!? z@4S`eSzwxQ{LC$>S4Aif^? zfv-n8oi@{irq%`*&+}uCKT8{v&Z3ADA zY>=q59szFu^ydD9u^vh1>yfsfefzo|d4^4rd1-_5aQ_?3opOCkcExBA!)h~$Q@#OW zxotc(WYo^$H?T0i55>b6*LD&d2P!GT#ARV9?dGqR<22x7Lq8-CPG~aMD1`;2WFvZf zn0Q_xWobt=J1EHWz?`1+fi0ur-tG`nE{^x#z2b2UWwCEFD$dFO$a@|8!38tqxr4Yq zZ7Fpb?ocyHTpn^|3uUvdNp|!2l2-*9W&Dd+1xJ(S;YBQ3CedD~7Z(uXg)G<$mXkml zcOwS7Q}BBai=0X?XeEg99h2yd3|1>mEn>;O`bge4u`zZjSYaNTo-j|1^bnT}QZ79% z=_!yNr}Q}Bk=;wQ{}{5i1x6jW?G&LuxSkMSyCWfOSolX~?!o&6tk1&qo=9*!(cY~< zG={o%Gl+3@0ku?o2y8hyfd$LRDSFmB$P6tZzdLxU8NgNdEm#rio{(=CJ`Lp^?+*4g z1F%prXyiO|{su;cPW$nWl?EF|F<2l7Aty##sl z`WI_>F=;H>?~`bFlOqkqqgUP%okVkY-MSX=;51g|T4yM^L0KW76ft2PWy1jAPCN(hZ_1vafC zFP}jn;$p>KE6k1_-S!W z({MKB6z|f7A7{X4a!3liKEib-)Zg@P;{%gmm|=nx$^@bR5P>|B^0KP{J;kV(Mab}WL&wZCl9rw+JPw00u zx?Mz*eqYbMq~Eu5FX=ZexPVUCAVfD-yD=|qfJ-;2HqrKTxSc|%QsO-*we|kM8r-Gb?W2hEo*20x46SqnE z>sXh`W1}m6UA^f?@xAH)y&>3%hHiCI4g|V(QtZqn)eH^6gu+^fJJ3db4}$1S=#v>@ z2&NkdrLGxG;=HlwqRKg%3n|Xy-U@idVPhw}?65I5WT}hdirOOEx)_3MFa}R`$#EFX z^`>8!%6yD+G5P%B08El+m|Spv+ClHy%^H4w-Z)`byMiU@IspG&kct_A>fQ>36p;_uw>$>5eCPe z_iGrzD{j`_@lNe(rMWK4!D78pVz5h#P@jr zch;x${b8#Ep^p;BcOc>&9I6o-90`Rt4EBN~1<}w4@S%=gkYwYewLWF<Ta)K3C71 zGqz(PWlN=3AP}$8WptI$;vCW>8Vd>KDLd;aF&gr1TPPucp^|hBHLtFw5nMZIIgJRq z#wR*5PT*)RM3DIeDJtNlyW`dOSFm{Fc7E@luhqx@olX{kDs zzR`3A;Nb-n`CC-=&>{a~+RCh~i*uGi(w4d}MIec~lPZzA6N+-S04hunXy{nKAWRcenQhL;xv6Z9mv3phiX>pJ(PXeuS?l? zg1dcFcB%qZ*;|F)#Vh+044zQg?-fz;%6_XL6{GCe3Sf+~v!x7LfTirL0`N*Jki(6X z;mLdhE-VN1zt5J;lrq(Y?Rgu;{@$LaWOV^C)T9+>qFWdlv;>zmseXzU>SV$Ax6 zSdJ>i|MvQZb8M||OxYscLCHR?Z?2H*8`Zjq_00k*B0VrJVts>48EJj9i?46GMb|f2 z)@=nAD>j{~YDPfXDWk4fkD$f3v-tf#BtnNnP|F`ua-$Sy^y!cYyCH}uDu+bk7F_$Y zgZY1Yp@r5!k`nzhoe<%5Hh(?c;;Vd!%N-nnyEqqa1O~3Uewf zY&#u|Wv|&jYb;pGz^Sc`^-j%LawiQcjcW*q6L;592wK2!ppkn!affBOdKh-UPTcWT zw|b6D^icbH;%+h6<#m8|K?5&e!5^6zT&#k(+fhb&iZ{sK<4breFyS$(G3Vq6D)eAC zyxT$fzdI)fz(tlB8E@b8x^>apY9eNhj7dZ_7HAcyC?M;EiHYKprf zEfw@;hClm%uP&d?MpS#~8x{LEU0G zZUcpLMwdt9bVOSg5W$^wRdo1qKq&VvH55Ms7Lt)FYGj?;jcN26Ls2! zK*Q$)5*di};d|iY9ONPv9JKt7BM-BX9|VL@r*qWsWmb}9Jju%<$qFmU(>zHMro%%) zAzmDjlt?x!5ZB~r6;3z;RagUi7BHA3M3JKyg@iE<7)USQN{YrFOtA$#7SL71vu_%F z4nCh~LLG{==AGoVX5jbpkeGqfYob7NVFt2+dn@3jep#$F-{I(+m`s{zyCS>@xl(Oz zl!B4DdY43cbE$JC{Bwl~)G4P3oFo5Cz#|!i%6HSx7bevBN$y0Ez5oik9gIX5$^J2t zG&tf>tQ7u}1gV%wZh-*COmg|5A7zru%IN!J_}>0fdAN}L?_$Oq`3q+klJdVv;hT9F z;_`2%@a;V8MEE5N-$h~ElEeh(KMOQTX6=g1+EE~2yAc(hVrid%4k2i{(9Pa>?~{`g zv3)3ZaD19h0K)y_p<#k{v!HzDI)O>vH(lz5?=q@H$P%^x7x0B>7rbIWyaHafAI|L$ zv>6U`F>~!ih_xOnU))S}StOl{#jbm=OJJ2>L}|Lzu6MqrM~ow;FN7JtqLKUIF_kU% z!(%F&Z-y(C&6xL%4zK2InwQt_fTBbm;4Gui{(~s|2oF0E?ndD!cvXmL@I28?Skqug zM%2dgE*Q|IY|U^WBrld@O!EJxP8hO@T{wDwy^?3lL-M19V0gRTAIbCL`%^^8 zEt5c0^50{431{*#2GA7;O!C6&!z6!|7}Z*0S7*Oo$us65`RDP@C)a7T@%_?yUVMKu z2$0UzTm8DF^K%guzRBvZHXSg@3)3=_yj|qq{#%heV;+(pF9fsyI?s#m&j10E{L-$H z*AW#yqEFmN5dk1k|5rF^MkR0QD)|o)75*8YUE-1#WAuvz-5w8poS<7QXaUX_=m(^hHY&9=Qt;}E zJ-zVjZ6Azz)KWkQX8&u67vFD!0M*jguC+8AQQ=7rSxe;yO!DoDDhzUqXM@9Zl1Rz!v0&ybQA?c+XzZj6UsPtZp!Xw3nurQJ#`WeZ*# zek--am`5#56N1_Q_Q8wq&jkUhC41M^;$esi59<|IOKAknj)(35Alx$^`Zhs3aC1{k zKe&#d?eWkD2>L=i^hSa{77v|I(A(mnmk_i$9(pE0YvZA(67<}7XdXdF$3qV$XhA%5 z4*=ocSYG>JRMK2li(96yA<6q?C-pv7vH}W1gPZYUG=gN zQQ>9yj0e}M6$ec6lN8B2ME)(m70EN^A^Ed~VD`U9;Kld%1p$)$)UJ~6fvE5?FtoJoZ79Tl))IK}{R=>VO5V`5KIQ-vz5(M{ zOnp=lw84VzJYed2cyB%gZZUO!k&-)qksE-qcVD`U#@Z$SBAWtg! zO^^mJxn+?EBP!ete`4z6HGcxVUq0m28xL)!`ZeLTM}5cGq1=wk$ZJ|21- zK_88WHWT#LcxWv_7sf;BgMZ;muDno7_^IrP6!y~rt~ zQvdl@A6~GF6#sW5q>f7+X1m8sca?*ZV$pE|)&2w&Jw`9-uA1=4@z8XF9vct+j^x&x zL+N-2H59spYb!d%a1a4dmN)T)Z4yt}iwJK9CXmAC1365W?S$Xv$*2Gg@XB__T7vKV zFx|_A1d(Go(}`~fdM0{tlx)9IK_sMX_(?OUZ&UY4grMk7_VDjHUtwYjc@q`7S&H*V zhev&b!*m*2#1X%-dB$QJ{u6<02IT?Ba4t^^J324w$VeG4qF{oqDi8ldh|4CBsVDcH zhHVw6?wbe)T%0c{ba|;xd~6G4r23J973AqNIT1JUV{P*|b?^NID2SHPduNnmnUC+L z$lqf)eIL|Gk~?KCa)X&~!N#=@5(_;h1Zv5i0(+65yrYWH*vUlDB;8|l;HNs0eu}3D z>~dx4L%dA|lod;oumVIUT5(c)k-8m3Fa^lQ=9DbZl%+A>(%y;$nd?akPx1@qUzPdvlBl;C*UQgaBxs5~_a zzQX5=pCpL*7B1a9LAZ3`VNdJALn6eIhzptMR=mY_B)UK6bwn8hN^s<^%A3=(WH`RP zXk0xKarAyE@r?J%#|Be(JqZw9I&qcT=9JC*x=Az>@@h3V1-^%-cGJ82zWcK zal}r|dmP=-$GPoMxWyRYCoH_|1md{7Nq+TLSaX!Xr1}ElZMf%0x55czyj%rM*}?A7 zo0sEc#Q~r|09?F$Q2la}1YYrI2Pp<5B6;{`B;BK00id?li9Z}4+Et-^5xHFXBC_RW zm%=dRCw_THU>(v2CBg3s^2YGH=8ue(c{%l*4~V9oL<6bt%QWc%sRksA^i>7q;@=AO z=FFjHNMt#$;yMa^wHfk(DB>~$9;*~b47N*P7sO)Ic)Xla;Mu@$+r@X0AIteG!s@4y zM|V@djNA>VcT*DfN#w4zSAg;gX*kInBMo=(dOC_mWs+4yNSs^L1A9{s0Q4r}4TYPK z6GH6VHr2GzBo1vm;3Y*w{nx|GUQfVID@SMNwo%=P@Dq-oWhaktTRDm*jg~MjIASMp zH4JgT62+l+iAcP$ieva+LlNVZC%gf`IQKZc(l+Q!92 z5(xSF#3_k1m%LzMuh0ioSNu&Jd7rqV1~N^ zf#0ubLSLvHk{O{df2P3=QOkkNqgX5S*D!dTzDyCo7=1ZcP-wO&NQV96MO2Fw#oDZY zq@YtFnc?N|4-@#NX_=H=GId1UmfBzVL1SQMU*cXTlo*VC*? zIlpX1OC#AZn*M<9G<-7ksrYC-8yim!Q|0quz3wdvuNOh7U=xs<)vj+AQ!d{;me6Qg z07Q66v6#BadTOHPjR;b#m&t1>Rv4l1a?Dc`Y7Y!Qy@(Hyo%foqisbcEzu=OZ1@-n{ zE-F7piMYBY>~yMtAHm10DId`fl?y#-0eg}(nD>t&)C?{f3iB(ulzxfnnXhm74M?6- z6q>i50B8oJdEsg+mIg1{m`x(k8%S7OpiG34L3zND1o|c6i1Ep2N+J4Z6a7Tp_kS)> zS!xpS#fb!5p@@chc`3qXON5enF2z`Z7bFq*Q3_QO_`xD;t6|eDK=&Dui@3B|(EBGU zJdN$V?nIOGl|?4;s>1}ZFR6{CAqBXPG%}n=Vlr6BbSiSRoRCLd(vfzQD8Btl(-@-U zbENR#ke7H0Mrm3>sSI(KVD!YpHLYuUj=A^0?Wgkiooja#{rL09{Le(VeN?AyQ!jme zFKw2l%{sL030+^M9~4-nYv1VhZ=TS#yHn1*E39kR+4{YT&}*rOzVf85uSjz&0r2az z>;T^EUDvJ8?(MpERrl;~ztpuz_kP<;oT>Ct}!57vVm1*v(!c&h*S^ThY=ZOJ?=xTd zSl6x@c=%RaC3E|r%xB@OAC!I#oF4}n^WofoobmOCy0+-}^bg^zK0fpNc3r!xAaf0z zj|vXo_<^qNF3fxYCA@WT`i%&^HrQAQ=jtKGF4%DP3{Bq#XT={ffBF{+c0%TQIB%TL z=au(RlwrY?x4zT0XGRR5^k0pz-3%$-d2$+sUO3tIZ^&TjDJ-<=6x)vo{mer*ood^S z(B@NF+!L;Y{td18+GYO^&OeKBUA0YcynxWsiP;YW z|ILYg9z*E*GqeAO&=Y4aLgQ^c%W)fESDl^R1lY#2`!pl8a8mXTTtUz>X%G?VoRt2} zJG%D3pZe@U$#?$A-U+AmoP+)ejrr*u`*U#aKiBaBoL%Q0zYaYA^SsP8-$0Gdb8LX~ z;Q98C;Cyy|S|^A-e!)RI;LNW`y9EgrRAk-(=e-LLdLAXep~~Jy0;pQ1--#E0ud42M z7lJoVb&w#!Q#0QK7fYt~*#PJDY1was!@phJX9YsS@PJjDN2(8|D9?p~X#*=Wq zs!zWM&K+|yS7VrJzC3dQoDG-vS^B!JeK?n;TQD#EgV&%+^Nd&Fd^OKl3+JUP(jS7; zc}3>BEfCt3nTz4v-=H6H!)D0$D&6+ZlMrd6ejep~n_utK0Qe_<{rB_1(4$RypU*d; z;Wz2okq8>_0zGpN3jg{7J^e|*7cJC{d*D6;_pfljUZ|%B;NI1&XWsg%t_1^n=4Y>< z!3Xp{J6}d)S;W&X4C?7?5ndhCjfddwfO|XKmqU8`)o>e@=$U_iN!PZ){o+Na%GLT2 z9WUtG_t)sQt>E|GzvyYi$L7E2j&{KRa;={I2Kd{0t={Jagm1h~&t8l0>(}X-*Y8A6 zbDf_4SHK^-UN-`8KZN_k^Qg8P^z<;?)*HarM)X%V>X{qhes-hYXHy&ax=HUt>2Lh2 zo_;&RFaK3Hu7=wQw{rt}$-n98JK!$8MbE^={@O0MFFl7kyH$6-iOIviZsYl1b-SMa z4}@3Ut{d0G{Tyx++>LkW>EEw|*59FL2H<{lr=GdxS@7|9{jm31p-*@5^gHg-)9*w0 zAOFyezrlSAZV>L{ckAgtwdmURyYxJFZ``Nb-h{js-LH?N zax8fO`~m*d1G-}++@BuMv+seNS|8N=EJL{AAwBzAgx9Xn4_%AF=9P!_gWg^Vb$dj& zZ-%@25&g{X;NJVF-tTd^??0v=`ULRSJgy)5#Y$cOL1vQ z#zXb5Y`wn8(wC>EzmcW?klN?kL-pI!(jUswUrRHBS^C0mMteVfW4B(9_tU@YW-RTe zf7spF+E>5D{<{zQ=#TUu{H;CGTl?sX(~X<^=q>5SjzjcSJ$rR#>Ywy9c4q3Edl?H4 z(U)d8mmI8L)!ViuQ-8j98dAN|dmDBdqvh|^Cu-H2R-JZpH|^pjfbZ7R=6BQf=*{q> z?44=aB3qrN?XjhA?516xn*LBX?UU3D?00{YTB~WFq}h@1i?np4=}7AV?9Q}p=&?I( zee{Da9`tdFeuIu~+{&=icBr0_WuK)xFVwWF^t6DktGx7ar`@4zHTDP5Rq1wk@6fAQ zRdsgiy|j_|wy6EDx^^1U;_0*%>nHT~Ur)%0h zDQSb<^)vg^f489Vjf+I-NQulIT&MO&gj0zaPOvy0D~Kp#bF zLk-Z{dp5q1F{Xz5aT!wE7(4kp#+bUdhZ&qZiA_G`i%;D2C$1^PhS532=NDfZ*h{n75=cn1v8 zn>tEP*PY(Jkr}w-3Li1W%d_}4z%3xu=BlLH0EmWAO|Ws<7p0s=G)EeQ31|k~)36yRD>87RfwRlS=QYm+mx!#aw;|L4K^X z9{SAUdWW@gUbiZRs5}$tL!Z{MWEANUN#!rUZ72)uP#O2w>gmcWMvVQ5+>f;d^T~yR zTv8A#{E6;&l;ew{?!Yd0;NQ#;)E%k?rH5H)@XQ$-N6fRz4{K8Au!5Htrm9kQ`ovN>-ZKGExNH-2W-oC%g-i3RKxy(};^#~nDA zzL)T>@6O1B(h34;6n9|f#hVUo$q~k8(Kxs?G%YF*5AKY|d-fo@(F~?hJo&e?ZxQWA z1)IS?Fks_`AI!C#Kl8_2-5?(G=``^aws->ba<+~O4m!mX2%Eb$)6T+1PcXGFif0zS zW9mPeM~2O&&1S%xvzs#6Y4|512M@k|SNOIkz`kIo|6m^Zx!LrB;V(iIs@~nY17Bup z!3W=lQJVI$K*Ze|DJWx~GlCO#w}x}e0vp_|U*)1To2_3t%L323TR(St0$-Y~UuF^E z*3aQY%+?5YLE6mL9dNdTq8(X#Ky;HE{*sgC<+K|M`yyN8s($!e+|Y?{^`J`XVWUM zsLj4?6?HJRvx*z`r1=~Xw=sZFwX&k;W{dtXX5LXE$yy*liA{%H3;48dnX2 z(HGS@d|u8*Kp@jVyTCRiA~IU1Vm&ds)ks~8yS6uOdY zq$l(!!Q#7auK(x9blyOV>MJ_%T;74Z*HY2(40viPWWh2o3;l!qXxha_?L@YCx0;0%=;RQH7 z&I}O&GmK>LHi}Qm3`-nb&_XE!P2?0Cjs+{2+q;QecWCuS=By;gM8Cpc{sp|9!^t5y zSEjPiY7G@AibdYC!0O$E8N7`-p$7?Q7Dc=>pdti{j;{25U^6rU{RO`#dNVI)a4b63 z=e>Q{{w;lgDcA#H-}jNDXg?%4%3&5|dHZ2Vbg(c!@mvfLF2DSv!?zQCuvxU-x7

    =OnkyKg~xI1`almiSgJgwK|4mNEE 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

  2. IfE0?ZW6A7o+H`i2_TvENJ zvTo6gaxAW{tRG-Esx80?b^_Emi zq|6~5tJNRq`$||M8c>=OZT)9RDlrvCc0SZPkKTB&t+#0Y;_3mCE2}m$oL*rz!Wc|c zE|tS3Ph(kG*$k(vnw7X7ToAW6vn|@>M ziq`s;=Ew|C(1K;6xwS6Qh~y%p$aH1=ryA?=jo4uYi(h5Y=K2Pl-3XIm$lT#jc4OHz zTEd}4F#H|01a$*TK;vhr65!&*m4F$Y&=UObv7vSlqOtF|lUNqWNk(SOb%C zsXyKnj^Eso+ic4vgRHj9fFd~NXzE%Lkr{*Hrwl@dX68lS3_pUmHQ;U2zMhoDc$v#N&ZJXn8|28RqyDUHJpXnlX1VSH^;P)IQhY!p?!0=v<$;jCN1N?Aa`vqZUP%`=(WZOBN`aT>7ct|2&P zZ9zL&A%IVZz=LBa$4mqH7w$m7_W-G#?11H|yesVW+?)OYH_w}aP24=sG^MTvsamvP#|yeAT5b}t|=V5PR z->+%k!7mi>O@M08dC6JtqN>Y5VcK64pJpIE3Q}T=Mk(2jZ25&y@LURjZ)Rq_H_sk- zf&Jrb+{y!YJ8c-eo$toMovLTt`tD}zU=FTp66)wxJlUw+KHaeb?J7S8id%nS%MP^( zQ~MBAZLtZJ!k`7qy7}|0){0I8)}kDuJw?66v9UM|NwMwDz}E_4r!u*rH*TXyq9wP9 zPa^y~oyKfHdbLUK;98N`Z(1)n%@hMGhlQuIDp5tl8XeaZgk7zx_SK54(o(9jrW#39 zwQQt$_O$on{?~ekH*A{MF%2Kk%rLEcpJ@6_s!iEyhJA5EFmGKG^b^&xp1xuKsGXkm zV|pOEfXai$m#uq`)4Dh3n922RXjzO7T_~x@TB;I1@HMf$bHU6>?*?ysL4KlJF>{CW zsmiwj^bQlcS7GmB*iWL-xdgQ0-*XPfwjN>p_8 zHr7?^xfONK&$sV=LDao$gZb81#B~Y3rbPwDqwhBFmD{^juEDhzGmGT=S;5=CgueJr zNic7H4JIoL+)>3q@R}~OuD8PeaV4&dTOWNKBYIg!UB7w%_>b)m@vkAcTFkf_f`#JF z^-gIp4_uKJ0r76}onYQ{0-F3Ct$u!?+0~tG9(u`m@=r$NPTt7p+uPsT$7(LxZSL8L zB<=C>zcoA7b)bO+vHh)sjJJO0B)jz`>`T5yCN>T|8~1k`!$_Qb#b2`R#jQEtfZ2d& z&8gqoEx3++*LbqWi2QQC^(~PNw1UOLmu5~p_MLb2oMb&_M7m7tK2c)pm&UEH{HW>^ zexvJ^5lG6tvA4c{`-^_`<+%X6vyHCTgR&42>=1uflcrm zO@Cj20v=%jnPvEvJ@_QoIVwX;2tcINvGV0hA6OA9fkHz9dT5^->Vk;8OW-LO;8mCKyotkD{MBy0fR#(a+sdKTWB-{LF`H z{qn7^2<1#EH}umO`IoeczV0u%U#ckdve%rt-O<9xi}Nj~8yuwpP1S%;7`MLWwBT!K z!6*3je@B_4n2w%866z1Mbbw|S3eAk*8@eOVO;M!y_)evp7CygtYpm>EBfH{G7mQn- zM&yVr9u?xXv}T$`n8#36dmPRD9ra|s>Uoi0I*RJu@u;*^J<<7;YC6hyg0)j>=IhW( zYHLb6Oa0Fpcg?p)|6M8QeCrhSBS%3wT32-3(jUC@Rj8!;L?(FOhGGoZTl@)_S=bOm z5SBtlC(dtw*cs731uGF^L~kueJBsfu%Zw+xN!0qhaqAu?jvO@h?Brzee&~{~WEc>ZyoOx^Cgy1eMW9LqL8lbxe$vV10+)u*0H;60UUcA^-dm~K26yA zTbW+bZx&yU&qq1&F|U)+t;{I6?h;_TZxxyKOhh>SCFL$>&U#^b&f0qpKA!A(2ereG zDCN9UO%pA1=i8DWzUJfHUevzERL!*9(=0ic?7dKa(CN(5ozxjv9lLy- zh{>6u_pDn9il^{7_%A~NG)Ih1;e92}b>B?KKX6%ppv*t(wycx-^L_Vc-}kd&`M*BH_xE8r_L;sP4=?)3nZCD%kA3|N-`>;C_+7sLrPH`E5(-Gy zA2`*2(q|{VlI8!J|M$Qo{15wf6IK$gSj-P9_n;H;G3}-%V^4XL6UJv)d&+S)^!W~! z8~(&d!~VSUxvhGH*}*tfb(m6L%}=U&2rB3Bw?`OutUKN@YXod=$cz#rkW=Xhkriw< zjexNdWLG-E$**(-GsKr*1HbPT8LHg9GCZ;6Q97J1mtGzrwP$%)QhfS7s5~E9frB$t z6)AnKtqzvQoHlX3TSGHkJ)r7Eilfq}a!aRMY&{jX7lz|@c~wPpZ_9|dwXmwf+KbtZ zGrT4bz;27^^Pcu>__1A zNT=cNTQj})b8)-6QpG2FFl$cali$*VT{*3_abz~JypW`$dKbp6eF(Lco6(&&&*o?O zr-3K|ZMh}imxvtf%1aEZz-W8{(V$^pnP>R%q2ZPJajQJU*prO9y+&YRpMj&{fe-}A=rAMNC!NZ7Nnb$HQd89va4%p?j z4v!T#_qUG0!wrV-D`7ckVJNn7iq*GEMiiSi>0PHM%-?xq%3iNU)*Xzo^y&T{C|yGb>X-lh4_4xi6?r@A8Fz%dW3^` zo)Mf4GYpp*R`g(2PU5_SbD(phkWq|}X1&=ka8_yhVc%>%R(7sO6@EU%lAmo@E#b0_ zvkD-_+nA0H{8|{`A%3lA$CjfP4UFtRpzfri?7e)J(p=_mM*r`d$b6^9{_mT}g3-bI zpy02o?{Z6aXaCcF6RGJogS_9BTn=k4TzsBevn8)}+?Jf+y1NnO`pCJbD!`FrF76!- zRp@gZ6X#Z$)+2`fnL-zBh4n|X=nrP{gT7!giew0#7ToX}n3h`IrM~Wxjl<(u)JS$> zvE`NE+V}Ce3X)LsY4PZRU@{+*A{dV*of@=sJMU0;~c|eTYGl`KHD8^3ErNsCdE|eJQ8GXa1!SYN5mx_)r zl#P%uB^*}bQdg$K;H zhSAoW^-l8TfRXI4X@Suw+J;*9-;lTGdHj4xf?)C&Ad-n@A%mU<{5*_*EG-=}{J%Al zd;0MZq}HQ@dD&BgdGV=v!7J z20L|cwIhS<)-4b^aWRULXB>KNK>Z?BUodaRju{;WQHZVI`f5eAJGgc`B#rxb znf}h6XYtHASn|m!(P^{npG*EnTTjL+$8IiH_oW_Bcgf;xLUGg$clPD@ig{&i+u}N$ zF+Bd0iRRh$Es2XRRY<6DRcK}FibO?i)8hIS*wW}Lt1@v~7ZS~_P1LRkl`UGda1p+P zZe6*wzB#nI0iQKv!{tgGmD&>G0ZH}CT0#{iRn-fsD=v>OsVJ$O1eVQMY;#7H$ z|BS66mggV)$@_L!aNUl(n%w^3bAM-F z2-a9E7p{uGvqe57xuInC9f3QuvgYOH3n<4q7v6A4eT`nUR}Z93NZJ}N+C>9tH%r9fwBjU1N&dospm;5h~ z@oI}2v0{nMLYR&i?F-Od?s&ds@Oi(ZYlfepz1-i&Ps;EedgUUoW}KZ{83+GaxCzs7 zA56x4hWLFt`Q0x0orv$#Sx2g;it!(nVJ^lI`y~D^mEjot z5*eN&eJ<|J#sAUVpN6xo|ExZpNs)es%IIi83S*!`;=(INUcbEnS?buVe>gCS0`VDyQ-lRNg z1XYxZkKEWb5C%OpaIg!cM%#gLfdOBWrsD#>Q2Ig(1@QH{mkao)!Gm2ud@bpPQ?m!V zz@QyqFfoZ;8luTuU(`_H{UPd<>tFB)39DgT>lgb=Ab^gvO;9m51j`qgi z$Uy(&4Duh&fbYiu>^M_}dxiZ@^gTML#kFZe}R&^{6f{KH2CJUO1Q6 zy>Olf=Y{_`Lw$0utQY-%W|04@;6Fj@7veq)+0Vd$KOu`Fwc}LJN6I6S5Rlde0_bZcPw( zB8RX>(%+67@r2Y)KF1~pqpm|ePtf`!@7Z*D8QSq@8SsD4P|v&vdDTDffnNCG4DCBR zLwiwNFFwD6oa4pa4g_$Ojwimo_oBZ6{oV_|8#navKHdQxN4e>K3I!N1?wroG!m9-R z90$bjY#F*n(973fz~)MPl)!n1c3epL8R~hI;2)DzK3}^G{S@+#*G}nD<^3(%-K$(b z&Cp(pg#K{$;y5waMR2mvA1Ix4jnXHj7yscI`tNlZ$0lT*uh^vSe3LSaZKDMU%mbggbr2iED6`$!YJcc+ro`69| zKAe*&KI$6-@~OnXDhux;bSSpi`ztQ+)28v^Tut#=r{N(Dr%f3;^0`ceoFDZKE#={+ zDaA(^vd1;?D>Qt!;Vz7J}+p6??XuIKx>hU@wMM#J@d7qOw>l>U6#x%6Et zaq>PF|4PnlaetvBUWI>!-=N{TKCIVpy`JyTaL$etpMR6MTYvt`g~yPF?j8--^=FsH zUzg{34cFy)MZh!}WYWA#ry-%yr>0Rs!5Y z4cF_TPUEl3zf!~Xesq(>-R0742I=KmtMSpxb-RY^<&tWZ8voV!pq?~Ud1Inf&N>Ez z#PxD*e}{Kpk8!mm1UD<>J^*=Weeh4lHoJT4i&Mp5O z2OcE(87NeyRTR`j|pAziO@TS7X%GJ`xzHC)g4&J6f>IjMqU z`;NzdN*;o6Os2+UUaRqvIM=_G3&{ZSSqg+-tl>JJn1-u09zuqOt9y`ygh&4RbA+7M z2|3FVr{v3%iAYa8Ca+bz;-he#Udg~DI(?DkK`$i3-Cdfy-BwZ`A^j7RauCuXFEn$N*dx9%P_qv878jsB2>d4IN}$Hkn^)#hKXOI z;Y}K@%0j43!)M5_?vYQX_KItSc`{6TQ^QY|VUELBYq+ZCEMUABDyQm%^m3{$qP`*t zNH3?N0_oInETN^`8yX%=q0k2k2uD6jW?q+S_!t7x)oA!w1;W2s!&Mm>{VfeYMWa`? zEST@98vckzf0~9rtKn)c$LN$7@}F6h$iZrS2nJKF|!+Sy=+A#J-HboWfp2$T6dnZEY}x!JtUp^4ex)?uf>Trnfe%SbY=Bg-sr48B0sw zxazu$=?7aoingv=R^Kd{4m8U)b-<1x=Gk1oqBfPWwAFLmIZuUsrvY})Xd7y2ZA)Wa zHDXYTW3{(7#43!oEMI-o%GyIUSVYE&<)YeQr`t!2$B$<=Ars8gQC)h!v?vvi6h zgw%o|neuX_8KP_=)xZ`Uq#pm?22h!DKexIf2cjX>Z_LA7_MFg`*3Q%(vbL; zMvh$;k!Cc#=K z7kz__JPsJ@rIkloVNBa(iyW6!mvBpHZF7Cu%9WM#>;6ZrI;L*d+8yes_tqJ0E!Wj2 zR+UxOtw`VNhn%>jK7rfraVBnSfq6#cJRe!Rtx=|KxF2!2zNDqT{`%Do4P|Xml+@i$ zpvxMY%RZYfb1E`r_VR?v(6qXRh83qZAYevt(_gu?C4q@nb)pPX3>Y?4k2u~gSPa{n z&g7=?#LbwRme$r?-%#7QqO8$(toA_l(w%5KpvTogXEfKhG=2{Kvo78K$Jf=PO)zAO z30&RvA8Kb*YVwTg>ZaOd)j0X8dUb08J-~ac6J|Ig(bdkK6rD^r8@eRS0d7Wh<^09d zsxi>vj{{*!h06eIC3BCD95V+^vgLGRPNZzn;;CBdX?69@&1K-WZif?FEdoGmTYv^-kfxT;|_2?y)%QAeQZjhOn^!|p1?n!y9eR@4hF$8Q$X(Kl)L z5`xcB5`C2EL|GWqtPJ-W){dz%8B%SF3QZ+R_w=LIRGAzn(j~h>W%`jyHi+$#6UEjs zJ&M{{e4;q=VJuz#R1Kck@~5gb-7v>C3t~$RF8fE}mZ97qg=NYvY;j6j$4Knt_?${J zTs>{DZP;l(88>xs+*B1eMFk>*iH2rf)@|1|tT^h6U)nmxu?9=AXeF1L2PAz;E+TKy z7neXGmu*tCi}2E(7~kFNE+#M3{!uMzhV*?hy}kxTHY$JRe+vsz%wH}mrE3f4LJ#Q`T71t$*ue!4D*(Mla#;4VUzlG*Z+Say_ft3Uy{N->v%$bHtA61 ze>LPJ)aB=U8zr~$;~C^vwvTUc*ra~l@|S0jKO|o+=<-v~hbn(x$jMTdpYKDI+{)*A zu9yBaNkPwZ*ra~l@;{ICf|pBw4omqBnKBNa>)=C`|L-9up)Nn)+bFq}&w@TQ z{hbRry5)aAL;c6(OPm@ef}{Lge;=y+IpdisP0#eK5+%3t?*v0H`S(dd|3W63bIYG; z{K)gjpG8vnD*xn>8SJtV1ogU-d@?V4WUh<0%)IcAW4B3Cq$Nx~}k9o+? z{j#dwm0yebksr8Q{yYv=aO(R9=gLEVr1z3PEMKCwlQ|saFU0>)<&S&F&wVFKZsmU( z73?K{&8Z-U`!L(xOOW16{;l$*ahtP8U&z4*&Tu>-|73*S@;5>unZKOwNNS&NgM7KUIfXa@($XnE)A+k=yhEq= z|4#u@&kbiCBBl3xM;h4fzKZ<6KTBnhd1ETc-FFY!$BH+jgv z0BMxm%Fn_L!b|>kDSt@jqdZji0QW%#`Nc=6psbP9l%GS|Q02ebLw@d;QF1H)Ni>j` z{F^h>zgzxaA-&+`YQGw}$waSzHpx)s-zeo*^elgchx|)2)PJ9pe=gGK&MkkY_TS`D zfAhge)tmC~&X9j>oRh24GbMvN|NlaIulnng^=HV0EI*&$RDCGEndJYLhy0aDujE#K zmVAD7_dl8(rfV0!=^vH9LO#eKf3e(rM1#(Bls|@lmHxxz-{R5!lnjs+AlftpFw9oY*FQREe-s|j#y`OX#;r1>Z)6==-kAuKf^@6T*yzqS6WQI&f zm2&5Q@wDP8A1I3I}97iTN#2`zI>nz2X}1jMmLVz?R~=Aco-hc&*hZ# z|Evaz)y*tn)h@3$S5F=3G_7^Z5g$*TJn&Eqb4)=F)(pd7R&Y#v6CN_*)xb0Mvvhv#BFk}3Z1Je zNCx&{URmpC^;Z_x=$O|}lgVAMl8i{2!@oxQO?zoedoSz}Z+sRI%%#hS!Y5&WecwAq zaMCY~9ZUn)4kOP*-faj@-fINs95L*T`#^6*-!+1B-!+pDv2t*@LLd5oVclF%ER1J8 z)_PWNS&+7(XumigCt;{`Fhe;BGP25HN-$@ho!y5+H42JpJM!ene&f)eX_}d43P*|b z_fsid2_zW~UD)bJ6OV?;On7;Q6)%Vh+rPAh7J1&uf8FzjbxncMIv0YBF7UTrDkXx& z%CBu@N!IN*Y!C$3eH^Ja!NRJa0>xlBt#xM)KN(D$(t_$>ND!Mb6+yUtgdkJJ4`4q(n)2`Usmrni!3nF(jd}9|;||7)-h<6fC^|HFV+cZ-$*%sAZD2&rG^`gWbKdO! z#NS{k9u*_aokE{k+;Dv40g4eygj`bgUaXgn?d5;UMPfvEwT^_bj4`7-zU->@7^y--pO=_gwZkj5-POOG40ac(`h?X=#Sw?Ut)sM ze>RHVg*{Xl?R*l$1sd2=4U8U=m#!D5g{SqoYev)9;JVQek4=u=u#*V1-S}rvAth)^mQ$!DfyIi6YZ(%~K<0?_9~|fWt<0eGCe{V`bDIoT#b@`+A4S z$hwsoA)be9(4m(nAE`=Nc)NC&0}sg-^?^CQf3WQ=xs))-j@8YOQclx+XJH=WVK1vR zcavYYmzA|R_bz{V?q2N{e%* z^dg*7Js^em0o9QyH?+b^Vq%Rr*0i#2arK(IHESv>MPmIV-Ran3Q=f2lQKnBjj)Yg% zHZ5FLzo@=;nLCb~a_SQc25h2CZy#g|ah_^*nuFM~H)!YBiWN7mtgciyA=MKmBN>A>G9q>!%J}OWww0v9TwI7k$+BwVoTK+z-tQ|7w&4& z51lZ7U6;O2iBZRO7n2vNU#U2EA9@fG)G@c)jQJ>CpW}(XLfw*Z>K*hH2t=9WlDDMB z+K&_{ltP?<%3t~CXGq^J)2sXx8+EPx-H2fRVMQSQjWYd*JwtZO^seN-mt}f4&b)L- z6TJ8v^bFZ8)2nesrBQOL>)}Z3RsWl0`>SU~j#W&n(kuKhFt2Awr9Ubk^%&-s|7-wk zSGQ~DAP5(d3Fxs%?)Gh}4tFp#`JX=s9S~A{@oMhIctb$aboyQMr=ZCZ4a=$}WiF#6b95vTU zmBhd?C!0jmy(L)4GYG%#oI&Ws2~PJfN0JKbu%NxcQkd!F{{UccOg|fLL_xz*f~2`jVO8lr;4pzaT}-d zp;HOIf>m(GQ_!opbx>Tv-2ecFRWji+8|fA_MR@{IBC;|vHsEkyUVzSKJr z4-5Txo}tbdd%CE75UIlIbEM+Q2B$Za>_Ip0ohAyXEG+k40!j0BbJ{*P2mF0J1tF1V z+F#5QNlm6fwtOU|Id7P=E(nzb#|%H7+B57Q792n+^xFI712zgQx~8Kh=AP^VW@*|B zbByG>SvOx3>D15O6Ke#)`>r|F*ZzL!=2JFek;Jrdr~|C3n-S3ha|OUd^=rfA+owJgVaC|D0?B%Pkue6cuHOQ9&#wToXmzC0RHt z8;AszdfSAsn3UX1HWG?TG>NiZqkR3Wm#X#J7OPdfQM_TeNbphxYc17Qsn$x27u1Th zUh@CFb7pqmJ-a6c^!xt(p2vA|GIM_O&O7hCGxN^noINul2m4OD4IPIBnSf5)Q&*Gd#)?T!5+`;NUwpa@D{}GnK+4|6GKZArUcL7u)Us) z)1wPIF-LeLCyVTA^y(ZZbt+gP8dzxaeJpIhKYBvWoal8Qt)VO_4{2=tcGF^CMOreVhn(&hu^SgoLp@Y#5Sz{5hwa_;oS$ej zJmFJjU`m&XRh79#+jYfLx4K#^)T#V<~ zKZeGnb)z$K>QNbQ^nW6dID`qiC0VKpH6@Iu865@&={ZhU+n=b+I2W$(`6Xh(e{3YxN-DMD7W2f^>KnpL~S zLF4|`89A^z*9lwSbX3o2dC$VgWTMKEC7$iD*znOtv@K^J@VsZ`d9f`s2B*7jNymg1 zCsm(3G^YUv-QKnjcC0x1JK7}h7rYUkk@rC$nv-MBZ#PVtfRmNXqF@3$oMz|=DGZ!& zO@|4M-)R&))9?}w7{Ym$XSfft~UCt5~Zq#-&4`E z)RulV2yhVg8^jazw-f#3o|9A1cmKl77os(riSCh!R^e7Cvik;;L_F(C!J=oGS@!Q{ zt!Y(T4{62dfO(Uh!`uhxNi!q9)9I*Ey4KsPuhX@gp@EzAA-B1;*L3HtZml(KhyMOp zZI|QlE8N<@9hW2ei}WM@I99tp<1QGm#|9qphq2l#1AhlRI%vpSZf(;b=WA~5(?JiV zeK=NoaOmN`b8DXu8}iW@?fy*X2V=B9Wv`)%b@hYxj&g{EtUzI}RW6^cZc`5zfcQXb&Dy`k7l>J^Jul z#%RA8eJd?G#o41HTsJuM(+2;{fy1n?bm*IP$ITA?ztbEyIrO*FGTI#a?li2H9&|W6 z9ol0K4DFj88QUHDHV3v)AU?VO?XyRF9jEA%va&wV^;X^Sk*@z#AM&xT@6e;b9d*xUflkH z>zW54Ma;@kc)F$?)rM;)usHcKf@EMu@%Cj{0EpBL&E81 zFAPL>C7z48c|DEb#PE@xk^acmxVCx*^`uj01y~$;SD7~|QNYo>TiIBl<(@S-^w(6s znqtaDty#O65qy6>t!QAqLQA53DtoCki~H}-r~UqX+V9V&RUP8{^J$g!#P|4w-4Oo- zm@r+BJVy<%THK(VU1g`J>+V87|33qhRymVUGz-9$7SF>cx>$$T|OuAp*Nsg zC?KA$VnG+ZWMF)`b-36{j?5e7TIVdv|F~&%&naqsCe~Xe5o|2>hEG6T_-NM#ywxgS zHE7-3OWB6+F(+GkJ69dC_k9Bai2GFA7zZH{pz3oX9)NyTBVT59+1k zeCef=Mg;KLq?5#ryB4o?xvLu8;kr6^bzSX+C*dVKdRNRn7ZImuMZQ@fX>q71w4|ywG_f+(vA=bRnm#Ys>q34`_K(1 z?6+$6Q%d=Mp&M`N;hQ_|YVocj)o^WH*bS}V+~#ndyD_FT5kHvK=#r{t_wu@?2KSQk z#_&b%B`E1&?abPxwROu>10u}5q^_Z+9L=Z_TEX$pq<#0|x{#R>zRiaES%!}kx;^f? z2KT9M)XewiIpgbG;kpJteUz6h)c+NyK0bBeUrXv|N&ko6NmuWk>pw0D%-8hhtbuq& zfY$(z7&_2Nd*LOx$&sSY9xmT6#IeIO=~!br8+T@At~WD(cIK|c^PG=&rFzxe3o?vR z;MXj9?nE9mIHY{%y@bE=?kKlAbJ*^^`f*^Z%D0g6`2Kw8*mpc=dY(@c2DllfCtd{?<$0f<*HP4vNxF-Et$CYVmf2CV=E;?Y^OQ(G2ibo6djDlXJMRIY@G`&|q zVfxh-em*b4F8EZpgwuP}2g@+M@^pv{(;oF1V2xhJH6m{#fZB4L?VQ@gzYz zPKL+BKVF7Ufd2y-J`sMd4AXZ8=rw_%mg= z2tJJq6hB+~c>bcDj;k-X7K%#s+m$iGScuk@ki44|g%nRFpqloo#M4Ot<~B=wv;|)) z@iGg3tHi?=oLHv%4UCB=%W2}&5|W)mw2D+XwUA`z5T}x-!mV%Mn>3DulM3SL9I-d} z;~0e;2`5#?;~e6I$@skrIYjGIcX8h#T4VfPg&g7(bafZ^9pV)9_`M1_5>EC|D9K5! zHrY9nz6N5_IK&s666vqOOYzk2tZsu1ejM6oDtc-jsqiNN^4~boSWK=439^~|>N_bD zVf#|?p+~H#@Vj9+QsMX7@VNj@Di!^oY|49&4gKMG3p5oUI{z~j?uOAzg=fG3rozYC zhCUazJ{6ybZRGy|%kfn7^sSRr_%^$Gv8l&D*zjqv%hv{f zzy`0ek>`CIJuJ4trw^j`Orw(NK9&9xgr~`mDFCCFhsj|f26`H$Ohv-z<8wCn`8Ms4&W+4wc8um8)#E>>t^O`sK zukdt1PcsYC&6K`V(9?{>bhD(t4t95}`X~`Fx5TH~)XO@-r$|z1T8j(?1s|FfnXW|o z*W1{c2AldFF4|jsyuL{C`2h6UVrFOpq<3=5ai!Ad7Mt;C8SHs>+OZ-n{ll$rGi>bq zTpN5a=3S}sb=%~7rw#s;4L(uIg<^}|q<$-VvJHM7!_Poi(JyBBj~E`6IF-K?muf%s zh8H=7d&Hfl-6?&NXD%+q|2c^h{rR{QpI0roN8Z07ed0s5O7VGD;>3r_qI5e*_A{72 z?Qls$9@#x|#K*v;_~bBrGQ-DP_^9?jjnQ*H9t%CikvrXn{)Y_bdgkXwa{lVvNL4N+ z&vM3x)3;jWp*kbiVMG6OhED>W(ht2TOU|0_eT<&xi7=Ou8{Vu|#@IxeSZEx8Y+=DdaCNP}0s~Hlv@-JdIt>aX_b0toC zquz!vhRI9pf4~ zD(^U4iqH8HSMA{mB7zGs`eSgf=-U~-h~bYioR{ly#-EpK6Qe(x@!{v6^KyO8=xLUs zSlO=(!yePkKPB+M5Sqa$6Z6ZpZ$_`0)1jFNrHX zKWVbj92g(TQ8e#&E{0D*oGR}Ki7P(JZj5F0oX-RcJ;jlmYC~Vd@E?Ir*sD8sotH!+;c^9u`q`i20xdu`|+wa_cO`m_!G3k>IWb%%wI z(!(2!p3Ax0LVviF^Aj8TUWW60(+8O4v$hACN0GC(tFa7sBVN_-NsJG-&$Aglx6cM!n}^0RS(BoaF3wEH%ui?^~LSU$&8-s=X{B)de4>Z=R(GZx3@-y zb9>Tk;iKj&?TnuD`6kKf0dbydQnY@S~82($5`(C|5Jz(eM>sMH#}8 zJjdfwcniaG7~U>%@=nL49DR3^9P#1vieEE)4&oI5ry0)Y6+IHS+JVn4xCgw*r4b<< z<;(3rw#3OhAD6O+6D_z0apa~kKHLtR#^`zdmP?$(qV>_MvfVCad<@{KytMu$M{@oM zm%^`NIH$kb!e8~Hn{4RsVL0di7{fV#+D|5@b4BG2D$frO!zcr*d&Sa2liMcHk_Ab2|`}IElsE&r%ESK|HxI!+ASt zx8dKxaBc@~kT}WD$J1LFJ+}jQGo0H2FZRvIk^FpqUTncVLou+AO$7 zaM84@86Vz{e#Ypzetsu$)ehDAZ6o8u>s_5AWbH?9*wDXi;jh}cI#0;juGEGw;ci^2 zT^*Kb7SP(Rj+Hpk^LBL#!+E=!C2?!Jns329W_H@S4Ci{Qw&73v$>c~L-mWf_xV2ri zGJ4*wq73Kl%8C6+a>Tz1m(tG}3?Iwz28MGzsPlM;59fa)qo>__#eXZqIsJ zaD{u!TWtu#xgJJK+^UBhhI2hkl(*p1QFJ^qGzR8h)J}xzXJCr~;g?q%EsS}0s_CRYTawI437bgkS z#CdyAPim~~VK$@Z?Sa<|Zx16Ry^>SOpKZZC@_sVIx%`C^x5__<;aq-_ft*$Tg(fWY zz~!g9CP)0a{3JIytNj0I`d9tMDnIFvoKVexO-hTF%53MoD5r59-IDsbTThDN!QFiI43_q6PYF~u-bGxLT;}Fj6Od8|E=~cOi zem*Xhuba{TfZ@Eq=a#UVUe+0w1evW52xAP}5oa?#32KO?Y+j;Yw&ZazzA(PU>-6SL&$ytF*;X4R~ zBfJuq!m}8E-u~4$j)|V*^j;G=!nr()7|!$M<0HrKatJnpPd0)|p3x>O@CgjRiQ&AR z|C!;uem`S4uNU>cAj!|`MLnM-oYxC~KFe`l?_3W@Gd(N@FIBEADGx=TEyLugag6ZU z40p>g;jfm97Xsl>q4!4dH68MNuC52S+%)tEL>+&&dje zUn0XqU%>E%44=vHGKNoQcqPNV46kRnnky32%y5qkbC2Y)t1l%R(X09-di72j;Rn+{ zI2vEnm_qmC=pS4fE>)*=PjfkPL@&2^#r-AXze!JV%C*aYqJL7}|6TgTpXPkZDSJz} z+-ee0Ge~ea!iR~F`LB}UatlF3T*q)1qhHH#r4x!)>jmOJoYB9}=nrDJ5Cr!`uXIS! zBM5*aZ-fY$|Hd(VB*XJ0uJohq?`lS`=2VpICJViKk9!xRS94~f@3zpF$@0*9p5!Qc zln9ys>KT3*!L;u38*w zTu?W+sb*2Ap>ckwrtacUVO?#wp{}~IWKKm%h4@x}X?Suln3p$sQF&ukMX(OPb_AAin+|gy@YBxB=$@GaeSk-3@PN@%t zmL_Hk&KHL&@M}6zX*RjmHHCw9OM*D3;lj{?)Jy?>XS%GWymom-LgulyGVQ`p7>Yj- z)>9gn*Cr$^FtvzgXwyuJCMD$4ucmKF6K_y`Hb{|bVnVz5md)nCIOk!B#9U z%HztKM!lmtB*6t2=LTyhO$n->HTF-F2@LyZctm~)dbDOOE1m2Y`e9#vAi0+(b5{lW z)?9<7*J^FODfB<|mdj%>NcJJ|l2)uKd>@pD^hLNyq1Fiho54mDSW z&&DsRePlybF(z@_o7!+Bw;bPmU`f?eIw|P$mF5Sl=I7;>l+$@H7%m$%G|Gy~25sVn z4RuZR8vO=d99vOQUr$l6>kzJXSxsUcO7YOig80@zkVfS43b4cQY5rP2wWz+7k}U`> z$R*LH2TSIZP6^h;2W>V&_G!?jH8;Xi*ZN8-st+JBDgcA;0VZy4gaVNBoP@0V)txYJ zsn(Lt=lPE22-6!eq}DB2;%i1*hz)20U0l`R`%zp^vB;^Io|RKnY&P*NM+K2veO;pu zB1~C=fIknjiJC?DdO$c74Ewkgs=4+(QJ7YBVQpPQ$X8vJvOTi)vVZ+EACpjXLRA%4 zj1sA?FT3qSEkc;@sMZSV7nN5mT~c0E4W_|hMRR#@QRu>|+8{nGP*Ew75Y0=){lpZ9 zIhm3K#ZT=)R$U#8&5E_)nYGKRka~Wov5Ag*5>tTq=}#9{R0KoK6`}fY5T`#?hoFkQ zJTbJEqG422qLD8z%?&PJ%ye`>28zzIs`_!rS5v__$v)F}1DH-TGJJ}HdMi(SU}BUv z;t(v+d6^ss#Hygasj(7M)rzIQilk$-;xqn!l~GP{3iEvPOD6|$8dr*$n$kmRJNpeo zf>NC~V-@?|mOrM}czfBuDFxM3a@oHPH=A-FILq0Eg$d(*-gGSqnwktvNromR zL$Tsx_LMg<4|A6bo1266SaQ_WiX$?E7w0CW%4NHY2Oj(ko5XT!GJ(nS^fDt{9^Zt; zz1;p3arAHaKoc7fL(G6j-mC8wsA#@tOxRGQr)OeGPCm3Kk(;+AAfUZgwU@5;T<^o? zH_0ToX=7|w$xY}-ECO5ex(E65{c6Qv*YRdZ?V(ftXW&xlmH#3((GBX?H$-$Hu9%c6f{ zu9>P+CMNw;Tj;O+>GW_Jj<+9r&Z^{AeibS;mHd08{AI+1Ijj7Okv^6DPI_1kx6|~* z^EY~q(_i_sQpjJ1^h$2!53!M7_1lYN{>rn;Kfp%*T`A4@i&Dsc8;oBn z{co3c=V&Fk^sVy$9O+Z(e?2uAIK%XW{;5j)EC09@@)sh#(!27Xw$Z;PA7V*1Qi|mM z`?!t%g|S1bGMSQ!LpHa+@=uW&D|$*#&y|(j%FlyQNTvT=DgUQP!<|+CcJ^;Ziu~#M zwaQodkJ{xg2N?cLl;r4d{zWPBpP3^6VJLj6@_S_dGbmH$`kQ|sMgCs!QRPPD&CjVVBfAw7#%A1@u|8tOD@UqzNG8(Mm%EW(j z{5cw7)gC2#&942FrI3Fy(kr=@f6tr# zSErEQKzb#&@?TQ(H;ex2rTprryXsY(xNiR*o(Ki6Ov+BPJ=>;!~{Pm?~s%Dv(Q30aO%5W=3R38r}yGg$-i65Pjya?D&gUH`u&MfvGHHdSurpFP~n zKh2WQ`W!QV(mQubeud3Pdcn(*-YE_5YDq|ZXi22ff0O-MlR|!4(kZ!>f4`0VS;v?e zyG<|lKPwh81NYd-f1{MYOwyD5^xjv0<$olF{M4kC+{*t4Cbd+TR{iHn`6*xStn&X2 z=>;!~{`aNOKaIuxmA_NUujok*djC(!t$g}eXDazyr2MnE@CaMww`;%KQt0pO6#1WR zlmB*^ziMYn3~T=Lkv^6FR-I+0Fl0h1zZaL%hvI7||0^lvKM(1Z-jsj8jr_Z%{4Ges zoyuQf_t?n4UCOWCk0beuaH;g)B>%1y^}i75mE6kz(nkJz8tma_nqKU`RsVMS+nqvx zR3w$J^5;qWY3)CqGJjQ0C4e>m(~(~Avh<&PDl8nYe?RW6`a4w4KXL_i{NGNQzubn3 zMJT(i{IPQW9wU%}Nyk|c^IoM>v3Cv;{jc64zLqc3uW=|!(^v8<^j4%-x>OkXEwcO` z$(Y&?ZHcJ#O0O3ny(7?DM@ewST&FBJqJ^XMu%#X=YI+_w$ z^FMKF?ld=Zc~hrNo;tOlU|NCOJvDDyKK|$C=DOW^xw+G(OmVxXO`km3Oi(s>r7tim zO^-{YV}%#Lqg+k5>JKWUX&w>uXfJ}2ouzd7`%a|v;n2WHAjj#C{Lvrz+K7bdOr_~Y z$8Byz8Xa}bM%V0mVqkP#MUV(a-c-j#7k4bF_jg^nM#gx%uB5kB>A*pM*DR3^vGH{B z%!){L4o*#4oHNddoR^ck#Pw0gn76duWW_AHAN~`lHkQ(YYY* z@HDQ1mIB6E3nDhd3NS!Mp# zCj}dv6GFcxz>%}-Nu(u)tG08AYh_!`9^ARccp%V|IeRi>xggr8(F|q$JnX zP7Og6OPpLnb?p<0RS|G6R48i7wbEAxX1v{K)L<#Rpl5|AIW$%H zg;aQGq>@zPkJMI*0$=P#)sTcLnOV{cDvijEWC7^Z`&~#7)4zEp*xn+CJEJMjh+g8r zSug|h_U66(81d~baT~4w?oDxaSh`tK$xhs$&+I`V$U%>!xwRy*tL+o~e|i=EnQ0=M zshyT!`ej7d(kvaa1|n~nJR%nuBr?RM?kf2_X!6;fz{ekX#((*iPDD|mwjoZPrsj`k z8Xeb3=%XTeK2C9@)`OFKiBJy@H&By1l}N?WS`XzKh^!eE&$UW)@Js9@Uz;R(iIjXC zc=Vi&4sRd>YM5vPEmRzGq!+V1?YXFLPD*W z4R6s+IAC19buC6;()(HfkK-~$dMp>B_#NmI9gm1894uHA`SF=x-AFRG z?#l=t)cq2Oj2*k_&egt&Zg7q@qVx6|U7M&IJ_bzlt_OFsWbK`<_MhWs0~Orwm_}u9 z!F^oD$LNO#s_YacC8XoAQFcP4gsTx0HE3$M6NWvl$rCI5B{`Lh>u$uFT*En)lI1DH zvM8rg4-ZC{&1sg*sJQts$+EZ}1W~|&DDGzDXcl*%t9>2aT;4^L*5abpw4CC%j(JiMY zjH77wH13Wvq6>1ej3_1&v4PYyCY4TPL8Epvs!t17?qBL=q&A{Yi00ScOU46752MGR zV@Gc^BU?mdq*Zv)XbYu?cq?&WIt>f#NJSiv3?=2`#POr3HKY1u**e6;V=vAkZ_h$Z z_o4K!1Jar)Dv^SIQo|~orFa7|-S1H66YNVs{In#N^}vW9B;xgwShh@88~vV=tYW-% zvLu&Ll6Er*HT_+X%d8ScL|=IAE;EVH;zgfywM_>=eAlE(ax5kJK`e+DuHdIYe@vH6!+VZEk~k0^ z>W^;N2DO+8qSctRs##JLlUJh){e_gK&VElQg;k!_3G;7*+F|5*Z{&~SU^yHD4zrG| z0`Lv0iLSOB4}6gU!W2hN9Xv>AG2J`fBT-2-wGKd2D2jY&>Zk*Umn#wJ2<@j0*et`b zo+chbJC9=lZtByuZUJaJs&fWWHbdj4q-TJ!6JDU-=n8+dvsfowCR z7iu#t@WJDDcv-j%RDZr%U8mqy$R?_pYWO0Y$SVhno=O{CcIyzOUn)Er>jYDUB4eux zyAMY^ni1L%T9OdNl#2?k8Wt0m_8O%s(V3O1iqV1}rxxsYtQJ#el+P{rJXWa^Kw7sP zFLO-}DfO=uXfr8M?Jh2o$x9i(lwFCsza-miMA44w(TLsd20TicV#bxJg0j$c)G-7g-jOvogubatIYl5lypa-dw(g z%wod0y~Wh;rPRSq{q|hsk8J7w6$(QBZ%tq6Pe|=*e+X#z?<5J$qKWi9Nec5t)>KMn zjs}R2t3xnpx~OM4(4H_w{SQ>BnaR+e5#TSv|GT=zz$p~4WTHB1RE|#zN{!a{vGvmB zjl5vc==5ozJkds>-g}brUQMeNkdk{f37Q{wJSaw3R*j#D#JfdNE z)qLSFf3zvfA3f9Ab0{xv5oCrr#(Dv#xW6AOEmjR~Bbvu8GMdz9syw1&1d!{Xa7I9^ zH6W14Pe@t^u~9^+C-iHIGCIz~ASlm6m}682?o&`1iB8!;#nHP|rpN*sH=B?m&b@En;fn__?h!xgW ze1gS@VljkUk-Ym6Ak?2k99C%$g3j!eBFp5~BdsVpQ1>5A#uR+c45~V}DW6zb(u|^y zLL$dpy~(YZ6Lm}hBF@!DTOu^MFxzRYb4I#)W(oOCJO2&MyDxR@PxH1ZYKl@yd!Xd) zb=;Sx-<9SY@|Tg?rOp>dYR~I~KN_j+)QA0cq}HvEM)>-)ArAvj8;9^3N5y&m9Hf0RkTSW(Ipl_s+T%_Nzv#^Re1!Hl=fSU!(C!;V$hJX4{yai^VlajOJlOf* zNbMaFZXM!$V5GKn$U(sWHss)+j?jKFl)_I8J^0OowVQ?=_WKd~reTEqb=bjI9jx7) z=|cG7%&gxYq^)ut_RI+VK^Gy-+yL4@C#&WIn0WoUoOMK3@A=)L* zF9&Pe^dlY`qP?vT`{!V-B`vDsE5yHWIQ~3Xd)cvyZoW((vSYCJaE9~Q!P;9HBYrnT z`^A8{!2dbmRD?GT9D(ELo_8J#>oguEbRu!b%TB;Hk;mu zWF+4q8hu>yQGF=RqIpfv_@}PDsUI(8KWB|T-8!tZ1ZyKb=d^+4yI zLE4kfj86t>8=XDa;uLw0^k>|mYxU0ib?qkPp=)>O6%?iQIu6q_M>*?s_aaTZLeGfk z@duK|Zn$mdnX@?HGE=`{|tUXOXZ|q)O|Fu36!9P&3^qu+{ zns!fG#-nN4{b^XBtWV2$CQW}T4U-PVg7lH4y@%WP^r3%D)As5si0^oPj8=x14u`Eu z)34Eo?bNlK_2V>clRoS-U3*FQG6s-6KA$VWtkxg-N*JZ$4veUnyehL<+!4yfeXg1y z`#Wk3+#71j;_tY$4EJRsF&R*|{HnKO|H+f_#7H6h>Dq9dsq-!-CBasrX}1Qv+w zO03e&{?@Ho{?>o&Q7r}!U;UW+1A9>~j!en%4X#)y%WE#^teKok3npt8EH~t5m0wL#A-`E-$WNG+bszG3 z7nGLxBfW{u!iZkxG$x!HUTQ@485{RGj3@5>jp+>613QiN@@}wEu(`3+ua-vG*^SJ` zyAA`5j`VYJ(JdA#M-@jeb_NPQ4Iil{=;+W`L_$HWU8DSwl}>-b8%=MkHUK4TR)elT zvb8vRTygu~n}+rHV>jVb{n6RrxGQ`LUjTWqFj<(~MR)oO{z6^!wBpExvXbRe8%?K& zwk%@Kv;?A(1Sa$y9cV61Mx)cD(~~4DNv90-<5?ksn0gG1H6pzW1v0bfUj-!AXQ1PE zCd=ezX=NuwMEkVV>vtz_>I|&yJ-V#982h%PSx*rOv4%q9FKi}dwLEbGC~KZ)LsxVFx)x9wSL z0e{j;1zgoi6h^cV`>}KI>cpHfBU0$uD&owo-oi>0`25XafThj~M6alqMJTK^>2yH= z9$2l;S!fh&3%{x;!AufqDiN4dmS!RZxD(?6b@xA+S`fvVjpEEkab{<=JbgP+TT5b7 zRe{I~ym`|*sNpEjPlU>-DV*VH`yd<$L>i?STF=o&N8v&$G#W&i6YNd-G?|F#rzGmb zi0qW@n)Z)W&6|270d=HldI4Dve46_83v!|BN+yg!MZ;^mZUwFyNXa##$TLn| zG;6Y&CarP0+A4?)*lJ*63WL`{sAqu#6`~k>PwwIgc-Yf<< zl5yCHjAE)ni%~x|#+r@sUu^&n2xLx0%xsK;-RA2AtzYQjdt1LqbG5Az4Anac^wz}n zK*WPl*+9U~phA@R$G?d9YlKX+`R1Pxz(biEF>r44>o4ZLPPsSxKYv4fz+UYOp$eR4 z<~^Ra*Xdau=1|yRF}Yx)isnD)xJ5aJ7aJs`SaRsVUe|D%8DS&DO$h3x2(!|JDe~rG zXmeCCwCQ%Wt$+#>^i(_n=}`zH@{isUk8xwMBb;OS$8V*|@I0({2auqj4UonMv_EWb zkCKhUtnDxMUPTf+UG3DbOe2a1y@mNCab9Q36J|rWu2VepdE5ika24$^HttF{qC*eH zo~8pe`6A3`mJy*{@J4r6tKbOAwU}q_4W9-pd?sw9+lQU+g011OYu$iA$BHbYBaq|r z7r0#QAEKhWU&Fuk)QY;_M97FXj>_vq@}`Zn@oEzDT-rLD?j@#1WTP>GGJnq4_}*!T z{+zMn-*|&8-78Ls47g@~f;^k978yoYWCh0WMNird;V}G(vV}|0<)GzKcVPS{#`u2+ z^v^LMG>gV3=)^7>y)ghd>-3Hhd4|5-h?JtNh3=WIb?JHWf*eBy8E%SifNhBp`L{9t z6MBDRg~wzT#cGNo#v_+fkD>nw1`=y57~+CWVQk(Pmi1(;caoa*O~|DLNIl6D7{3R? zfyi(bZa1Q>tB52b9;;eJy@Fz*PqdIn29s(d&{1d@4qP1%n+Xd`0?|?`wP#+(&`AMD zX?-9%CeX1MnvQJrF7VFx_LgFAb4yn1K1Wk#Alm4GASJNgSv}ZsL$fS)Ob-<731jI< zwO;7P9{2#Ih$eTBOH^eHaG5O&TZn~jh=aF;wv3X`AvX831yi!PGue}w3uDW2-YBDB zURLAS)~|cRNAA7qM$lz74e;b&)Y~-7Xx)fGXx=E#s=UY^ydrAe<#le3GeanDKhZ_< zWf!?IjfR?kVzq4clB}jYvs?Snt9@=_;ExuU8Lj^s)KKkhc}lb=R~tPvzNHHD~`0|TZjWv@M=R#&3 zaIO*gy)piorjvSB5K~weaP9Jmo=TkaI`dx7d)eF7P8FVI$|mw@y3tG-E;J$wa&ncR z;X(*vwsXv_vA%W5cR>oKb)^ zqN|NQmK%9yiQ3<9{mS8L`wQ5#exLvbo3&o8D9x8<~{tG!;n2T8~QmH?t9|cRFnT}4Mm$smd8jmrV;@Gn zCYSjL2!$TkT?Ja%0k-7F_gnU-CzmLZzECQS{2>sX zmm7%AURYePtr7F4c?*jp+alZK+oP?!M!DMPp+6=@O@mtZ;qD&X6=U{tI0@906X*zf z{H>d@OS7qX{A<{uarX@L<-Lr+p%`fOJOwNQN(Z2-i^+t@&GcM zFnb)44(^#3h-^owdA7e`(UN^hbh8y<`A)?(cxOB3&Wo(Jra$Q zw(sn$#%vl)jsiO|k~H)-4L4dhVI(;l#$%q_vuctUP2x!6h>|d#j3QPic(GX(`63Xl z8x@FNm>ZZ-hv9d2zQ15g7<;f-J)#X79i?U6x1+duA9Q~RPfV@%7M8&tzKL55!O$1& zr_#C&?|%h48a;WK(3tNhc=ry_n+9$;1e85P#GAhV_}XaQ+Dpp`lS0g0$K!1e$_~#y zjqzPHZm&U;!N#7B7j}D`U~XW%FCke1IyU+mk!N9kvHs6Mq#~DQN0Ai^{g{*CnLka; z3cjWXKv{-s=D&>SX-1@AZ<;fF^xi_WxxvWDL!(y@CW~`Q{ILF*Ck7%*p~4kzDmnI@ z8gqTCX5>JOkHq9yObg^f4IpMo^gdW6dXbtln327^)N^yuTY5I3)Xeq0-?AQ*v_C{X zIXn`k-)RU=)~=6iv8Qd_U`*N{GFe^~L5(Fa7wE?$Yte%KdvHtbt@2n-3U%3O3fBRiUuNJvBY{R1jEPn%$kBcL_Oomt& zqw7;Uz!Ur#4y-xwVvD(1B?@3tiM@$&Y&h(}0KYY!H$5{Ix1$8TxQ%xV+7d7v&AUaM zN$^`EvRSe=-;Gf%4k9P$GhfVg#?xFUveh4X$sc(IbH*Y}hK3q2n&bEQqsFMb*NyQT z4cELs(~CvpKf~*nm*J-rK5V(;$;o@YC1ql5`*%`Y`|GZ29zlS9Dwa!=t8p}a9#7Lm zwU{(ozc{qeLmI71x-=n|ccV#qT8zty5 z4;t!PhYtR(dIaFznm(Fd5XjQaH%>6U67q>@+G`Lo5QRY4@)tBTAsJ`B58*b|RPfiP zTio7z*~nPZf1qk9X~Djx!T5E_D3lA&cd!@^i2ly!FVMG{yZDiTWNLX(K*`}~ zzmVS5LK`;oHeW|Jml?F7RYFv*;bMUVuSMJy)?;t5Y^&He)RuIK?KoN-H9G0-QKxty zV!jO`yRG?D#e7}R+&-pVF>jyLa<`Hio|!}~#%N=k0x*X6a~l_<0yje#Ks* zY@#w@>_N9_zA4fIsV12`zoH*7Hj@$pFh%O2(%#wlu>_vEttb;(vzzY3=T*dj+;_`g z^{RM2eEw#gkD??+14U8fe3ZJuKJinaN{3D!&xlgN@%*gw#dv;l zzL=EXH!3i>fM&L_|CGP?Ozg4l@JiE1-A^DfM96|z?monL$jk#`Tx};tI8lsEpo@v|C~lM(@h3`4Rwv6d z0bH=s!js5%Vbjc&h(9t5_b*}2dn$g6hv!mnyV{4)7L(pj;t&zPA`JU(f9tMY{*GqM zJH9qHewcxol^*$|^(_ZBw#yo6Z>#-fSNnsIxBGScD~|M;z}5O3h-9J}$e?=({?RXJ zG};=%woq$VZ{FV6`q!0}KG~HOn4IMro{pyif!r)tR?%cPLAWi-#Z!VnZZ2US!b%A9 z5LQB18DaH=l@V5Nw0_uv4APs{K$GrwK`yF86bFDkoySGbkI>f)@qd6Vvr&1p^B83ah+58dM4)p}0 z*eIk;IDH?*7_HXXz3o)qoW^4&VNT_-pm2mQ@PFQgj9bF9{2kX)z<3-l2+{8?FeGg= zK7Y#?zXJs!nKyPHMbO4wV~p|J{FmcZA+5!)Z^d&~^p2JO@pu&2n2SLl&-W|35J9)X z;BG##u(GNq)KFD15#M>9*jQdO5y#TtC<84q;zv!j72&G7S`|C1yfNIYop@$#O?iEN zXt79KgKyL4DT3svNh)gQ^3v0hnReo=s%m^KTHfL&)HpGbhYdlD)4cjnExs-54p)ZU zOOXB~x8|NWaiUvWg73hG7LOgQ`4;-|&EwhbMWKpve4E)_x5PaQd#3@nZ~pvw^G|YD z)HPKvcGuR0-4!Tx7zE;L*MgfH$8wd{RX0(&L0K89Sc;s=!|vsEP43F_i$iXFleMM_ zUqY{|b%*QR%Np?UYfw}*isXZ}x~1AOtwC!rKfbUQ_0}I(f+{1Y{Qjg#Me|+fr#?bF z#XMM}Zb_dX_xGg|=|2in<&j^)ruJidl9aEH;?(!ERIANu?Nxq1li8Ae*ZC@ae7mnf z+lu=i7oo~~;9r66Uy;`Lk4!UU`%r#Ali8Ae*ZC@a$^Kt;p#5Jg6Kti9N34?iP<}k- zz(U`3zDggmztETMF&6b@6jObaz8_@~2a>pP%!(LjrccbBnCl)FF2Atx#QDB}&s*vX zPS4FfaS4v^t9DPGGHp`+)bZ|dbiT=neGyF=FS8ykef`HJf%%%=oHY>35`2c}h@k_W zt1*!%!A*{&S&7d{q*K_NnKd(W)XYrx%*=5!GjqL}`Li=S(^>~!J)k4wn)GWOSEf1M zbY|vzGjjz2$UvOs&2)M}hDjY*sQS19dD!suW_mcwv|uWZzD$phahsI!X9H~c&CYDe z;0zsyW~Aci1(_)$J>nwg?7xh6rsn90onNW{SZG;S`X$|}IuOH*P}C@Irn}W~P1^EI zgrIAuHV$+}Bn;d_`Ug6wmFUv1aa^00cDm3pkqSDzZY&&~HJqehR7??+JK$MO__Ri(}WZ5zP|LjD^ahnq^H)xF6foYJ5<> zYsS@P*&}o-Wrqe3CGrW&eCS(eq%W_jFX)xDWh$2Bp{JxvDE)rW-V)a49|0FVLxfwWbBADm4$T8Bz})BP{!#0xrn`Xo7uWLlxCSQ%nA$Rda1PTfY3BJf%*d2OPyaXF}C$adw( zNy{{5W|kP4p0snUB6-Yb_&X(^La-rMhUjy^lHKJB)6 zup_nfnD~tY+Y-^RG_49@DSy0uovYfHNqdQ;ElWj;O6XZiksJ?JerHS-7R^1R0-6@o-pSFok!|&r*j{JY=&ODT_>@R~ zS&976Hj7}eVXk4ao+kqyn-S!ScITGmT1di}{W0F2+1N&HG$3iqQqfx4bF-xFPd~X^ z(tcChr#84<(*BzIddz;n7SXtbfwe=7OpYrYY*>}1Oq4fE>S-GEWG$})EmCz#il(MP z*->~9uE8=q6#g(7cEP7UK{N;B8X?2d!=f z46b8knDkC_M#8C2pCH2%;h!kOdGII6FtvrLGCUnV*?vlU60VbF_!Q}%2HzvYGvOD? zun+z$88+biWq1yJ>I=kgF0Oepe1`N(rB8N&XwH`Y58d;|O&W%%dtZZ3 zc$8B;=3&L`4a!91#gx3c1yk&NSrwkYl^o&F$ciO9M{MPk80XN&Bm(lzp=I0PLP<$+4q>U2 zV8~AvFxfdYvWCgdp^;@wb`FiKWU_N;WHFPSLs-vLI9bwU=g>||27x$|z9emuIW(UQ zJz3vm=g`O!Cp(9*%BgU&(86Aw82-})XS$faxSyc&*wJy>QSlXF>LT%kSCkjH@B>!HprjN z?CQs|;-(HKe4?sGP3&Lb?qh-H#qgJ8Xgk_XHnXd$=lju4vY9;;YjdPIbR^+%`&lUY ztVFxZX7*O>6CiF~2H{I370NE#=fh}s*=)R!%~$&fLus~{Nt;P-ktv_TWIR>9FUI6P z75*=@_f+_g!9Nwg(WbusZqu&LvXSRKls6Use_|n$3Xj;xIm<@Qza5#H&tFkrDfvTx zsqjXj|F}IbmU?!=&}6fDg&N^{pyzBhPf+wNSZHOld5faI#ik!kw&`~#pxZI$ogJfBBl^S5M7grreB)?|zYRN+ofaQ| zX&-}Jy5Mt>d4vCDGIS2wZMIe$!xzd>38t#qZ2qI@eVrV?@XB+%95T~NQ6{b8DPFoDwX)wmpK|JA> z+0Z|LaV-^}jW+mG;FgL$^Vrn*p^zsP{Tdtot8L`G$c9h74Skgj{-I62x=p#>w4r~- z#x8BPndi`%bgA_4t_}a|ZRDS3R;NbwdOa>>SG^Y8Bku#!PltaEE_}vOI5l%1K5KC) zKFbj%r*MzB(==rCf2wb(Xjf{R1qkoOzT>g(3pBq819@-hcnBiL(el5dyFq~$;iqAfV zZ)W&NDkvOzMYt5bhvA(59EP94=<6BoV|bL|8yWr(!#V$#7+%Eay&1THqi9ZlKEn$U zr{rJCa87>}!#Vv+5~qGtfJ?bo82x_%RQv~G94ANe@Nyj|am7cCSSK)g&ZnH=oX=er zKGQ{Rc&5YXX9H96Ja3^V+eA)1ZznlLvmLAdu{Mq8~hF%d@I94$VbWfFNX8-oAE>J=Z7g%aOCnzk=ahKaWbBJU*UowBR0M3imAI!{-U_GkQLr(vfK7 z$Rpf?OE|1w$dR0UJRK@=qJI#VnkOt^^j88``Ux`pM+~oKxWVwtB~JRJae>we6D_#MOs-95e0aO^FnZpuDkZMU^`_+0!1(ZT-NtaPpY;|#L8<4b7(LhXZiaI{ zUof2Ks~+JiIn{b&n9CHH^v3BAmAIlGBjp)uLqCz>yuTQX&s9=4=mQkzUF38;O%1?!%?*=L3wM+t1%IoZJ5w7$345 z=Sh9O%ILZNKVWzt(jY zt@ToB!9B=>T#(_sUM{xbe;LDhy+kE$t(Vn|p4ZE*3||d7lzuidoR@1C!=GdHS;MIm z$>ZZFhV$|97>0BGpC)mu-sV_vkH`)0&NBQ#U{XA7sl=&%x%`a`=X$$T;#R#~!RWc( ze!_6Bw_h`y=lih4t>t>!f~#^p&+rFXx!#hvwOsEpoR{l!iCfF{C8Ou%8ieO2B3g`Mfjo~!sRs2gB&daq(;#PguT5ylZ4eu#4K78GGsl=&& z-Gj?1>91n+<-n9Y*D;*;m)j*y@;r=7)$e^4+=DoB>lx15^B)+0Uf#b+oaCf=QMpcB z@c9l#&*!}}4mIPc{qXv#VK}dsizRN==M@&*W3tt*W_-9lua~%0pEomluFo|L=lXm^ z;#PfjT5u)L3k>J_e4Fv-`s`tNGs>jucb~*ber`X%V)Wd84we;7dgk&^WH{IVsSM|O zn=f&z-p*$9TyKjR&hx$02ET^kTo0RV@aGxc%=GhDiCgva7Nh6-`H10M&LM|^DV$Yr zZiaI?$1$9bk6wve+ikH0_lVr^n+e8;>%Uy$R{bww^j!aq4Cm!qDRFDNjaqOe&kYRc z?e>1gpX*^A!+E`ImbkTEwlR8MFWVW;<=@G0u4g&T5%qNjbgBAFw$v-tW0c{OZ19;j z_&giDiQzjCR{8#d;aorKZSePP@Bz9RLGp7xr`h18Hh7Z_PTwjfNBp@y^8{+*e?nN5 ztJDUkxdb`l!}V~dKuvru!ivuphHqy0Zib)E@Glv@k>Tn+EUWy~&d5u!r^|due%^k<3_pYMxs~C5hO2!(;=}d%DWm837Yyh9C5_=*5mxfc$62CYu4A}d zj>Oub(&zD#k7~Cbc|T41Bqwj5wC6^S>gPAORQoI>5YAe^^G#UbcJ;d!G)f-z#*tN? zV;CPUkCNXi53gU|-gvv^@=zU-v)0T1FTKq%#YxiJISl9Rg!Dy@{QGfb(G8r^CzXqA zscI)V6bVQ8bGQ`F`)Mb`X^(;&(Rbof^h*&YM>w|w7Yj6*|78s4?Y5QST?i}wR7d2j z{BJa2fp0-r(aXo|0_W`{lhJd%4VO5zpQ~klx0e`BZH63`>ls{%{xJgK2>&TAg>N7bj`XI+ zT)HRQNRIIT79sQB^D<0)w&7BICNrGN$@R9K(ev?_cq%?;=_VuM&-wH+oR@2`G@#aU zxg>5a*9eC5a*bwuc)46G-mzV24hV%M*kja0isVeb* z9m9FKHZVTCTp3IrUN6tv;5RWo3G@u-^1sS(F8}Kix7N!phI9FMGd^5?xg8ao|BRBl z$d>*P_z&aq$ot9CC!EiV_;|MwajG58k@VEAni*aqagv|Uixx_p=qqt4J|Tv$W;n?~ zPRXg{|4*CO@%0Or|2$KCVNbZ;{;$+a8IzxvtA^pcTxvdMZ9j6GDoGD`EnPTk``KSU zd_K(E;c<*Vm$RPXB?zl_NPUnT$wPIj@C$W9O`MP8)ePt3_`xQ*Xty+PSMBzA3+|Ek z{h5FA`8@BB<=~;@oG&dM?km znSXLQRlZg^zbn1XVe)gm+08%QjD9h~O8?xx@#oQtBt7YEl?;=2p$t=f@p%`YAN~Y! zivM~>e>uZnVfeKSe}myKwiZa%h1Hxp2M=63R08~iRuoc?qKReM(UjQGrF`0WUjBb?fd zm7cP>6_;|VzY<=jK=^JMCcIXL$;+2vD<2QTpO9hl42D0>a1|szYjG(#R6i#CdWNg= zD%^uOaw?tT;}K}w-V=Va#K`0HYOE*RP5rx`uhv)U_T(W0F{3_!`@WPEO9I4>9B9!aOt zk^IC*;hdhgTTcI<*6-HHGLdH|KiAJ~HuNnF=jC0=aJLMT-Y#PJIEFVeJeT1=W_Uis zS1{be@Op+D4By{=cNybT#`xIvyGt3pl7Y%=*Y7T2^eRa7c6RbtiU>ZhFS~ws3!~@t zqQ+>7c1s${w_1kD<9g(4{_uwL@;uRl{K<)Lw z>B}T7d2SgdKL5Y!@z+uY@_2c9JsvD+X#M-F43jrbhST6@$}o9(GEDR?875EJ3Zhqe z5w6BiMW0IwfqTL9G{wI~F8KZ^aYbJu>D|&N`r(p>yzvrO^y+(@s~G)3jD9V{RoN-} zFAS&hs_)OeW8uGD-sg}Ya7upl9lIY$T*;%p$Jxy2)f$S@-_G!n1W0#}g^&7v=PpKn zh$4oszN=2rhcY}@u2TqCZIzidY4@9_-pWb_jl{tClSVEA7puIg8P zr*_6blZg2LfYC2z_(XSRle#wxa#-Rl&`Walx&zZ+=^bc`vnpw z`bk76-T4-J_1)a78U18M41Ybtr!f5Q44=yItU=}tKxpW)ByCtaoA ztp8U3rGBe^m;MX=CjDytPJNAjhyE-5HvQ-N-TE#1D*e~`?YdSIs;Q`7t_9DTn>S@X zPG$2}S6x_JSlLv&G;eYRdE(Tx!t$`ML>)&XkF%Js6V3r`B4Uscx_giN6+Rkc+p6H!>BCPR$IP#9#3 z7gdFW<+Y206?L_ZRf|In!G@5?&d1W_#gBIimDkuG@HMq*Np;;aq@36gsxF@x4mF1- z#xhr>?)!|ef~Hysq1aeB#KpiNLAGKfpAeMDG(omGvPuq=^<>n$sVd27QeKd>UsVw_ zTLctaQ&U=l>_`6lHC&B_c`hiWejR|Z234Rx0EAh|eHfrcY0vERw}r)f=HQr*;8 zX^NdUc|k*YZDU14ReiXwCX_ejqNeiNaHH33zM%tY1_h0kb<1kXYnN9fXeQP$r(GBd zqjMYx>nV-PYboJ@H!#H^)-Ki2Q+4RnXgbN=yl7H_r2Xo=sngK$R_H+e%O~C<`|NWf zrvq1qee!tz``6hlMUS)TvlxY>ObygDSo1sCTAYbQ;Ck>3wnp2)C&;`N>1H#DVKnfQ3qk2DE2U@dC@4y_b& zC-70KI?(hsa(u(#dEY3CiIvI%e`z>o2egSa zdB!MBYdEY|XeE=hhMQ`x;moNOt>WgZ#-|!jeAbn66$g6YNj(k=IiGLQ{Jg34=3(B! znkFnqf+R%V7nbkKb1m$^u&t#dTmKK zghhk4q%jm)S|?Yoaupm3hMFrv^>hfhwxkXRj%%nBEP+s<+GRCVEVT|hARSIeGpR3c z2>EJiO6F7uesXqpKUw&xWKQXnAQwK~tNNTePit<(f~wY6Qc+EsOj^+PofzE;D`}B9!GtP4 zsuT5jvNxvEF)sTrLUSY32>Iur0EwOL|FQQj@KID}|M*Ncfyiwa6p4zu;Hsf0?m~!( zqRo;7W?=&nP}8bSLP#JrkeKX3u&BXJl<68x>$SCSOKUIKYKyg{Xc5Cjptf4Hw&hh@ z)7C0!ykOOcmy+N2IhWm&*%`8+@9+QqKA-=A&6#=TxqQ!a&UwydW@n?TF!#RJLS&?A z___JoX>%7`ett`&8Z5_;{X*7W>*`8d(Ge4CR7PD^-(31-&AN|~td?U7c0(FUcrJlr zW=%tFHN!Ay(_-+_-4u#w4d7V1 z4GLh3^5@pB!cIiFWoM$EMZaX+2^@o1ip{izkH1|NG~(B$*+y2qed|2lcBCp!G?|nU zghrK=9ZT#f0*qx>Ev+72*t8VgtggDg!A8UJmSm99I<_e##*L-5%j;KREgq>^At(sQ z;(QwYEO%w~vSs)!@8vWzSP4&S&9yA6Thm-0sU76-O7`2|5N>FwOl+TObu|r*Ewx(Z z<*U}zL-nHCmgq{HesRIfh0)03c^F*R+BQp}x^_in9SzIcwBQ7NDAY=)?D9v3V`vAoLA;(UylrQA?~y``oG`#~6%ty}Y{ zVAzX3ooMYgR`>H8q2$1yUJjn^{BN!JRBdwrzPyPaWH=h}}S8jPR(iX)P(1 z)>4*@)Ui^=-BLgHiyc;Z&bmL%{=)HD6r~wryJoQNM2}=^)*(xCTssd(wRr4vAl&Dz zw7I9r3qX4ivUbyoZPY+hL=s-HZx1PMx7Kq&Mht;w2Cd%tdtoxq=FQ#3sWdFQc3xVSX9#z3FN1U1oBcyGg2w3r0FS4 zfrKT@=K|9L*i2a7+FIF!&Gg1q)eZHLwUw*=DN^bacgjO&$8cDTheyRDor9zn)5GFO zGtc3<{3{-Zm8aSdNAvG$iN_2R^dfQevih(oXzH`V#PVIpi$^TJ>5AXSKBu4>haL7fT%#m+_-ff><(^NJ`YXy$;a06JKq@@NlWHFEgwEqmXC1 zEdI~Al}mI9LBdaMAzl3IZ17W+O58Hv2!(d|{a!F5Rq!nF*NXps$lKxHB=C0&Ny1Oh z?_2TTjfa}azWU5OiFA4CZ)$x@`!aWGe;aJdzY_Xnxn-W=Q2vcxvaTt=(96%IU4Eu% z|8c0l6&pB5mtdsw)ARq<@;l+b%LacO@)EbqZ*b^8hrD1$lHcR!XQ}>db?85bZSd3c z|LNl2XoG(@;SoS&{t>=}VAuZeW5+CsuW1OWRQ&Hlp6RmmpA9A#@e4`vKMe)x;(y2n z|F0o0am#!<>fa8(N8rCg*q52L{haU6ezpqyYWty~C|&$pZSd3gwl^2`?&|KCT!0!faa$4M7Idl?1z)%h#MLWx`EeGd2!QDa5=J1y%f4f+TUv{Ao0ByY|y9)-BX$)MUl~6y%vMOaCpuolD8@&=G$6-cY*u zb8PT0hP=cr^B1u`vBU2@m)rMRa9Q#H5%PBUR|x#wTn+2L7veZw{5~7}Uxd8GE%UVi zZ->8V3OBrS2>cNU+u_f>gUcV_8N+`Oj?=~O7x*PV)!!HJk+@|()?xnRIgcAI=2_ye z)&EZO#{wJw(Oh2Im3c9~9BSvkDq;VPA^dkK~#y|RQ}K7BmE)UwG;jl z8~jf~UgDPdY$&wDUw#2MT+g$_U#tHvfxI35?k+CUEhGv5Y<$wiUv7iH9r6;l%;zD% z*x~OM_^TkJCM*6@$lKv>`x=*0+ixjI>EgfI2LE=*OWZQ2-@UZM@AY&0*YPaz*NXpj zhw;DS>s&;|Z-A68{uMU(+aND-%RD#B9{)yxUrYly82q*3KMV3qm!cz%Thp{(5{Q zZkY$i+2faA&V3g$YD&THw%35l%4&%>eVZWK2 zqa>^Sc8BrjfKB_Q@mIFTp~jzwZ16t@d5K%*k2|dY{dpYpQ0xC+I;{T-?&9)YJY(^L z=91~+-)e)u0rC>J%vUYY`rRoz{9XCn{&hp(KLB|<{P*3<qvDL`|?!gPV4tsHs#+8eX`s#zyAzwKf~gG zZ;+YS%6XRfEAdOhJ&?C6e}O1}mtds&TaS;F&k=Md{DuwwA45jsmifyL_?rZNudpLC zk310hpB?b;6ZoqHAK`DuCtdtYZ1B^RK;oA9yovVy?{e_J6@Mw@nJ!EH<$jw3SN(tM zG2pKf_+@#i{6Db4pL3=?{vLtf&tW9~TJby8{|X!bQI$x)$@~ir_C2$?N!iXM0IU5a zkhk;SR^dNG2vYfP!$UF{&vBCdS$V=QZf7Wa7zg&U84Kiwy_9g8%UVHr7cR0ri zo#%xA4t%8iQ25(y>i+@AOWZO)VUj)m%>uvJM&lsx*Xn;K|821GA5Dp*U73d*?DwQu z|0R%Tx-t?F*};m9{M-;^@*gd!()Hh6HuxWfyu>YY(*gfsfxleXmzlIL&)XgFZ{El` zx&$NPrzyRZAFBR0+Tec(@)EbqdmQkW7jwg2o+bWT>;EMO{6*j8B2_|?@Y9qsUHlK( z;J**@61U8M=n#LK1b(akt@yv|5Pvrc{Hp&cex-|ltH3Y$sr;L4@K2v?-~YM={yC6Q zlNG;H|LeB#9~DXZP3ES9eNPFuD%+XFV71>4d8R8va`4>$J)RqaOywt%^oP{zg#ULo z_#c71#4Ym+efIv#E#ZdSc$WAp?MuRR$TM9Q{H+4N8h>g0l=4I2KVVb;KZHE9rQ{v3 zujAZ0f7@IFBGPQ0CH`9d@8rK88~@ReVzqz3!M=QOOO{gtu-g9v?+qLLKZCp#|2G}x4>_e|T^n-#d$+^Ddu2^YljlqHgwZi0V)c$^CgWq)U{~>{2WCBI{ z>yL69|82CfPtU2@jlV^6xk=g1Bmk@bUUI1aCMqnF!80~~?7^}0ht#`mG`H^;d@`#L z_P;0zA}6erWd5hI$zy(n|NXg;S7~%CmvE8&4gTx!E7k#ZmAhf@WG@XQ1OC*x&n(fj;GSE^xE_iRGh$n}x=5`3 z*9Z{5En6&Ga#jI^*5A$?pu0QHL38PyhCl8z zi!>wtSh*W|5$A3kpLh;+Vsml%qW7|$&>{1sjf{lGl42h@B;IzP^wVSX6i&ifM#2m= z0W#BoA{jG54FIXQ5n;$U$u{I%3jCl5Ta+6{19k{F@XznpOw=r(U z8gy@e_VGB{oMFCgn7lez6IGDKZ_C|EeJu82hP(6CBUII>&UohGd2v+fp3LkK@RUB! z#7QW&7oGmn@Wre-rv@+g&CC8XFc5r_3et~Gj$S<;gGld(h~&x6L;ag~mm-EGI$!B3 zi4OMw3dJ=Uu_t-J>Ub0pzjrG_1Q$nz?1g52;&rz_juTPUMtlQzbqKD`7Ows#UC$yq zg(ts(7*qr+A-=)Dfdyl)Gr(P`GMjoyyVyG|6hqdQsBEfgm9 z@_`ybZnUKGQf20u((DdXk!#U9K}u1_rXhUk;XyR zx0orxKX4bZu)(3;UId7Q>vA zWo&I~Zmg*V$uNh3^$c)mkJH#mWhD!W^{~&&Oqcj9t7v=QItYXg;I@BEgpiVAMNBHJ~im(g(BMSXLtfret}I~l;oRzMKEj0d(z zRH&qBGgk@!%DEr;I?*F=ESoY!4ImPt1e}Y)t;E7kMA+v2og7YzxM9|h+h6ejOMIQL zND?W2{t?99$Hwt1UVcS-uYD(?H5H$#Uta1$iF9}SFU6&e(lda#nP1u@E_ExHNE%Z2 zi%ZnHrNaIE((U3>PvR1}-`#No=)E2I6I#EAhgR+`a+L=qq!er$D2iTZ#IHLT*87vO zhlfe#mn3oUfM)JWUZE)?1uysZKVb9=n{P3My{}^U<8w+854RGcucN9JE)lo4aBQ1U z)c2?v#Ca7O@vD8=6yDwKeIWOaU;!GV!yfR!YylO5X^)(ktRcGMrz;z-#$bXG0wJ0L zcIOgbz%b_xH_QyfZ15EkA4VRo%0maJ3u;lKxsaDwQP`lol^Q9A4n}!&LF_O_xgSD? zIzM_m$*Ha#BqM#|PLz{^6))qX3s68;%jmvRj1T;z`J(MqL9)xX6uoOUx;Kpy5MLtwDX6+J|Rif-iYToKvfw9RzR{YU)dzaHe2+*{ryHN=rn(~T2S zvk^I|Vd7BJMdw@%kw{H9a!Lt2#FJ385hpY;_mUPSjdHMXDzuRbVxokajBlp7Ea4#) zOwF+jJnMXX?S?4>8{?>9iQ$8qjb-@2h(^@Jh(_ErqEWy~jA*n3PWC`q>Cp-t5j;Iw zi`w<*(Pj{+fO>Qtj>tO*4JI<2?dNCr&>4>z58#j%6mnVALANh^Nuhygmgo=CNaTJZ zCu0&>jNDEg(aU@!ZAaRPZzI%5G6&MWhGr(X)U90NsM^0QF7+fXF^KKg2zr~OD|jQp zUsI$DyqTQS8hql1C5~m~!q>@{8tZqJlPfR&87%~x_hSKyaTh+i2pCi^in$}Phf;?TDY%WALusI&R`#WA{f&n1#~LE+3%J{#qdtw1p@?;raA%2c zth-|$h`sd3h-av4{oa}IXkAxXM}Op0BQ6Gm*JWU*Q3f#-Lh=gDa;TNF79Wm(pPhta zNA&2`TdBUnQx21D2o;9Ry@_ps=nB3{7#3*|I*YL8Yhc?CSg5~^E=5(3BHZPp7~t;c zg0kK_@rRX92w_dc)@B**yShu;Uv=NN!@Hxzz2(D%oydJykjd?b=v_nYHqc}eQ0FDE zU@PQps)s*eOt)g9(c~@`Em*^l3;&t}hTb>N#8!$CZy;@@a90^LvVE1{2fJybP`LcD zFQ7o%Y1_bE@~pa*AeG%GcM-T6=5^Nj(bJQaLKfJi|Ier*ge2Frw0u$nN&+HptN=<; z!OxnFSpV`60WVW~@}OaK%0;3G8<7w-B`?)|j?vK_nP+t7=|*hNfKmAD>Pu*sAh93f z-Vz*eZ#j9xWdj?q;Yb|s7@Z-#`Srf>y#1gTqIZmin&@NLFHAPKi45Y1*6Yl4g|GC~=vC@^qB5i3Y2wnvwx4_~~Qb~@ZQ|L0@5jgs6MmiYLJCoxFI z)*&Q`ZO5-6zV+TmtN7>MlFKfJi*`m3r};vR0^=hr34p=cplI0gMgiL^_6{=}-U zh&pOPV%3M~E?3Rv=*F_79DTJYxttKJRuFKW8x#svzaR6}^jCU9fH@xiBw;ZLFTx=s zJC1r7-DtF<1W|*cBd>~MUGA~DA_f^+D9B;?_~&Al=8#+uY-N)MeXnIg!Wd*H`;4a- z|Dz>K=}LS?#13j|C#Sjm({;cQ^W-XFTXR;3XB=s=>HZI<<0t9#aJm3ht6gJ-vZs#+&H|70-GV^V23v)?stE_V++QMErgz&4h9U*OF zk^vi!k!BCD8Uq|3btbmY&dfHZJZtPYLOkyo zg@1D2vW0j$XDxDXIq5?Rw`i}C53#YZ9X=y|!k$ch1UVq~7|}DDXRw)hvNGBHC%hX@ zx&rJc?c9?&0{2|H5oN|07q2Io=2v2mbwj0op9#E#BR{7xwN#49X=^Cu9ueNd>wESU#(+)PMp?N5#4BK4uK1B%XBI0 zySMO(T17TG?`EuG*$oT>ZNZ=+S$L4$P6SW{8N>V+(?NqLjl0kkL2D|O6F1A-KkOM8z-@4M`wwsdp2ddU+H7>Wcy6t|_>RO%s_*R1Nx|d29_zm}??*7h>;8yTqI>hh6 zK|O;Ie`EvLAE)Oe3>Vv9hRoJ(aN5aSikj$xt3*xQheOmv7HZ--Nbs7-a(C>ell6Ov z(^?aWaDa)~Pjmt4uf0$j#!#g^TR`{YLh&`Y z-TxMrMXXl!7X!bM1?D@EG))b~hhs)g(;aMQ&;$tcRkoe6Lln8pJfb#GM{G~BaPDG3 ziTCjnQ504wmOgH%-Iz8UXjLjV?3t)Mv77!AGt=tcp3VN_*cRin*)zJc^*m^O5&XC8dMp*_u5%rPs&V*p$iLaXK-#36faYyW2G) zz=%gWNpQanQ@wOgkqSUtZSIbjiS&8WvURYQ=*7LcMD}vB(J5DqC^^I8?r5azUmGmu zZvVF^p=zA&W&V>a)mXSYrjm{_M&)B&AAzIkf1-v3(&;3BHz{Y{=l)m-G*mTu^jg8z zhBFXpH3_3%R8)c>ua*1PXzgk@CNn9ep(Qxl=7&aY-QLbvKQ=>*O97M`PY9*|*Tir})jlQmIX+L*AO@QGVo>Q*i>@4MSG#HC~n z$c^as_rXnwdJNk$4MFUZSBP;iwLpb0u3YJ+6^xA|3DWGmf(3 z2tVThJ4T{T88*INY=ctPz&@+xuI!8~CUec`o=qqbJAr9xF~g{s?Nm$*L0*0((FV>2 z#NH3^013+ee-9RJC9F`;5YFh*-X8desvr@@Hi6Llw3YgGqW*$W6V*nZ=mJTW8+S*h z_2sjO#l6rTBLO&|h_NI`0v>Ktc8j8;B#h|Uee;rn397puuAo*AyZxf z8u>~g%}XaXX~4D3r9a}*=$#Oovraj*Q2$NVo#^T>XP@@<%d`)&x1bw8JaY7R!`iK* zMjQ@ln?_~7RjO?s<$k$Ti;q6z&vW$WMti;y*1E=Ie=V&2Vay0KtbNt(?w_x1caQtW zeC;Fm=>7Axhdkq+n6LeK?6?Q!X&;U~bw^k`JTB+{dD{0*9QU7)cK^vEcFfU!a`Nf# zmTE7boQLC`Ia%+9wEmo>ch1pnK6S)fA#LNS?p-0R=hShVL)wFT_M$iYhhgpS-qZdzN4s^B2gff@%6Yj&dth?* z3nkhgCy#q#fwt+ai4T_OzxQSDUa0l@M!&dF`}R4fJQmhpJ@+>KP`UQNlzX=CUyi)du5LHT7b;;2gb!p zwVzKP@lJ{M=!{WcE7zW!@k?}&_wr7|dyemzc`L^FdoDih&!yTU7k9$R+b=n#w?zN* zB>~)azVyUciFW^`4}-j~=#-C(^}iLh| zKH^cA-l@C4@6zAZUB3b)qxdnG-r>sno=g9#s}wJmbY=h5rTy838|!~_WxeInUvqhq zs_>kTK4Q(1-|E_L^;1asfU8uWb&~sDm;U(?cf0hE`xckJOLyJx((lZ0eZ!^yBO|Nb zr60@)Y1$*MY)lv*Bh9;9S^Hi3K1DP1dbE3i_+I_;H+1a{9S>>_xW?-vzkJ?5GW2`& zmvJdso}ivTVf0-Y`ohs28T!?e`gQ$B`gk1vLC<h zbv9)h9WS{{4;k?w_uokPj}<;_VjFL_Co!YnMe94QZ(HB^5Irm@ebjeCUuIuMA6E2x zu=k?^54&0qhE2W-VjBA%LbTvNYZ`9D zeJZf`imS-gMvo2#{c-P`1y6h4{M6 zq5DTf?H@Fur2Y}yka>o^n#swI@f2!}`as{h&c4aX4$AeRe&pu1 ze+_g8_Y8wKM!_4bx15yPTSA?)GJ_){nXPB{LCE}MaC>%dIir7<9-U-7*C!iD$b5=6pBHrIO~oDWL(P+W zzX9Kd;+1%EmT%mFqbz=tM{=~RGtBdR;5~WG9P@y709D`%bvF2P1dqrV2!+ifhWR3E zPJ2pDry749HxPVbv2_(T$vbKzMnm_6Vy`749U5~85Bz}ktX^j3`9kK^xCPzuQuKR$ zKZP>U6?O&tGkv%Vi0CStrHCZ5z4Q2i{T9UFaOW)a>P!(xBEu0$N`|vgVsuU%j`o3Y zQZhW7MEgsIQ$PvDZ{h((_A%DrWe~FqD4%V-62*Ka8MoB(Fx0l?p^~CTQ_3@BfJ`+g z9Vv1p7WdCB;?br&AvGwpGKr(|+sG|8{}7HZ^oQefE6NJ@wG0oN3oFXZeda##wTf6z zj=TL=P#ybNkDd@ajI#%ER))LirxKv3FWgyK6hdDwGk2Cvc@Ztf+c&&4@H`GC1iB6V z(At@O*N5Ykr^J%c=7=_QZxZGRxU8K=Y9zr=xhf#Q?r)6^N$Ux)_ zsPjaJ6%{lOL@_|^#M1Ffd_`%Yw`jw3^UyAp66j`%Ib8MoSr|`9)p_bq68f|aPa%HwWl`v&o1_=|>~Vw4w; z7=$}piUJq{d1z#_z2V#Og$O)fM_cHz*N)J$5j2Ex4%}k&g{JK0<}jQYQ}zbkTZU~y zlVKz3a|dzDJzi{t<1OWcC9EUxw7_O@L7Dzu*sSq~brj+&6(Ky^fx#IMM;V1j*x+Zl zXMbqKKW~_Y{TbPjv-*qC=0?C!5k0oimubZ3mxuIc40FCGY+ef&e#J{AKix1}{G}Ua z`2gc>Hjz??1`t1>hoj;}D-dV~j~fF$a%YnDmcE_B@gn1Wk6mJvWc2px@HrUZso!v`h>Sj0INspO#V0%7?&`uN%t522tjKa=z)q4wK5Z0xNeBDJ z%!U%5n=vpf?(H}Y;?YmiRHh$U|If{&@;_coV?yqdKb5$*@57yY3=?7VoiekBM*=*< zf~HS?z(XywT=9qtQ+IxkffayrnKS{)RYul6x0r#7@zf?^|xaYyQ*via3A@lbk^98I&O7NwUQ3is>ltZDokrQ~yn6krgFZ^$ezs8jJ zjgB{OJegJj^q_+IuYvL^qwt`+<5hATX4<#YrbpOZ=JSWq%5rI_o`PX7`2=I^;|VR} zXpDt}Jz+G*v1R6aeN&CjYcX+5P9#I-Zt5vsKACKQ1`L=vj34*hM!C13fxj+?D*_7AIItFeWpAdZwRZF6U zhod8~xMCBeK38erO}=m_P$~@m=GK+xdE^KScc_W^e{p#bVbOd)WFjuT{y5E&(Q;Vj z(fZHbPB-WJOR+DVUAGtOZmkcIxRh3T#@^CwQWtp1eP$aS(5)A~92=gTZsKbm^xdF^ zIqoglB?a$9C-z+;=cj!AWbQz3h@6LOk+a;}-;uK-Oc@5qY~(>Bc0=~t(eG`?rnc61 zVxYgzjj;yRdsla7UI(p{q+JZmm?RFDlf=V(8pLjp@O6{y?Mwg*Ch-6}Z>i57rKM8o zl=U*cCmWwrwaF8mxC!5*q`5NMR?t0m80yADoV^v;b~55~FxJ*pAV$#`GN*#tQT$8P z4prVV^Piz9e+k9@bI2Vlgcy!acHjCMw3L_!OSFT*4a36bA)0Mt`RQ)|7$pXaxB297 zVUIhOg9@YX?HPr?b;m~1vcl{RO?f%+Jnq-Jw~RV5xM399@=iTe_(JsU-d{r)5Ilh8 zJqnDUa~pthn-h%4U>G~Wmw@q0oJbhSg74~d(2<{X^=9&?OK z%gj~TRA{y_+^eU_T#Es(_XW73%sd#1_4I@~TM_4v7(3p|qDK+Tf5-lgXJrSfT5!M7 z=y=}ULCdDzm+)r@0e9?aFbSbqFwjeHS9}s5&6x6mq5m0QOdbgIC!a6$WX^DV!ZSSX zv6+7N*svep`YM@$Z!Cpp;Izc=C7PdTMMNtnS`pF8iB?6lCZbglt;vYJ)dmBZ(MWufqRS^u(}!5OD{+ArbF(iQ;sjIC31C6AG7V3!*ER);4QJXE!uN@wY|u(vkP< z8t>Wl+Sx55@P8`((TcRviV%L)daieAZA~?PL*Cn1=baN=5)6Aw7cE-2$XmY(|C^!_ zZ*y(+GB5p}{YBo$idt`^F;d;&ZKz$fJhFmhmR2{@Z_ImJYOjmduBxf^*0*>y@2bX# z7X)xd8ojlxO|>IbU3k(Rf6N;AFn#NVj2;}+a6MYWwwS-oAt3j+;QCo8@7YFx>YA#XJ*xU>h-nz!- zmDQ05e&BTkVGt=)=e@ivG_`oPEEyyRm4S>70>V9Tp0@>MtFK#YchS419zHt%{FcUs z#@XCWRQxdW-3aYcR!K?)c}HkVRe`lRHBC+0McN>m<~^4BZn?+{MXMUutYS4UoW>gf0~jjtwybE3 zHZ1eDM5>!3yrf0m#%AxOD8*u;!NXMfE32Ehj+L$kerm8f>vw8m&;T1)lHX*Ekkutp6LSvb@LtW5#Kgs-~eDZE!Vy3%I^FQ1jl3t!G^gJ^tB3|{jfokLk$cGoe(S; zQxqF^TUKZ0?XEjAT224$st0Jj8IK~@e>N4grJWzrG z3D@QCbiPW*#GhI|SW}Ca@vwdAikQA7G^;>5Aj_7juVhTQs?Sxe+bb+5eBT%PXd66D zeBZNISHynDkM8zRs;58P?@8ZWmGlkyahc$)vg2Jen3viMrR(UARc}p_mzF@=1n*hI z3;)D2uA%B+zwJzZqcoNNuxqvK8rA80;@Z23YZ-s1#z0ed`kaJ`CMA04juO#w1#K3i zaM~J|2dI4F^A4>+L+JdRt^y0kg-j`iuxW^!pNycB<6&k@1q9y5N{9 z*4}mtee`<|j{2HZeXdy!xSPmFCov_Oc5aG3^g;B^nCRpgf1y*+C0XzGYb1Z4z{B4E zZt2%br@q-`?a_XI|CKhPsV%@fCR>^|QXJFsuT-x@r+OVLj_KJxdV-YbwE0DkZ__c| zJU&$%Q`^CQJENb8+$)YJBR@+VpDprpMNTo2^iVsb{Cs?-iDN)z&omHy20nR$o{#)O zaa@R;-Wx?cBVU4#Q@Zm6 zY7_4aSg+T?IrPq{w@5M4B%W!L$zi+|2@20VjE>-KNiUL<@uXk3&?7HDAn5e4qnero zot_m{(_%q?!9p(*^n(`qK0zO4p>GlNi5B|T1bvx>P8eL84Uy4P%gg!Mtr9vMlw7Q} z4kED=7kvxHCb?KEPQBn_zgBHWr`DaCT&$(r(W%v^CKvlPU_1KcR3a!Y_UpB&ms}e4 zl+@(XsOO|67mw&E7hJ4orI2BldRA(3Y1GS7lS?a1C4%B&y)X5W3+>;Us_;}c#TIMI zKtHmhA40IPqf=kEqtiynIHkSOoQl#72zYk4NLOVKr*~5;WIn17Z zi$lFH$G~oi*ZW&ElV{NF|UnXHVbY#oPdkD|X% zR>lSS8*LXk)Z=*$@#j$oKR=2$Ax&1s5t;*2qNjfB+QXR+^iv%A>6H%kc*vps{~NaL z?3OW{aH>e`5h)z^BA!fE<{Phy>jmV0MUz}(b;CcCHB^E~v>vBK`t0nMgMX4nGgY3- zMIOM^#EyTN1N|c`0w-yUr5d*Gqmv(EJe|aTt(9M*wIZb-F@Bo$@-$oI3mJb%k`u`O z1G|&7;so6*j_!46CtqOt7bN)G#L*9#o}vU@miG;Z__oiXT`gzrJUJh`PG~G#*rKc`p1|j+tuR@4tA-z*zvD+n9qE{As&`E z(DNN|{=xxIjqm`i8`~9ZD+C?gPrDT#ykUW*ClorhDM^1upFZb)hhe}5G8+1p)XbF_bPOnrAvPL z`Z6WDyb>QtAB}!Q$x1&@q1WTO~(6??W5q~Q_ zvd?}&;lBxV$-hF-sX0;;ko1T`r)%i8EZtmKjec2?gSM_gI=&GLoDD+B2Kdt*HN&ROE{BA)fJSu-gq2GvW66b9S zo!XkDKcMKZ0$nEh!ZRh(@54v(?^Wok{yzx1Y!9-XykemjK^LVyg|4;-`rZL0va9NM zEA%C}Ch?pk=#;I-N4Qa&sPNBK_@^lJMvFH2UOw>!`ubfE8cpugfk zpF|EuBD-qbJ5SI_OpSZ_3cnin$`$%j$Vh+IDfAkJPU{OwWLJ%QJqlg*TR?P7tAC0W zx*E@~SLmw#%?f=6Y)hOw9q2DO(BD(&D$eZDR4QJsdgN07RE3_e&{rvR+U=42zjUA< zaiEuCzDXGxw8G=rFRJ)B9exX)dt?-+Wk#@IP z_~nXamjnMng|6a1;y^zM>oQ8#@_x>NE^q!?`LA%`Z*ZVL=s@4%Kz~}HpAEdyKi6Pg zOo{MJ$4Ana3c9r)H7fi8h5t5%uJ)sEDs;6Uy{qV__DLT~A1VB5J<{v)DG^RJ4xi&d zuXCW^qR{6-mn?5w&}BQkjf^4Pr|_%&9+9yQ1CzF z!2hlT{jf#P&xD>V>@!dzzo~YoI?(-sF8v_!U*f<&+rqz%S;PH42mU1%{uyE&SM9*R zTA{1+&rU^8m9R*(vDOIQ*=IUPQ`~UR3C6ynV+({}F}01o9G( zOAH+3=hgVg`R7PMr}|RopE(L$oqv8#p8~3SAv%pHS#(eAp@I zgkPOEKCSSp@!{_ZU5yX_R_JPc$i#jQCGvw>t^$RwmTRFxSIbr9K>xKuKMyu!y&P8P zs-7lxA2~HnMg`sKhZ_`r)erY8bkz?(Q|Ol}crH8*CrIRn&*LL;&JuL8+m27U=tn_? z|5k;+LgA-aOTT?WX{o}m#)lS#Zh%kPZMEq6KGULU9SXmyXSap_0b%!92mZe(^!bY2 zzgzS?DD=Fo@T+zkCvsrqHNUz`seM&jP>n!}|(-wnG0%(5>|{pzv={ z_~+8Y9Y_+-Q=%R(6Lc&7Duu4rORYuEvqDd^!ms+_28FKb`MN?^`}@6$ezm`UN8wl7 z`L7iEQj|~nZKpyHD)grny6Vq=2zmy1+ws{g%Jsej{i-v-ge3hhrr%nXpp!pU|F2N! zQ*ce<+^6W74Ej$A0MZ{6esx~@o`rvx;Lkjh%aPqL<0JK-Am|e3eo?Lo3ja9@e?Xz% zsL*dv=u;K?*A@Eb6#7PmuJXSi=n@b4h|5en90_`4|gvjKZ(t`NV-=pQN#5Z71UdUE-1P zc7npM;+d-OQ+aztd1os8m7q(1mMC;Xp;s$(wLjJ=`l}gY{%4iKulC2dLSL%rzek}5 z75cXo`fP>%GeNid;TH=328I7^g?@oT|G>O6ly;h&3Z691@kae|bI&vJYu z{Tzj^mdg-yYq^$K=ta;)sY;=%o2!`f`Q-3x%$h z>pg|urtoJ{5Jw{asQu+!g|6zkK%rBYl6Z<0y2@YWK)=O-e!D_f^>0+@D$Y#`UF8?k zLsqU!6r8lTK#9s*hmXW>5)p~$>bP(xqw;aNS{ze$pExFdbzJy?LRWE)(D?=8FT_XM zr56-Zvf_DIp{sg!DfIP_lY0K3(3dH6`FscIzgeOGUEx>h|5E6xKmV=J+Y~+2PbgXY zi&&;7=tYc+KVvQV)&4?0r$ji__Hz-Va=O}IJ}>Cj{xVnLr(@|KlBGoYm*XSpUm+qA z(Qm>>(jO)w64BLl@m@ydblL-!{09`eioZvptNs+zK&D@9pQQ@F+71^AI+eFt98;#2 zOKpdehw!WIM}Cik=xY1FL#bbtpWcB?iTKy!Bg;##j-y2MW%x)s`|`PpfG!ua@g1!Efy^lP&ZjaXv$#tNo=|(5bwt-T4Y#?JwnmZtX7>3cuQ4Y8ATL zU;ba|@3Oy;e^mTeE9FxC_Ww$~R4Mq?a?!mNO4jx;oRd?Y_Ym9LDg0_&Qrpk5>N!K$ zB|NI0a}~Pk|0ad5j*nkg=mj{I{dc+2zt$`C28FK1nG8jb$}h`BI9Dlpyb3?{HECDv zFKT>VD)_DOdAXuTjn6TKPO?(}R)tP&RnlKj=xW^lt3oeP_y-ias(*~)AC>@HR4sz23n zU!_0b;sqf8tK*%AlkuG~O=}Uyl;wzHqJK#oQ|1-NM88HHQ$~H6l2uO;qjLHU;+Qf+ zp|4Zu@{shb#Yf`E78i)#sL)mXL@&aJl9ZEriWoJyP9?gGQFKY=pCfoF^NM5QmvcEH zspVDm6wyT_;+Jz#I#_`I{a1uTto0dB3R8z2cbk zmnrmIg)YZpBKZ~i<>Ht!)jwA#^dfOg`ojuc_0J-OUas)VV2G%BsXM>0cm@ zDO(|qi7sV{Bz;Kq%ZMOStH_Cdr6ejj(VglmqVRddG4Wrg&`%V{G`_?Xy7Y4fXrmQ6 zjWv{re+)a~e`Mbwez!uWxiKZl-%S9JUgjD5rkcb?B>6o9(lb`@P&QV`Nj>s=nH7Rg z{Noh0zx*EOVTJ!BMZb>>B2hM;9q~W%d2FJ~xe#4hr|`=) zEYa^%=s83X=@$z96iGxbzrRYCPgUsh`>RA3x7yg%PZT|J45AAj5r^sW>5P;AIYrQ= zALRFITNVB@6#n%Ve)+xIeG31X3P1gpC?%<1mWO^~lM>CLN$wLR1&$cx}l-5raIEt%peE=iz72Cp-7-s)Z1upXem`nS{P}p&9!*jOyinTMJ|whb4hLW%B9gd2Vc*O)-^E6X%W1)XIcW1A`dq?%A@`)o-2&5 z0wkdn>Qd`)&^v#Cd0KOALv_OZeBtvX{$sO0177Ej5Spe3D#^EKb-X^{wv{UzSB1h$ z1Erca{8INtLzD&5c6dio5`?31V+D8sz7+T6A7hZSA#oVn=UMGwT|nEi1TO z;p|`;UO9yK5C!}-jg8IA=Gb1F5na{N*o-$2DVL=qP}bFWy;Nf}YikaEfQ`z=y2@s} zmZo+P;$(#!wLul)ol9$0RGAJ08_}Eo)Z|5)^MELho^C-6hip z*-5J(TV&EKHj^6Ml0RibK0X}9$5G<^mfBU3=CvgO)mixz4jXC(ami|b<*Mm<2$jbW z5eF+wFN!jmL4LHF{xq+kO4Tk4^r^L0e$fgvz1HSeot~zTNalaeM=9Dr6CXKhO?I$j z3-l#}HEPo+uA?E-qyqybjjq-R9+=7J4;Tm#!)OMvNR~}hRvo`Y;ly?Z0e;Z)_;}Ko z;Kn4Pv~=mBz|1E8+PBJ;Q4FV*1R^k_wzWQTCEl`EN<)jZXPJfA&4W_MR)SlZ(nc0f zhw;S)mGz4P{_^VP>Xmo_U2}`JoCY>bpV*MqqD@=g+!$>d`kj1m0ER*UU$tf>`B09> z#|1dArm<;lX?e}cPp|4iRBuytb8YF$mF4qmm_8AUjtg0SbyE{wUs%d?4eCpxh7jy3 zG1ykp{i@!b6VXU#OoF$b@{8T#^R+i6SoLBj&VNXY!Rh6U_V=yySWs)84 zr~`R^YYT?zRj9oNY6mH!+0lj312JhlPT|%TcpjGL!}Q=D6=RI2vh2mM!E#A}#>@Q5Me`RIR{l@gUnV-v=s|gK<4Q{B)nG@aGG#~B|3uvZA zOriy;5U(S|tff*>#-vxTkVZe1S5wq3`K;6?s(rWRKI>2Z4N#?ewA~Jiw8~M0)<)%sX&_+rh$E0pdj_)g^4oOv_t~=DGW1H zD1lT`UJBEU6iOgr2v7pk0+`}1Z*8q?!bU_RUR_=vSzEcF=9z~MxpW|oA=N#nuFCou# zS>!9CoMVNkFtSh2cv=1Dgx_a_pPpxtxMhAnD&7|VG;UvgW`HQt@BAu$Y8mo&_`B&# z4M^SWuci@xx~G~he!mU=YauUj%lsdxJUjdw1^!oseVJMD{}u9f_}l0q2PFAC1mUOW z64J##%Lab~Ef@l!B5YfN!&7j5<$Vv|Az$rDhXWVR{W1cp6Rm0pUu~E zfdfL0+CM!Pk}m!R8~pUlj>IkVY6tw~Gq~aFc$WBU#ecN}{te=z09vp9^z-*oM7 zvawHd0a4l}sm|1tuKmrzzB>P+DW$Y4^AjEH_Xzv)eb5qv)&3aBGhLSc zmn|OJtrCLN{?5low#OVncWOV|Z1A^1M&g!vv6#PF=Z{qvas%>vD#Bb!`?(bIcKBBa z{C*)w_~|%Z{QGS1S3+Lmmifb&)Y;X4lfWZ@*opS|y9>aKbe*uz&r~i@0I=zHb2|)&CCjuP%ZAfDk1A7vhsH{x@v!PlLR~Epz(SP22W!F*huKr-7fP z`u`lrGhLScyP}Ot7($TnQ!KRNe*=>mvM;7ff*ZfN^Lc*wo<*;04l;M@|A%eLzZNQG zxn=%sObSU?hQ*F&Hn(5Sv&3JCUlP6ndAss&ZsQzXf|1H!gpZUTDt=|o>ls{}vcFUBWb{2m+pjgXhPWp0eO_kWv%|E>6o zAr8~?RHk+duG zZ#&rcQe`2@cE-_{N;f2$^-kE{?0{r#+{a$at@6XT6^WrBxku(0P5jT~F=Va(fMD+V@$uqLb z)BYxT#K$oDdl@*{Z^j2N4=!13tbc>PXcIF3W5jRD#xGOn93+uY{07a4J-O9|CD}66P>KzOPu(*?!7zdXBr+Obiu9k1s|rm zqubqaCHR0yi*4-&Im3P191y~tzwmY8G~Bt)M?co?o|5S^_LlfqH=+YCE^5Z!cE&}= z_~q%ad4vN7IY&4Yhh7|#aR)K}i|2GPm-LXau_eA%`m+Mk8$ctghWVQOb@cvBpB@=u z#Mk*e%-(i-$$Q8Z1<&h`lMY68Z#l`=zf+HlGU5@R$A~ZSW%p$p&;85jjQDf|*9)Q@}(TyWYk}WbJ z6n}y)b8CBt9rTS}avbWmDeS636APQKGseDCLUB}Qyy#%4b5>?B9?A5^ zp3P*JZ0jgdH~pv*;rUj^E^CCjlYtTB54g6@t9`jfX9N9-_;N#?rA>y}?#l(TzRx8) zMKE?`z}<1}FgUI43HIVScgF$5uigrf+-IVDeGoEVMi zth*o-k9tG#yQw7@@rPJblh~;v81dGFhW@q)w|#X|Zp@Pq7hRNscl=gzEx5B4g{+hm zD$(NP<&^j>XNRj_B>be8vUL*F= zKr}}(8lAIp?+LCDa4!b7=bn7B2D|@r3};b(q!4bM9NdOzyFZ;<7>w z^Dl<^SJ6_^kLJ?ViH4L;>z@nE$tJ~H|Am8SgsK&g!{%!Y(vYp6m>DNpKOKwKPpwmw z>6lu7*!-uAokMg0=J?+Kf}Lb|Lx0$CNP6D$@cGx2c_%cJ#a3^9~OT^d5k%WZz)(VZ(KY=pSn)F~*T#>(J=>V?*imHYV-pt^ z|5z`?DwyR;GaWn;jAG5QCuh*qP}|;xb&lcMOmoV?S42x!RT%4cZ$jt3DtLA9n&6j$ zmDlXz3tFXE?)D3?-0t<#pIq?v(o2mDbC+!7vXl3n+;4Sc;i$Zl^3akP;joZIeW!@axx zCqw}9#E{?n4N&?nc2dKI*&N#4&MR-5Z$kpcom~G=B{{|#q*}=BYamR=+$;NL9*-E` z7-6-aY|pm!i2@I}9?H=1!x8i@ok#Rjo;^#yJ7eTeCTqXT$i8K=_I}35gOjvxxJLI( z(ssE{`O9SO4cExOPSUnyo&EA8?WL>^3|c+IJ)LK3-^$M3aJKf_?1G=2quq1Dgn#<9 ze~&oj&9n6Q$Uj1J&!|xc&eA$YXZ`6c?WNHt-g}Pr%`w?`oTL3_Ou=`~)$Vdnc;jsC zCvKWf#m0`m+o$awo89Hp-W^-;gR`~m<0ia+mezlw=Y_MipP!Wd{Mp*yPAWKfj`q;_ z2|qhq+cmxo7z+`?Qx%J!Q{X`g^B-LDQZ&&GpMk z+Wym4YT6SMM{S;@{e5EAPbO(UJ$>YhleB-Ho_%1FcKaD4e>X|{`5B|1o}|5e#wpKF z)*d)>n^Zjd{x%{k!z&B;&b0 z88k!YQ=!;ieL-j5)KKimq2|e~Bz%^oARJ6j3#q1YZzDE8VR8Bq;D zGO>vmiao2BnR&jDd9^Pa+N0m=`>9;7qB8{fP#20@qptKv@XFv7iw*N*V=wlKfunOx z6CBaRkFl-2cP^?Dj}*@}^vDTD{3{g#-vG<`Ym znZi(HI4qS6XQqtKiNlT9E|@DB&h3>9CxfB*P28Z2sLY@Y@^%J4+w!nN!gjJ;YIzuH z+wxFJ(PC1{Go%Ak4N6CfT&b)6xkbEA$`ew9T+bwq%5NjL*!)8{zR(|z&#fpc+}AQZ zY%Z)QGxwSM#9f3~Pma6&S5O`MSdX3%JB+gjaaM+n=Tiw#)EDloEDFVTp;hiIoAM%B zq_=N)Y2bMrObB!v`k}Qm`>qeiE6e5eNN?=pj7SdYTiU-PJ6auvv8i)&iFHKZ!mzm? zN3C;1g*(^Hrv2@c!4yGjxhY4B1p0S)B3We}zloenRJReo(u3_#!@M#lY|i!4)saTc zKEt&z*Dx3Q4RdFp`>I_=d~Oabfb-DWO?__)&+^PL|764`81dQO!1Dt=G+xf79kdFg za7W84g4&?bxwxu#BUA+5?0pN_6RbqVRUUWyD>yac z#qby1CMZUEOMKbk&Xyv&hrlPe!Tw=-boh2WMWOYL48`+}*lR~HvmFRLFF6d{V+c*z z&CRVtV4AWw=-x7H6PgSHnU2*TZpXxnjc~lBoUnv-1hy8~EG{V1-wT^H{;-Zhe5E49 zZrGS~6Q}S94bdLMJ^Mo={&~YJ?9a%KoYh~9Ha7x>ij3F}y)V;<&o2+@&lu)>PuRQ` zF8qp@N`AUww)jgo%<=)o+a~Uk?aonxD~KN$aTj9L3Uv0t7YBOeB$4%&KAN{FiT6Er ziBXf|3+f{`Wc~?5424%f2N=GvZ^N<1`wh2>$mny0;|;D{e6r*1t}f_`9Uh35vLef^ zPj;eAQR3O#yN2BxFH9~gZx=wbPTxLr(kq1Gxvnd--pZ>aQn5y4EshI z2pUrkh2lm|;3Z?q4#U0hzcIcWQ{Fc^-n{W-T9To-hWW37@+zb7pu6K$a$Ltt?%RKX zgRr^G=MSTm@!OqrZ!R(SjD0+zWgLy+aIhzg<~X*@e6Me+(Rr=Mi2d_WassfMdJ6XJ zpV1Ao0U9tM=P-WU>l@|Xf(HJ&9P)#EGAC+SdU^CnRv33Eao2+33!D950mN_|fH1@} z9^%O5Ya%aqQ{i8t=ax-*y{u#4M%)_|qPRu+5s4Naj*bZJox>i2=yR0@-VC$$UZ7MM z{LQVi8>vF67{%cZHOcWb+_|PGQHgttD~KmvT(v1Xl84?irhkVX^%&3fhV^%-ABH-w z(ECOj@x|rnkA|T?hyI92vKU@jjBYUBy9trzIjAUgZ@D!1f7p8$__(TSe|#p>M}U$^ zc?Nk+Ly&|*N%~Bn!lX%>Gwp^h5xiK%2VM{> z2&4~aK~X@IUO??tz=nua9;Jwo|M$Dk-ZN{?oKsT3`_un*eR8t*`R=vXUVH85dCXb6 zw)lGvi9Ge%{DCp2T784CU&Ru8b~)TibcdsfRTd_T+NggwQ!-~8&#A?pR?xEc)UvCh zJ`lSg^7a-K+#8!48MuiN>wY{#Q|}|N554^dtLQ0IggS2+I*QPS?MGWhTO(I*LBH#b z_#cg2{V1l(t0F~PAh;Nf5ZgD>xCIG3RXYVSLDPQfb%99y{lwh*b-6u9tjiAe^HL1k z&hp^IacHYtoZ*Ql9`IX3eTyu&)f+ z5IZDz-OG?t8Q)Rq+flw|Tr|Fuwv3kjF}V6&Z27?w>N+G^wmsOFhliR^MNGQNWm)c;ia zKhkqx)W73V&hR^v^WP?2owcZrnbK+-TDqE+&2Pec7w!1u$bv3>UekAy`Y3ACvMI5) z&MDmuZBx{T&3si$BKS3Yb!cf*V*@@i5b9_SH8;c>T0`oymM4esA&2Ist`NWC5^C<~ z3N0$HISJpD4B4N82(@&FVjUf!?lyd8W?$c;j@F)7OGo?3p_cYWd`S%QTBtz?pW(7U zG8Q`V#MYL!me_)x7$kMHH}P|=b1sWDb?>|Ps?7U1w3w%r*jw%AHFmVNHgtA3E!#I` zTUbTd_EL-sMV%({0pVKiTtO!M0QL_|{b2br&uw74a~XaIoai4!z2ZHE49pQ zlre_!Oqu05VJR}}c6W(k-$7cI|1+uvexrLKa8p0Ek%JOYr93CpH|EB`O<7s zPNp@fG}h7hjCdoNmh}hPn_Dg(1zd?i=ABhyr5c;9Qf$7c#?I8(GKA*)=={BxM_X0q z)XKIBoZxqFtlEWc_?(k#*1 z72nZ1oTNkcy8<2mB*No#ob$!;I(`De6LtI~gjAX3@OM7bbbKa4zQ{qGug{#UR_S=P4kHNX;n)*h3PX+Y{dL62vz7+2TR$!7(;DYPD@oNFuXNzk zHGZB0pQQ2I95`hL)YX=hZpQ;I`q=zz@k|P+)_23%6EZ1~=CvV}9?19-h@BQl^Lilp z*>f@}kmi*jl^#g*J|J=SvP=s2CS`&^0_tt}%%p&iy)cskKK95=3i#MNGbxbqi!_@j zV1Ae_vivt*YU5n#q?gfDZusNq2M36D=bA}chxx#b|9XIK_!m6*??aQj@eiR~H~dbF z3pYFr{(NBv^IO2{J>(YVPu%|p*!9_8kG=>KUCd>SS?w{okokh$TVm?+)wcRb|$ z5B4K&{GY|m5;wdJ3yB;4nui^@cDwPP=fVG=N4@U!kna`VN!@dhwb8y2mCiRK=#Q8yL$6vm5`J9{BUv#7y!Rv>_k=2q_0 z9{iv8(C2#|^Af*R<0hZo&JF)P#-kfP=rOEG%ARA z4Gx1}L=Z%LG7f`3KoEpssrKgT1pgk@5%TBbF#Kcn_=CF2r7*kxPC4u| zMhNNX8Dl zZXw++_!r>Z$azfQ)dJ@`LL}CADh|WHL*VrSe?#D$`wjmr%!ee(smEdPgvO1YYjpn4 z3;yMT|EB_%{oz>;e7nYt{Y|_4*@1^q2I(z$bLJ46#_Z!V|K*)-Y5oom{;LFj40w$_za->XS_Xq}3w~a+8~#Co z*9-hHjT<|d{_|@G9!4J0?*uOG@S2DGw*@Zy&)+rf>_6kMu9285`_F*_m;L8*jT`%` z%=mYm;LpdovBNzAXImNk5rNBb_iG`aYiTJC(sP2p73W6II|7&T55c-aV!fpNLXA^@ zDgQ*l--a|Jze?aI3jA7uOZj|#n#6La;4pH2rg7)^de(u5k%#n(kQ2qZk+Uz>JCd{i z9OA&kip%FaO5@Z=j<4eczwB4@G;Z3LuU3)H5pt?=ZuGgp!EbKtw0ZDfA#gdqz98ht z@%1giFUQwI0_006UJqWQ&&3)y z{lwVk3I`t6@~;)Rw8NJ?(bC1RuoPopi|A!rT7-^(ugdEv_-W2@jg3rh?m&!~g z9>zh+o?wTxgX}*OHBNqMx9J+E9c2Hh5OQSyu^jwno;lltf4RVA|G7%Yk^Sehf?xKZ zbpo%4uBLr|sBvQlW1j~dco=y|j|yDc;aLy)zZbadKQC(B*?;~b_+|fjSKzY$H0^Ke zW$bUC!Kb#y*^Y7__)USIfHY%=`vhJi@Mi_yEbx7EZ~~%y$)7Lq6Om@*Hws+xw+VcT z;QyM&*)FpGf5(A`kxu%NkQ2qZDficcU-tk1ao}MJ0SyT`vj4v>_+`5vtZ#AB4)Xf_ zSb^6g&FC{zf?w)$nc!~|{I>{Pw%1PuF30I+fqz2C z*)8yTfg1+|PWuNZf(hib|3MljzqJ1m0+;rm>VeM{cs*npd!8EDQCOD zrJNlCmvYAG=g+LKlyi*0rJTtEmvUxl+}RH+9C#SzkfH+rG|u(#^qnu{*8?~Gr&I9D zb?tHo9!4HgzrdyZFM7!Tmf)B2?{VN^CEe%yslcWDCp_f;THtaV{a)kFarC0#FF~2c z4u2K6Y?pTgF5889No?N^97fI}f*>b;qYW$kLc|UK?E*he;F|^BAn+XmFA(_O1zs<3 z^L`rjk@~Ygk(~YNP#aF-VSUcEojhndA)P8z-7CbCxgy*;huyGT!?}XwEVt8!6<&n6X_wClyinlF^}dyI8U@}e@MQweLY(B}H}xXUF=EOM zAxYGGq41Hfxu0aa?ZtJ^vKo;#Lp18v75oe zn$P4jatto{7iwMxlD}BsAswfjlLRj7E9Ha*|M`Mn*4L~BB3ar08~{c?S>Lk-qe-Ve zvRuh;_5jQ#`74ARS>HJV59v7NPZxNhz*BD%rM|gM{!a;hX`fRC9@cU4PZPMbPnp1L z1^+C8FA;dT!0QD*L*Od}9u|0~z>Us?Rtntg!8D`->hINF<{cX{O8c9=E^)n0R`a&m z^AI<7=DK0l2;ye{%y~YWfTqiJNdA2ch_GMB4ZnGR{6&qEpJ|57JVxB?wU}n!!y&G3 zg%b9ypaDR{_g69d-^~Kg5%}E#*SDrr>dyskY{i5>3w)xGqYA`1%RNBg2N3`8Jl%HHbv4CSbah-> zB}A5_esl)q@H0#g{buwux2l{|VofV!aQOUDf3#NC(+-u4&@_+j+9|bAZSNfDPJ^ZG zI%-K%;dFj!Lw8GK9a12xuCb%7t)o2>U0PCAMIYPBEOo6-?aN~;>eNqC?ffOv`NL85 zlh%qAJ?$5jwl#FBh@D)POr52F-uYonTh_gzQOluPZu~! z>r;s|J35R0C_lMX8l_1$75d0h;YjU8Wiz&WSpFu-9cY&!VYyRaJ{h z>sl6;6xW(x_ILZ1bGF8;tmffv-<0KD9X*}CvKIx|mCY3%IuHFtD2wfivjV}gg~ z?U%N3Nj0m?hthZ!?18ThG*z{=)y{8J@;-_e`I!x!P;pt6l9kr^v|TYf)Zq&Ub&V@v zh(>G?u*P59)70MB=#XSu__jowmHk#fb8AGQrdyf52#&V%g0uSvd*Pw zmga_*)~Xg?U0vhKhPtIq%Ujy(8XIDbD>Q=PrO&7Eiw1QK%a-9Y2+PxISEoLZ0JhfF zy5u(8*WB3J(cR>$JG1@L76@6`)ZNq8r1LecsB7joM|@pP?F^lRV*2WN8+8e}D*hTFW zs}?S*OEZqCM`x@1l!Fdb2E%p0=p9{=#wrkJ_4Hb+8EA0{CZUD%7nN}unpyWzE7q`x z!e+Q@TQU<9XTvge9b|t@#$9_`*|HAU#h&%*Fimu+s+d`Grafz7MZzDa*W{?I!elCH zF{+73?+YtRVCZQg_w+_we^g~kYq2%+(0&G|lI0!~34|>^>+}*_=QOTd*|4v=2aY<}yZJ3hkCCLW-ccAI_T4I;gT~eHptJvJN`|#nNxXG$-1*Qo(Q9n$$UEbUThrX?t2 zc`%9co+~l_PKVEwoU}yWd|#_?PS%2f_b|=9XmiiW4IPPQZF9yH76vv!l;ginKkML2z_tB=e8&vumWtp5|puVgtYutPuCAA}4N z%cqT<_4m^M=PvrsMSi1qG92r!f3Ch+yaah9IrSfbAUFNjQDM-a`fuyc=LMtHf18W` ze4dxoTg$x@fSdh0wf-%d&je2Wzu}?(3O@7$4XXdP{_G2*)&E5o{rUXTsXu=o=cfO5 zt$)2P-vmzmk3oJV)6stl^~1VtIwPBd&p}43|4tYE`P|g0|KlG0C#(nP#kzbGIQ8f6 z65aIo>4#TRe?EU1t^R*^(Vx#Fo%&yZ$VFRMyXn78>u>3Nv_GHk zj8^~b6YPxab0p@UgTtx+l^*?Pr`BJafg%(+^}o!c|Ah2I-Flsm1KZ}^#? z&ug9f{}GddoBc!lkqPJxJ4pU_>hCrG9pO?wp9?$7UycWIuI2M(36OlI$n(*bU*J-H zIr2Np-ww>J{9;}HY@|yXZTTm-lpls5XZe%&b1%PBmoML~pdOR*LL*-iiAqwRvtccSdGO#Q>i@1}qD*>;X%oss&Vgk!Y&ce?1$ z@#ED0WGL^Ze`g5HAoKk+`z%xc8OZFWf2r2r(iy4$R2)wITXB8D@|h;-&;t96-))m* zPEF`F{x5f_Ki>~?*8lljyZkK2{Il*@yHx5e$>?ve-ypwR{d;x&*J?(};d@Xf{|C)q zYh3hSg8WYX`8yrj!l}QSY=DPwNP@a)bRzP*>7UEOK=tasJ^uNg)oAs<*+u^|kl(5Q zkM#I)>L21{38LL3IrYEWWBhb#{nzTul*92mTK#X+`Wt@cXOlYhU+rQ4PObl3d(wbFm+%WM}!$dz3$@%QyYZ=-@2>Hy-V;URFaUOJ`*L%W)Wc7`a~h-|M3Pr;*>O z|5RKQxb@#{TK`_;kz~p@*onxmWID#L#h2|s=DjoOUx~xy{~-MbUD}^Zic|ky5B=+p z12brj9VGud?eAs3tuFTCmcm*7uRO}XTbFO@X%ujl{|gWM-Oa`V$@Y)n+-bkxjI-OX zSaGNRZPn##G06nBHOYj(($^0*n);t#n2O7o$!D-v?fqM)qxpS>I{z)WzLRA1HyEAW z8=D%8;cl(Cc^{DdhwrnS{Kl@gBYz+|(t)I297zi4`)}r5N9HFv_5c2a%zIzt+os#U zmoFTGnC}xfoaL+6rlxe96w*{OW9GCOGs?C>hv-uiv7s*29d@~1TN`%cZ!k7aLN#{V{jRS?Fv6#PDTo~xyAB)AxZyQ_MHE3APr zyP^ZrQ?6#>0r<{{!_&&^JDAhjQlV;Kd&j$AQ_7VEe3w{>ob}YkDhpnExN@-7bx@)@ zJ8^n;+1A6JF59XSgL5}-3Lf1{VJY82a8q+ByywAB^^3qG@ez2Ky8m!Qe?mT0a-{F7 z?5yB51R{y?H3OICKESfzU*|zG(of64L4{UgLSf{T2?aeB!-uQ|9~{#jo`z3OL<_Ua zPl*;}({=HJdN`nP zaL>UgE)xH3GRGH&kE8FF+^k^ky#0a`EgVWCEirh_#c+|JoB>g0O}qo1Xw%#as`66y zu&(~|64Wjdf7Xh>k(d+o&kZK#9O$1553NtY<5KX)a}I4Tn|o;2l=9$@s}E}~t2nG{ z>h%@-m!Dj{f6vV5Kw}P^-{q8FKc=Ak5F)<&ISbg`CsBiH#kaCr1GC$hX!&0Y-gnSDyEgh`6X2fs z9k^**{7yF9CO!3vH8A}h`kgVZ$82H9OJ`qF9+#&`-)2AhkTrSwkV)Mme_~N~baKH^ z#Q%&MST8GinK^ zdAD1lJKH-EjXJ$xkIA#VQ)$;+Q+>O^Q*E8=+SYKMCf%3qaSUg)wX>PE2W?05CR_dL z&72OC9)#d`+jvkr&w^{!kTTsc7PC!5H?q+Ye!&h^rwp$C3eUi4cg&%LX8M^Oniz@{w;Oaudle?*o9s2_OI%~DgkEN>U+use zv(ZXi_oRYvQZsfDyuj@aSoh!c9hXNf*$jrSc#hY6W4Qc-}9_)XUR@XwE`u|(_SJznoRR^gAbMLVK64<=Y0@E=z|yv zQ4P-p0J;``KzeEL$4LPk3JJ7P=MKyNJ1hQ@ak{8%XihA+!{lZcrNSL%{1GeuCuQhx z@S(Si``~2A-490b)mzxSde~u5+c^vud{>wLw?BK=zP>MJW&dSg-xFDnXYJb0w{GmA zPwne_f82hL?dyAJeD;QYeQ%Bby#L1id^hiN=w18z?%L;mTr()Y*H0nxRN(Oc7=zEZ zR{rn%z0T$c0O1lrks3sZnP(bUN)_Q2nxaE>c$f~2??>$$8XgQI^e4CFx?as-TxLfH zuF6B4dmng;USfMCUZKotJoM?Nvi*BvUQKya*0K=TavxOXuBxWY^o?zu18U-P`f-%2TtGA_m1yXDy&u^nK2cQ&s7oIRW<5cIo_^t<#^T@ zuB!J|jen$lb)OcVt4D8N*j3pVc7}c7FL=*Q=~fgirQ6fCZ@RDSJ=j;f&d#v!hfrgW zzOT<6QaZ|id*n~nGL`S&zOw)AD;ulQzkOw&SAKr^1?6?;|Jzr#JxgFioTulDfBVY* zzvV0Y-@cx0m(&0D^^6OPfBSm=U-VTyYG2R$q`OUS>ZS+hIcHX%99q^w&&~L0XsE3t z*3#Uq+&9NoG=<>&xhZsEPkSR>HHR);(bC!!(!VsvJMGC7cw`RYD;H@FqFu!|wBu)Z z4N4e)oYu4VC7q0oYp>kA?jhc(({}P^H^_^%*G?WWp%>pj3hy1I;D1zoMq9qIj|sih zHhOxc8{GJ=Hle|tq51hosr>#!>enurKX$?IcAP(BbISZ@J~#FK@W0O(W$pgKzN8P* zYB>Ec7Xa6<+4(BS1An;XwjbuejajQ0Q+{)K-vPIe6cy=^=Sy^aKP)w)@Du%(n@?a< z{%HJMH{n_R7?zpole#)*ZMvW9;8?fP%E4y819lK~2C2KW2wBHMjp%r}YneiVt=o0`wOKfDZBtH%D({<5FZl6uM;rN8VjvN_scz! zd%T>7i1WKqyw}S(@AdM%5XLzd@U>aS`T8ltNjhXd;`y;U4j1hGs`&Opxy^n47{7eccPw;LyM?xkAlvj8+oFgQY0=^j;;GG!YZq_^# z6M-B4B0&1yuGNyv9)j=X5bxEv+D9P14f3V0ZjL_^eQ&to&th^R-pL6G#I>6AB=jM^ zmJWGzY{{-w=q}*LmQ64?B4IGJn%U z|5gt?4*AlD_Z!fgv_IM)L&a(MJ22n6={eg2&-TFi+kQ7W1z36~C0C2ow~9|Zn7F02 zPT@}}{PZL~N5`JUhI5kmnsb%LuT?mAem0qUjrVBBJ|%y?VNb4C#Yzr$lQtQ<9po{e ze8!_cd>8X`zSxJfXn6;y{)x# zFhS6#HBR}&^9X|4G*0=PD~$XBA%}g?@SAS|n{rnmjdZ(%Kdexn?>j>NTwq52J%XPy zjLm=F+az2T9k3{_?K3U^N&iRT9*LoiOX9=9wfJV=AJ>;wq{Ic9N z0+(_IJmh>u@Jl&&3cOV4bC-vl^@3l@c|_n+&f^|(o)!F3&L0IX&{#pYu7%@Q2lz&(|k#+0VbOaR##79|*h}X-3bVXq@)p-Xt3b=^??-`xS=&X9DLn zjlqXB?$q;d0+;g!zo|lExpLk(80!Uz$#UM9p>ZSM*sa`w8@tVO;9&{{Efn(Qym7AJ zm-f6?M9`Bm2)+1unlTeW$Jc)demTDWQ{ZxZ8DH_bU$E)b|bt9%f}h-xav5?-&VjtC8Q-_gRfQ>uY?; zQ;w|fkdPzm`&WU>`ks(YZS8#zw>+lYPYIk$tHDnfILkJ8oxnNt4gQYC$t&lL_chLX zao=TVzkTeOlm7&P%lWfJ<4!rJ3VvB`gTSSnW)C^tf?vwHM&NSZyUs(-&4ORbxkKPm z&N>e{KN9>>&Srs2IgfeB`HkS0a$Xd88JfbhB@^2Nm9FLrLNY44kj1hycu-TG#v^)lh<7Dgf&k6<+@-AT+Tl=8mGF= zIP|bh`kkU2IsYux{KVz_qq|8)y>Qz@k$P0) z%X-BGF58RsAvx>yuhI{_+Ur8QS{e5ISMQ%oM7?A?HVIsg_kZ<%+ac;D>wCGtWqtMb zNA+hpz7Fx==QRb1<4(>Sdn<=?JIN{MI2+FBhn)iFy*slWeNNz01TKAKen#NtT_Bdb zO5oh%k%&uvQ!nD2TTHnj#7V@b<1o1FZ*u)L^FQaG#W)Nt*AdE*>u;aH<@&f@;0q8p zR|BS34DgYM+7eAOCOn%U;4bjQ-L` z=4Ar^CgLRWuf$>apCSk%egzJL=L-3<|4Sd45^odyQXlE_QkE-yUP@g0yqqlcL7c>5 z8dc2xm#5>z&k%S>;ASl*R4Q;OCoJ$b9cN$(yj9@!0+({k`b>R#1iu-N#A5%R_zE3(Sf3XQoaLJONV^daYd#Yi{SCjR z(+zI;r2h4qhk?Uf^LJC;vqPm-?8so5}T>hx{f^$kc;)Hvvtu z9lH#OP}b`Lfy;WCJsXolnuqd@%?ZhRNjYIAg2->yES}4HwG+@J^)Y)nCP{r#PyN#M znQ4R|l=?_HVa-E*F4l1dQXgY0k*xIR9B%Z>)`^s3_85drI`Mh}nk2tjBbX%lPdCg6 zWqr*x2$Mtn2crBiBbo|zNPLa~5f%&F)RB<1Pek)D2jhpe@D&1|FYr!*R|3vM5&Kgdo43e2&MfS1Rm1yEQGuUFl6jta8rNI zEhK~Ysx!O?s6*}tF4u7en|0jqoA;!i&^Y-g=s1HsRtRMH&4uU*4&1y~6?Wj}{VcQ2 z8u?~!>J{7*RezpK;Cb2{pCgy0Wde$=A+3+k3PH7;vdx|r^FO6Td{E|ttMzhbKG zXlaL6Ab2hNw}01k7crT?n)#RT@47b*H)k}r!hx3UP}2C7g&U$Mu>Swu8|;d9I4v{3 z;~J$QZSS&9Po;a6`C}<@RQ{|!wCh^9!E$#4yJzQU?&XalPns{X#cA#G5q?jY=_l7& ztB+N4^^w-@s{f}xlhd}d z(~Q6O1?^36`Ci)ykBsRqmbFi1`#Z<IORJv)tYIc<*ihFXNcl;gJ|MouP(o#nh_H(gyUxnbl40 z9dJ*aVky}JOY+JWf@Ibd4yUz7q`eX){UHDEI6xlNFq#G@;c#`F>Hz7kh#Tpl)#>Wg zeA24bFkgr{vmbLBPzM|w5x~>VA9iVh85h#56mL-jB1>^W=SeCic&_o zIZz&vlXFYqQEH}7;EyQK!!7W~D)s-Q zH{`MmkHs^SevTWvV^RL@R0|GwPC&Okc@Ury8b`jQmqek_GI^k+LqNSll%K z2+=$|UrmV)}LUBp%kW+xTEXkbI`1V5IXM2q&%O zOERFX`e6=#Gs0&D*#tr6*~ZCuc*FAbV-JT4^^07KD#03ZTg{E zm?wga{w5qjIr4dsVO=@Nj+tj*)c*_|rhF4_hT)X`92MBE%jY|rl1#Y

    {!mt@;Rj! zIe!G<+2rtC$W=CYd%x`PhlY`U2!(pM7R~3~5rkXPgMY5+^2zN*&-|zte%{s#ovVO< zgqX>Zcx&X#I9|YSR6aS6M$cA|GQx-?;ZRfJX)hxDp&sy?M`kbYoL=BJ9Y;LB?SW?} z;Mw^31e(wYp)!2RxT|IaIT?!E8(dCqg5^ORd=Ci75?_m!;z zw_ZzPJWaMHx&Gf2j2l!>tlSnY(3-Jxje>I|Fh-1e1oOm4zZjc`&jg^Tl)Dv?)mPxm_Pg+ zm(!DE|6pg3w?nTd%hr3Yo`Ndr99a)@=T(}_B$dnhLCZK=V&Myu{QK1(mVR|2UB@2W zj!r(3sQPXiYtjF-!y#JKP6X^=JgbCr|G{=Y z*Wf`q&S?g4Y~SlG_U{3H9pzVlmJ8?jyi5yS2Ds^Q&^HlL{c7NRb*lV3u*37f@2(X( z4*Er)Kdgf%;KRuK2-o)F7;)mC4CG|$hX9{T$JHPGe3;tNelia9SZ;|??)7xu;#3a$ zuV`QGUkx1RfxiJq`}Z66^|{sxi~a@R=R>)#1HSR= zKm6RAli3dk8a(K#9OpQ&gY(ZY&}09s60YsChs?kHo12`>_FZVxJ`1vT%;Wom_EAsi4Ps;{@P1Z}6|Jax&X%tigk> z%5nJlBq!EmyF@Ma&j*h4#%$s2Kh7IXpl_mMI$jn4$9dy!;5d#R29EvzIpNxWrbzr> z2R)9v_krX5z|Xrlsht^OXA9`jPG^}IxgGiLOzV{-T>JCC-C7^hQ{YX z;bwjL{+g5Wpu6WdYk^~Z-v|5X&%c0UeYXfV>-!_RC5 zgBGptNx)A8J_Gn7;Fk*L)i7H4xd5lDE&7{)V?SI59OJVJ_(-y=e!e4|S6uGXQtk(! z$NPn@+)$Kw^*Aj-S~%?`oU<|4>-pZoIX-y))z38Y;q{;&FM8!cI>xCG>`bM7_5W(% zIIrFb9OLkna9-j4%fAgCq~o00cab%%(EnuNoDHvI(+nQ;vOAez2d^KpL67~sT)4K& zA#(py2X?UkG#Pqr$N8Ygc6{8>FX-kux*GI&9oU|p4{%a{Hb_6|DxBLF{TX555#Z&N zN87O$?BB%&Nty!sGGeN~3iuM>w*a37{4U@)UY-Pw{bZeRt#4T3{~GAAzV84>`(FUZ z>!MCwy$Z7ZJH1W!wYzYRXNVT9Zy(_3=K$emKMWc?=vt@GH2}x{cBaLC1USyC)xz2T zmuZpH9Q`t&R}lN(M2q@=K5(2@p9lU3=y#I~U5)=X>2G@rXZsUCp8_21j5F-SOFI^W z9_?IY=noQo6X>zsAF%Lsz_Fjd1op9?zX^Km=U)NGe*P=)2Oti8{cS$*nUr7K_hG|+SBabZUtmdR`tu6dnG1H_Fzl$GAA%n1)m|R#uzj5W z_XdvF)x&}3LAe#czW~nfM{_dmca!;&`A@WH90m&K@rdV_Y=Z~sIHx?YgXfnD(Bt`~ z!QesHisMWNJ9vI+1pRBIl`uLF2-p7bwY1mcU}a|CxeHEad_EPI5gz#j%a9PA7uzDVMh2YS4&s{sBh*trlm z`v10J|3R_;A?We^xJ|e@jymr{g;7!-boU%*AK`5FAzHM)8KB2@8EkO1!|!i$VmmmF z3P6wTb)ImYA0Co=%>p}%$d>vu&(Q1qcAZ6kH*lQao&`HNzr6~2oZmhJj_tBVxY=)i zGkB2dz^TK&-kS9ohy8?e_0fJW;Mi~b2sisJe;$t$+i9Xj!tLSwQ>he<|oOZgYie{~0FFofm)|>_7Jd zp9}Vv8Fm`Q&MMHOo%O)c&Rd3^QCulXAA=t4d}Zj@NVz{-^xJ^XCc7G+#Qof2+;+!) zexz`Y5BBp6&|^Oz2^{<3$->QkKEdEY&kg5n;MiUlTI^o}{5rCs_4=!Dv!7oBdhF*n z1IK>;4A|lMxtqlKHPBu=$*qKWETHo&byN6pn@7hl|*BAZiC!FJt{)_`V=ueTsgI;k?IoLse zW`X{3(yIP4;if;ggB|qeS+Iltyk>B<{|?wef65Q=9OnAoON+*BiG>FbY}VsE@P>sS zbCAFORN%Q#ZX@syfZqcg^`8jWe*2q@qpv}a{k$E0E{+q|7su~z!qv_p9bK8z9rS4D z5a4L%INv@j^puq;e30@i`u^pINzcuUkY}9 z0RAZGId-al0`y-3e+Km2B&r`8pdCtVV>B(wp9s(nC6m7vaB*y&>?7^+PvNXzM2p(l z3>@2Ki*Rk<0b=KO(4(C$y~rpfwvTrB^Rb+mWBc|O&i1i=GeM8-I}SLuZy|7O-!kCX zzBLv;OSslo{~yad&|`gX0X~Q7pz&N}*vXT)Jpg*Nvl2MQ?H%A4x6i;n#_dbcW88K> zn4F`;@yEDz2aa(&064}i*}`juYuqAI-wQxLfy&nSJZb395&d%(eWyd%`{wihg`(eE zIM)m9k2ds8qCd@||C^zA3!|5ZE&9R9oUc%3jF^sj@R5`(LqaQ@jCV;;AsCf;p)#Qvc>5Gi~cj< zvq`7*{nD`Wi`456&||qB4|j`k`ytxdA9yj?&k)Xj-sxp^U-Lna_g~e(-v>MA3Fm%- z?R$yAgRXV@e;~lI9UrvV|2y#Opxmc~v;QyCk|6e91bq|e-vEyHUk9Xk8O?s4V(_5Y z?=Rf!=O=?6<1oSCYG)GI!G1m&^cbH-!nI$WmEbvaAK1bE@Q|U`ez?-2Uk4of&zpuF z?S~(L9?SgPG;_dQAe3 z`kBB{f4zm@1swfZAzb6LMdI@;=&}F23>@1l_b84+^L3`TN1yi=&hf!GPc`&MvICT6 zfF8@e0ytjhUu)RW&nqqhJ=$3b{BkN!+vORCtn zax|Vb;{Vyg+tXnzcM5Ry|9r!aj`v2;qn#zdF`i2eJK9g406p4y4>;QS$grdRoLP|%~DA;8g2$gnfYE6y1QdbD#UaBSaN!_I}$Ugv`z?aTy@ zcCG`C|&l$MJHlVMoXNBG99qdw^p*z6JaX3Zb4illnKu6UY0Z z!Zn`rr2q5sGIQE}OhJF736r7@XvNe*Qt5+P*>I>gN)P z^NFCx_?!m(d$2PB_~*bYf#dU*^MIrM>B7|?o!{nI^j8DN_Iksxqw)Cw^ceqdfS(2a zXJyb1C2n85FGwHc;@JBL`Z=5o;jCXyi^jQ1cxPgd(-NeGQyti0uFvHz2RjcDS3CEE zo%Nu9+~7ev#%VR!!T0I50$)ZtwV#;jW^?O{_v1Oj*?)X~c#^?`UUugUu!H_z2>RDa z+e7qC23I>*f}I7VRX=Y5{cFUN#Li2?wg2>FhbjF7>|lTU#?Wg!{s4Mx$HTKcdusnV z887L=x!uuz7I5sJLkv6mdHWHd|B7sBedhp2`&SrtbiCYR(Ju#%?Yr8rqn~eo3G`U* zo4~PNp906{LLH87j@zByru&*GoZ}XvMeBPQaP+gEaBf!YKgSz9NXI#y2ps!Kk;Q&F z@arhQ`ZHNLH}}i5$ZfQ99_X7uKLhx~z;6UT6Ziub{+w{_Z)2rDzYcnAmydztd2o|q zXS&$=5%g%M%Q55}C2kkAv!`(N=Nhqd5a`iPF>steYc2dD3%}CBZ?o_REPSPfzhdFt zk9EV~#$hIHYJccs;l}`<0s3JUev*ZsVd2@wdH!(NasD4^@SrDiP7}`Ucpfe4|3u;3 zjxW)o{ka147lVE(aO}?;f&U2lO~Ts|>j?ZS(0>X1N6>cwo_{>;P-6el{&?Z0{WC$2 z_RB$!_U{+2{kcaMw>al9u!H^i72r57-Z1P85<4G)9_{=L9PR9Rf>%D*x11JjuY-iM zpZJ{i5YU%_J_vjX@DafAIc))OoX^XJYkaPg@m>ddtk)I5v0nE8$9g>m_OV`1f*$Mj zE^w^Zzkp-Cz6OrY{y%KYy5Tm-VJ(;!&AVqUTX|H7fU?XgC6aC1|02tY1p|=?ED+_XeV*77dMU% z+UYJ_>$Obm^a4HF83Y{doCF-(>nyO3$!8*n^-9VFcJ=LmxbJ+saru!H^#6>j>I z3wreDWZ>veSh(rW*#=jC>cI~BbD?n4pP8UXfBp&_{kciF>CfE;SAUj+9rS0laMPc4 zphth+1djfE1bh^=iMDUApiad?@Q1U63TWY9O!zWRR_aO@8YfPVn` zHNZy$e-Zdez&`?>5By8uV}ZwU<5ALf?6RA;-&r`vc@Zt@|6agn13wTr`kx9M{mcX& z0Xsnp&$ICH7Cr?y_LB!J{2k$D|M{1}gXAlx?|@_f*?qWo-0Yuw0>}PykZ`mA90Gdm zKYf5>{}~S)>st-{Lvl^qaf*dsXyJDONBgUQqy2vfH{${|`s6~;;6^46)b= zfgbIQ1CDm8Eq0=yM>`h*M>{uJ_=CVP{u_jMruyP_&L;*Bdf{@m0LS@lw~?N}oL3Wp zDUVUMGJF zdW`3{1`oPc9OvI)2d|Sm@I^c&_6OtKUpU8&FByWn(+j2Jgme5C(V}r12mE*7#lTU2 z0q}CrUnZQ(y^9u2^FUulP|LjsIJV0pz-NK}Dd4k#zbIVmdzsYtEzqO?zXG2NcH9ps z(!Sc!_q+Gti(pD--2Nh5^{+{}$rgPsa4feNIL5OE>|;FZL67mg0yxI=Cg2#)JAh+6 z@3rtJfaCqtd%`&mce;`CUOodoUwUY}{{bB5nNEE3K#BV^j*EQ^9%K=vgMnlJ&l1k< zh4!<7<2*A;IQ#!HEeW)6Dgb>G?W_N%1IKx$5cnsce+W4GvmQ9M*GIz5IDBpJAeF)C z7vLC&J^AK`k{O5nfMXmE6K=+#59l!t{efc~GJ#_pCIH9lnaRL04l{tG{x;wk&n3dm zxIJR^(P(pYh)+ME6xcCH_IId z9NTe%aI+mJf*#v(mT=S0zZzWqydL;#;OBk9O+S|dM?Y5zH~oAD^yueHz_Gvm2ps#v z!3ACbxnApO(dSyJ1`m2N=NRGaKVIL4gtMP7(W3LiNYLYT*J;4f&l$o^f94rHNM&%k z5$vEpcMCWDxexT{&*Q++pS8kGe_l6u(DjCXuLta)KbwS`{(J>`^ye4g=ubR9B%);c zlW6dut8$!ug`4fwOStLJVW3BU`U6LQP7rSTGs58NPXXA$_!J5^{fU4c{iy_w{+tV( zFJW|^xfnRkKg)!3xqKb?=$`aK=`qmb=X1Ul&h>qqmLM&hegZqpbsQy*a}T@cmxpLm z{ply%jN9=B4|>_1VPIz}*f|gQGT>JL$ML=n?Bn(M8wS^MKL9)Ef4h@C$JqbZY0>(2 zHMrW@M>zLGygok|^smt|ozL@yYrE*@tWE&%Bi-$ci>-JbydFz|!MdyaA3@P6SC z;cOr87y5v{4D1XAz6AJq;1>cf23`sL3gOzm`hU-E0{sNgKLNZ3_~*dy0saecY{$W; zl86$=;R{+cZWjQ@d1Hle^|MPi&h0qQf*$+fo51IiPVK*A*oln`(4(Difa87EVW+vp zyZ+w~_9t2RWx~~e{r{NrK))R9tO1U3coR6rv%~40KRhmQ{@l~xK~Lr!Ae`fm^XIXk z$N4j4aJ7>Ub{3E=jq|CX$8k4JxW+-}&r87$#{YUluW`Et^cc6dfuo)G4LjQIn=SfZ zfwzeB8D0R@|JZyeoa2e*_5|KyJ_I{0=0ni8m=A%YKjp&B`LN#L+FsLuW4p|=*uNI| zbbw=pvAY6@NK+QIg^-@=y( zH|?yl=-&j6{=8$c^BL&TpPzuEonH+*qZ}_K6nSfo586orj@Jpv!ns}t(URt6cLsp| zZekkG@xr;k;d74?g9pXVIbi2Jurp0Kmy6FmW`G{=TjvAE{&Nr58Ai7Be&hkrz1pWo((Rd!hlL95SgYk(7H{&x2^cbI7;259F zE&MLv=;!^w@qYhl;HZDs!hf{zjwNn&TRn&GX7HdVbM^<0^VN~U+mjCc82}vTtK)@p zJYS|ILF^9!JJv1P5-Y0J^FtuaPu>GwGcRtyMGF2KUdJwgPozY$>2ek zI?fibgV%LQrJjK8;C<5p23I@D!a4qUU3V1du|JF!&T$w<%S&D8h0>{DXA$jddqsfH z0Y1sF^Rd{O0(!JF1Nd)XXD;yHf!_!m?c6F{{r^hJz0aaw4*WB)zY;js>lwrTH)8)a z(4#+}0mtVs-+&!_4)X)(@j1*M6UjMB?P*0lRe_zm)Hto{K#%om0*>{%7C6@H7T{Q~yDa4Lj+Yn2{_KTb;7y-;QVu;!Glu3rND8Xxz1w$R^WKvSt6YM$MgPD&^OUB z_5TUrI6uD)c7~Du1L+SRgC6_CR^Zql+=r@^pZ&r9(1AsixE(pG`g0&~><_(xV}D2o zj{V^n;o6^%=*p!zP7dhN|5Jd^C7t?nhGA#2*eM4++L;ENH`UH;u!C`E0zJmzcHkI? z`+;K|9s!PVSS4KJpr5OG0rcqqTfi|6n}PGD*6VxWX8UdhJ=QB}5@n{u?T+<2065kw z893G}Rd^?|!~OFDX_rjUW4%TKNB_rx9c-7=K#%^{0!RNZ0FM680*?M)Vd1w5?5GTV;s%~zJz?$em)sE#$g(8j6;)!UoTwavs&7B z5$LgAj{(PetpYn(uV+Dz^?D!p5~$Y~z_DK60mpj%V&Uy8$S5VPmtH?~6>hfsA;7U- zeZUUZD-HBmuMlvoR{?OW*Xh8qUS$?OMYz^$guL;55$LhKt^tnqx*616R*6VTL zSg&V+W4&Gmj`e!i!oLx&_39??BmW!pSg(Z2mhF4B#G#vTvwaT-j&bM3X5qEMH4fTu&j&rm;jh54Ue|#gtk=z;$9gRXj`dmv9P9NQaIDu` z7XCZ%kE!W&9&1L~ z+ZwlA;P~9T5jf5RR|;o;?via@@iQe(TrSQ7cevE!OK4lm?F4b=E~b1oaP;S1;Am$x zaGVET2mT<~-vIm*;2&A|7r?PUd?QPju+%IUAg@b`8tTliNNzFWK-o>p;7 zvGA~kUufa?Tlgy${+Weuv+#X6V3f?b^|kQf7XE>SZ?o|II{25{-@->)_(Ti8$ii>1 z@D&#RjfE$6^!I0H0*>?T{TBX;g^!jCXtRAQEPS?wFSPJSEc^uv|G>h3vG6YPT*~ynkA-*l znk9C>srLy78$2lc{ek0s=n&y%xg&t%eQ3ULp8j5@MW%g++msXAX`)5jH^Pt-bG)9H z>8F+d|7-Wrqh0S?`+o*-?6?1aX_rFqAKRr8IMz!pH{ABZ{btl`9Zrc&$AGgBYUfGeJno*A zZC?dbWPIr@ol`wsN@e0wwSlVRRNJKKO`y*jm{%#^rXtXHCN zvtHeSW4#UlJ6NwoD0eHBq4gaE{A=JdfukOu>!SWvDEA|!?Cqg~pX7g~6O zh2L-CuUPnJ7QW5G`$C*s_;2B13qQxg=UDiy7QUawPg^{zE&5w5{3#1R!QzjtzEdsw zD=i$~ufaI4wdgllxC8wV?Icl@O+Br{Uvlv?eo~@#QIxlQT_%)O3d;7HLfEk=9kih}kZ*C$5+e-P~Bc>Dx-7U+>@10N3hT;Lx9UqsuSxLzA+(R%SUJSXP=rbT%Y*ui#> zSa>CH^k)L_jbMMCh2I`eB1-H}DJ|-cJl1mg0^oRE{VMS!S~%hT>ECEy?G(93z4zj`rsX=YEU!uLV8!+r_}q{)ZO+Iq>UfTmAeNIL7}s z;HbyzAJlh&c3~gXK3@M%1I{)%aeR1AR{h%yDKW?K^`lEYj^hIT!Ev!W`11+nRr`Bc zIF384*CC+CdS!z@*w3#5UIOK=0lpPD`^Kp~E&Sf7`k4UbZUlZ5aMYhm8cuBIBU;qX z#SAHNzZyo%*lxV%IM@#-(Z1^c>K^spr{=j%$Hg_m+0HYv&8r(^oB7$Y&8ypGoBhG- zpGSaiq-`zN7KhGIUyO5a;3Z&Z0Ps(N9}67YcLr%Vv7Z}hQGc+1)&TDbcF>>WEc`U! z=;tKhXr~r9`Z=F`;KY7n`|_N|iQ|v$yO1Fz)?@qL<A*2=7XZgNUkV)i!+hWv=N{lE&#~%%I`ECavw>qj znF{<4&|eQ6{l5)3`m+)^-)pNs$>2Y7k-ML7d4+a#{3gf&&bCfPaGd#C3tt0V9y2<=?TGS7$*9zcTZ`Lyp(!xpe zshyxpo8!cMr7&Kh{xaYJ*=BtsaIEi2;6d4D{RZGz-+uttP1f7m@kJHU8tc0fIL2o+ zaMUjZj`h`hB0d}t4f}J2Z1XBbwwdd>k5L+M?emNt89^@BFY)8*QypQp@mVu;v zS+o9Xg|r?I{AS>Vz^?>e2K*-AHNf@U$EX4Ljk1j^_Q%##)K1W)E#si~+NS;@ z(ef%F+iYjLZ1W21i*|ydVf|aO%`2?$o4|FG^|p3=UPZLV`eL~lpC>K)^MGS~^jeM& z2SmgE)XFxmQe>NXoow?eO}3dwWt&$RAH6qW9^@BFtUt%y@?J1LJ3H3z4_ndxEY zQP3YKj906KtG;~)ImiW4(t6Dw>+SC@T=n^)A8Y8BMm+tQhQ6kw#}}LWDvxgg-qSR{=i)_)Wq!{$;y)2le{}>}Ma)CrkSo1AzAszu5jj;Dx|5fJcE30=@yb&ar$r zDZvx5{VZ?OeGLIW8u&@VHEuVG-36dO2K2WY`i-LB1o~q^pR&8R!~PrxJYBe!`-9ji z1pV=#FE{i7DQ_X@PXPUwz=OblH0%_Low4i)CH6Dh-SS?}6s~?Yh<-8X2ZR0rLqA{i zNu50r+aCh@{e-Li#iGv#{ZP=~2s{V)rnupE#=R1^E^cky6LBl!UW{84_d?v$ajWB= zihDk8RoruNPsS~cdp7QwxVz$dIN{SqrKjf?6`vg`$*!#}nwp+g5-BaOiVQA~*5yo{ z>QqK5i)*H`EMs`2s=6}LZ&0YHs-z-PP*zkMDH$25tgfA!(@-3#iI!Ja<%}88FWvVD zn@Ar}S{JR26jhFi6qO7vpEzbzL9~B3oSr^lLQ!3LakyL#=N6ADAX-c%grl`Zn>%s@`s<3aUBOI6ZB2O{A*8^*l#i?&ps{Hd0ZP8jUnWQ>h9qo4>TYB4Rg@RbNF;s2RgTvm4ZeRvXk6jW%pyw0U5p4=k^$ zi_}I7BIndcs){3Ztvnyms{T7yaDVD;ULeI%zw|ISJq;bNA5z#WE32z=^CqO{q%YSrW~wY{z3ODpQ@%KY+`Z$Do&Qc*FnWrW&P!|M8IxVki4TU0eM(y|^j3DxFS zl~(6f7nQU;k~Yzu4x10OYTWI1?yS19>M4~)Ra1*w_!}Ej851K>nmD|JJ7;=8-P9`1 zxa-5l-$Hs?eo<{vWrXIWx}p7A6_7rl`EWsXMYW$KqgmpeO+qN9N+n;mY?6D?oTN`E6 zMXI8;Q-`K&f6t_INw~PEF4~OJ`{6v+%=ro;gU_)Q5rJbTr-iHf4G0^jiXC*5SlR9+ zN!z-Xm&a1x4!W3cd2PtkqJx=5x4N+Ky^?a{)WVL2YFG1{e#l7XkW-i4-mKmF{A%~^ zPg|vK+2U$cEZd`wylq(X`kMSe&yw{l(&OE;#*!D^0ep=X3=fz7hHA= zJ3HC0tobF>+n;%cw#sf+<4<*qu>7t+? z-53>QhRes`fMkE=Qj<l>&QA%7is_n^Zb7{pFUz%~ zZ~qz_9-GD;Y*09VM8SZt>wL?*o6KzQ2A-qmxn1C=|q<%w)6J+H_NhovqUl;&~0 z-HXYLhB~?hsG^4+72HBQcMCw*Q&GC3bu;_U$8DNV(aO%d&`?LsL;jC&E0CTMEw7A> ztgecd4K12FmbS-K(735S+exjejz&_4j~aIr%|yktzsq;~gWT~~TAI^9Z4tYZa%o9< zZO$aee1_266gziay~BcH(TaI7u$XR=T_65j^=hi?=owUaKq+nHrqlg@a>jV#)TU9FRWpHxL1|HWg^z_@tw{@`rS9_;IUP-iOf0XW zTdinunGl+MWxt|&qLW%tF}X5aR8mq~S3Z$XdzBPzr*ukfc{I|Z&BDbM^!$W!R#b#z zk1d_j;)?3Jh!Y-HHKm;Fj)~OOSJLij{p9&c0ri?;be~s5kBTC7Ezacm#S_NJN#1eq z?|24rit38pwbxxDW#LkOCLx|oEH0K)YdBgop@RIR$4n(Kf9~2DsWwtqelDE=iosIr zj_uP62JurI8W21YyO~?ueWa(=RF_vpy+^P4Xnfb)EUKd>a%Wu6&-8R^KzcanUh~j( z5>3UeD^R_?o3ot$G>7M4u3hphtA?KE(Idv49tRgy)YHjiYK;(l zyzGBrMH!6;=NlkjTy0n@cUf3 zWq3m=H{YvCR-}q&6MBOxcYIM%T`kADye?c?T|1?ywj@k5VXgZP&sZvMpc}!u+Vl)k z@Y^8K+IpI?D7$-!NbeGeTHo5@2xQepN+Y%Wt^rlvvyd}6X8<{|9Q_tJN4x*MT_EWZBD@GnItu{M{5H*z{^^+G!<>>h3D3YAP%bbWE1XnES~H%Qub zLJ^%|iX-77y5Fh|d+)a7Zl_n!&>I`3P6cyG%W{3+XQW6O{h23~5p2iz5`}tX4Lz*n zcfII+1e!1X<0L~urXjjG$8O`@gk*R(Av6T&kHZwZdd#754z-YT&-SOZmNTNS?=qPF zx5j=y8pe^znu;Q7>H4a2x~B`D9hn*~s-5W07AKAwL6PZ~UQ-?^j!Y@9i!={1x(230 z1EcjdG}uVTBa6d+VmS9i+HkkS18R!OYuy^_bfE*1=N`8=(dgzWQRWbWG{aQnHIceT{&Nz)z!K4It`rCYAm(+nsU20qyx+8z1j$k1d6fLImfqGX*IV0 zu+G;Uo%H2Vgp`m~Rz&kGb%iM3Qly3Zm6y1#8>)Kh20kk9rkS2klthXr)3_{ddBdc} zJlViv_pDc(<6^uP;72h-M#&xcpLy7qlg1}LjZbX&y3e>Il+Dj{VkNfi*=tMNu`YzR zTTZLBmN(hRLu3AH@#I7;w{=429!bN^`=CdgCN6H^R#~)I|1qH*u{nAtYmse?UaRnr z-FXAe&+T?TFMq6ph`lm4yI zpjO!iv_=`NMXgc440I>GwP0XtD+8U>ydn9y1H%JaA8U>JtGYiuW|`QpRhE8wy!D|0 ztx><$C|wPtx3WEej>#-SH%jTL>GTY0Vnai?hCX9bT~$<39-SJVoTmBl)4A}0$DQ1~ zjK1g~AFXbYbIpC;2h5kIw7~B75|F${|NoDb^0D67p`dK7td1dfLqG4YbOYs=k47tU z*9(5|c2j11YyQp{e@0Y31{(YR%FFwB<@2!?Nj`|bLNmxgv#jSRzsXp-@?5X}8f7k@ zb!v{n=BC3F9cNG3Zn2Ut^K=o&`Ipn8W$F5U`Z9qVKcfOGwPTwYb3w6vzpQJb!}_^9zOAVgp6q1 zbp2&7|M<<9@_+KepvA|&FQecy%I_Dyn)AJkWs;xcM_sj5{JPPXP*`GgALr8Zy%O-V z{!Fyq-ciTdgYs)#l<|6ld;xgAKrWxhiRRb1+Txe&6Tc5Bzm}!zp)&qE8WmV6{>#V0 z#f#?e8!0$J$G?%kY?>FiG!e4@{9T~7`k&_GKgUA-)-`u(F3I%&Rq-D`%TBUZ?f)x% zZr`$N29{`P=IMu|EEfqWtQ&t`DJ!-_QTR1?;Wk9B)jHNgj^99z^;5{7<>i zi@$z9faCucTH5M=$jASGQhxPY*Fj7C3+H++mV2w%tLgtSmia65GSB~&l9T=C?{Br$ z|FJ&)-$wb>Z(R@6^RLnVuZsVLln0aPf0~|ujr?21{|%Cv{SVO6R{slq{C}77tKYi* z2c01O`cK+C5>qhtbkj{~LV#zlHLv-@0zH^q-C5e;+AdSEm27E&XSU z_+Ka)+5g_OwAKHa;=k%S|Mj$}-@5*qPW*oHPnu6+O5b~{*sJNk?fi4OPx&{H6)jiS zuk2+h|F2$=U1KGC8*MHBDxdQC`}10^uD_&y?^pkTlz;3lmVcv9`8WBLzi@B=@(ZQ> zal2UlA}JrQpKtUj|1CNx`_+G?l&}B4Mcpvtzn=2Du{7q7{5fpZaSGj6?|)Vdpl$7s zJGy>Z>f=8nZ8u#%O6PAs|AX@7?31N@U77wrWI6vY760c;Mjk)>J;}EEzrx3Vo)Xk= zU5~fS-wVb6ky5^{O#cfk^LKEr7yreQk^MiKmbUu8&d2|^DZl!y>m-Z+Tg3mfqbI^JSkC`}YrTB0c&pf} z>Hn3K-_QSr;{RgF$>rzK(pLYIeEhGc{OY%^r|jh)|1IMG8B)HkO#f>szn}l1E4=vY zd5ZlXO-oz-KfuTTb11+1t?Liz{{?VK=KX8_0)mtRM!zuq|0m`5^S@C1U+G%$#_t%~ zZma((KK}DqQonWmH}cQV|C;N)f}h@j|98-FKmP;rk7PH1|9mafR{sZx|ElNqn?j5F zt?RS)_V+)?7i*Mw&ckHJ-*)|btWW$VlOZiv*Ymskmp@<1=j&5UX8BE&-?e4vwo3d~ zN@lMAX|!lOv|ro&5Bd0i3guV7bv@Yf{9^h-5>vXv8%Ev^y_)_XXL)|{=v7|Ee96!L zpGiww{U7V&|9Hx;e(O47@jvZ05>tA~h^y&;p~e4%Ydps{g8zkNudV(U`uM+y@~hvv zUP2CW5$62i+(D4iNGadjYaRbPDZgvWsOP3@y^Pbr|6(%IR{tw}{J)j*tKYirf1tnr z`FDCA>;KiZ`JYPp{roSx&U2jSEKb~iN@;1U{|!F=bN$tCU6;iB`~T`)B&Kv19miz$ zAO2lKKmRw1{~^iD{+H9zR{v-E_|I=CsNcFihzxS1%>FZd2|-Fp(*E9F>;AJJ<@fVH z<$5n8_MZwe(pLZH`}qF=+iP4f3c7M?2^V^*FEL^53~Oy z-R~6~+=2gp(f2=$`6uZnFQfh+Fz)|+{nu9im-+b5T|)iVb(O{c{H31%lXu{MxyAp` z&0faEo*6g(JQuaq|CK)eb4b;1UH7-#f4s_rg_4{`y&ZZr=bu!{@7glrzeW7V_rK1g z{B8CBMIZm~ru^!+uD`L&|1}SJF3V}a+o4y}|1T`_|M-Po{IUN}qx^04e}j+z+?MLM zuD`eRpTIKDWqFM5?a-^~|JRoOvq}6#J%0<4Bp~ zcj?0fDV2L+^mgdg^nXT*m%m?3;ce{qh_}9p?hi4kIbGYXKfmLh84!yC3TBfBy4c{(!fNy_)TxNcsKz-y;4ON>28F9xZM4zlV?iY(xFl^+CP- z{jU-K&G?)C???Il{Lhyk4#)Uku@n9$i~m|*_Wea4|4S|LUn%|%qdb^Q|84#ENT2wv zAwwEBT|Z$dKj{UpRPAT#gIWHgmiFH$@e4^tu0KCg(s-y{oBx?U{=Y`~)o)#QKg_@V zQ^f!2ln0ZRuPl-ByS9w+mvXx|!{YgyAIWI`9r-_0{8v5KpIuVFbv?o2|5EXPusSMh zGyb;t<@v;KwNLpETgrDkE9teK>V{eVQcL{iFY@9Sl8jt`e*ahFp>}QlkN5F^J>}Q9 z>H6h^{oB6>4>n5q-YWL0&le&4e;X~De@Fh8`1t=4fB1DZl!y>-m=XcfKY5rvFWr`FEZ8 zkMUo;6aJqs{%d`?{ye3s-?|=QiT_6NKaKKWGX1yp-bI`jCHwc^6!Cw$IxcH1U-9o2{}+n? zIR7rCOqzd3{@>`+{(MQMe(U-;i~mc-|Gw&|tlQfDi+tkuq)+)5Sjykn#`bTZ{BB*0 z`72>@>-Ohc5;K0^@8Pvyno-ZKQa(TP#^hP`@-Ux4_b19wH-;}ZeUhntia!5Htj2KP z887)4cW!A!{a5;T%J0@+fvoej{vAEAf>w{wqWQJ|98CG+^R`vfq3N{5(gOMX`H@06 zKPS`wE69-PJL{H8`)}Hp_q=?=X>FEYK>shKF15OEKvMd^jQ;(y`ekJG4+I9LXJpcA zT3T8lke-&7F~vvH-mrFY%^t-$$G7s2%PtG^tCxcAD(LJ>%EVJv zChmC&k1AR%^j7n|)pU0?ye4ta;f1v1(-Nd5jg|l{Nr`*z7Fv7BN>XuJU7FZ)C|UVW z*(1{%*)FBkrKyQMXS$p7zfY|0NK0aA;v4H|Jv=}!r=-zKIQV_yg^9E=DvgdkPdlR- zj|$S>3%p0it49UAd>4)me3zIsEdRU2@x$qbDn|#0CDF_1BvtU<>;+URt>^Jt4!GNV zY_S~UwI1W`P}A&3c@=kwyK0)f(%W-aO|v<=bj)2f4I3Yd8$LeNG^~);g|sfCbs4Q| zXkA0=23j|e#pzxychxleQg4q}5S+xGL8svR#A&l%?Z947o4bJ4rHK`8pi;=iRb0VL z3dZmhmTmN8*R1nouaaUt9XutI%G*GUiVo#9&E865Yvinz(F1em1h?fhuF9VAVSH%D z*7&-lob-3o-yJ#Yx%%Tam!!YDxpZXX(<6I7ADT0l9di%P55=E)DJ@HB*$|4~FL%c3 z_MwYbEu`Zkv)-xykTOSmkC@ZthR~cYFNbEVO3MBD?dH}_?CDS*!YR2kR>jqSpF3k~ zTy$9abIpqRdBrp57J3dgbUbm!(6!^^rmyI_lt^5CLTH8?<~XttM|I+ggl4SV7Rp*x zyEYUT4wQxxtEk^r)BMMQny{)gF@@gCONuaKH>b+S10zI&N&N0jo*iwI)<8pn?h@ccI=TzjOTpk?^L)GYW!dm?}VBXLQT1> zNa(RU?RyFeIVsk*Qgn$aJR7YQ%{F$d;K|Uhlx7?M9Yw+p{rFESyeRWr*D$evpdUUh)wuTbrrdF;FAo9vSd zLNmS$(WuL9{3A5y{NyAVKD3qFw0tAwa6xHeDi`1+UR*}&+!@C^i8Ifltx!|T9>6Ag zgyuxWPU7;h$vu90IxgBJ)D%rl2{nyP4s1>ct^a~0`^AQHcBp zFt=Y#&lA5gcDb6ZV%=j$PW&Il8k`u(b)37@ZQ$((XW zCwkiH*rOlGy?D|4!j$o6FD#9#bLT8eUdMH%b4-E@`Sg+yJH7Pa(@Rq9^s>9o?LNVW z*}l0rzI4?&mFmdF@!5lm%ZwG587nTt#RX%_oh?PVqv$4r3 zv66c2Y)O4umc)}%`{XvAM)PxU7%}b^WcmGpq>u|Rwc;0AkfF9sy zZqtBdZH%_&KLGNF8dtd{=ro;}OGC={Jl$5qEt<-=@AQPCbLmniX=i<>&(Op=Uv5*E zWWHV)!7Y`S{C{!5u$z0quv?1@hPFndWiyd~?CTKE*BxG2*iUpVuPjnY7u*+f0!8vxnO`-5I9URI)#XSEmwgpTgYuX!3Y|DdU$Kerd>!UzR+bguK3# z);rsVhd~}5IPNnFxgl*`AOA7Hj%vB=sOw&#l3lezRijG&IV)aFG)6mXi=I)psMmPA z0sj`{!L2Rm^|dx#VdfF;hXf}I%MlyTs-X$e=f15V-vCcc>>1w_o zS|4YGZana&? zYC57t-;C1j`A)Xap)Cw_NjCa6-(&r6_3f55UY5)^V1KsK+QNA}JZ^MN?s_BZ4X!%% zCug4|sGt8?B@GmOW?BsUZ5^g~70Fj9+6~5XL@swt{?GLU^NhT37wX*$^2n8$J5fqc zV3YqdJ>lRMzAj7VTU_mAZEa_MAfVtDSKJ+N~mR9BSY_Vwup=| zC$P!?7d=7W@|dxv?DXt2vd_v6)8o|hlhfSGVee9T=9@ok+r}`YFoCY0*Ao2vMLyy_ zOyH~Q$EgmVb45HvSJ^Z9E#J>qw?KC?@@7?jFhRCvUeD;hn2OOQjBbdbKwN$7fkb9p zG_twYD}yfI3pYQ4lkg*;~ah(uxD;lJw28mm#{fe-Y?@v>2#NnpwCxYcV)`F59i%G zw`nrvJvm|XUd>gUFZs7~yBaIJd#vzo%?5T{zUL8rMIDCD_HOMxJzqUFPeR+hpY}5F zLwn4yy{jC46E*9-#984#sO!&I(}PFNnLKXJq$h3OwJTYZls1I^6IqV#d242znE%=1 zY-d!EU#HJZ&E~ZexF_hYom1VlAK$hu?j+{|$GIS3V`pc2yM#A7J2$jTSl8Kkxn06z zot+i&Jr{Rz9%-L&XJ_a34n1$|;w25t|c5xm}=()ACvvT*IUv_rZb;?@S z#kr{SE7V6Rk=-JP|L@D?aeuit;4F{pc5%RYJ+9L?J)K|U{&H);xuadTfA)0#-foZQ zdODxB`^(hjTcK9l9;=>3r8A{h5ICP{$kMJ`XtW?{>js z0q5O>&-m#9l@q^rT<5a=w#3I>6!$Z|{pFR;JUcF9-#xBs7dLv3S?%J^==D<^{jBre zwE22mhackNHc+*lyW4emxSexfyH1YtXuA&2w2OP99i0Hw1lJ+S`GR)8i0krZJLjjk z^V}lcmwb2rb6?#37UMf5xA83+%%R3#y|=L%-*<)6X^Nn?yY8k8@^)9=oaFetri%C! zS`wOO#?PliGq!H4&*6MYd5!;a^SL{2@AP(?5}pjOjmEXxPRhKL-n4NA?yj;4is}L*E*j_~g30#&78HU|!?5BO5n*25I8hSKok}b8LK5 zG(Irnwgn!{9;>vVJK@;;;c_NaI@Y`oXg*7$!jc0PRnbgHx&8f zGQH_}IlXU~9H1lg#QfKN>$){=a5hkYlk(_Iu{}pN{;;`EXwKP5p&6fU2{nG>x}Mv( zh9~PlXvRx4Sy%A$x-*h{xO#e6*d=lKmb}K#LXGdZ;_PSJAHdI?lH#Hr@@TdVh<|yF z^p4*<>noz=-fJIX4*iyIZPclbmQe=! zbX9FMQWBU{Jt0tC6*zzQ7~vA=zvl`aMnBhGS4Kil#D4I>I(F^Iz)1SxWcsrXmP*z=E%LYfeuJN(*D*C+vQP6>G`W>XAi4nj7&wtJ}ZdC3`<8lIHaP=yVrsyvxES$j?aFZ+sYmxrpW%8NbsMwZuA@^2so zxPjeh(=VSyjtsaJ9vZ2L@Xy<~JjkYFM~Wo$&B4fZe+}F>SM#CP*+!1b8=HI7$n5<5 z+)=}0t<@Y^uRBQSqtyYoFVYVl1n4J{%Gsqun>)>RRCa^WYBEYcOuc=BtyJSivCla} ztuEKg5IZ^$%UdZykJK5C?@(*H-!g+c9=B^Urm!1whqKj4?C6kC?#P@mxkG&FU0gKE`^8j_*rZsj(d9CWu*mk$P!5NUfkv!edbnX7YR)9KM9rvn1scETcfs|;`#Jav? za`JMr3v$AP($f0U@8(dK?mr--U*^ExffWAvuD;t74d_khf$n@VpcHrR7$>eFDQ^ER zyCv|yG5<-%ZocVKhO1MHx@YY>eG?5lgxxtK7AyqJ#P%|nv~tO$Iz~YGvepAi@%{m z*B(^b;I0YTT?>PBcr0ruJxvu-{ot-W26qi)cTE}Eb$;B84wtu|8$YjId^E9ZN_N+P zd(bn$amb^*3tS71vz7K;8*T|~V{q4$!Clj`yJimUnm=Q=%RA2LFt`1@_}T5^{}I49M`Q*bf5Z%{ztX8~iG<6EOJ2!cz=hBi!`g z{YTdHAIA^i27olq)w?f19cQ3$9e;X||935YbJ$s_K-TSrZ!kFT#`}KSoVlB+RgQSK zx3t2f=bqC##k(^~OCC={-fRz-<^sa$DOl?$CHlrnsknwF8(Z)13D*0MV~KR=g)mC zd>L`S`fj8F?#KT{cKtX%Y4YQ@S?nZR%01T7F8r|D&wgLBe{j3zcGv$6lSm;u82X9+ z&zp`EXFoe(i$9Ysqd`PuJg zi8KF;B0v2;7JWzJoTzwr`Hi2MQDXa?nDeIch;VvT(BgYwwZi$launz(ChimyUy{h1hIW*8T!-3{uLJc*BbhO=oeY^_X0nh zv^wv-4*VG4p8(GS{-to9KRKpqXMcWhPl*|SPD6P%aIEiS;cSPSPW97(b5Y9Y0q0HS zcM9in(a%Rg&u1&uuL1oLz&`-a=XBL~lT#hrN1iF%^nVC&^uHE3-&?5t>0lrIxfVFa z?QyV!aeEdxmisH%LHj+~2}-8_M*v4VrvgX+Ckp5Ip#5pU(f>tY2mQYvIF|c9aNg9o zeJR{5H@*|ss`dCfQn*>)LBO%xQs7u_6zm^C<)}YRz_Gr|zz){;Dd1S{*TAvd-@yJ6 zQ0`uGA;EFLa*q{m)^|8?EO#<+EO#c@$8v7~j^(ZaJ6PXWfMdCT0LOB>bfF4SGTZkM z;8<>oa1ImSy9Q|CG|-|y4*21u({>yMyg%^vd$2XnALLzt??=bg&XK@zUL7x7{VZ~= zI!*-iM}eJlf#bZo5IE}Z5U%zEV*f#leyyRe6a5<&{pY~ZpG3LUG5cY6;if;mEcy&X z-zfeJvFHncqd!xDA4N8_U8WiK17g3)qF-p}7l{5|i~b4WJnp#8TJAHzxyvhm3pjT@ z<==vRJg>#e11Pr7O`-Zk;pTYhF1%IzL67k{%%bma(T5EE8uE$LIE%grcpuWK|D}eV z02`rH2YU4LQbYfqCwH#4=>HBJ%YDkQ6A(Kuf*#BL(9r)P`mZhec)79C`0q~lv7C~G zo8#p`;OOVUhMjzWZ*SpdKRgsTmV1O@N6Q@qdMr23 z&@Ytwo@&vb4IIm@G3;o$7l0niy~5D1kaBOa=pO)%OJRlv#g^CIEq zc)T2VXUeDZ$qL{&&#VFaIM2Kb9R1uVT>F23oul-XMc+=|7*zd0saK+KvtCCEH|uo_ zaI9AqaIDv4u#fec103shg>dyV;MR)%|C>d>%+QaPdabhP-xqGy>vP~(uO9q814o2-=9BAOv$X*VZgCoKTWvl=S0wBz0NoEw~C*Q7X8hJ{t?kHvFINK-iPX^ z3PtjpC1_dkEGl$E&2p`ux!S2U*H(e6MT?=R(kXwmDNC1yN3^G!G<<`~bTfnz)e z3pe9=Dsc4kEa7H6&$j5N8~RhFUUMw^+YJ3A(cf>;KLs4)zs9f=;Gj@i4|=TEzYP5i zQttN_J^!XJCo}%NfMfi}0>}8DA>53A9dPusLAV+JSr+~EhJLNo>n@A_5#Sil6^5OF zTYJZO4)o~f`-c8&DR;9)--#b0P%`7WH*k#SP~aHPJmF?Mi-Dt`Wx~yP)?4(K8TuqH zh|;wd{awH@p7$7b04Ja-(5ab zX2!oKaO}^cfMfhm7H-DB5;*!L1Sqpy|INBL=5E-SU^}Sl!Hjp|q%e2JpVX9|e9S z@Hc>`1AiZQZ{XX2qy4V({Db{L{r6xPE@{7UA4~ zGG&`r%Vb;a>*o`n5YBqJMRv(2hF(AC_?4m8ew-q4Q2Y9M$#mgrf2HJa0KMEwx<@WD z^czIK4)k)XHX>38Rf;{>bfX>UcNH7cvJzw;uf$Yld39Zwzw6PT4A(`Xv|TcxJQ^;lDhU@?SJjo5L~6sek!V?M^^_dQ z*ESahmR8i)m3jF_c)rI9%$OL7(w8>8gI)wOY9r*rC`3d0?R=>jb&;xQ?bM;^m^FjS zDyoPm^a>oplGNHrMNw)r(hzl0i>oUuDYH`tzCi<7r#Wgh)x2h?X z96hN`dOxovs3GXt#&9n%ddArB*tBp?PQjpX{)mDBVRk(|BTC=P7+GBv zEgM=imA?=+rou_3uOdZKhmRU}R9&>F_-vp4F|fEIQdFBW$q9#x8;ZgcA`{E2!c?W= zG9eM}G46gUf9WDzR8m6U)R@?!a$)y793-o#2**056CPJJrJQn)iPY88*V9VMOH0{B z$r&jNm(~{X?!@BaaHOF)QWFhFizZY=n!PluZ51>kQUCE94Y3OFXtWT3FS0KU4hw& z3i^jfQH!}>>S{)zgq~;CD&m9<+jg0UBC9;tb z?yp2PGQ$0o$VNsuU5RY;XCkiBNJvjjr^#SqLqnLpuUS`3!6=VT4Np$3rSwXHyM5-;qZ=Eld^2g}`2VAuLDb^c>S(LVy{6MhR0;b~ea$w;oH<4Ow4I znfaR2OiTGV`8E??dj^u+WU2zZ-?-YWL0I;yUIZz1_Exc1t+#>?DZgvWsKDZ}o+3?zTt3%X>)k`R&Ho>K{O9{I^;_4w zTl}XleYi=#?;*vt`c6Z8i~k$M|LGEc_McVu?%h4bi*?)e%Wct5K`Y+$3Vp^5#?LF=qZ$2X7aD8SvhX6Be zXH}lhH-VH+^H#A}GyiO9znDNa-je(#*Zj%@-uP+t8!H2-lJuX2{Gm=toR9A()qgF& z`L4zLp_SNgtkCbN`2EJpfPV55D}lEE#!A8-?17hp?kY&%%ZzjAr%V=$d(U2SDQ~U4 zWT^n}_fqm{kA8n8NGlTScOi((_YQ=p_t9Raw@UF=J-k(dx7z9{`FjYYv8S2wHvP;8J4ZjT!Yle!j-m85Xa1kg@-L8*o^3}z z1#*e^Qy^REpFG_~&Efsq6#Ca5>F?$?elkCM#)_K?xwAJ!LUY>RklU2^Oj2%q-ZTFn zd*1>dS5@tOCeuftw3G4-@|un7mghvr9Adi0k|9;G@Ide`4rGB6H``z76 z&OZOW_S$Q&z4r5*vv;AJI;aGD@!nVJPQG7nm6Wb3jGtCjluW1{iN|A)`l`aBitam( z;Rz&8=ZK1}qp+pNmQXz1r;_Y9h z#;zJgnO!xufWL9sJxgkkheUc#BE71xdh)B)sb}Mx_l$`5S7D2g&F<#Gd6B+MHhr%jp(*UAI=~#I!MLekVFwd;^RpvtTo?N!$8qm&etLu( zdIIMo%#Vy8aaug|r+Ck{qUyef*!a6z4-1^@L$~WzC^J=_ zxAcrtPc?UqlRBC%YphL1TP8hYPsc?^R63;g#CSPhmXKKY~me`uqI~BqP4xFL=}Md;7|9v4ws( zB9p7?6VMpsjh$7X`12b4e&5J{R&_j{0lJA7{4F+9%y(h^;dov^IMZWggO))rEE}); z0dRif+^x-1mk)^6LQdklOaxn&d;~{)y}@m{f5qSicC3xG2jE=S^^<2^fSly#M}HjT zoT$F8(kZk2=^n?=kA7h zt=P(Qo4~1ai$5oDxrRTUihv^@js-3KG=X!dWO4b-g5y7n%V!p>eHM?xPe--daU<_% z@(-NF*X!GyX9T3*WpG;$EWNEy91_q`Z+861`#bmtj`Yl%b@v$$>1C}i9zCARwhe7q z^j1rhYRwwUK6b%dE~d{?E6sX+*ep*?FRiWBD|Ko;9IM~W&8;o*#PYJrN`@(RwR(f2 z+Q#sg@H3+C^(E?ZW%rgaq_QYckHF<9yLTYQx&nLZth z@LcU)qV~@^tFxtn`%Y!oUF}jT*9~XYx3|}?jjv5KPdDqRVr>;Gk6c|n7wf#4)&1<+ zdX`Nd7r8*YWICBlFXKXd$7)zb!^O27Yg#YGx@&TE{M)gq_N#|$hbSJq$^ z*}J%f#kOIrmRU=Gf7h>}{>%Dmxt+#}1GkM8OE}Y9WRTn8BPQEK2FCaY?mSO?+Yahb z$N3>Vvff%e#)clw)^)b6WM$wC&UQn#qqtRWz*Ks>hQatu+ool&M}n!6-y`P+b8q`W z%{AMO+xtU7r+9hdFEfJ9H40<;6v-?9B?u>pC%UuK6pGEiP0z}0@4tbFjPG3ou^C-x z3C-1rqv8fdh->@39hTLYPE?BCW6#;5a$ z{owTS@~Ci`HIP~UYar9-@U&UF;je+r6~p8hWN@4q#wsDb5AhPrPxpA&KDa7SHsJQ$ z-OX&oQx8Tyzd502=s0yW()%l*>+W|q@4#_OGe=dHJy7;SW!WP*T{Js`#yO#jI8pDp zVp|b5I_)N({(0M6Od!h!^trTddhsqd^m633qYJy=3}1y4i59=^h8~XGc2HsW8{w;> zbAQo!QqO&%iq!XSg%~_;v^u30BkVrKJp&>4w9)Oi51kP2xd(w?yb*Lg_w6w;aIUBd z|DvJCL8qbW@-2~T8Ze)Z!0GZ$R;MV;yB1*HN|=#-}XC*{pAb zHqlbuNR>J<5NC)iR|{x3kHcKenIb!xOR)WjVv9ppX()Q};ct+z>ZcSj?>J>Av1@@gdFqq9=r2hZGqTE4}0F3 zI6;?61o+K`cc=*Yt>Etr?(K6QRJbZI<&%Gc=g!_9UeAx@zFsP?U{;HtH%+GTKmdNe zX;j%h%T!J>4J$AF*}29C1EdDV=A649SUqb#CpX9+;7<$_`TRs+_>!D8?`d9!SH8``KQ~KG_ zZ}#05Jdu}!)v{7Nrd`#tq@firq}0?jU}%l^j%x7MNpmCK6zFiW(~H_HrFt8tp|L6d z)sft(gLkgrdHX^K>oIX=Y^)x7+krA}@IV_=3G)ydFAV6%$#~zwdaN3a7WVzZxxF11 zNG^OLK&RF^wO9Q$#gaitMoii|17rLHXX}x^%dbm}n_t@<=Y9jOHxb!lv#hP%+A+t^ zfRP8+C8WF6)Q6}9;kWi}uipda7yls>-==5T*n4~ZPZQseTQX<60o)9tJvN?&zXp$A z{&gSZINJ>&^G_Yy_%{FO2bKI@gW&Txx_2A%t^f`5?{$~?83l;EwAX6P4h=JGx=s9L z8AN-m{1(0j9>4sT8iTU=Wd1pfwec;U1m-v9wf2i(NWd#h-Ae^W$;Gf<-n4= z$t&iPO=gREYz)7XED20fydy6S;Q86Yk}makH8`yU&LWKW+&u}+cR~9B@$~n*;KM1= zFT~Sx;^}MIth?zEJIfw$%ds0j&J2mn-|SA_nmn3Y^XpCC^+O;EXwRhpLp}(@DE%40 zZfYtX30;8WKl;~{L@UdlN~GS*4l?oZC(>I*vh;$TZu(*z2fb*A8$u$#>R6CvZ6E5m z>5iRlxMPPqr2|juwy8X3sVp+M8>#Ct_k#3w-?{+8^t|zQq^}!rJpCD+t3yi?>6s66 zd;G~;HWyS7$ zVC|R%-FKYyePkij`O&>fpq_(5K`lc@pe-jbNIqyU&w0vrikh44sZgpq{fb>{CVilo1qOXlT^Xh@pZZK0h6%pej>R zS|&P43Ft|lT3Qc#(_!YM1wP-bIDbsK(D`DhaB#HqcIb$&6gp27%)PnLc_e({*9)CH zN1VN((79pc2mZ6r`PIl{;J7ZzEN_9o8XE3GH+g7Fe81QRjGA41{7V>s?l^aU*U$raIe`%ZBUt5?&LwS`>%5qmp z+4GG8k|Hbhp28A0J(?#;C;I21-i%NgMZFr`jc~N)>PlLe%xK-j_a8kPFAyNV3rFh= zFC5Jr?}HfsO#NC*lzJYnexX;TU+5Y7eb=J&ONuJX(XUIj4M)E$2)v1qr{8@LL)h-_ zs+hJ)eVz|YgS>mC&*U;2Z%OJmiS**qM7nBOb@}}rqZ6sc%c@iN;C5ispm|D3?-BUgJ4}Fh!Mu$dYu??OhutXQy zwRYCfWr=icO|=P64)(lRkSr#@<-0c*cGf45*p#YCBt39waU%5)d|g%X@_VkBk7L4; zhl3~ybG@qANtW&2T$CJHjWcFXA{uei=NGx5d)(Cd#fel^l%ZqXhWp*{;z@35F;1ts zr)=P3I2f*~7%6~q*V>IkFF^dPb5oDGX&fjtKU((4o*k$o=_;=CEpy8^cZ_yZRXDPD z^Cpguc30IEqMJ#dA9c%r&Y;CnH}!Ln7Q5vScZ4Iig|?8ZUwlL=Ry^GD^NTtr_Pnzv zc`Vo!b&iV7ZO0;?+j9?2qdOm`cP);_)=f|C+9Hv%0mayeEXIdD&li)`)CzTaQzG43 zjCXiS6H{7?AjDks#mQo~f6+1+-7>d-N!{QEuqbLSKU(AS6( zT#;WK=a%U2h?U{(8Qp_b>>d^B9DNrbvkr}kr)Rr8&%ERIY~54#h^4@ot|UJBUY#5c zs&^-E(`UbR9uV)@8p45ZILJM{z)hq(YA8!0grkN!kmiE9)uC4tsfN--2uDy|zATQz zi}2zR&ps=EM|DsbA->_JKjfy$cNY{UkKerjHg_Nrin&;C9m4wVqMCRJF9~6JbGhcr0?4Z!W^_BGJX`!?NWn?!DV5# z9A~2MSh);!j&0(Z%cz(1MLeTS(pIOQj!%9f-t+dZNKZMU!FPD%+GoIYVQS|>XJ^H_ zQHj(pJ`YKh|25M4CdP~)iMAh}DBlt3;cWG+{(~mrEyzgE7~I5D1M$g!EPDjcaPTnZ zkcxE&;heL3LhyCOvg&0wTmk?{wWf+)(; z?|iBnhvxP2g_}fZOFT3%xc%)td-5fpW*?8K`R%`!{P%Spk_heG%BkwE%xrOs$Hn9$?%_*kKv|o z^Coz0L0|nO}VW>HnGN z`^fA+`B|)e-Wv37a}5fi#1zD5usDbR;<;?*Y_h6x-C_B1bNClw|F@XARv+~IcM@1z zc~&wV{hl@sOzY9FW-sHRYCJbh@1x<82CkleytGSlX}NY!*Tp|x+K=bbZXgX@3;%d& z>vCy-NgB8&{_)a&ESL6m(!h1|kC(PROUtE?683Cx$MX-KgZC6%sGf5(jBA8+Q}{=P zHL5V`?gA6`N+zt}FFX{k2>1M5VZz5T9FEv}gUwTj#%?y)hYhv@*Qpo;(6u8hzz)1; z)J+XI1Fq&=Kl7Nc&#t?{q{Hv{0@Ha9XV*Pt`0=~CKz_qKyN)^USH(nCN73i#RuTWXHE3;`5K=c(a(38SvK_Zc_ZIFrl0RtbHYnM zZGrD9(|;6xEPwisHP@)QPBhmNb3GB)lZ<~dt|uG+R9sIne(v)EaTPzlBggmU$$K__ zbBwS4WD9-Pl zjz3XRx|DOGZ#1}VGi>1J4PIvfbG^pkH+yj22EXf}tSc`@@L6^&{d^bBd_kHU77jQW zF`V~ATE`3L?BD=W&yG){}kcVQ=*4+06>4{<%A;Y?4G8xU5zALU}a z3)>HBJwaiI)|v0Z`EPS7qHyMI`fQxvqq4DndENP_+w$EU_IY%CuYaQ8uj)SV9^ig_ z{(uJ759dV64?h4E-w$6BfIo=_#E*UtrE0r~oBfIPKmZ2jb!7=YgtfNu#Xcb;+Q$Nz}{`FDZ;MAc$LV7OQG z#Yy6&u89RvbEm(N;muRTMSWpkOg9(yJW3)l`*hJATwP@Hm4dp&jys5L&;P+0$s3`Bp#TueZkn z^tlSr{q&p&z?VR8e)Rm#%nzRxz^4$z6CCz%+SQnA3FM#PSnZl|Cc?g;@cD)++pqlw zeEibg5P+`f?VX{%2Wor`z~k#fPH`?YhjBXSMm|Ybd}Tj!|}qM2u@P*B-Qo z6V)h71N8>~dO-VD7|?!B51_v>pdA|skpIL0`Yt6uM|awFo9mNGepGJbtbSMye){X#pW58H==$(BuKkB@7C`_X?X0RK7c%8$M;Al>OEMN~g^PIk=PFA(^d@LSxD&(JJ7 z#I1c^1V0_r=g>CoJExx{2xs|Q`cG>(gReICpYz}`b8o*RB!9|m`QL29$$trcHt+8k zob)H*XX(SHU8MY07Lpbjob+elXX!8U&@&$0#R2qJ30$Vz>)}(N**KpS^fKMY1TOhJ z?%`wDI6DQs&CaOL@NR;bUv~e+hcY=TU)6KELgNo! zpB9&V78u;CXS=7QmrtGG!?~xm=RSjb>*HrVxUG->?!jY9I>-5jz-7JrzQHL^y-4?V zfzJ^5W`i?d=iq1cvsKWaEa)E;_(FmIEr8E!f?o33BXG%QGzEv_g>!eSw}S;P=|3QF zNk7ftUOk`c!L6Pbc<>m~rb`H1>iI&0^CI=UO5jq@pD?&r&zA^#sh=K!FGLzv4{3qR z{4$?(-uxb;;S6r`dx8g#nfo$<%lz7KCNJ~r8hYX~zjmbL&95DIlV0X`x!|)9ew$x( zo633fg<(++Zu4dP6iXj7bWw99F7tJo!M*ufAaI#4n_q9fY6QK^*M$O?`Lb)gR!%GT zBtvg;n=e@|OFRg#pEONMY-v${5D_z zQ|vIPygsh8rP?KF|NqnNbD7AOEXPKH%l!UNx7${cFPYyf1TOPC+TgTjS--f(Oh@~d z^v5YwadcnN+M-$M|Ncnm*_%RSvCz1-7%g`k&vx>pEX?&&V|EcZu| zc!ekz+3(9e-5Uh|o8hOU{M4;&jr9n3Eb+0^mZ)4;2R7L=?jgYmjUA^ZpYq) zo)fl*;<}I-g(Gg)mU!PL@UaApyGh_!!q2!(0>`6_jN?0=bmU*8eEQF; z0v|8%LK4F9aXsp;0zXvHmmA#b)7qb1XJc@772R>Z=Ao}MymkuycC5>w zmp$}$oG~}7BQp31?NxtQ9=Rxf*10ujFHTf{D7(-8uun{Q4@Zd1Y-(vrR_>S6MY1og z;e3<8m)0t0b*{vIT-b+A9p91N;HxYfAIEY8#?OE0t-P}ZX8~BIIa`O>6F>Hq^$fgg zn7iQ|HWrib<_&wtIdcX@R*=2wsJvr!>!r>0Eo;qDD<&VAGahozVR>(?XLhV@Fm1|M8UObXD;H+A&{HSfn1ePzzqg}qJduW}85JwL zL&knEpM8@fyKCU^5BC|y88=H;x8RTv`x@vl6{*k6S$aunZ3|AI*{8_+6v>;S=NudV z16}O4ipFZ+OPql8n)YsHIVTF)CUh8aa*QmuT;9j)$SV7}tUcwnUzyu-eZNexmF2!z zW~pjMyyZ4bv(}Mq4&GBFZ;HdSvfKpUOPql8-o?s%(;G&dT=U5(m-kc76epMUezeRy z=C)k-tHhRRwljHeLy3jCVrKVW$~{|5?5>pCYl`#6ax`h=`lp=_mY?sv4libRb>JYk zmdcujHDYv`RodPoX$cNQpP>BJDPX`U`IzS4|%I?YFXJTj(!vN zy4OZyRug7~jg{vvLUk}_$|)}Ue$1TKv)P#$!;=NJ4SXLRN@XcV&$VTFLk+cQw5hNA zIYl+v&pQIL;h&hI&Z8OKWJVi0LGD;?^_ZsxswVHiQkG&i&alQzzELuQ3?r3cc2t#l zC3c?8+xxMRJg!Uk6IXqDAk?{JKQZJHsabQ)6zqP@d`6|&LV0gPE|yY$&fgEWfNbwO zOYe^GK8H1y&C1(1z6@tFnw(*RS{8K7qL;Z`b`~pw@6G#FEW(nhQR-P@4Qp1AgD*Q$$6gx9dR z%=FE&sX?)iw_&;|gJ_R8t?Q7!Tqm~V>-Z2D&aPcEeLfGh@$GdMGOqIP5r8{!)2-B( z%wM@yO^|y(Dqf!W11IY!+f7WSPaS*nA0+<`KJqU^d@HxTUI{t<9Hul(G{ z&`Wx;jnOXjav{@(=1-!@f8k@C|PhAaPf zeB|eIb1S#K{u&JZ^uNo<-;$ABd%W`h9Pt$|kNvpjA=WMvpZ3G&C&QJ0laKs-UT@{L z*CPVtuQLyunoRok;+6m40Qu*dhlNspKDQaJ{P+6E&-VnZ-1gcYApb)~{%$L{xq9Vq z4v>G6dFUwR=X0Uq%Kwm${Co~;<+j&iG~RypQ)3c3{$1oh1o0IwkNp&v>WHq1Px~px zZ@BXR(MSGr#J6(WYY7?!Kl!^&Lh@NJMe*wYIK=mpzs|^C$4GFL|0w*1EB{U-zoln< zKBu;F+v{_95a=iWttR3th$Ed>{-E}Imrwe99&XdM*A_f<^-Z6REu4Io%KPD_|GH25 za}nRBYp=ft=9m6}NngGz^j^|;K0xYhc~Sp-{%+H?*XgGJ_nsxJKG*>Lhw+ncxcM(M z>C66qHW=A-?e)n3{nwd?fdCY9#ow^Yt&whB0ouB;f z3?0KY5h*{jlXs#-(}>lG3ncj z*Zw{mApdH1mTvR&IMe8iQIt{l{PzbYA^?jU&(WL}zjH~CWm@(=jPKmR?*-)-c#`DOi~ELLuNeKx@U>x}%Bh$Ed> z|3U4?Iv@R=4MsLydp#ZX%&+`!HR;=WVrB5AKNs;8FOU7!n3okyOoky?!o0{`-ym-H0QdP2XbI2grY;k$*Ln14sGK!q3KkH~BaCl>cJHw{qL- zp9AEt;baYtHYc4||3UiO=%c@CFtX{|>rB*hzw+N;(zp4vGI-PfAmS@tp7M9t*uu&3 zXa2qVyTXj0N)>hX&nA=pN3)Rfnc`3~6ZnIf|9HrpgAey2`rgL3p)ct1XWp4A#U_3m z=BLtG`7O57jz2A6uCB>{kAdoP3*#@Z>PffB zl)s$^G2W5*dDCC8y1uDpTI&a+#%0b_nd5(^%B<<7bLT4B;h!V;`mK~myO_GfoR1?X znLTZJ4nS&7qW{uD?4yaDzju--(cchF^k2*^Ya`UQ;=470^!owV* zz@4qQIoRE#wbjtZ&A7*}MBtHaj`z5Rv|Hq+t}9uOSP`6HIJvi^n_lJuJN?I01yYAS z+{Loh$=$ZJWYX??Ldk>Nbh2cwn_gN{ijBD+e$K_V+mk6AStwFhu}_p>n^y2%SQ5); z9J>p|lKQ$5e*I&Fp#|l}A)7kpw2kqQ)4GG1ZoRvyfyR+&t!H-Yncb!p$nG5_dwf zE~sYerv@O-l~HFpRPrBy!U*OCDI$pTG%0{W#f2Yb&*-Z1+z&uXoMC zFWgc;1sXTqvyt#=Jyc9byPLw1j01&kO2I>y>^Ihto|{$jlKtQ}30=Kqg9`Z*O{Yl7 z`>v@Xi;48DDqi|Vm4RFpc=Df^{EEBz&9IwVHrHxAfuf=UclSkg!M}maU?0{_-=jcv zT4KY_O~<+t>9*IImzdi1K3gssp>z~C-K``~FMHh<4wx`cnq%k{_eM9goi%9Eu-Lg> z?rH0~5kGk_+X3vwk8=n%qb%L7A@~N+_G}{~V-v%Ya6Q<)ulz8J`Vqj`3t(J%o|oFN03*LG7mREJgV%L3j5R(jvT-Fw)yc=IJ~6 z-H0LFg@i(p-nBY_ErafJ#6baUHNB6HwU& z^mL7`%c6Ba%M^NLn@+RR1;pdK-1L>p3{(o}I1R-NR1D~F4QT_}U5Rx24gfSb7Jstp z;vVg$Z;~gAsphS1XCm|tJ6lME-PE5qjkdl=dwrK~gtqNDXD&}m`i^SnY@-yp>o;y{ z2s^4LQu++7MCxg#z!s7&GO1TJeoURpMwf37fT~WtMM^uMftR1na0g}u8wQe@O_Z4Z z#1&0;MP%}sJF8Q#@wy#B{OYF=X@lHKb@yCgDuZt7K2%-a+7l*t_=FKYo_fOV@5K2P zKz>xR0X%e^{tHXhDO!5G;PzL#xQ(aob5mOtLFBedXCqF`xT$0#;v^4s)0KrdHKp^^ zq4AkL+Hw2_p_8gp?^LIr#oq4vXqTTLf`bEwZQgir@;9Leuq@sfN*)PT7#Oi-LgX`s z4ww8g_=)-KWV=M3={NT50Z$h^4+GB{vYRz@aMnbOd=v6m*@MT(WdpcCLv^;MS+hy> zcXq*Vk4SU-f2Oay!|cff&pnk$Pv?^ve{zwe@%7pXtQymhst6 zd;yyNo^E8bht!_6?WfL|?dq~a2vt6(^{}Dtz)60# zk0+ezU%&JZ93nT#o}+#BmURfs5h+923d*2HxbJcm$Pz{4bgjD4jcwoO)Xjhn`Kr3v zsBgZlZYT}n+|C;|o_$-C4-IDDuayt&WZ!n>L-W}8XXQhy*!P_BVSI-}r>@ik6kEXp z8yC^2V0c&q<1)j;I(U^DGebUk6ko;y%{e`Y+fA|c(2_Y&adStK7-#lgOc^oQ4C#a6 zYIG7;-^;m5X3ldV&P}?bWQXOF84dUT?N!u71Px?@)X=#1X@y@=VtNwY>Y|@`+|aY# zR4J*XBfSqAdYwE#jGcS$HQ-!LX>t_l{i$J+$rb1^r0)H$p^sX6UQrBR1wQyK2Bx+^ z^oNLcHf1u=*9QPBSe{>}*Gk*>9UTxuzysRLA^l%9O*byMV|Sv{?>mNGGo+97orJqV zu2cA`E_pphR!W>(6`$VA+2iz zYe>!j8UYP9;ZJsWw?1b*?0!`DcJ>NjHcfpUid6AbOCUIe4l5u<5YX8=qU7NC zU3Mvqv-}X(h7Q0|Sn63(qlUW>7QKrPwscZh2#aPG!f@apCcv46unCl^+mhOaur{+0 zR_9%Bx}u~mUzl5wDYHhkf!>@|x!i>wEQG}l=S;gIe)pQDmC42UY=y(e3gk6jwe(CZ z_h6zACO^gMkrrRebe%r9R5=Z{R0W(jzqW{jf*n)NZ+CK_A2QRaI6ksEmo}o)->UrrD>>8+) zXq*z55er*al{iITh8sJF^0SQnVGn%KHOC$zy}tp(#Zhe&gTGX_Fb6AIMh(4hDC5^B z3o9mCC%w-r{E8CO*;?)N{>9MKG%P(-)vH^BOy{nY*82;?q*PPd=Dv5cVZvIjgQ&~i z9~tr@ORlsU>HAOMgWqGIUgQ0LX4=Cv=pyJQaQ)cDvCTKC@+h(fLeq7uKHXHWnt-8* zh{42O2DP!&cj&ccq1J2=0QL7B22yyV@T&gIs=AM30&S_Y>FZS%X)JX$5T$Ag62pyJ zxBF+C>lwDtBc}O^^s?a>=K2G5D@Gy4CJW5i&TEse8*}p7MZCjV?euTB2W zF!9*r&kcFTCRwAQ+F+k~e)82L|*+V*S`Cnq}C8zw?7|>h(%kyRf zs!jT^AN2?^ml?(7E=5+Sp0`U= zScObr6*8?8!1F=&F|B7F=(re3Nw^qEA-P^;R{ppuu)&bQyAfV!NUcPYl8z*n zlUz)oX6TT6tUy-n7%vy{y;i1B1C<_gl<@%O3d&CB$$INmQqHDYZmy8&Q(l-2G>CTmQ|# zG@s4&ypCJ8US*H>KA=}6wB7VR4)tQ~#>}Z%xK><VNCx&3QOU?o_B z{hLZrgLZ6h9&8q=3O%AEw=&~o;H4#n92tHrj!{5y93#V`p^wV!$5j3)aNlB-Q|_W= z#U_(sl`!;h!BjBjcIBI=*?+rs!`YD z>Gd^umuQna61ofBqw@BX)gWb8#3(9dv@P^QMhA)Lwqq=PY+jP%*beAw962rq8D^H4 z2TymXngtCfQg0|V##1{LLyQNN0g3TBt5KAr^-`py?MN?XVlJLBZdg~pS|2s*oKR{k zo=%js#T%BE%+PXEzo zq@LLP!f~M|9)89Uq)xO6qU-Ew0m+hglW?_k5>1U4Ak6S*1 z`gy6pHB|nh($9<93;p2X$q=)elOG-=Yx9dV{qkFv$*+D`;ihLk=7t`0%W=T(rLeO& z%$u2VC*v^o5s%@~N1SJsSGqlK?@4|rQU3S#Q&m-4hN>3nO{y46OX{lAD@s-ma&gCG zkg+;{E~P{MSV!wJv$rINV0DywS7nE+f)dyTf%w$q5Z3nV5gA3rHkY?E%$y|#Y-EtLuZ*d|rZ!NJ^oWOOmTv!4w6XW?p*kadm(t8{$Der5y&q9+(H&~w zY#)zV4dyE?a@(OL8O0Y-@r4=1;~|vRtY5UfPPYT&fun8g^O@$fGI&&tS3019fYKfu zi|o4ToAhfR>2G&aIejnix&B6Y@xZwMa=aljdQVMhMQW=p5cGX`HAg)v0g+SLx0_GJ z!W?d)qPn4N>0~(C^WX?mF5mA45x6EN$NR7H=N8{~Es5yJ?E_|Qp2LCAwu*FebcUUK z^}Spw5zFyIu-z?Iw9L>%ttamQzfkA7u$5S-^J178M-HLRPGvk;HAAp!`6GSIt+n7t z-+jDO1Is^aJjQsDz9HNVjvhq=${R#}ZRkMAp^{2|p4F#DW#1;6Oy>_Mlh@c);X2gz zb~apyr_EW*)w>#?C5nP*nIS5*%)22H@UuymyBd9(B9*Jrs)e6M%CQtx-5#f?G7WyO znzn)A1oorIWsNnST+Ook+%K9nvmd3|@0!s}kxf%;^Zysk>a6x|3v110C(Cv?t!%bU zX?8X2CQ4tVk0q=W5$XFfy~c_oec#dnu${hpwHFrB_oSxj#szn8@=jUu5#WZnW(8yd z?gmdcl62$7+LKB&`5A2?MuucJEul0+#p)F4?VurZS!twr|i2_58=VE|gV zz$wQ>U{CnbQ0NySzQ=xEWY00qr$doPk8y4fjs4Cs&R;QDJ;u4O;NWdXJ8u;ncGJ<$ zm%_*NALV>w-=TZSRk*CT7=M7Mvn#3SNPL#?{Uue z#uff4>fAQ&*uO`eXU2_({|k{ZcSN1vL<+BsI@c79dGa`?zv#f<9Orzo2=Be$QncX4 z3C>r>ANkg?p%=y<`|7cwO$Q(O{IQ`Y4*qQD?g`F|hkPM~6s|q&tlN%r9y^S({Qa=j zuN~(+b@;NYI%n)#C*y3>$Rj5^w}!_4 z*U8QwVTmU@cNZLd-(+WZ!C_yS?0hkN%=$^rkHX)DAb%b)_OX+k&y9?H=OiaRdTj4W z&h4Wke>%}wUwH7hPjntBJm$6&oRzF@IbZ!}6_{=HJ55^z+#wpGp#~%g%=MElo`zg+^4lexuDb5=QkNwgq z&X*4v^Se`=?S~wB`_#}IhaA>(inHy|A|OMD9`?1VPWNGBQ&XKM4mxI+X82I=yIladT4r4(F-Azb@-)F=-)zPUM9DZL!r__}$xT-kyQft}lSf8wb9x85PKc)$7rBwU9@@R|oKQ4* z_)znDHBQHp(Vj@}O<>hKu=erDUAye^u|Kz?@JcIYDB#_*1(W!{Uh(OnqcZb*j{9p& zK;*h+WU6f7XDpwgg0g`)AC;xg*%{xq@UUWFPJi17x9{;tr1MGYXyvckQ$@KgDtAJLp%m zVr?62rb`q>JC^?ve%r7OFC=3jq5sk@cUx7L_Fsh=Ocg91gQBV${n0|5k#&!{s6xkR&i0CRSnR?|UI@y@ ziWT*QcSZGM%&iNL;nLZ&Sav8$q@FYR*#X@bW^{kymUz$BqIl0U8Oz`*L<$d=<2?_C zsAaeWm;Qfiz&o;tuXnwX%;On#a^ssEfO+P#P>Xt#gW*Q?*otz0zk=%f?%h z`b{FexHOTjT2@_tf5+%VYVoq_)cvXZ&5OM~JBlN{w}W-ho1xAFdS1ufEx4=h8%TbD z0(F)o`fFoxG=$Zud#We@0W}~xG`h0v5qOTk`@o@HYiA8zmPpsu*zn|F&zl9wV)9$Q zdvjrDeFBM1shUL61BVtTQV+q`RTVG4=Zg908K=LG_ z5jTB)5f-l9)cM7UR8^FrWB6`rc=04RwYbzx-BUL3G1xPj>M2#A+_iS&&G{#JNA~PM4NF&*y6MHs-15yGqtV9WMcK`p*fs60sw?E9jPs*z`Og`&IO?W; z4$@+`{NavpZ?^q(d!8>QtEm}y0tiwUR9cy(u&2js=4vg`A0 zbvP)8#>CUJ-JWOOaeKDz;i$kiPiS8!->Z{DpY2ZGh9%ii8(}hNI74{IgQdOn0ymNF zsG%&05E{}Bq`6>jb?DVZs-ZLyLMAR>7RM7WbglRt$1TTe&S*8=$ox0l^oQJ3`R;^f znqGTbt=m2kxMzo*4XWBQbPsYZT#o)H#Z!-=3uAW)QIYtQDo!{2j;<$Wg)h-x5>BMo zgeT!wnC=a;oyM4>vr=Wzu9d2r>~M!4Ekr>GdGOJ~x`ibXMWB+1+=bf;Jg_9E>d-q^ zKYc4%z8y`Z{t=HXd~9LluKV#=5#3xO^>TG;hpzcpgM_K;HOKyWVZGuwQim}E+Lzjn z-e8hY*HFZaIEoa(P}tmRdUcyM1iY&FCl@0RMXKq)yO&`{jy~t2%Zl{!Wr^z4)_CgI z@zkRje=fx5V(9elcPHbX5Nb#D32 zNZ(Ub97a~x{|KH$YDGyYU-D5OX5vv38|soMLL9f}%_BMv<`@AA#)oUklJV84SBIv! z{TCOxJx}k-4lwRz&4{`^zk+?P0S9#W#fl!!Rt}2X27`Xq4k;?OjyRgjPeq~RNIZ%u zi5mH^01Xm|n833Mv`+Ua8d6Ns)AXn=f$}HtfyLx!tNZqR@~}+QXHc|^TK;Sq;y=;|^Ap+i*$1{#w+@327U+Vn&U0CdNh7Kv)JrqITg5tel zpnql`$Hg{Xbi@^7u=K4InMl2E1~wJ77jDtxWLvvc1PqWvdgQ7t^})SZDzk}Uni(G_ z`Y(-TjDFjKWeiI%sM}bWoQc+D-0saGEcZV=mwA=&?uaGQm%C_8 zYZ9T?(SRvA4-iCVG9S?1dU(H95SH&me0ZT_Ij27eFhHVJotr|&*4vhM% zSh}Ppp8BPm+Qrds3a?7sqwPM8$>8J35oM1IU5UBg-J2kT4oGc@V|4EJcjUHGlWZyA0re)upM&*jIXRa$`Q>~Zn*C^wCUVIWx;PmPMF=kV3) zC*$c)>IrAO=gcC^rd`zps^LH8FI(8$nc8EE9EoX{(|*C?Tk&jc8zurTB#(~Vb|B1v z-)p0YlO=`xIPxrXgXb2Z`lQYnJQez*W_#`d5nc`8XR*`f<)opproQ1LELaLYTtc_^Yd7_acx3*csKhGrNRCgWn@fix*$MLcYCO(X z3#ypV+vcioz{OMaX!4M*!-uM}wCee9qWp~xSRE$#XkPISLf^$G>!IfC_ghG7kxFZn zN(;l_tr!aa9i0!~B}1m{XVXXlYCmr6M7RG+XhD5i7U?^h?51QBMK0Q()bDYmpiby+ z2p@X!wGP~-Ug9vq-mq@VZb}shh7FM$&MZzg+V6eR=M{BdR_t^xP4v$%#yAgyqe6_> zl83t(MaH_P&Sld%!I(ihO>vo0@sQn>r8S?Z6S%v$Z&$+C`pQ zW5pPOA=xz6;%kulBgqkNih|aF4cXNc;mwfpf>`A9FvNrY=B6NrTg1eZrzO(!3**RA z3Z^9mh^JyX0whu+?vJN1NSa?1PscEC9Z(t4i6iZEz@lh4X;**{iEHzBvi6TE{dOWf zCy~CYuzE5+k9^zR{B{^08A8_0XgW@h^!=TR{0WDiaK}}r8;hzZWAOJEck@5O?%jB% zKo@b#|8Z$eeDhlc7{?_d^LKEWN59>}X?FQ9FFEyYP8n^(V3r)r@;;vvnFVP57D{HJ zgH!ZhVuk8y64=O`^Pk;c@>dtlLTbbi9&O_dhWiTH@nV&LFEgRjRmAbsg;-)~F04*L zYCLT{94&$FTP~=$kgFUQsyS6Iw577_sj|n1zHDFc@@Yu^SAY9Uf1D4wToS^tpqFo% zs|g5)Kxe|dFDV)t&3DZ>8$n}?iiKtb?JL^V%hBF$!}p|^oJ`7nJ8dBcqVL2Xei5TV zw67SF-d7!&|6(;-ceJmFgZ8x{w|!0YH`?|U12(;y#P$`bB@bCUZD?7xsWa{CuJ(mw zI9oA9BMOF??cNu{H_U2P3c`9B9oRK?XsUic2U2xRz&Ht6Jc>E*<2zv(8}-~P<}_P2 zsRhXA?Dr3C&Z&;wCu4=PWO3rdOXG{rJ~i5~y0PKnXj^@9b+o=^MYOH4y}7BQqp7te zy0W!Bnq1uo3hb^CUD>pz(Q)ht2K=tzz3>3N<}j_Zg*+Np;524}4XrInudr7!RLcb#gi_Uy6Oca0E0 zu)ou@o7>w{<*+$Ac8uTK8D2ONpgg0%cta&zfUN(Du+8tj?>|4>T;Z6GmQ_)FP@^iu zoN1-gN~4pK^{YBQcy48)vSLYP?VQrm53X!#sb3SFF?06xxw9rmC#_j?N%IHyMl^G> zP9Kk^lnY%}lQ`E2brp?PJz4mugGLvwNA2b3MkR)(30F>pocZI5=8r3$KQ20d+@y+e zr9Gpr8`(eN`tWB8J~3{RLJV4|$`Kf$x)hszSqqH#qPAbh|5!HfPE^V9P`w2hVhAeF{!tEKe$CDP~^%Pu4bvq1Gy$Y^V z@Y7+9DvV|Js7Zq_H|Vf}ztC4c-L(-E_0&3;%R+J>j9s^K`? zCs^5Bewi#BS0l?LJT>HBC^hH$;q%AUu2N>Xz;xqMUd39YxqhQmzPS?qsMOvzQm#Y2rY~IsM%dfn0^cZgU%{QXbCQ6MgP2>f) z0>9Wu<#l3tx=>9QS{*cFx%Kq#eq~iTF1FAQM`V@G#{UcHxX8+(CY@7)^p$JhV}12i zF|LNu`2db}mVUfup!TPxAMZ-2y?*JZUdQ7{Ke`8pZ8H5_^ha~5{M?K01IEufj_0Nd zKMvQZ@lV9{c;i38Tu(Arc6H>*_JY?_@SA4*rMQ+E{|sDb8vkru=NNxEuBRG5ZSr*E z{}8S*J+qet2I*`On66vGJdS>$%3i6j!!4q(9$WKZ5H=jsF5% zFEsvIbFIg9IetNI846&8^YR{V_=l)OU88b>4lp>&MY^?AJm^;xNEGit82kzkzQo`I z9{eeT@62W6oMX~`)I-19&>w2r3>)okgHQ6{*BLzK!5=aBOe$Bn?;5F6^-8<-4$B2A!Uuu77)1aiZ|4r_eA3+L@Tt7*b&r0Pe{mLcDTRV(3#b5xM;!oogn=%#~on`-av^%aaO z{j8^Dv_JmK0Q@C1)(6A>yV+R7am-6M2K9${o4!?JeR|(GO5+B0)R+=CUk$)-MtkKa z=PywK{qXAo@TV}qn<(_D`ZJ_E4IPUgpIXT8hhK@#$`2opv49^wJ%IkzfP8UJTt7Zv z2;lQqybJ0_KLzFChyOAadkRSa{wC8^K+W~xb9^g;^?Ew4)H06H$`D(f!z9AsLJR``D{w&n9iFTuC$gIZB zxUNOI6Gc1x3NX62i5FzsVLRWsV+`p}(M0%b&pauD9ZnSOu$}juj`}rGwA=Gc%+I1d znTUVZsks<#J_7kCihksHL(qqEpI9)%k~{XSjMEgKY(G_JD2{*~P89v4nujB75%fP% zwEvtV(bd4tCyI91j?up#Q0~j22R}V84QL;Jh_|RGiuPa4Cy;Ih2CNfBf3ZzT<2aXq z&qR^Jj|@IJpdKw$?Nybba@2f+H=kEHN0r*eOny7j4o?*Q8s}nk_u=Q4um1|b{}^Dm zc;DEU&nE)-+=4{?(#1y3kQ0rKaa_-!yBzg;q8Jx(9f$67`1$d<1NJ|`;Rso~8gqR< zpnW(FCgsQHBj|S~IQ5o|T2J6jJti0voR8$;^8(uKQHl>o;o8kN*8>$Fj^4F9(_DE* z+XTKXZ(P(|?+&m}?nyquxxkV;-Nsk1_?(@=tsYJakaKxJdwxcM9X_Gzof;IYG+5qr zKLPzjG0wF8_%{&dr{}K($n)=PXA0057>8=8TvGsjZ9xC{i2(eX06y0u6+byo#=OH1 z|3Lu%T{);*wKi{=^?qC8#8={H@e38Tp2_tIyiwq6n=Snp z1kTZ{#eZpVGzY4+=aueZeNi);)8M!CBTap!JgovR6*&6}OaBprd--1^=q3Lx0+)RL z?%{)GR=KwYeVa&kBHA%J%E?~O%CkY>Qg1IAoN^}dL-V4XoqrNP*^lb~-z`c}>jLnv3w$opxBB@ngR|TlD420S6!dd|S^7r=zDnSK75K*m z{x^fOpJRIx!;fw(+J8Eh;~M-d{}~1+{Z;tc_UA($Jccm3D#3^Ah?dV1LH|kMwr^T1 z=sB9Q^gROql)yhP@Xrc-gTUJbetQ7EH2~ipfEQz&PsehZj9)cx;Ep#q^~TwRm48(L z{iOl)KMbJ1Gl2g00+;#aJduv_Nc^<``~YSM&P!h$fS(kAmj~c(0RGVcyj9>8kjv_m z^GZ5iPF6nsXT6}8?b25TF8SPIa9&Opds)KDz|H+kZ~*>H0DcAL>2%(F{bvCFivawY0DKJAAN=^22H+P3;5`BO4uM~b zgseU648V5<;44f=sIm`=_ab+Go3Ue?nS4DQw2DFT;zJJsM`y?sc~OTASITzs7Vmn@gl4er&?d_gbu^A&+hK7SSXG^An6@q9DUV7gLo zD-3Sa{S3nC)(HAf;NJ4N!9&k@bYBwmQqErqT-y0-0+;d}g!NB4ubd|Z;PV3Ta{}-+ z0eE)+{%wIvJwIx2t2e8M-wS%FhgoLf&s*-730#)f9)U~!6de_yp8$Mb0DevYz9s{jgoTr~I=;sLfWdfJ|euuz6F6gf^IQwPF z6T^@0-v#{|+*^6>6!da@{(uLMkqO+xg3r0Qw|t%u^m05}M7I;kHn*=WH>Nf(PE$E*&xJ~yz5JvZwpqKqc=vW3^he zodXQc{GP`6X5D+0hyF{3zEjZ4d~Fc;Ji+G)!KdEv;N>MjKUL5dAE$}D?aT=Vr~D^t z67@GG=o^7p`PT?sme-{L__YE*Q}8)3s*=fT_l^y~e<*OtXU~KzpIUgWoFgV`+?LB@ z`qmk5aOy$QPZYScllcL7eE{BUaMru4@U!i}S`QvW7+s&hKZ$!YymxL2;D58gmw?{p z_ZEXQzgOUA=ea)+^p%4CCjyt_=bsB)>S5~fhz#e|Te-olo*&g@&Y1!97YE>N0er3u zp#MeyzA=E$j|1oj1b!A|xB9#UfRzS0+)PV5O`eh|C@)uwa-0*Uhhc30%^fVWyIQzTgvwpN{#G?ORHr z8kghn&l#NgYA}9YZZv-Kk>l`h3S5@&fgv40`ZMse`TCT=r99sixa1?>6QInN&u;|% z#RA_h@J|c;F9A5WRivYwQlEblxU~NjdG5%W?R< z3f1_h;J5TU1wKpQZwXxLVT91XEElV1rn^$`v3mC6oNLe#m;7aZCElp0^Xa<-aJydO zdULQQF}|4<0l3GXyT}aDlOL2zoiLkmW+2bmY%5jJ4Z;CkRKp4nK?k41PM|vb?q^RO2#V0|IAXZ26Rk{7U>X zLBCGWUt@6A)5-X4H}}*z9px#<&+?~@(T%~c8$YYZFThVnK5Lav|FP?)#O)Z5A>Yu! zivM-+TmH8TT^YmwaLZw{@J5%uw{h+;IO)e5KQH$gzop-4 z?vJM6aHKz2`Sc%G;FQyTzk80sEg#!{+5K0@$L5`!zUiU2-_7Hk3*|_EsP?MA_Q+4- zhY5Tk0XSal9D(<30zZO)aW@IP*n+sK!wGO@@R0(y`v?&KfWTiBe2x-$VOZZV*pB6h z94+u;G>Q6KD)3_kUT$!!PrF}&{f>kD?c9gazUHB~`zY)b{G%i^?qv`CfXUBXb|7%P zouGXBPlds)JXSAVf_|c)zgghN3!KM&(OEwBdzhyLeTgPfe@jQ|8_IKnz!wVqM1fZu z-14{kI($dapCssi?4gety&O796ER&|H;MFzrqp*{d3o1mmt4BGVVu+4*xb;z)~Wrd z-N$Rj^7@XZhT5jR?O0aX-cfn3Po&npMq1NRDdLnTTWj^+Xhdrpy6S6_*mdqwh_WPE zp5)GVE%nL9OK`tpO${$b!nsYY9kmd$ab{CXQ?k-GXvU1%+K$E~$W|!pY} zE!o(WoR$$u#K&H5f${S2@U;Oy$qC!ixKo6*?SlsvyFxw?`~r_IK6+2r~+DEXFC zc`h3sQ>3ld>XuBet*l%!x3=lrveKIR_WI^VbZ8w&y1Z#6Xco6Mw!FVom&~fg|2*!k z`;EJo_0sc}By*bu17PYuh@LwH!UvH=y7#6!}DFV@pG$zfo2C+R)P4rKL2YIkh#5mdvb`VrOf{UPmjl zyE@R}I0R(qu-YJ~KjwZKH|VXcU$Fwa`mV~!U9H;h7i4SJ)Mlmw&dP>0 ztsRX{?T1?~Z32^X8#_9i8%?~%)wL_x);iNxH8hykq&8W<9D8MF?SG$CKO5U$V~^^} z=7#spDcgEzR%K;tT32DDuSW40y`j#$-!#hGIy+Wl)K{svzi#z zIK+$%7nD_=yJSW!*tEB}b6f8(MQllaZ>n1GA`F?s6VK zcM(D_S-iA%e=+oDXXZt-F>^vk6IWFbQ>6Meov5X2+YGW#{r}v>Esd(Tt7IckR*vdl z-)2~wjwg;rd`UUR$h9-qGZ)JfbV(T(2RoWLbn56(JsWD=%2p9kELHAx@-V9j>!6K#xN4Ss z6c^i*>Q$ifPUvbSw3_4`rnGi?(+ZK+tOnJ$HdHFuZ>sb!Z8URMG@^pFuB{9#K;McW zH2mI1<1>(&R=Bqz#&QBGEsh1zI@CijEI%(@U|a6@v#?WH%AtvE2yC~~pw=+57H7jv zqZ80DVU1t+ZtDNhBfw8^(zx)m=ovxLORbT z`o0P&uk4rZFScqxPitDTzc_LgJZq#G4esCkXVjW4nD^y>5dC2s9Xl6c9J~BNID$AseR=I3i85S;9b#>L^M6Qlj95B?BTw8ldX+ zWO}K74Ew(S{$(upfzNl>e@KQ6rT@j zZc%;7{I&Ai>p2iezBghCcbS)hAf9rRza2lDzP)zhWecT0PX?kUeYv+5;;48m*L1&p3BlFkl%>oA@zMuR% z`LY|_fcopGeeL<~!f@p;T&yEX{qr3lE4RHKfWq^WzuU-f_fs}vloWjMA{GI z4p;wCANl#-vz6OkZ!qkvmeul%L9{r1RT+M{Dh`{Daz!|hRs=C_8XEFgIA`=uORg@9aN-AQ8YerBfkiZ$3K!hl?qDcseL_-pj z83>9JoJ2W}qqNo5_S2SLthBY3ep>6Tn8+pAiv`CgU%>9^XXPqu(gSNp>q`u_@*KHo!4q6{|w zn^pQ?FC3LW?OWFAYX1=oFn0OxQ0eRMcStVj>Hiq<1uskc+iX*R&jS-(A9EB#r}}fJ zjr`>{@)w_AFMqH=CZNCHp^{6}Ul8%_Si{a=UpcJi+#V*{>5dP060(grL412*zsjrdw_?Ke2skJ+9<$o*U z3tpD`yG`k@K*guDi}2I>I9C7NXCwb=#Mg3b{~`zZx6F}3A4~p#gZu|?mGQa!^N&OR z_if~-{zuEL{TChN-#1sLf8H_l{|5*8b8eIIdHr2rBme1GpQ0qxbXP{g{||~}P`|IE zZ)kC}?^OS?N@WagKWqe~^R4~QVNyf9GA#ASH&4b_Y~%(0>-wXCGQ=0WEb$GM|1FA; z>fa(3|5){Jw2k~55MRr!{p}9&H!Askh{Ihrzd)GI=d_dmfRevL(Ubg_;HUF{Ectyl z@<$L~%dP!~)%a!A{}u=RTjl?e!}wL8UP9Z#2yZUob z$*(*m#o+tTX*T+6u}S}P4(aDpX91_nNnWL=UxxU0<-b?y&rlI5|DVH8>qGN(YJWi+ z`Dsa0m%H}2JIHS+`CAc(JDtA9e&8T~_U)2_ub-0rs^cF^{;*B?Ux)ZwZtZ{QApbrk zzZwR#xM}v6lm5zV^ta9?eL9EMuKxK{!RdTz0kU;K`C-Htd9n0gEq6!)#YWhFm4K}J z^Q-a065UmxB9d&}S+D;#RLY;vi4YE`_@B4nI==R+)co5*=K7Kr+;T(5)9^1bKmgOP zRchFEw~DX78>DY!>45UP5MS2?eyc<2uLJ8l$sAhv)6ChPjT4NjvfNC_j+93)Dg3FsplFmkG6MfI3cYuB6}BGs81Ww%lw>?s zN?u@h^O&N|H@J*gj9_=q{m8s`d=LcT+?;ScFP!(fVfGlYPPcdShqxEc>kd7s&RgDS zJpQ2!UTg&Rtvl6lcNl@ahIdY9$lPU6HEqQGu=%P~fw`x|{mo<-Jn}@^Z8;1FsAPSogQB4h-Pmnla^V=k4N&D;JcqBI%j<3osh-8J$H>D0Jvqs`N zH`SzY9MzcWb~x~R1L4xpXI&f&m z(fL7!ktlW>W~b5FbCI|GZRpK-OeyW+l6ZA?N!~xh=3kA@e`gp^DHV=40{>pOIJE!$ zP+(WsJLh0Y`^(<8A5%Ll;xX+ykzHAEFB%k^1}Hqg<_MPOa{fzMp|t zuD2t66#W16Eo$IL)3V3 zZKqmZI5KjP~e| zMCs1MzVXcOdR!!Ry7Pz=vr=&~o2+&{Q7i|3GLuKtCEzgmZRy(`_>c{5$Nw?VPhk0? zxc0=~M zK7;H9r4Pcr3_n-YAKA`0{vyNiSR~2EBbuwEr#h$kpU-eC<0kP37>>tVNqjxR&|dKsah6q!aB-6(D*{Q?fvVNH*P<|i?sgy0V(~{En?yYh8gp#>l@Zom#X(z?Ot%TzLaYBT7Z6= zv^MoUfLgqAC4nmm{Z+g z5~1})!gw2_n?d>qr|k!MmD)`TB#=bA2yI$yYL(i39_iK53E-9EPiV@pMf8fWJ# zLK=g}5e;QYr=|UeAiR*@lFvS+6m5qP4|05rqU#3{S@5#N->&4>&*CV3>YuFg&r|7J zqPz52U-^^>b6Rc2H&76t11tK;kXe;VT3tp#sa@paqQZNwsu>$?D~b&rzVt`b_V zZc;qE^1DnAEt4D0rxjkc7K|yb{aWyhDfu&}5aDsG1-JZCDFI$k1cUfChTBC;!L$tQ z!=kTuS%-Jj`~v(Y;+JEX>kRm%M%VlbieZ?`RvYHx#?~E=QpJqS4JVpQ_jugKrac`1 z^n#0#*pQ2LvqRk?4ptGdmikincW`wGt6=VkcVJa0 z42Vx4n%}_c=fK*JvFRUlNMy)76f*mbL|rZvA{PTg@%hFR1{$~Fxw{k{f{}PKm+F{d zz9G1JAGuRpA9~syIoZHc?pC@Pzccr4_`N3@`(HB>59fYC#E^?say9Ktfpke()pFaR zHo?jrImw7WDHw^{B!Urd6{*K_k^(^6a>?-jfe4f+ReN33RD1I1!2p)aMNhH^7pEDI zlFdZc5-s6>#&}d$cDg(ZB$J^&EQbpX$ehQGYy&ISrQU28F${`o=`y;4+0c)mZrO1O zLQ2XW(MK!s3Y z^KB6`6klv;)l)U1Xhz~rK`2?9J5gyUp4;1g2|Qd85w5PJD+r0;HSz{kTU8vv#;_8z4e3UpAcwg(T#V}qN zFV8X(v;RzLlG!llXB+J=VA&r05Fsb_o@ec8c$Dx5Ebn_`lc6bG954bu_uhOKF8t3K z=JUqk=MDFZU~9x)^+ZlJ4!?wF6_fTG=A?aiAmTQ#&L4flh<)hs-gE}o8hO7l5}CNw zffh1)KS*-?hX$Iuc(!B2H@w|#m>c@KDbz=yJ_;S7&=Dg(`)$LV-Dkx1WEz2YqWgPx zBLmbDkAT0(NK(6P-@@uT-J&v;w}h(O?h^Qh+(u0=mEIOt^joz~LXD5AD26qv6Qq-KhuTMWEs8UB&JL*`=N|MOn0FdjvVkUgBJ z)sK^jq!Gi!Ll0=Tv0Ie#t3rGuwNYm6pxGs2^j}h7?#4|)6!h+RS16ZRt4+ z<7-^)uY23Kp_Iaj@8n_(L`{1@^vy<>jDr-=2vNy#j~pH=>As!d%?c)J1Zk4)6jKiw zbf0>Ea-xx=g;H=-TkZk)xO)U%HhzZcE2Mf#fruR9$=j*a%?%I5FUu;4ug&fq7K-h0 zQx|7;=`L8tA?cDTP2sj&bE8D|fllWNt<`v(MzoM;iyqPFzF_#+Y8?$KB~-Qhg9r-Q z95c@{ji{7S6_ujNsQURDms8x)kMgLz!sY|Hdy!gV!+9>F^Hq-^2${RhH`-s1G-52w zE;RcJV+Y-_58crd{LkUBb+o8=StxM>#_V^)dAt43>4&pMe8fH&F=+D3(9XmAV4N&I zVk8#e37Quj1Rkt*`HaBtqQ3`^$QUDz?!(+~bp9nXWEPzSW1#G$tjDRC9>WiENrQk& zG*4C?(#2M~2M59OOX61*gm(Pk`_hH-c6r-qSks)4W!Z+A z5sKfCW#sjQygz!@2>fepQz*7O$N$U@L`EM*D(Kd`k;)!CC-xwbZ1l};BXDHh zeY)kyie)v}jJUMbSX17#ld8P;kq!@8ahm|C>?XoZgM}`~m4aq0(%CLmddXiy2DbykPZrVl0>A=I$o#r27e|_Ib zT>U;3edn80k+Jz9_KL@deK4YV1okepABx`Cvkh7J85N3=_krPl7Y}3m{rv-D;uddq z=D)nz;eTa&M`a%IjtU=vsZ{hYA3^!vQAJ05gyjm2`vEAU=P>?Z4AH%mx9uHdl*p1jRnK1tF?aTilcWPJOct{kff!qQ zBGI!|(x#-hnr_@8Zy-HkZAB{)+KL3+(HoSNMNJ(bwOEY5Vh$v%tPaA($lm@(8N^`T zepm)Egtw0Z8$?tCH+>wZ=Tnp#GLvR`M84RI%0bx{iAQ2YwH;A}rlcfoYcWXm;*tAK zbzMV)7Al(6C|MzJHq($s$zqBwQX%=?F zK`~3QVftaFXl77I+ne?_O`8Y#r2LW*+Vd7tq9Q~eOe!ZwVHaq0m^u`4(AGyAk93bf z=_K^Lf|L{u_8J5#lSCJLbXo68QoE`JQKNS$zYO#i(dAJZey(o#y<=EJi&dkg+LAJV zrG=9)hKRk$Fm?I`xW*2WF6fGYNbYJQadRi;?qWD1EHP&yg&!67%P_Y|%t61~mYa{5 z#r}Q_bYaXnNV#M?W*dona`)k)=XYSK?de=qkT4c-3uU(}3*;!HgSeCxp)I#h-ukJ! zMMWfUVJ?Lz-&c4mi;@i*+`3oY@+G6_2G+Jk-P)>S6}P=iV{`iqsvS3qyG6)!{82J; z9u-q~cbBx9KC9!f_#L)s*H&s$hoBaM(+X%ZLId7 zTxtZ~^4{`o%&o$C9ftQuSSLAbJpMgtsC*W)FseD*AvND@g=~q2b|HjM1B7(r& z-=fjo$or##oqC4V$9z&tHiFYh2^n12{ZnRIDh zhZ?;gKWwfnAd~K-u-?Z+nodz;4UB=F2l3A^-}ZO-pXmvqW3sdB2&2kKeGAn>a{KbwJ}e-*2umx;=%61*oGlKS7ZXVJE8wZ zr`did9+LK40bvKmZqfey*ia=mKD8E{?QMH0Q}CoZWa#5&PqhI4&HJ1PkKA_(&$m@St;f)t5v z=Xf81Znue+h%wWM9l^3%&x0_Kjs4wpA^e_^H*3}+AaW_V!aWd{;8YRkf zPSO7MB8t|xsMqv47fLR;4L!|oa6w!53?zajh1p;e$=QMbNJjVktpyi&+rRr>f4~0_ z2lJyjI}kgCFyGtuFJPQd_aDaH)awZ2GsnpLIX3HgjO3&NZS#5Bu6pyYDIbZj1sE#~XV8rFPYs62$Y_iixjDSVn*-yhU_4?@NbBtMYeBRhU$i@}B zadP-hGTtUq)x$Lph=>_huz*Czd?tqjTl4qbE=1(a=5=ARvY!# z=wW8dE9zTt6{0I)skC1vZ%}WF8&&dZizI8rl{P^hqT=1Oi%c>$YooTCEpvJF5b7Ek zWrCD;xnkQf2LIQiYkGbGm?M|>(Aoq?LSm;iM`rfWo*|BWx+f+Pnfo?+=dI_#RH8_g zD!A^*EIofS63f%e3(K~DR^>(e=;b2`!8meG?+O$^Z#Si#%(1*RqPGyJ2uEjX%|{Cn z5?YTg!mUPk^l|_~+tJks2~9_%deEafQYw_B8AP6&ShC zwK7tXP6VCvlVYIP97Lj#IKf*rwU&Ta=OUb)!QZvWDKvi_GJlITDLid6XuYFqY@xY- z2keY~yaciDNYfm2pn-|av#=C}7ajhE7ai6@M9k2&z7r$Hn$LE=G2Z>`{tt~REVWG9 zi+3Fko6jc}yUn))&u)A%T=hmt;8)(*LPQL?|FIyR*&PlX^u}i4dQoE98VKwvale73 z6L%O7C$hP~Xn*mA6X$pzDf7GMTrk=n_01_L^JhfY$33CIZtqRcB5u#y_?MI?ue->7 z1Z=YAcz3{#Luf=Oj!qAGn>9Z>g3c#Q4*;?IeSTJ!Vm{h0xJJI;dlo${$r5S}qffv9 zC{ou1CcTR=H)~G3sQXB2LKy=I`H;{=JPa5}$d@I=Z92Pm0TvUm_Mei5xYwNT9p8$4 zAis07NJUsorPU<7cyiEt(_u0BG@nQ zQj&)yzJpk!6P6-&_IH03-8h*yV$}rq#GStunSbftDDGT?Wwmo78=zYZD$PDpbWZO^ z@W#h-h>Ju7QJafvdOn>xZ*gR9> z^D}1^`7@(ausnnc)rEY$8GR9UGV&#b!s>&5vP-!PV{U*)(fz$1Bq3igxB)L16pL)- zv0@2Bl-RC`tb9e^2<_8Q6F3l^*lP%6TrOrGk$Kb)s#}rsc>@yT7e=mbrID6CQP`AK z3}Ju8^CV2?p&eP}m8FjN6TAz?>~*`!Pr@^|y04+3(mM-3a=YqXuKEctk8^EtSGrtp zxhMQ?oa;*&6)x918Q$AZcYV|2?K#c$ThH*$(_HU+PP+Fr*Y7e8D)x z4LM_bj_c_mH(`>nYk0}MXSlv_;^{laxgI%jG{Sd{II(xE>(?W){x;UN>7;1q>8_hc zj_nxhx_9K8FqUo`mG$9R*PWy8NBD_TPP%`r>)YVweR?zSsQ+d8gk~=$7C>Xx?I5_Uvj&OD|Nm{xi*1rll!C} zX1H#5|F@EXWV69Vq+|T!!)dnIoACiw-2Bhsy)MzFT4(3FA|u8AkXAS!H$uRfw$1Y-o*!v1bP+O ztSL0G*iZd=@}B<%daLU8ZD2XjLD2ILIinB7Hw>AGVG_pwd|%{K-bY+*9W9^6gV}7u zyJO#>qD$Pq$f><+F#ZkeFU9<`-`jQ%ShaPmf5E$>Pa7Nd+)k%g%?uN~V>>aR{cXdo zy{GH(O7H_ial?Dt8dx6wjwh&GdNceTc#REx^(Eb*uA(tCB)AfdnY6@I+-JlKyM_Kv zg#JY4WuKXy>@#;hN;SIo$=)%_wv#&QJ)t+VH=~z~%@P{2|!>kT-9WA6hP z4y9t%;Gw4o$2;DQctVT|1h85G zW_RO)l!?6R=dDBt8TbekpGu}kIM5e4hu0VT`A{hEM)dDtvpLKEda-xM%i%;F*&MI* z4&7qJ=4N5sqgA9L*ak=z1&TpC)P1NZ%Qpn?Z{|h|u$D56MzG$@Etm|#unTu%1ck+R zeRc#dNy?>#-iO7znc^iqSv=bik3XF{s&Yt6LMgD?Tii6q+6r0ZvNfqku++s*&Biy- zkhJZ9QFGHSD&%A(!)uY^5k`x8ketSeCWm5Sp0U%FPO}At4V1P9e;nBxWVWz4MM@A^ z*TUeMJ66AA|9}aGnvIvS*JXv{4cR4uH@vY0P)AAN6)cgXxzVfDS+uN+BJVTu_J$IR zVC=uuJQH>sHVo0b)A4Ju?A3&)cqe#A4fl?68(oFMmct?h%%-KVqn^e?@};PGZ#7|$ zjaXC0+q6$WD5LX;$9PPyAY&P7FRbKlETsI3Bn~HL2SbNn!euCwn6wMFX}A9c@3LnG zYA@BFlEkDl3lC+U>5h&;cbs`9dWgUP1@(tTXUguk=*%o)D~Kaw&_A9jC&pkI5)r8; z7oCAlANE^z(HSmb!QwIF8Pw#@P?_4<9SXb@HOU^%3I+bTZWNhn*+!rd+mGhu7~c8l zJLR5{9(rVC>`+hUQLjCrygi}L4?V_HI?GrzKTNwULV-ixTPn4_g_1&fyF;BHctG){ z@t9ik9uf-ts`;D}_v4-_XobF30z>#h-1O=oRZyF<}8kEdG zVGo66qDL>9w?9)THZp`U5K@d!8;|O06AJ8Ew*;DhS7u(78!Uld51yA%tL*H?8`_z{ zP-0vc%5p6l1RkNh9>MfMu0zpV+@$=TO*G3?17FB|lfQz!TdioRtp{DOW#I%Umm;ad z|3GM$24BT_ySuF;GO~9jm;t4$=($jNihk_J7qQ-kibJ~T7i_hT$o|3u%=e5gJUF6G zU>%-%%x{$8jadk1QTWh&LoDH4zg)$ZTvRsX%n&TazTX~-pdIWJBR&$l{Q`TvcRhXh zkMJKw-F12AJ-w4?HCDx!$~a%pLyns7sbuZl-)dSEAe(A)M9Xb%^VP7Jej=305BC?7K-inUvy)f0DGCN_R;aOe5 zTamN9JKoX-05hwfl8t=Nh~1F&X7pP-@HocRdy4;1uNUw8!?3!uBQdR=>?WOVV)n4Y z6C=ZXN^M6_8}SOfI1oVEQQ9OD5nw>MrDg?v@3Y4=pe*Hwz9$rWqt)oTr4>SuLkWtm zG@RI&gD@E`D9z=vG*>IJ23wlw&Qt5lCz_rR1}%oyBAH&-{63WzQ8QI#<&_iJ>l2kX zQJxh!0o#jY)^z(56_wR}o&<4Dy1}MrB+5m4NEhkB+B&)_?Xo7)lLSXsXqYU}qG42`A0gX3eZh7x>64&hnZ}a-M^J-I zA2v~9T@W3J)Kk~o<&@v}+=^{kk!jc}Ir31aJDP3m?+J@1$?j0%GB+OF$Cs93CCV_| z*fP9uIjkOxG)rOqEc9*5_O|T@i(>C17Zo1DHsVvUi4NWMMRF=Ncli!_QMUJVETG|N zkn0WD>ZM^fM#8zvjo2$6VnM2(=Acp@2rzUTHX_Omn%&q<7N2W`!TUZqMIio zX2GGk6`shIp~JN8t~D|*l(>TehS(EJeF6>QhyQBi?MFsP=FXlo#khWOJehi%y3jAS zhTMBXoAzL?vJs{RF{fU8c&MriH|SDST+wraAsp+w56utCRxSHfYDg(v@v-TXwR9lf zQu8nm>&M zisptB<-riG0mgVeBAq_qEIq1)kn82XpzzsUV7=Ic&^vMf`_4vm--F+MkJ> zLnuZC>}AA819KS+>iIspd!kXb*YGSxfi1=o?bH5_%V8^FYJD#DuOo$Ry~1J>x}txy zOFcdoPxXBM=lT!gn)W-!7cVygoy{;)=A+hiK1zx>G`}J%G7br1yXnvA7Pe!XKL;ru zjO}mscpq_#QnQPXNI8Os5m=VpJR$aBf8XwuPuGkLDc51-qR4Iv6}R7?a*>1a0b>z5mer4?df*Z+FY8_4y~ zM2_ZGpcTDDN{G*ezA(Fuqj}I8Hr^Bp4(v=2t24u7i#jnBpOM~zj5ut*yj?Omtg#q* zU5<^4WRVR^G%B3?6E>^z!)|2a`sE?4{bS@Nn=fCT76ogsn?#)F1P#SXo3VlL$*t`ZRyxvDSKf^#&`Q%ddT$NkohYZvfj4eA$1t6sS^!4L@AMZ zIgC_1z`$D@atQ!rda@Bpi~z;b9GD$=#RDtvdm=Mnu46uM;}Iwc^MOT}2Q0*V;Bxr$ zFdvwAgtBQQ)?z-;hyB#?nb`ZA)$4&N8ZyU+%w?EvEY79{kIxKPq+9HtCx!wqM*mKh z_bBwS$;ANC>m;vm7SQY1AJa1pby1JpFo&=TM^>zy^C54d6b1@_k7udlX=E5I+oEC8 zfRFPsV;ucEDsI3U%=Oq>j%#KWacu%MZ0} z!BZ>HYOtp#IG{=qN?E^{D2|Pz-h`SS8k5{egiRJXFv_Xlm#wB7o5DOeRm(FGzpQwh zXA5q@qK+1eCL1$h%{&SS9-~Y`#@u9+V96+5oz4YR9O@vpw;M2TR36l49-lc=jP8G|o*y&)t)?Zp-pyz0RnG}Z!$n6g!5H?rk z!YYa6PDGQY4QT_rwv5<&W1CMl54a9M!P#MSr=v>DfA*ehB(A~E?!WixsSb4@=;`qc z@>l3@X>$T?&=B-kfEnR^1eOn00RAX)T(~E59PNM3c1MQLX=^?uANn1TKtwuy4WsRD zK|>T1<-((!7SZm4b4v1FrBlSPP=u9an*P3mqNS*TBhlel%olbpO~PN73)Kb5jzX^? zB6YEvshFm94N#2r`Mp7}u|aEX|Hdt0$mFC&QIhK4Ws_j(87;OxX|?EFMk z6B(8V*|m3w=aG?9)=%zTK0qt@qknBG!n#vrhF~~UFogB9+l?gV9dMeVFbU<|{Cp z1bYK-s^aNsrvJI#6<8s8DhPUc!`vB)Ps3C27F8Bqa|>_}y+fvaMH7u?E*AdAhvGx& z4KY}87(9lC;xlQv_r*~B#w@`n6q}cghfK7rB&N+P)N93dhr$tmxRmxa(TF$52g^{{ zIPW9FF^!=8rRce^Ktu2HE`T1EWMlcjyr|~_v_rDY>CHo|!=lFH$v?`w8s)vq9nI-I zo7P`t^xa7uJ5b{{Ozb^LtvApz;Qlwmi73kd*M|9vkax~Yq$HI8E;oj|_?p!6FG zOH&}Hs-e>mDM0Vz*H17Kc+)42vkr;fIAVA1K%&S+(~F`y8Ya{U-C^50J!_y#Z2Un? zeL-s*{E@pT5147*JLly@s+0ROF3WDcF2@xu3nyq(+#DFAus-%kt`|i6iYxzydqMj-7TP2$8tZHn0C^vT0{adIrvxywKZDYn;imCC8_nEr~^Q ztX`7y(%F)wq0aX+_~DYY00$L*0*6cfodnmthJjuKhfDs=K)+yS_TqTSUa?2!lRaMY zUNi>TztGxha`93?qQ9e~bkWtt=T&UWj*i=w0Yt+k03o0Ew^ZRI$@52OZOb#E6MT;1}N5i8MtpJ3@JXqL&~sXpK0faPtV%->30d z#7jXd||h82>HPfEc$qi4jQ^<7v<(#rO#>v={@uMa`CUdFYh3lEe+D z;ji{-Gc<(O7>fNGYXTRQnDuz3@HcP!iKuKn?m-e)6Y+0_;e@ST2M>l4Ee8z@PMvQI zp?A&9w_|_Bw%q=TW*p~>M&xb(G34!e0sl(Oqek$?ehwlPi4HR9slmUe@WUH+hYk1d zu}=wm!;}3J-mjaAm*l2mlY1sMyodAYS=Ll~ziuini}JAnKAfLV7`b9>akbHH6Z? z3tboZs#Z5OtZ8V*>0`cgT<7@e8zR1%hG_jNUv0flo=WDcsceo^iU`9IVNF9*wJ)-| zvfekvhhx>M>#Cc5_{OiVxpGY-@oi}G)z#Kl`|6`>RszP!iN49?e01D~5<;HR*6f2Y z!(IBc5pe>E>jIZPmSgGS@TFy;#fwPB>Z)syCh}4lS?#NYbVzYcEi%6AVOe3=7g|($ zX_;?cC|v9-Ub1BI5(v-`ty?8^Q;Wna>(>hwq$8H9RbZ%MO=ToPdA5i+%NMP`uC_55 z*$1VO2&$-X*6zyYNNpr4&Sgm|a9(YFZS!h6fEVZR5?7ru*C%qIud7wHzhik~xdlXh zWJ|y~(YMOm{n~e;`=s&KK{EVLSp9iH8v|AKyr5)|kRN5yMZLJ;c<*BsYinhg$_UcsH(MmV1 zcC<~Yv_VBHz6om4gJ+UENlZ)Db&B?E;*0ta%eZ1>7J_tdv$}U~@?N#LNA>AD>fSra zdl`SF9wi&s^xLKGqe~HvFgi4a9F;XW!v3MKO9g^*AxsoL&Y6XNQtJWxE<$QsLauB- zi%`164xcl!v=r%-4Uvh`D{mqlsjFmv!a9?4-KjlEu}$BSPxb0a^i|{rRsM>$f+AST zDPu{pm_*$kt#op&9c|SBEw#%@Lx~7W2|8bP?L4JjX1rjhCNxXY&NnE2*B*^uV@f-p z?NA<#2IM-Z@*=)DX(wB1*`DOUtCZ?dj@XUla(x%!)H2k4#%*%oi?KdK3(2VUjd$(J;%ML7AU#Y|WpqE)Dd&28 zlP9$vqgQpgRwGJ97XHEgC*>smP=h$bosy$4UilGUx}fk$_)&jBVbbR)6+T7zW8l-a zD7sJm)2CGUbokUK5q>6q<5l=9_!Cq(7yhSJ_#F5XRrs^;sehxm=ixV5g`pOgUxlZ_ zC;N(MW+=Zv`4=dk%7E@)gx|#~TnK-T3KzjIR^j>Z4HaGhf1wJOz+a@orSLCN;id4) zRQNLZ%T)Mt@ISA@E0ljF{BjkpguhaSsV-Kl@M`$fKasrG;8&-@_3#^1nEDwy=bLCE z_(fHCo$}YizfOfWz{g9Yf_9_wH^IM2h1=k_tMD!GH>>ci@Z&0+P(E!*+k&5yTY*Yq z_YIdY6{_q3Qlj>KM&jD0(l^H_`u8b=%)O}S_cDxvcPe~#M(T}9g_l|I$27f#|CK6T zJ??6584BNS;qwc{M~|nPev!iUn5ywv3MadiyZaTs*&@$P3V*RIh#tufr`{>ud0f;}r8|%4wd`=}#nPPz3zv4zleFAY?|MY9 zmx|Gq$5ogP3Y>bwbmwu+PX~c`T+~aZJCBQc%yj1wGf+F6deU^~aZ#_D?mXg4xOO=8 zw&~8}qTV;%d0dt0AP|qRcGGWp#1};E@PT%x?>;z6j+Oda`#*p|KS7MH5}~;+xg{g) z=}$pZv1>*9(B3Dob~H}1ah2mhGdudRx$;|7`*5Ee&Hu^$$|2p0ASZphszNnAF)s!E zs}m$nCt{GJwFz=`N%X-p#HE;fQfMOvcm545S_2{XJ0*|2!Z$Az{$uzPSh)zh2}HA? zC%b&n<48OFJ@B!^pT>YQ!8K6d^!L?oMLzB5=^IaWc+1K5_^Cte@s-e%9iQ_Y_}qu_ z)Qf384*z>t(s6CEqVw>(49OS&tp&Vz!n6#7s1q@ww z_;n6)(%j3AzQ>__Z+2)$WaHWKIl&>_Cmia-!w%_&9q=ND`Z?C2p18H-U}I=PLY4$UniAudZCKvsLIBw3i7PrAeIT+~n>O zd}wwfUA^+>XAvLOc>=3Z_$@G@Cb03eLg9g7gd=mxEmwX9GCqNgr?hrJ4##x>9~kfS z-1bC=da~UC-;BxI1U8MFoAsy?U0i5hYozchVk+&*R?`s`d6w#MHtY}qH|xAYf=6q0;idubeevm z;B%{nlYIUHdFj&iS5d8@< ztz4z@A9NU}DjdegiyY|t9OU_>gZwu-&=-jQ^Rrq^SE~xWCgeXSiEDl4iTo}|;=1L$ z0Qo0~r&02j*2B+mX{XP(9Q6MU2mC8EzGTo!mvj(YxN9BgSAgCw-FgT7RtG-cL@IWC zWV73GPGlzUFl4=qwKuZzU-}Jnk;Y%20}skgm>bnbka6C zYq`v0I4^fo;W}Mvx8!bT^i-F0exGFctqgyS;foobjq#nFmH!xplboD?Gs8Kb`z(CA z1Xq{qhm4+V1}*2a48Mrs1|wlN^mtU%*e>U1wSF zAnuWyq;RTNx8SGcT+Had1zhvF+=2&jk6abwa}BOFp9V(16}TR2zNTOzZP{2mUdJ*MVNkvqj+~|JU(Tm#(`Q{gsTKzP3P)^kCwr z`8>jK-d_b^HA+9(*~;*T8U6~xcQE|7#2AkF%)?Lf`3u8&KXaJj zyq`In6c0yyczv6waEeCb@_toMraRDw8NLAYTAs@oAKpJ)&gesoKFaV`hU@iOl9Trj zCZp&5!&e#3>)S(4IP5xd#J?CnE&po_=X^3?Pm&{g6F*HqoZ;L~`zgaYpFca`wC+KU z_;dO*9Ppq6zS;p#IN<;7fd5J1q(0tGyDfMS_sRW};ahR7+v$l|?;>Z-*C`C=?bN4m zs)xLtewxwqc6uJedAUqyI4_qu3~xmmx*RWcz`w|FUM@Qw@Lw>Tr+b-Fh*b~QI^efC z;NNk;#i>~~dj6vWeJ18FfL7~&m4(mk ziqEx-p34(wcpKwmoGc@f{JdYK=LO^l=l$xt4Cm$hWvt7QBl_F$({et~@Dhf<$?#@=(@13i7o$Ww>sRRCb3m?iGxvL!Lzrk?c z&+Kr(_cNT^SI;Y)?$M9B!HUHsi zK1B4FF#KkQb9sKqaL#8Z!+*;7@O8_Z8Ls!CP`ZyY{I84;$6sSO*XP>|{|V!B4#MQf z&i^KULHx)SNKfEoiv`v7h03S?hwvPAy;S)m=PmeYy)`Rb^Vjs$x0BQOYI!Njl;c5# zZ&5z+zXm_e|EmfoK3nlq=C12$g%kZ6{4{+(!+HHbpXrD9hcyge!uYIX_$G$y^=(R* z^Vjcg==^Fu==E)lYdzej_-i}}e&ilx_*Pu&{QjKD!_$3^;e4L;Cxufv-iu!re&qhb z=&Nw8_1431YHJ$T?}J$LOCOpgM>tQHPB|cFO*fy>^K=Us&eIJtoY(V(4CnMq8P4fz z7|!+9pm42!U0&B)a9v()7Cb0&i4O@dd@C?rUf)!>Rd3&8IM>@l3b*P_e0%_Wi4WJ? zZpMe};a3djdKk&dm+OJoe`@2p-1T!4N|%p2S`UOTVe~JtbU9w-0TG;44=oP((+ub7 zzQJ%VzlRtr{@mWkX80qxuk)3oaMCl`nY!QfG5Up!exkyuo_rfWUB2frKDv*>ZPyfr zhY3*bLdO4bU|Jsj+~hHaZ)Eg5zjr#|_b{B7JIPIs{BPl>>-ks$;WQo;R|ETl2;YjI z&hHd;pOWG7T)=Q%pD$K8>G|vU>HcRvqrVbitp~CJ$Ps^DpH;OI_)l?9)2roefhQR5 zWLM}iBK~}Q{{ybc5xyBe&Hr5j;RxsH>UTp4=i~SZtbIL-dz#NF4mf@KnjG=r<#jg0 z`8dwY@tcUF%Tbw!Y2)mti8&m_Bl;kIIC7|zR==78j^{ne!s z7Wt||SnFXW!+H7sZ_n2i4*9y8;as05C|s9|E=RT8l`Jnk?&$lPKB(gR7@w^O>vEi> zaBDfvWjHTKUB1?GEM@e(9G&v}zdc{eS$=u_tY$bb$I%Mc<)X`Jq6OFG$lD!nk8>FP zR)lpqE>XC(96!%+UXJAox0d5ojGmWcgyB5D|J(D`;E=Bk4Cm#j^-X%__Rm&EPi;Z> zV|v`7awi%cUoC@)evk7X4;pgBpO@G1@=??AG(P7D?vg)Gw~^s|y!#@KOhg;%Ys_7@vn3&d1p$3?I+OK^K}2WluHGZpXZC#9LQPq=@Y2Lsjt@Ug_rvR zhObogR8MYDVe)vt9m2Kd!`ode!yiSM9LW>KPt*UFKsdrTo6p^&1i}y?W1uF5U5Z3AH z_r8dp*UxIkpW|y7&gI$4`2URY?{UC$7=9z8*LH$c{z68-gwd~O`1K6`8pFB#)Yp+C z{#^bJ0^tbf^5?Sra{M|$E$R9E`X+@_eV&e=o?qX}=&8@t`u~E$sek)6e!9Q$8bI#O=I|Dh@<(; zW;oaLN`~|Ld4~i3Z4XH!<(Us(^Z!5n%Y)mFSO25WY`^316$i zogYbPSO#HPCPtZh$Yg>+>e1_MnFnL@*4Ga&eF!5i-aIT-L8D7fhS2KJ$!$sHewG3}$^tB9cVYsGYw?+9nm6x_vh(4R~xr;I2_}vW8Vf5M-BFM*ZEgL}v z4Cj1;4F9nTlgIVEo#8r2`XQT2%aNsS5Kgv@#<~222k|4P?`u9mfu`z#w--+TKds%} zqhu$K=ajN!-|D?;+0ett^0t{ZeG%;-s<`rM1VEx114LO-w6=^j+_bu;=;5o6`(J$iDQ z{(VJ1QQ50>`!qoz|CKTPbcVMwd>q3cVE7pfKfv%a8J>thJTvje`5G&7~aS5a~S?Fg=;Wc1^?6YbD4gi?B#HQcfZ?BIc;--fLGi#PFJ5h)ynA4WAvtlUY|#` zkI_$N^y7xf3zFx2hJRY&I$eE!)e1(R&*--?T=y+>`$>jRVf4E#{11=-aJj0Zr^~4V zk^fdPd>X^oC|t{_&&_(mJ!|HMJKbM&f64s~_kX#+;{KZZF87z+Uv=N(zT17nC|CLC z7X^}sz0YjEdezFM^^L{r*ROZ2sa{jnxSj}>My8hI0P3mo=;7LRJEgKNTf75 zrLv}JFk31qyO69XE_v4(M zpUz!t|C8mKT9-b?*C5gbwyNV3Wv;dHahaBXK2-yQY)$#1)mn3ST#hkKAs_I7iqLjK((^Q=Te!hO)nt=(9|0C&e zMr9)uvZ}arVHNSJuUuo>^k9XQH^Nw^?+jH|L7|u@T^p^gud22$tYX`;DJw6_r^1<8 zUb=AUwDONF{FKT_F=sMRd5>y|&S+_dU0z>YT2;r?H`vIi$C#>p#K~V^D3bQi zh}5pBE@`NbtS+itUxx6KI@e@;(XD#&{6&|ZhmW{bUBe_C)L4M&^3|W%L~~|yb@eq3 zH8sU8Xlcn=jX+n`HX)(pTsC=gdR1L@CEZF+Nk68QFH&o4Xr_-^O{+m5`m9=%nwW>w0tiGzYzPze3Qngwk zXp8E4a$VipHRYA7Ry8%(UX_x&a`6==kk!?dCs#aN<(Jm4!?*6rmsB@L*HpWxW~o@! ztIKPsA9PK=s;Wx$D&>*Nm37qv<@XVLkEZJ8+Uu%|*HnFMP6PdrWaanQHC%;N2eG1n zIUAY`OJh(?VJg~MF^~0;ddNT{))ugKQFV>r<)4NnAykgYqDa1f%G7C9uE`ixpiTJe z*N~rV6MASmx-q5ZmUI2ZOO{S82b-n_`u1T;iR(qI8FD2hv_5q(T#xU&(K=01((-03 zIF-}47elzWc5zwxQQ6Tj`jK>lHaV?4v~&hKbw>e~EEM+#BgFK|rl!jEq1y18DPWkI zM=`7)EfE^_Z4yz-STnFth2b+KvWgX{%DN~zkM)fT`AFsmR7>mv=#45H6-yXAjg?K+ zA&habL2!E-KDXISm&L_m$qZ4ZLuCb|GCxLDe5tZNQXZ|Z#c(Rg)+|}*R9^ohGcl#S zyoNd+7zCAdG7C#eNij<2<@F7#s>R}8sB|q1195M<%t|@+cXU6rbOAKtoO4z2Me%*4 z!eTXbMs0mF8n7rlw3>BID7{*Aq#;-(RF#)3Ei4~s#f^3LCJsaiBtPRxA6=BSA+;R| zi>J&Frh+%xLcqQ$&ZLz>e1&z;X>r?EcQD$%3Y3exsiGijsD(ln1g)dml$okPR#w(k z!mKN=tRX8;YASS;;zXk>BYSv2VIQq4sa%TE{{;9@KPvdx&LB}G8!K0dm3^%JVtlaI zw`$l8^1%emJyAbkW;BJgj%P?477ZDHr0%2zRE$26X=6}BRq7yM-&y}pZ2VKuj;rw* z;Y!pP*@u;1Q@y^tvgs<(=Pg*W5Sp3dZ>+7Zs$N&yTrHlbM4F;i5m;`xH9Zo=H;6-^ z6FnrL1?8ay)RsgMOlz#HZ4!O9?k}jFigJL~MXf{wrjA{8A^_3F)D;)6l$}XY<6=xX zl9k;*y(U^eS9Z~t*49V-r3=?C#r@=v9rg!oWGx;bm{tXYgs#gjTja+xhN_m9%9XWi z{q!WHxt1)m=4LUjpy|{!u!zhQJ?i9SdM%zLRih3=J8C6aaM9zKTwD&| zTKVNuYFDwerdNrPt*ThSwhdumwsU;*eDQop2xo2P7@$${@u69np0r}{u&ZpYo^F4P z1&iW*8cWlc&xKX+pGi@y+B+;SIH&k=mZ(%FtsTaHFppBJDnUJpRPh8;=RQpi&z?{= z*0J#8j8D|O(CX!r<-skviYA$iV^ty59qTueQB!#`RwWD~%0L@BYKu;95tr$_eXQD& zRtd{KDYjw)LQQw+C&iH-Q4jP8$#VK+^Pg1f$LVOCwfZr+rYrShGIY@CC(1Rc(t)~u zeB%XG{`8!G9BvNT{^%?*__JLubq$rPE}J_KmWb?rQjKVA@W@Z^N(i*}e`GRDUAm~$ z?{BVeTwFf~K|5PT8=8JpQ$Rap-u>8vEjWm;fIU+831r>vPT zA?@&VY!)@dD)Lm!uA!i`B?=5vi!f7@Q!k3FrrHL?6gLPG2IRt}MmepKNalCgW!2~i-DOW;GNt23hrj0dX@+qc>f};|&NC=7or8rvBA_qw^t>MozwCZ&s z{r@WI{JC>emK6goD>Ahp9h#8_O_`DGEvlL${&a%r=~2?5X=y}L(~)#&N*a+r4Vjt_ z`Ta?mQThFo{aDDos->m85f7aj>MPMC*O#x&Pvex1OyxTT+2+0D2%dvY%4&;hN~~e` z$;)fcNrA<_c#g~%A>V~i+aQy-f-2O;H@5=Q`>ZvgAMw?eQ4IkqUR^*|U4D_k=_4kVe6a3TZ>gx}&*;w$h#6P%EQmj_{ zoGE?U8fw*_ll);D`3n$V%dP$Uu({Y){#=>)Cx7E4nf`L=CI4IXKN<1u4)4iSi z`;`2Ak3FKN>EEgTw%F+JCpPJSLG>SL?N6mo@A-0P)!%K1Z>PVk%`#TLicI;Zu1xDg zzx&`Mf18c`RHd}uw134|d;RH8{ps&IC^6FXw;b{9??-$sxAskk{v%txv`~pS+*##sbLc+~ z+$v*n{htMBu<}1_BmZ|1U(2oi-(yg)(|@ayU%y|a^I(<#Im8#dEdBTPxQxN|pL-ng zci71PBOCc&cF=#HlD|a@u6(QfFFELcD;XPbT>t0bda(NcrH%X#BEHtU_NO@1|Hgbu z-Q{W({|EkA{W+-QuTT+5etPd|u=2mJSBd>H3hPaHsk+(MJAFh@;C*`_G+X zUw$3aWdiy;!Ya8m`{h@NZzum&CI2=Rk>oGLZ?N)DvyuPDh_B_={_n8xU|0WwGiAcZ z8vp72O*{FGEi!(G^hEz%gz#YH58B92W4V@F`m+eaa3YEV0to3JugZ+~A1sQ{n z|MLM2R{pS!{M!*<%dP#h9puk0km*yK<<2VqnGW(Fw2^-S7!6kbxu8AMuc?Z1yn zxn2F)qU6`#`__4|%6}N~1uskcee{bmMk_Ig`wD&~_zhP6RW|ZR5ns!#{hc}X@*fO< z7*2mDU0$WnKj?cOcJde8DPy##h$Me0euI_2(MEm)@wMFAe{!_F{1voV0C%3!pS((! z|EGv=C;xUOf4+)H@-M}2u<~!Pk)M{-wA|X?h(iW!>yH}vXwJf&wfcJc==lnLwa(aWoJ{ojE2cJepgC1Y^?e-6-K<-b$O zujwiO*W;(<*8ZQz+RML>21~fwW7Hp~@$()V{k4IgPFMRehw(EQq|{xm;4#v_(P{it z`YTZJDgRgEr}cqmE1Z-3+ic`7LJTdp_J08Wl!SHttF=(_zu&TcZmqxHMP$Lt(*GU! zvW#y?PxOD42oF~Nhi&AKA-#)iHH$kuSt^NCal2?XB|J#(}b^lFik<;?aE1U`J zvoF8pcT0)`ijdT?8b2NXSoQChHuB$#_*!o5zvr`;-xmTgT&eVu|E=}!kk4NJ{IAL= zeJUo&e+_bdM|Se}4O0IJhv!d6l>A#L6L6$|vIPe#f1i!~#7oPq{RbWNA0%TD zu2g!-|5p8f&q4p2|4T;U@<#v-R{r;u{Fp&MIi!D3rLWt$7QmYRy@)S(S?X`jJu-%&B2wDx@zeUye4XUawvm4; z;%m9Jf5bulBTD{O#Nke-ud#O=EDU?f>(y7kp5ok?BNXQiT1w< zVXY6%*Gc|-8~MM5_*!o5FT!(vH*jnJ+pXj;Rq1O_r?0O=h;Ju<_SYrF7DY(q*M^^t ze=PZD+sIEWwcOgj&q4lRSSIX~Uh=T%VP%%mVTkspK{DzJEG$q$^Yv1QE zepD#=t@^jhf4al?Ar8w#dR+gv9*6v8N`9SR%0D$}Ew}a$JLrGAl3$r|h$)>_ey94o z!bX30gN064`-^<`^;awwfIdeioBVH0KZN*#m!>&~*{n3Eh<%KH>uPD5-u>6XhM(oImO(W#(VMO|p5x>iact-r*)#RC9 zl2`2$#Z^pr@%DUqCA@fhfxHr4ygewdgcolwl~=-xx97+!;o%-?wqeGE7oVGL#0!jg zF}(b4(u5(PmMn=i!WXjed!QxyM*R4__T`c>dExj^NKf8n9p1d6+@R4_lv_&NL-DVZ z;zH+sofPM7Yoip~U+`|;3OyL+OCp(&*<~b(at*^Q%FPd(8*&Z$7Yw`KGt3parJ?vE z6j`w{^4Ou_4?M?!!o^z?<2Yq>u?)^ zozZ_3`w#V=RrrW|Ajx8XzrRDo?ajgsN_;u}t1!&E+=8d5p-6R@J1K*sTt-(gTjb8% z9g6MFDQ-LDZT~rz8MdhWXH))tL=g`3dfP6;tx%%4o04escObct`KM5zD|&Vh8PqkC zz2iwQh#!jW$_d9eX$juI$ugL5ZX*eG3Lv=V33hW7+t8!O2Pb%Cq)NRCy``kkC@T?8FK5zST z$W2c@nxd884c$h3W+?Aa*nG=~b-KNqo6tQOd3~X$wI)R~Hu>fqjM<$<1m$ z)o^zhfxU)z4obPpXz%d0y#n?jvtMO>mk|eDiTl;LdoriF7bZqbBmO1rhi*JQY`!XP zhRwG_=CgvHk|+AGS&d>T=?j}T95LDth2zLlB+D=lODZY~nWMIEB1gw4iw814URi`8 zQBEkfCnt<7=Y-<*eWCcgBSv6%^SnL9u8dG@9+VtdmD}iT|IG*e{XHK-B&&W|c}aEy zT$&yaC2l13Q*AJNr25}M-5iAaPqwN*veriRg?ln5WrPwVCJ}F{a7opp*8P9%y$yU+ z#koJen+*_a#kdSj=11X@UzBCCTkyKt{veD4m8eQJbJw~~G zwYT<`|84L6(b`sSwH6gIfC9GFB3f&;ReY%?jW5x*fLh7_`<*khJ2^Rv0qOnpem-|T z$&v}TIo>j&J*}^(@y4*PhE@y3 zM>nexBLli-jWHd=M{vzW$g^Y{ZzH1j^4wL^ddakhRoLZFm>ovZ4#SQYgbh2&g2arX zgGTg&*7M_0DCO^wF4CtubnyO>#TSpfq&3$_?#AfzLF?PyTd1|sPHI|laPl1EAu==SPWl%kxGg)!=s0PC5x6W|8oWO{�SnyODgP4Y~MRPuv_RE$lQ7 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�S&>Ck4}0x5ZZ@ZYgCY9<-a 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%0AW^r#BxQKcDa5rOnPcPV4TM?LlVFv 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ƭDzms?rQIO%8&f*WKQh{Q++jocC~3uZ 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ƭDzms?rQIO%8&f*WKQh{Q++jocC~3uZ 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 Date: Thu, 11 Dec 2014 13:25:24 -0800 Subject: [PATCH 031/536] no object count in posix shared mem mode --- Genome.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index d599adc..18fd6d9 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -29,13 +29,18 @@ Genome::~Genome() { P->inOut->logMain << "--genomeLoad=" << P->genomeLoad <<" ."<genomeLoad=="LoadAndRemove") {//mark genome for removal after the jobs complete, if there are no other jobs attached to it + #ifdef POSIX_SHARED_MEM + Genome::RemoveSharedObject(shmID, (void**)&shmStart, shmKey); + P->inOut->logMain <<"Removing shared memory segment, removing it."< 0) { P->inOut->logMain << inUse-1 << " other job(s) are attached to the shared memory segment, will not remove it." <inOut->logMain <<"No other jobs are attached to the shared memory segement, removing it."<inOut->logMain <<"No other jobs are attached to the shared memory segment, removing it."< Date: Thu, 11 Dec 2014 13:56:13 -0800 Subject: [PATCH 032/536] fix a small build pb --- Genome.cpp | 2 +- Genome.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 18fd6d9..8edfd9e 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -21,7 +21,7 @@ //arbitrary number for ftok function #define SHM_projectID 23 -Genome::Genome (Parameters* Pin ): P(Pin) { +Genome::Genome (Parameters* Pin ): P(Pin), shmStart(NULL) { shmKey=ftok(P->genomeDir.c_str(),SHM_projectID); }; diff --git a/Genome.h b/Genome.h index f9f5d20..fba4c4c 100644 --- a/Genome.h +++ b/Genome.h @@ -21,7 +21,7 @@ class Genome { private: key_t shmKey; - char *shmStart=NULL; + char *shmStart; char *G1; //pointer -200 of G Parameters* P; int shmID; From b07959fc6c073705c44c5da28c62112a2e24220b Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Fri, 12 Dec 2014 11:50:17 -0800 Subject: [PATCH 033/536] fix build for POSIXSHARED target --- Genome.h | 2 +- Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Genome.h b/Genome.h index fba4c4c..3fb8ce8 100644 --- a/Genome.h +++ b/Genome.h @@ -20,10 +20,10 @@ class Genome { void genomeLoad(); private: + Parameters* P; key_t shmKey; char *shmStart; char *G1; //pointer -200 of G - Parameters* P; int shmID; bool GetSharedObjectByKey(key_t shmKey, int * shmID); diff --git a/Makefile b/Makefile index ae08d2f..f34434d 100644 --- a/Makefile +++ b/Makefile @@ -85,9 +85,9 @@ STAR : CCFLAGS=$(CCFLAGS_main) STAR : Depend.list parametersDefault.xxd $(OBJECTS) $(CXX) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) -POSIXSHARED : CCFLAGS=$(CCFLAGS_main) +POSIXSHARED : CCFLAGS=$(CCFLAGS_main) -DPOSIX_SHARED_MEM POSIXSHARED : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS) -DPOSIX_SHARED_MEM $(OBJECTS) $(LDFLAGS) + $(CXX) -o STAR $(CCFLAGS) $(OBJECTS) $(LDFLAGS) STARstatic : CCFLAGS=$(CCFLAGS_main) STARstatic : Depend.list parametersDefault.xxd $(OBJECTS) From eb74398a9b5663bd00dd3c3f690856fc8bde4442 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Sat, 13 Dec 2014 12:00:38 -0800 Subject: [PATCH 034/536] remove truncate, it's un-necessary anyways since deleting the file before starting is not a supported mode of operation --- Genome.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Genome.cpp b/Genome.cpp index 8edfd9e..ed52485 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -55,7 +55,7 @@ int Genome::CreateSharedObject(key_t shmKey, uint64 shmSize) { int shmID = 0; #ifdef POSIX_SHARED_MEM - shmID=shm_open(Genome::GetPosixObjectKey(shmKey), O_CREAT | O_TRUNC | O_RDWR, 0666); + shmID=shm_open(Genome::GetPosixObjectKey(shmKey), O_CREAT | O_RDWR, 0666); #else shmID = shmget(shmKey, shmSize, IPC_CREAT | SHM_NORESERVE | 0666); // shmID = shmget(shmKey, shmSize, IPC_CREAT | SHM_NORESERVE | SHM_HUGETLB | 0666); #endif From 08eb5489789e332228edba5d0631edb380b1c023 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Sat, 13 Dec 2014 12:01:27 -0800 Subject: [PATCH 035/536] fix cross process memory sharing issue (no anonymous sharing), remove need to be root (no locked pages) --- Genome.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Genome.cpp b/Genome.cpp index ed52485..5fddd56 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -175,7 +175,7 @@ void * Genome::MapSharedObjectToMemory(int shmID) #ifdef POSIX_SHARED_MEM struct stat buf = Genome::GetSharedObjectInfo(shmID); - ret = mmap(NULL,(size_t) buf.st_size, PROT_READ | PROT_WRITE,MAP_ANONYMOUS| MAP_SHARED | MAP_LOCKED | MAP_NORESERVE, 0, (off_t) 0); + ret = mmap(NULL,(size_t) buf.st_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_NORESERVE, shmID, (off_t) 0); if (ret == (void*) -1) { ostringstream errOut; From bb32a7f43382d3e977eeee35e67fb33ed0da0a75 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Tue, 16 Dec 2014 08:06:55 -0800 Subject: [PATCH 036/536] close file handle only on remove --- Genome.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 5fddd56..4842cab 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -131,6 +131,14 @@ void Genome::RemoveSharedObject(int shmID, void * * ptr, key_t shmKey) errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); } + + int err = close(shmID); + if (err == -1) + { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not close the shared memory object: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + } } int ret = shm_unlink(Genome::GetPosixObjectKey(shmKey)); @@ -182,13 +190,6 @@ void * Genome::MapSharedObjectToMemory(int shmID) errOut << "EXITING because of FATAL ERROR: could not map the shared object to memory: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); } - int err = close(shmID); - if (err == -1) - { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not close the shared memory object: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - } #else ret= shmat(shmID, NULL, 0); @@ -587,4 +588,3 @@ void Genome::genomeLoad(){//allocate and load Genome }; - From 7a8f3c3ec408bba890677cf53b3fbe77e0b85e7c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 19 Dec 2014 15:20:45 -0500 Subject: [PATCH 037/536] STAR_2.4.0h1 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index d518428..5de92e6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0h" +#define STAR_VERSION "STAR_2.4.0h1" From 262bd525f5c3e1db1d4fa1180034c1b0976ab3e4 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 7 Jan 2015 17:12:28 -0500 Subject: [PATCH 038/536] Fixed a bug causing seg-faults with --quantMode TranscriptomeSAM --- Transcriptome_quantAlign.cpp | 2 +- VERSION | 2 +- serviceFuns.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index a5c0fdf..4db65b8 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -9,7 +9,7 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui uint32 g1=aG.exons[0][EX_G]-trS1;//start of the transcript uint32 ex1=binarySearch1(g1, exSE1, 2*exN1); - if (ex1%2==1) {//beginning of the read >=end of an exon + if (ex1=end of an exon if (exSE1[ex1]==g1) {//first base of the read is exactly the last base of the exon --ex1; } else { diff --git a/VERSION b/VERSION index d518428..fe69803 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0h" +#define STAR_VERSION "STAR_2.4.0h_modified" diff --git a/serviceFuns.cpp b/serviceFuns.cpp index e11af2e..6e984d6 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -59,7 +59,7 @@ inline uint32 binarySearch1(argType x, argType *X, uint32 N) { }; }; - while (i1 Date: Wed, 7 Jan 2015 18:14:00 -0500 Subject: [PATCH 039/536] Fixed a bug causing seg-faults for genome generation. --- loadGTF.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loadGTF.cpp b/loadGTF.cpp index 1f315ca..d2c8118 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -145,7 +145,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions //re-sort exons by exons loci uint* exgeLoci=new uint [exonN*GTF_exgeLoci_size]; //this also contains transcripts start and end - for (uint iex=0; iex<=exonN; iex++) { + for (uint iex=0; iex Date: Thu, 8 Jan 2015 15:05:07 -0500 Subject: [PATCH 040/536] Fixed a bug with the _STARtmp temporary directory names for the 2-pass runs. --- Parameters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Parameters.cpp b/Parameters.cpp index 53e6804..5c43dae 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -851,7 +851,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - twopassDir=outFileNamePrefix+"/_STARpass1/"; + twopassDir=outFileNamePrefix+"_STARpass1/"; sysRemoveDir (twopassDir); if (mkdir (twopassDir.c_str(),S_IRWXU)!=0) { ostringstream errOut; From 929ceb4fd1c8825d5692db8033a3cd93d30eceb7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 8 Jan 2015 15:42:47 -0500 Subject: [PATCH 041/536] Fixed another bug that may have caused seg-faults with --quantMode TranscriptomeSAM --- Transcriptome_quantAlign.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 4db65b8..595553b 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -8,8 +8,9 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui //find exon that overlaps beginning of the read uint32 g1=aG.exons[0][EX_G]-trS1;//start of the transcript uint32 ex1=binarySearch1(g1, exSE1, 2*exN1); + if (ex1>=exN1) return 0; //align start is to the right of all exons - if (ex1=end of an exon + if (ex1%2==1) {//beginning of the read >=end of an exon if (exSE1[ex1]==g1) {//first base of the read is exactly the last base of the exon --ex1; } else { From 56c3a5951ae3815531fa4c10a29ebf45322a9c3c Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 14 Jan 2015 18:18:25 -0500 Subject: [PATCH 042/536] Added checks and output to the genome generation - big file writing --- VERSION | 2 +- genomeGenerate.cpp | 3 --- streamFuns.cpp | 24 +++++++++++++++++------- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/VERSION b/VERSION index 9ab420c..5576b38 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0h1_modified" +#define STAR_VERSION "STAR_2.4.0i" diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 61420d8..4529ef9 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -246,11 +246,8 @@ void genomeGenerate(Parameters *P) { //write genome to disk ofstream genomeOut; ofstrOpen(P->genomeDir+"/Genome","ERROR_00104", P, genomeOut); - - P->inOut->logMain << "Writing genome to disk..."; fstreamWriteBig(genomeOut,G,N,P->genomeDir+"/Genome","ERROR_00120",P); genomeOut.close(); - P->inOut->logMain << " done.\n" < #include +#include #include #define fstream_Chunk_Max 2147483647 @@ -24,32 +25,41 @@ void fstreamWriteBig(std::ofstream &S, char* A, unsigned long long N, std::strin P->inOut->logMain << "Writing " << N << " bytes into " <genomeDir + " > "+ P->genomeDir +"/error.info 2>&1").c_str()); +// ifstream error_info((P->genomeDir +"/error.info").c_str()); +// P->inOut->logMain <inOut->logMain, EXIT_CODE_FILE_WRITE, *P); }; P->inOut->logMain << " done\n" < Date: Tue, 3 Feb 2015 16:55:24 -0500 Subject: [PATCH 043/536] Fixed a bug preventing parameter value to be '-'. Fixed --genomeLoad LoadAndRemove option. --- Genome.cpp | 14 +++++++------- Genome.h | 2 +- Makefile | 2 +- Parameters.cpp | 8 ++++---- ReadAlign_quantTranscriptome.cpp | 6 ++++-- Transcriptome_quantAlign.cpp | 2 +- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 8d2ba4b..e17098f 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -24,7 +24,11 @@ // P=Pin; // }; -Genome::~Genome() { +// Genome::~Genome() { +// +// }; + +void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array P->inOut->logMain << "--genomeLoad=" << P->genomeLoad <<" ."<genomeLoad=="LoadAndRemove") {//mark genome for removal after the jobs complete, if there are no other jobs attached to it struct shmid_ds shmStat; @@ -33,13 +37,9 @@ Genome::~Genome() { P->inOut->logMain << shmStat.shm_nattch-1 << " other job(s) are attached to the shared memory segment, will not remove it." <inOut->logMain <<"No other jobs are attached to the shared memory segement, removing it."<inOut->logMain <<"No other jobs are attached to the shared memory segment, removing it."<genomeLoad=="NoSharedMemory") {//cannot deallocate for shared memory + } else if (P->genomeLoad=="NoSharedMemory") {//can deallocate only for non-shared memory delete[] G1; G1=NULL; SA.deallocateArray(); diff --git a/Genome.h b/Genome.h index 2b32bc0..c721386 100644 --- a/Genome.h +++ b/Genome.h @@ -12,7 +12,7 @@ class Genome { Genome (Parameters* Pin ) : P(Pin) {}; Genome () {};//empty constructor - ~Genome (); +// ~Genome (); void freeMemory(); void genomeLoad(); diff --git a/Makefile b/Makefile index 1e1d0f4..4b2b882 100644 --- a/Makefile +++ b/Makefile @@ -117,7 +117,7 @@ gdb : Depend.list parametersDefault.xxd $(OBJECTS) gdb-long : CCFLAGS= -D'COMPILE_FOR_LONG_READS' $(CCFLAGS_gdb) gdb-long : Depend.list parametersDefault.xxd $(OBJECTS) - $(CXX) -o STAR $(CCFLAGS) $(LDFLAGS_gdb) $(OBJECTS) + $(CXX) -o STAR $(CCFLAGS_gdb) $(OBJECTS) $(LDFLAGS_gdb) localChains : CCFLAGS=-D'OUTPUT_localChains' $(CCFLAGS_main) localChains : Depend.list parametersDefault.xxd $(OBJECTS) diff --git a/Parameters.cpp b/Parameters.cpp index 5c43dae..c33ec88 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -243,13 +243,13 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exit(0); }; - if (oneArg.at(0)!='-' || oneArg.at(1)!='-') { + if (oneArg.substr(0,2)=="--") {//parameter name, cut -- + commandLineFile +='\n' + oneArg.substr(2); + } else {//parameter value if (oneArg.find_first_of(" \t")!=std::string::npos) {//there is white space in the argument, put "" around oneArg ='\"' + oneArg +'\"'; }; - commandLineFile +=' ' + oneArg; - } else { - commandLineFile +='\n' + oneArg.substr(2); + commandLineFile +=' ' + oneArg; }; commandLine += ' ' + oneArg; }; diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 0cfb036..0420d24 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -6,10 +6,12 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT) { uint nAlignT=0; for (uint iag=0; iagnDel>0 || alignG[iag]->nIns>0) continue; //prevent indels + //prevent indels and single-end alignments + if (alignG[iag]->nDel>0 || alignG[iag]->nIns>0 \ + || (P->readNmates==2 && alignG[iag]->exons[0][EX_iFrag]==alignG[iag]->exons[alignG[iag]->nExons-1][EX_iFrag]) ) continue; uint nMM1=0; char* R=Read1[alignG[iag]->roStr==0 ? 0:2]; - for (uint32 iab=0; iabnExons; iab++) {//check for soft-clips and indels + for (uint32 iab=0; iabnExons; iab++) { uint left1=0,right1=0;//how many bases to move left or right if (iab==0) { left1=alignG[iag]->exons[iab][EX_R]; diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index 595553b..cce7dd6 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -8,7 +8,7 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui //find exon that overlaps beginning of the read uint32 g1=aG.exons[0][EX_G]-trS1;//start of the transcript uint32 ex1=binarySearch1(g1, exSE1, 2*exN1); - if (ex1>=exN1) return 0; //align start is to the right of all exons + if (ex1>=2*exN1) return 0; //align start is to the right of all exons if (ex1%2==1) {//beginning of the read >=end of an exon if (exSE1[ex1]==g1) {//first base of the read is exactly the last base of the exon From 400af3bf59bec304ba6cb9dc42da06727bf02c30 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 4 Feb 2015 17:11:58 -0500 Subject: [PATCH 044/536] Fixed a problem with scoring alignments for STARlong. STARlong alignments are slightly modified. Fixed a problem with lower case read sequences for --outSAMtype BAM options. --- ReadAlign_outputAlignments.cpp | 2 +- ReadAlign_stitchWindowSeeds.cpp | 22 +++++++++++++++++----- SequenceFuns.cpp | 30 +++++++++++++++--------------- VERSION | 2 +- 4 files changed, 34 insertions(+), 22 deletions(-) diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index ab4f764..6ecc994 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -93,7 +93,7 @@ void ReadAlign::outputAlignments() { outBAMbytes+=outputTranscriptSAM(*(trMult[iTr]), nTr, iTr, (uint) -1, (uint) -1, 0, -1, NULL, outSAMstream); }; -// {//debug +// {//debug: check maxScore // intScore as=trMult[iTr]->maxScore; // uint nmm=trMult[iTr]->nMM; // trMult[iTr]->alignScore(Read1, G, P); diff --git a/ReadAlign_stitchWindowSeeds.cpp b/ReadAlign_stitchWindowSeeds.cpp index 6331962..8e8ed3f 100644 --- a/ReadAlign_stitchWindowSeeds.cpp +++ b/ReadAlign_stitchWindowSeeds.cpp @@ -4,6 +4,7 @@ #include "ReadAlign.h" #include "stitchAlignToTranscript.h" #include "extendAlign.h" +#include void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G) {//stitches all seeds in one window: iW @@ -75,11 +76,13 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* }; }; + int Score=0; {//build final transcript form seedChain {//initiate transcript uint iS1=seedChain[seedN-1]; - trA.maxScore = WA[iW][iS1][WA_Length]; + Score= WA[iW][iS1][WA_Length]; + trA.maxScore = Score; trA.nMatch = WA[iW][iS1][WA_Length]; //# of matches trA.nMM = 0; @@ -98,22 +101,25 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* WA[iW][iS2][WA_rStart], WA[iW][iS2][WA_gStart], WA[iW][iS2][WA_Length], WA[iW][iS2][WA_iFrag], WA[iW][iS2][WA_sjA], \ P, R, Q, G, &trA, outFilterMismatchNmaxTotal); // if (scoreStitch>0) { - trA.maxScore+=scoreStitch; + Score+=scoreStitch; // } else { // cout <<"BUG"<0 \ && extendAlign(R, Q, G, trA.exons[0][EX_R]-1, trA.exons[0][EX_G]-1, -1, -1, min(trA.exons[0][EX_R], trA.exons[0][EX_G] - P->chrStart[WC[iW][WC_Str]]), 100000, 0, outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trA1) ) {//if could extend - trA.maxScore += trA1.maxScore + WA[iW][iS1][WA_Length]; - trA.nMatch += trA1.nMatch + WA[iW][iS1][WA_Length]; //# of matches - trA.nMM += trA1.nMM; + trA.add(&trA1); +// trA.maxScore += trA1.maxScore + WA[iW][iS1][WA_Length]; +// trA.nMatch += trA1.nMatch + WA[iW][iS1][WA_Length]; //# of matches +// trA.nMM += trA1.nMM; trA.exons[0][EX_R] -= trA1.extendL; trA.exons[0][EX_G] -= trA1.extendL; @@ -178,6 +184,12 @@ void ReadAlign::stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* }; }; + if (P->scoreGenomicLengthLog2scale!=0) {//add gap length score + trA.maxScore += int(ceil( log2( (double) ( trA.exons[trA.nExons-1][EX_G]+trA.exons[trA.nExons-1][EX_L] - trA.exons[0][EX_G]) ) \ + * P->scoreGenomicLengthLog2scale - 0.5)); + trA.maxScore = max(0,trA.maxScore); + }; + // if (P->outFilterIntronMotifs=="KeepCanonical" && (trA.intronMotifs[0]>0 || (trA.intronMotifs[1]>0 && trA.intronMotifs[2]>0) ) ) {//keep only conistent canonical introns // return; // }; diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index 58aafe0..f60ed96 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -55,21 +55,21 @@ void revComplementNucleotides(char* ReadsIn, char* ReadsOut, uint Lread) {//comp char nuclToNumBAM(char cc){ switch (cc) {//=ACMGRSVTWYHKDBN case ('='): cc=0;break; - case ('A'): cc=1;break; - case ('C'): cc=2;break; - case ('M'): cc=3;break; - case ('G'): cc=4;break; - case ('R'): cc=5;break; - case ('S'): cc=6;break; - case ('V'): cc=7;break; - case ('T'): cc=8;break; - case ('W'): cc=9;break; - case ('Y'): cc=10;break; - case ('H'): cc=11;break; - case ('K'): cc=12;break; - case ('D'): cc=13;break; - case ('B'): cc=14;break; - case ('N'): cc=15;break; + case ('A'): case ('a'): cc=1;break; + case ('C'): case ('c'): cc=2;break; + case ('M'): case ('m'): cc=3;break; + case ('G'): case ('g'): cc=4;break; + case ('R'): case ('r'): cc=5;break; + case ('S'): case ('s'): cc=6;break; + case ('V'): case ('v'): cc=7;break; + case ('T'): case ('t'): cc=8;break; + case ('W'): case ('w'): cc=9;break; + case ('Y'): case ('y'): cc=10;break; + case ('H'): case ('h'): cc=11;break; + case ('K'): case ('k'): cc=12;break; + case ('D'): case ('d'): cc=13;break; + case ('B'): case ('b'): cc=14;break; + case ('N'): case ('n'): cc=15;break; default: cc=15; }; return cc; diff --git a/VERSION b/VERSION index 5576b38..f9764bf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0i" +#define STAR_VERSION "STAR_2.4.0j" From 66e2d4b2ec2968ec80aacafadd33e5aaa50fa784 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Tue, 10 Feb 2015 22:45:46 -0800 Subject: [PATCH 045/536] big refactor and getting code to compile again --- Genome.cpp | 436 +++++++++++++++-------------------------------- Genome.h | 19 +-- IncludeDefine.h | 5 +- Makefile | 2 +- Parameters.cpp | 2 +- SharedMemory.cpp | 258 ++++++++++++++++++++++++++++ SharedMemory.h | 202 ++++++++++++++++++++++ 7 files changed, 607 insertions(+), 317 deletions(-) create mode 100644 SharedMemory.cpp create mode 100644 SharedMemory.h diff --git a/Genome.cpp b/Genome.cpp index 4842cab..2328ff6 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -4,6 +4,8 @@ #include "PackedArray.h" #include "ErrorWarning.h" #include "streamFuns.h" +#include "SharedMemory.h" + #include #include #include @@ -25,183 +27,12 @@ Genome::Genome (Parameters* Pin ): P(Pin), shmStart(NULL) { shmKey=ftok(P->genomeDir.c_str(),SHM_projectID); }; -Genome::~Genome() { - P->inOut->logMain << "--genomeLoad=" << P->genomeLoad <<" ."<genomeLoad=="LoadAndRemove") {//mark genome for removal after the jobs complete, if there are no other jobs attached to it - - #ifdef POSIX_SHARED_MEM - Genome::RemoveSharedObject(shmID, (void**)&shmStart, shmKey); - P->inOut->logMain <<"Removing shared memory segment, removing it."< 0) { - P->inOut->logMain << inUse-1 << " other job(s) are attached to the shared memory segment, will not remove it." <inOut->logMain <<"No other jobs are attached to the shared memory segment, removing it."<inOut->logMain, EXIT_CODE_MemoryAllocation, *P); - }; - - #ifdef POSIX_SHARED_MEM - int err = ftruncate(shmID, shmSize); - if (err == -1) - { - ostringstream errOut; - errOut <<"EXITING: fatal error from ftruncate() error shared memory: error type: " << strerror(errno) << endl; - errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes\n"; - void * ptr = NULL; - Genome::RemoveSharedObject(shmID, &ptr, shmKey); - - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_MemoryAllocation, *P); - } - #endif - - return shmID; -} - -bool Genome::GetSharedObjectByKey(key_t shmKey, int * shmID) +Genome::~Genome() { - #ifdef POSIX_SHARED_MEM - *shmID=shm_open(Genome::GetPosixObjectKey(shmKey), O_RDWR, 0); - #else - *shmID=shmget(shmKey,0,0); - #endif - - bool shmLoadError=(*shmID==-1); - if (shmLoadError && errno !=ENOENT) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open(): " << strerror(errno) << "\n" << flush; - errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <inOut->logMain, EXIT_CODE_SHM, *P); - } - return shmLoadError; -} + if (sharedMemory != NULL) + delete sharedMemory; -int Genome::SharedObjectsUseCount(int shmID) -{ - #ifdef POSIX_SHARED_MEM - return -1; - #else - struct shmid_ds shmStat; - shmctl(shmID,IPC_STAT,&shmStat); - return shmStat.shm_nattch; - #endif -} - -void Genome::RemoveSharedObject(int shmID, void * * ptr, key_t shmKey) -{ - #ifdef POSIX_SHARED_MEM - - if (*ptr != NULL) - { - struct stat buf = Genome::GetSharedObjectInfo(shmID); - int ret = munmap(*ptr, (size_t) buf.st_size); - *ptr = NULL; - if (ret == -1) - { - ostringstream errOut; - errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); - } - - int err = close(shmID); - if (err == -1) - { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not close the shared memory object: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - } - } - - int ret = shm_unlink(Genome::GetPosixObjectKey(shmKey)); - if (ret == -1) - { - ostringstream errOut; - errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); - } - - #else - ptr=ptr; // squash build warning :(! - shmKey = shmKey; - - struct shmid_ds *buf=NULL; - int shmStatus=shmctl(shmID,IPC_RMID,buf); - if (shmStatus==-1) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmctl() while trying to remove shared memory piece: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - }; - #endif -} - -struct stat Genome::GetSharedObjectInfo(int shmID) -{ - struct stat buf; - int err = fstat(shmID, &buf); - if (err == -1) - { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not stat file: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - } - return buf; -} - -void * Genome::MapSharedObjectToMemory(int shmID) -{ - void * ret = NULL; - - #ifdef POSIX_SHARED_MEM - struct stat buf = Genome::GetSharedObjectInfo(shmID); - ret = mmap(NULL,(size_t) buf.st_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_NORESERVE, shmID, (off_t) 0); - if (ret == (void*) -1) - { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not map the shared object to memory: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - } - - #else - ret= shmat(shmID, NULL, 0); - if (ret==((void *) -1)) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmat() while trying to get address of the shared memory piece: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - }; - #endif - - return ret; + sharedMemory = NULL; } void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array @@ -214,9 +45,31 @@ void Genome::freeMemory(){//free big chunks of memory used by genome and suffix }; }; +uint Genome::OpenStream(string name, ifstream & stream) +{ + stream.open((P->genomeDir+ "/" +name).c_str(), ios::binary); + if (!stream.good()) { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir << "/" << name <<"\n" << endl; + errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + + uint size = 0; + + P->inOut->logMain << "checking " << name << " size"; + stream.seekg (0, ios::end); + size=(uint) stream.tellg(); + stream.clear(); + stream.seekg (0, ios::beg); + P->inOut->logMain << "file size: "<< size <<" bytes; state: good=" <inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<genomeDir+"/Genome").c_str(), ios::binary); - if (!GenomeIn.good()) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/Genome" <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - }; - - ifstream SAin((P->genomeDir + "/SA").c_str(), ios::binary); - if (!SAin.good()) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/SA" <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - }; - - ifstream SAiIn((P->genomeDir+"/SAindex").c_str(),ios::binary); - if (!SAiIn.good()) { - ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/SAindex" <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - }; + ifstream GenomeIn, SAin, SAiIn; + + P->nGenome =OpenStream("Genome",GenomeIn); + P->nSAbyte = OpenStream("SA",SAin); + OpenStream("/SAindex",SAiIn); uint SAiInBytes=0; SAiInBytes += fstreamReadBig(SAiIn,(char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases)); @@ -298,66 +132,7 @@ void Genome::genomeLoad(){//allocate and load Genome SAiInBytes += fstreamReadBig(SAiIn,(char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1)); P->nSAi=P->genomeSAindexStart[P->genomeSAindexNbases]; P->inOut->logMain << "Read from SAindex: genomeSAindexNbases=" << P->genomeSAindexNbases <<" nSAi="<< P->nSAi <genomeLoad=="LoadAndKeep" || P->genomeLoad=="LoadAndRemove" || P->genomeLoad=="Remove" || P->genomeLoad=="LoadAndExit") {// find shared memory fragment - shmLoadError = Genome::GetSharedObjectByKey(shmKey, &shmID); - if (!shmLoadError) {//genome is already in shm - P->inOut->logMain <<"Found genome in shared memory\n"<genomeLoad=="Remove") {//kill the genome and exit - if (shmLoadError) {//did not find genome in shared memory, nothing to kill - ostringstream errOut; - errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - } else { - Genome::RemoveSharedObject(shmID, (void**)&shmStart, shmKey); - P->inOut->logMain <<"DONE: removed the genome from shared memory\n"<genomeLoad=="NoSharedMemory" || shmLoadError) {//find the size of the genome and SAs from files - the genome is not in shared memory - - GenomeIn.seekg (0, ios::end); - P->nGenome=(uint) GenomeIn.tellg(); - GenomeIn.clear(); - GenomeIn.seekg (0, ios::beg); - P->inOut->logMain <<"Genome file size: "<nGenome <<" bytes; state: good=" <nSAbyte=(uint) (SAin.tellg()); - GenomeIn.clear(); - SAin.seekg (0, ios::beg); - P->inOut->logMain <<"SA file size: "<nSAbyte <<" bytes; state: good=" <inOut->logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <inOut->logMain, EXIT_CODE_GenomeLoadingWaitedTooLong, *P); - }; - }; - - P->nGenome=*shmNG; - P->nSAbyte=*shmNSA; - - P->inOut->logMain << "Using shared memory for genome. key=0x" <inOut->logMain, EXIT_CODE_SHM, *P); -// }; - - /////////////////////////////////////// allocate arrays - if (P->genomeLoad=="NoSharedMemory") {// simply allocate memory, do not use shared memory + shmSize=SA.lengthByte + P->nGenome+L+L+SHM_startG+8; + shmSize+= SAi.lengthByte; + if (P->annotScoreScale>0) shmSize+=P->nGenome; + + + if ((P->genomeLoad=="LoadAndKeep" || + P->genomeLoad=="LoadAndRemove" || + P->genomeLoad=="LoadAndExit" || + P->genomeLoad=="Remove") && sharedMemory == NULL) + { + bool unloadLast = P->genomeLoad=="LoadAndRemove"; + sharedMemory = new SharedMemory(shmKey, unloadLast); + + if (!sharedMemory->NeedsAllocation()) + P->inOut->logMain <<"Found genome in shared memory\n"<genomeLoad=="Remove") {//kill the genome and exit + if (sharedMemory->NeedsAllocation()) {//did not find genome in shared memory, nothing to kill + ostringstream errOut; + errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + } else { + sharedMemory->Destroy(); + P->inOut->logMain <<"DONE: removed the genome from shared memory\n"<NeedsAllocation()) + sharedMemory->Allocate(shmSize); + + shmStart = (char*) sharedMemory->GetMapped(); + shmNG= (uint*) (shmStart+SHM_sizeG); + shmNSA= (uint*) (shmStart+SHM_sizeSA); + + if (!sharedMemory->IsAllocator()) + { + // genome is in shared memory or being loaded + // wait for the process that will populate it + // and record the sizes + + uint iwait=0; + while (*shmNG != P->nGenome) { + iwait++; + P->inOut->logMain <<"Another job is still loading the genome, sleeping for 1 min\n" <inOut->logMain, EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG, *P); + }; + }; + + if (P->nSAbyte!=*shmNSA) + { + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: the SA file size did not match what we found in shared memory" << "\n" << flush; + errOut << "SOLUTION: remove the shared memory chunk by running STAR with --genomeLoad Remove, and restart STAR" << flush; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INCONSISTENT_DATA, *P); + } + + P->inOut->logMain << "Using shared memory for genome. key=0x" <twopass1readsN==0) {//1-pass, no extra memory G1=new char[P->nGenome+L+L]; @@ -411,37 +252,28 @@ void Genome::genomeLoad(){//allocate and load Genome errOut <<"EXITING: fatal error trying to allocate genome arrays, exception thrown: "<nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000 << " bytes\n"; errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << P->nGenome+L+L+SA.lengthByte+SAi.lengthByte+2000000000<inOut->logMain, EXIT_CODE_MemoryAllocation, *P); + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_MEMORY_ALLOCATION, *P); }; - } else {//using shared memeory - - if (shmLoadError) {//genome was not in shared memory: allocate shm - shmSize=SA.lengthByte + P->nGenome+L+L+SHM_startG+8; - shmSize+= SAi.lengthByte; - if (P->annotScoreScale>0) shmSize+=P->nGenome; - - shmID = Genome::CreateSharedObject(shmKey, shmSize); - shmStart = (char*) Genome::MapSharedObjectToMemory(shmID); - shmNG= (uint*) (shmStart+SHM_sizeG); - shmNSA= (uint*) (shmStart+SHM_sizeSA); - }; - - G1=shmStart+SHM_startG; - SA.pointArray(G1+P->nGenome+L+L); - char* shmNext=SA.charArray+P->nSAbyte; - - SAi.pointArray(shmNext); - shmNext += SAi.lengthByte; - if (P->annotScoreScale>0) {//optional allocation - sigG = shmNext; - shmNext += P->nGenome; - }; - }; + } + + +// if (twopass1readsN==0) {//not 2-pass +// shmStartG=SHM_startSHM; +// shmStartSA=0; +// } else {//2-pass +// ostringstream errOut; +// errOut << "EXITING because of FATAL ERROR: 2-pass procedure cannot be used with genome already loaded im memory' "\n" ; +// errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <inOut->logMain, EXIT_CODE_SHM, *P); +// }; + G=G1+L; - if (P->genomeLoad=="NoSharedMemory" || shmLoadError) {//load genome and SAs from files + bool isAllocatorProcess = sharedMemory != NULL && sharedMemory->IsAllocator(); + + if (P->genomeLoad=="NoSharedMemory" || isAllocatorProcess) {//load genome and SAs from files //load genome P->inOut->logMain <<"Genome file size: "<nGenome <<" bytes; state: good=" <genomeLoad=="LoadAndKeep" || P->genomeLoad=="LoadAndRemove" || P->genomeLoad=="LoadAndExit") ) {//record sizes. This marks the end of genome loading + if ((P->genomeLoad=="LoadAndKeep" || + P->genomeLoad=="LoadAndRemove" || + P->genomeLoad=="LoadAndExit") && isAllocatorProcess ) + { + //record sizes. This marks the end of genome loading *shmNG=P->nGenome; *shmNSA=P->nSAbyte; }; diff --git a/Genome.h b/Genome.h index 3fb8ce8..43464c2 100644 --- a/Genome.h +++ b/Genome.h @@ -4,7 +4,7 @@ #include "IncludeDefine.h" #include "Parameters.h" #include "PackedArray.h" - +#include "SharedMemory.h" class Genome { public: @@ -21,17 +21,10 @@ class Genome { private: Parameters* P; - key_t shmKey; - char *shmStart; - char *G1; //pointer -200 of G - int shmID; - - bool GetSharedObjectByKey(key_t shmKey, int * shmID); - int CreateSharedObject(key_t shmKey, uint64 shmSize); - int SharedObjectsUseCount(int shmID); - void * MapSharedObjectToMemory(int shmID); - const char * GetPosixObjectKey(key_t shmKey); - struct stat GetSharedObjectInfo(int shmID); - void RemoveSharedObject(int shmID, void * * ptr, key_t shmKey); + key_t shmKey; + char *shmStart; + char *G1; //pointer -200 of G + SharedMemory * sharedMemory = NULL; + uint OpenStream(string name, ifstream & stream); }; #endif diff --git a/IncludeDefine.h b/IncludeDefine.h index a7466d1..3cfe2a9 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -117,10 +117,11 @@ typedef uint8_t uint8; #define EXIT_CODE_INPUT_FILES 104 #define EXIT_CODE_GENOME_FILES 105 #define EXIT_CODE_SHM 106 -#define EXIT_CODE_GenomeLoadingWaitedTooLong 107 -#define EXIT_CODE_MemoryAllocation 108 +#define EXIT_CODE_GENOME_LOADING_WAITED_TOO_LONG 107 +#define EXIT_CODE_MEMORY_ALLOCATION 108 #define EXIT_CODE_FILE_OPEN 109 #define EXIT_CODE_FILE_WRITE 110 +#define EXIT_CODE_INCONSISTENT_DATA 111 //cleaned-end diff --git a/Makefile b/Makefile index f34434d..331aa17 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ +OBJECTS = SharedMemory.o PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o SequenceFuns.o Genome.o Stats.o \ Transcript.o Transcript_alignScore.o \ ReadAlign.o ReadAlign_storeAligns.o ReadAlign_stitchPieces.o ReadAlign_multMapSelect.o ReadAlign_mapOneRead.o readLoad.o \ ReadAlignChunk.o ReadAlignChunk_processChunks.o ReadAlignChunk_mapChunk.o \ diff --git a/Parameters.cpp b/Parameters.cpp index 53e6804..d1dc030 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -715,7 +715,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters vAttr1=outSAMattributes; }; - for (int ii=0;ii +#include +#include +#include +#include /* For mode constants */ +#include /* For O_* constants */ +#include + +using namespace std; + +SharedMemory::SharedMemory(key_t key, bool unloadLast): _key(key), _unloadLast(unloadLast) +{ + _needsAllocation = false; + + OpenIfExists(_key); +} + +SharedMemory::~SharedMemory() +{ + try + { + int inUse = SharedObjectsUseCount() - 1; + SharedUseDecrement(); + Close(); + + if (inUse > 0) + { + cerr << inUse << " other job(s) are attached to the shared memory segment, will not remove it." < +#include +#include +#include + + + +enum ErrorState { +ENONE, +ENOTALLOCATED, +ETRYAGAIN, +EALREADYALLOCATED, + +EOPENFAILED, +// errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open(): " << strerror(errno) << "\n" << flush; +// errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <inOut->logMain, EXIT_CODE_SHM, *P); + +EEXISTS, +// ostringstream errOut; +// errOut <<"EXITING: fatal error from shmget() trying to allocate shared memory piece: error type: " << strerror(errno) <<"\n"; +// errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes\n"; +// errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << shmSize+2000000000 <<"\n"; +// errOut <<"Possible cause 3: allowed shared memory size is not large enough. SOLUTIONS: (i) consult STAR manual on how to increase shared memory allocation; " +// "(ii) ask your system administrator to increase shared memory allocation; (iii) run STAR with --genomeLoad NoSharedMemory\n"<inOut->logMain, EXIT_CODE_MEMORY_ALLOCATION, *P); + +EFTRUNCATE, + + +// ostringstream errOut; +// errOut <<"EXITING: fatal error from ftruncate() error shared memory: error type: " << strerror(errno) << endl; +// errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes\n"; +// void * ptr = NULL; + +// exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_MEMORY_ALLOCATION, *P); + +EMAPFAILED, + + +// ostringstream errOut; +// errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmat() while trying to get address of the shared memory piece: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + +// ostringstream errOut; +// errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); + + +ECLOSE, + +// ostringstream errOut; +// errOut << "EXITING because of FATAL ERROR: could not close the shared memory object: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + +EUNLINK, + +// ostringstream errOut; +// errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); + + +// ostringstream errOut; +// errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmctl() while trying to remove shared memory piece: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); + + +ECOUNTERCREATE, +ECOUNTERREMOVE, +ECOUNTERINC, +ECOUNTERDEC, +ECOUNTERUSE + + +}; + + +class SharedMemoryException: public std::exception +{ +private: + ErrorState _error; + +public: + + SharedMemoryException(int error): _error((ErrorState)error) + {}; + + ErrorState GetErrorCode() + { + return _error; + }; +}; + +class SharedMemory +{ +public: + void * GetMapped() + { + return (void *) ((char*) _mapped + sizeof(size_t)); + }; + + size_t GetSize() + { + if (!_needsAllocation) + return *_length - sizeof(size_t); + + SetError(ENOTALLOCATED); + return -1; + }; + + bool NeedsAllocation() + { + return _needsAllocation; + }; + + // the owner is the first one that created the named shared memory segment + bool IsAllocator() + { + return _isAllocator; + }; + + bool HasError() + { + return _hasError; + }; + + void SetError(ErrorState error) + { + if (!_hasError) + { + _hasError = true; + _error = error; + } + } + + void ThrowError(ErrorState error) + { + SetError(error); + throw new SharedMemoryException(_error); + }; + + ErrorState GetErrorCode() + { + return _error; + }; + + void ClearError() + { + _hasError = false; + _error = ErrorState::ENONE; + }; + + int GetId() + { + return _shmID; + }; + + SharedMemory(key_t key, bool unloadLast); + ~SharedMemory(); + void Allocate(size_t shmSize); + void Destroy(); + +private: + ErrorState _error; + + int _shmID = 0; + void * _mapped=NULL; + size_t * _length = NULL; + sem_t * _sem=NULL; + bool _isAllocator = false; + bool _needsAllocation = true; + bool _hasError = false; + + key_t _key; + bool _unloadLast = true; + + int SharedObjectsUseCount(); + void OpenIfExists(key_t shmKey); + void CreateAndInitSharedObject(size_t shmSize); + void MapSharedObjectToMemory(size_t size); + const char * GetPosixObjectKey(); + struct stat GetSharedObjectInfo(); + void Close(); + void Unlink(); + + std::string CounterName(); + + void EnsureCounter(); + void RemoveSharedCounter(); + void SharedUseIncrement(); + void SharedUseDecrement(); + +}; + +#endif \ No newline at end of file From e5176bea2ecc03f6a72183a0c0221d136ffd316e Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Tue, 10 Feb 2015 23:05:47 -0800 Subject: [PATCH 046/536] fixup! Merge branch 'master' into feature/posix-shared-memory Conflicts: source/Genome.cpp --- Genome.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Genome.h b/Genome.h index 9787a0b..7bf9df7 100644 --- a/Genome.h +++ b/Genome.h @@ -15,7 +15,6 @@ class Genome { Genome (Parameters* Pin ); Genome () {};//empty constructor -// ~Genome (); void freeMemory(); void genomeLoad(); From 52d659b8a7eba7a984a8356fe23f78f03e68c5ca Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Tue, 10 Feb 2015 23:23:03 -0800 Subject: [PATCH 047/536] fix compilation for POSIX api --- SharedMemory.cpp | 14 +++++++------- SharedMemory.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 7e55fe4..9b9beba 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -14,7 +14,7 @@ SharedMemory::SharedMemory(key_t key, bool unloadLast): _key(key), _unloadLast(u { _needsAllocation = false; - OpenIfExists(_key); + OpenIfExists(); } SharedMemory::~SharedMemory() @@ -62,7 +62,7 @@ void SharedMemory::Allocate(size_t shmSize) ClearError(); // someone else came in first } - OpenIfExists(_key); + OpenIfExists(); _isAllocator = true; @@ -101,18 +101,18 @@ void SharedMemory::CreateAndInitSharedObject(size_t shmSize) int err = ftruncate(_shmID, toReserve); if (err == -1) { - Delete(); + Destroy(); ThrowError(ErrorState::EFTRUNCATE); } #endif } -void SharedMemory::OpenIfExists(key_t shmKey) +void SharedMemory::OpenIfExists() { #ifdef POSIX_SHARED_MEM - _shmID=shm_open(SharedMemory::GetPosixObjectKey(shmKey), O_RDWR, 0); + _shmID=shm_open(SharedMemory::GetPosixObjectKey(), O_RDWR, 0); #else - _shmID=shmget(shmKey,0,0); + _shmID=shmget(_key,0,0); #endif bool exists=(_shmID!=-1); @@ -179,7 +179,7 @@ void SharedMemory::Close() void SharedMemory::Unlink() { #ifdef POSIX_SHARED_MEM - int ret = shm_unlink(SharedMemory::GetPosixObjectKey(_key)); + int ret = shm_unlink(SharedMemory::GetPosixObjectKey()); if (ret == -1) ThrowError(EUNLINK); diff --git a/SharedMemory.h b/SharedMemory.h index c6fadd8..7d99566 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -182,7 +182,7 @@ class SharedMemory bool _unloadLast = true; int SharedObjectsUseCount(); - void OpenIfExists(key_t shmKey); + void OpenIfExists(); void CreateAndInitSharedObject(size_t shmSize); void MapSharedObjectToMemory(size_t size); const char * GetPosixObjectKey(); From 5a0d017a7b7ea7286f74c3115f5201e810625439 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Wed, 11 Feb 2015 11:13:55 -0800 Subject: [PATCH 048/536] POSIX conter only --- SharedMemory.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 9b9beba..5b45fa3 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -240,7 +240,6 @@ void SharedMemory::SharedUseDecrement() int SharedMemory::SharedObjectsUseCount() { -#ifdef POSIX_SHARED_MEM SharedMemory::EnsureCounter(); int sval=-1; int ret = sem_getvalue(_sem, &sval); @@ -249,10 +248,4 @@ int SharedMemory::SharedObjectsUseCount() ThrowError(ECOUNTERUSE); return sval; - -#else - struct shmid_ds shmStat; - shmctl(_shmID,IPC_STAT,&shmStat); - return shmStat.shm_nattch; -#endif } From 0b7f93c0364b595124766fb09160995ab1665a0d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 11 Feb 2015 16:33:29 -0500 Subject: [PATCH 049/536] Implemented --alignEndsType Extend5pOfRead1 option. --- Parameters.cpp | 2 +- parametersDefault | 5 +++-- stitchWindowAligns.cpp | 9 +++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index c33ec88..c147a32 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -778,7 +778,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outFilterMismatchNoverLmax1=outFilterMismatchNoverLmax; if (alignEndsType=="EndToEnd") { outFilterMismatchNoverLmax1=-1; - } else if (alignEndsType=="Local") { + } else if (alignEndsType=="Local" || alignEndsType=="Extend5pOfRead1" ) { //nothing to do for now } else { ostringstream errOut; diff --git a/parametersDefault b/parametersDefault index f9e0fa4..4442f06 100644 --- a/parametersDefault +++ b/parametersDefault @@ -432,8 +432,9 @@ alignTranscriptsPerReadNmax 10000 alignEndsType Local string: type of read ends alignment - Local ... standard local alignment with soft-clipping allowed - EndToEnd ... force end-to-end read alignment, do not soft-clip + Local ... standard local alignment with soft-clipping allowed + EndToEnd ... force end-to-end read alignment, do not soft-clip + Extend5pOfRead1 ... fully extend only the 5p of the read1, all other ends: local alignment alignSoftClipAtReferenceEnds Yes string: allow the soft-clipping of the alignments past the end of the chromosomes diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 27cba8e..8ad0a7c 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -42,9 +42,12 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //calculate # of allowed mismatches that has been left + + double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[0][EX_iFrag]==0) ? -1 : P->outFilterMismatchNoverLmax1; + trAstep1.reset(); // //avoid extending before Chr start - if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, min(trA.rStart, trA.gStart - P->chrStart[trA.Chr]), tR2-trA.rStart+1, trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trAstep1) ) {//if could extend + if ( extendAlign(R, Q, G, trA.rStart-1, trA.gStart-1, -1, -1, min(trA.rStart, trA.gStart - P->chrStart[trA.Chr]), tR2-trA.rStart+1, trA.nMM, RA->outFilterMismatchNmaxTotal, pMMmax, &trAstep1) ) {//if could extend trA.add(&trAstep1); Score += trAstep1.maxScore; @@ -64,9 +67,11 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //calculate # of allowed mismatches that has been left + double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[trA.nExons-1][EX_iFrag]==0) ? -1 : P->outFilterMismatchNoverLmax1; + trAstep1.reset(); // //to prevent extension past the Chr end - if ( extendAlign(R, Q, G, tR2+1, tG2+1, +1, +1, min(Lread-tR2-1,P->chrStart[trA.Chr+1]-tG2-2), tR2-trA.rStart+1, trA.nMM, RA->outFilterMismatchNmaxTotal, P->outFilterMismatchNoverLmax1, &trAstep1) ) {//if could extend + if ( extendAlign(R, Q, G, tR2+1, tG2+1, +1, +1, min(Lread-tR2-1,P->chrStart[trA.Chr+1]-tG2-2), tR2-trA.rStart+1, trA.nMM, RA->outFilterMismatchNmaxTotal, pMMmax, &trAstep1) ) {//if could extend trA.add(&trAstep1); Score += trAstep1.maxScore; From fc12ca36fb8c9e3a9dd22665b755ff730e6d4a36 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Thu, 12 Feb 2015 16:02:21 -0800 Subject: [PATCH 050/536] fix bugs (POSIX) and re-integrate log statements --- Genome.cpp | 91 +++++++++++++++++++++------- STAR.cpp | 5 ++ SharedMemory.cpp | 150 +++++++++++++++++++++++++---------------------- SharedMemory.h | 144 +++++++++++++++++---------------------------- 4 files changed, 210 insertions(+), 180 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index cd3d172..798bbc9 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -28,10 +28,6 @@ Genome::Genome (Parameters* Pin ): P(Pin), shmStart(NULL) { }; void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array - if (sharedMemory != NULL) - delete sharedMemory; - - sharedMemory = NULL; if (P->genomeLoad=="NoSharedMemory") {//can deallocate only for non-shared memory delete[] G1; @@ -163,25 +159,75 @@ void Genome::genomeLoad(){//allocate and load Genome P->genomeLoad=="Remove") && sharedMemory == NULL) { bool unloadLast = P->genomeLoad=="LoadAndRemove"; - sharedMemory = new SharedMemory(shmKey, unloadLast); + try + { + sharedMemory = new SharedMemory(shmKey, unloadLast); - if (!sharedMemory->NeedsAllocation()) - P->inOut->logMain <<"Found genome in shared memory\n"<NeedsAllocation()) + P->inOut->logMain <<"Found genome in shared memory\n"<genomeLoad=="Remove") {//kill the genome and exit - if (sharedMemory->NeedsAllocation()) {//did not find genome in shared memory, nothing to kill - ostringstream errOut; - errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - } else { - sharedMemory->Destroy(); - P->inOut->logMain <<"DONE: removed the genome from shared memory\n"<genomeLoad=="Remove") {//kill the genome and exit + if (sharedMemory->NeedsAllocation()) {//did not find genome in shared memory, nothing to kill + ostringstream errOut; + errOut << "EXITING: Did not find the genome in memory, did not remove any genomes from shared memory\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + } else { + sharedMemory->Clean(); + P->inOut->logMain <<"DONE: removed the genome from shared memory\n"<NeedsAllocation()) + sharedMemory->Allocate(shmSize); } + catch (const SharedMemoryException & exc) + { + ostringstream errOut; + errOut << "SharedMemory Exception: " << exc.GetErrorCode() << ", errno: " << exc.GetErrorDetail() << endl; + int err = exc.GetErrorDetail(); - if (sharedMemory->NeedsAllocation()) - sharedMemory->Allocate(shmSize); + int exitCode = EXIT_CODE_SHM; + switch (exc.GetErrorCode()) + { + case EOPENFAILED: + errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open(): " << strerror(err) << "\n" << flush; + errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <Clean(); + } + catch(...) + {} + + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, exitCode, *P); + } shmStart = (char*) sharedMemory->GetMapped(); shmNG= (uint*) (shmStart+SHM_sizeG); @@ -328,11 +374,12 @@ void Genome::genomeLoad(){//allocate and load Genome #endif if (P->genomeLoad=="LoadAndExit") { - uint shmSum=0; - for (uint ii=0;iiinOut->logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<> Log.timing.out"); - exit(0); +// exit(0); + return; }; //find chr starts from files diff --git a/STAR.cpp b/STAR.cpp index e804b84..7c33c9e 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -48,6 +48,11 @@ int main(int argInN, char* argIn[]) { Genome mainGenome (P); mainGenome.genomeLoad(); + + if (P->genomeLoad=="LoadAndExit" || + P->genomeLoad=="Remove") + return 0; + //calculate genome-related parameters P->winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 5b45fa3..5f36833 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -12,8 +12,6 @@ using namespace std; SharedMemory::SharedMemory(key_t key, bool unloadLast): _key(key), _unloadLast(unloadLast) { - _needsAllocation = false; - OpenIfExists(); } @@ -22,7 +20,6 @@ SharedMemory::~SharedMemory() try { int inUse = SharedObjectsUseCount() - 1; - SharedUseDecrement(); Close(); if (inUse > 0) @@ -32,41 +29,33 @@ SharedMemory::~SharedMemory() else if (_unloadLast) { cerr << "No other jobs are attached to the shared memory segment, removing it."<0; - bool exists=(_shmID!=-1); - - if (!exists && errno !=ENOENT) - ThrowError(EOPENFAILED); + if (! (exists || errno == ENOENT)) + ThrowError(EOPENFAILED); // it's there but we couldn't get a handle if (exists) { - // mandatory since on first re-open we don't have the size of object - struct stat buf = SharedMemory::GetSharedObjectInfo(); - size_t size = (size_t) buf.st_size; - - MapSharedObjectToMemory(size); + MapSharedObjectToMemory(); _needsAllocation = false; - SharedUseIncrement(); } } +#ifdef POSIX_SHARED_MEM struct stat SharedMemory::GetSharedObjectInfo() { struct stat buf; int err = fstat(_shmID, &buf); if (err == -1) - ThrowError(EOPENFAILED); + ThrowError(EOPENFAILED, errno); return buf; } +#endif -void SharedMemory::MapSharedObjectToMemory(size_t size) +void SharedMemory::MapSharedObjectToMemory() { + size_t size=0; #ifdef POSIX_SHARED_MEM + struct stat buf = SharedMemory::GetSharedObjectInfo(); + size = (size_t) buf.st_size; _mapped = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_NORESERVE, _shmID, (off_t) 0); #else + // size is not needed _mapped= shmat(_shmID, NULL, 0); #endif if (_mapped==((void *) -1)) - ThrowError(EMAPFAILED); + ThrowError(EMAPFAILED, errno); + + SharedUseIncrement(); + // set the length field _length = (size_t *) _mapped; +#ifdef POSIX_SHARED_MEM *_length = size; +#endif } void SharedMemory::Close() { if (_mapped != NULL) { - int ret = munmap(_mapped, (size_t) _length); + int ret = munmap(_mapped, (size_t) *_length); _mapped = NULL; if (ret == -1) - ThrowError(EMAPFAILED); + ThrowError(EMAPFAILED, errno); + SharedUseDecrement(); } if (_shmID != 0) { int err = close(_shmID); + _shmID=0; if (err == -1) - ThrowError(ECLOSE); + ThrowError(ECLOSE, errno); } } void SharedMemory::Unlink() { -#ifdef POSIX_SHARED_MEM - int ret = shm_unlink(SharedMemory::GetPosixObjectKey()); - if (ret == -1) - ThrowError(EUNLINK); - -#else - struct shmid_ds *buf=NULL; - int shmStatus=shmctl(_shmID,IPC_RMID,buf); - if (shmStatus==-1) - ThrowError(EUNLINK); - -#endif + if (!_needsAllocation) + { + int shmStatus=-1; + #ifdef POSIX_SHARED_MEM + shmStatus = shm_unlink(SharedMemory::GetPosixObjectKey()); + + #else + struct shmid_ds *buf=NULL; + shmStatus=shmctl(_shmID,IPC_RMID,buf); + #endif + if (shmStatus == -1) + ThrowError(EUNLINK, errno); + + _needsAllocation = true; + } } -void SharedMemory::Destroy() +void SharedMemory::Clean() { Close(); Unlink(); @@ -205,21 +209,27 @@ void SharedMemory::EnsureCounter() return; const char * counterName = SharedMemory::CounterName().c_str(); - _sem = sem_open(counterName, 0); - if ((errno & ENOENT) == ENOENT) - { - _sem = sem_open(counterName, O_CREAT, 0666, 0); - if (errno != 0) - ThrowError(ECOUNTERCREATE); - } + + _sem = sem_open(counterName, O_CREAT, 0666, 0); + if (_sem == SEM_FAILED) + ThrowError(ECOUNTERCREATE, errno); } void SharedMemory::RemoveSharedCounter() { const char * counterName = SharedMemory::CounterName().c_str(); - int ret = sem_unlink(counterName); - if (ret == -1) - ThrowError(ECOUNTERREMOVE); + + if (_sem != NULL) + { + int ret = sem_close(_sem); + if (ret == -1) + ThrowError(ECLOSE, errno); + + ret = sem_unlink(counterName); + if (ret == -1) + ThrowError(ECOUNTERREMOVE, errno); + _sem = NULL; + } } void SharedMemory::SharedUseIncrement() @@ -227,7 +237,8 @@ void SharedMemory::SharedUseIncrement() SharedMemory::EnsureCounter(); int ret = sem_post(_sem); if (ret == -1) - ThrowError(ECOUNTERINC); + ThrowError(ECOUNTERINC, errno); + cerr << "incremented shared memory fragment usage to " << SharedObjectsUseCount() << endl; } void SharedMemory::SharedUseDecrement() @@ -235,7 +246,8 @@ void SharedMemory::SharedUseDecrement() SharedMemory::EnsureCounter(); int ret = sem_trywait(_sem); if (ret == -1) - ThrowError(ECOUNTERDEC); + ThrowError(ECOUNTERDEC, errno); + cerr << "incremented shared memory fragment usage to " << SharedObjectsUseCount() << endl; } int SharedMemory::SharedObjectsUseCount() @@ -245,7 +257,7 @@ int SharedMemory::SharedObjectsUseCount() int ret = sem_getvalue(_sem, &sval); if (ret == -1 || sval == -1) - ThrowError(ECOUNTERUSE); + ThrowError(ECOUNTERUSE, errno); return sval; } diff --git a/SharedMemory.h b/SharedMemory.h index 7d99566..832fb23 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -14,88 +14,67 @@ enum ErrorState { ENONE, ENOTALLOCATED, ETRYAGAIN, -EALREADYALLOCATED, - -EOPENFAILED, -// errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open(): " << strerror(errno) << "\n" << flush; -// errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <inOut->logMain, EXIT_CODE_SHM, *P); - +EALREADYALLOCATED, +EOPENFAILED, EEXISTS, -// ostringstream errOut; -// errOut <<"EXITING: fatal error from shmget() trying to allocate shared memory piece: error type: " << strerror(errno) <<"\n"; -// errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes\n"; -// errOut <<"Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << shmSize+2000000000 <<"\n"; -// errOut <<"Possible cause 3: allowed shared memory size is not large enough. SOLUTIONS: (i) consult STAR manual on how to increase shared memory allocation; " -// "(ii) ask your system administrator to increase shared memory allocation; (iii) run STAR with --genomeLoad NoSharedMemory\n"<inOut->logMain, EXIT_CODE_MEMORY_ALLOCATION, *P); - EFTRUNCATE, - - -// ostringstream errOut; -// errOut <<"EXITING: fatal error from ftruncate() error shared memory: error type: " << strerror(errno) << endl; -// errOut <<"Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes\n"; -// void * ptr = NULL; - -// exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_MEMORY_ALLOCATION, *P); - EMAPFAILED, - - -// ostringstream errOut; -// errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmat() while trying to get address of the shared memory piece: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - -// ostringstream errOut; -// errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); - - ECLOSE, - -// ostringstream errOut; -// errOut << "EXITING because of FATAL ERROR: could not close the shared memory object: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - EUNLINK, - -// ostringstream errOut; -// errOut <<"EXITING because of FATAL ERROR: could not delete the shared object: " << strerror(errno) <inOut->logMain, EXIT_CODE_SHM, *P); - - -// ostringstream errOut; -// errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmctl() while trying to remove shared memory piece: " << strerror(errno) << "\n" <inOut->logMain, EXIT_CODE_SHM, *P); - - ECOUNTERCREATE, ECOUNTERREMOVE, ECOUNTERINC, ECOUNTERDEC, ECOUNTERUSE - - }; class SharedMemoryException: public std::exception { private: - ErrorState _error; + bool _hasError = false; + ErrorState _error = ErrorState::ENONE; + int _errorDetail = 0; public: - SharedMemoryException(int error): _error((ErrorState)error) + SharedMemoryException() + {}; + + SharedMemoryException(ErrorState error): _error(error) {}; - ErrorState GetErrorCode() + ErrorState GetErrorCode() const { return _error; }; + + int GetErrorDetail() const + { + return _errorDetail; + } + + bool HasError() const + { + return _hasError; + }; + + void SetError(ErrorState error, int detail) + { + if (!_hasError) + { + _hasError = true; + _error = error; + _errorDetail = detail; + } + } + + void ClearError() + { + _hasError = false; + _error = ErrorState::ENONE; + _errorDetail = 0; + }; }; class SharedMemory @@ -111,64 +90,52 @@ class SharedMemory if (!_needsAllocation) return *_length - sizeof(size_t); - SetError(ENOTALLOCATED); + _exception.SetError(ENOTALLOCATED, 0); return -1; }; - bool NeedsAllocation() + bool NeedsAllocation() const { return _needsAllocation; }; // the owner is the first one that created the named shared memory segment - bool IsAllocator() + bool IsAllocator() const { return _isAllocator; }; - bool HasError() + int GetId() const { - return _hasError; + return _shmID; }; - void SetError(ErrorState error) + bool HasError() const { - if (!_hasError) - { - _hasError = true; - _error = error; - } + return _exception.HasError(); } - void ThrowError(ErrorState error) - { - SetError(error); - throw new SharedMemoryException(_error); - }; - - ErrorState GetErrorCode() - { - return _error; - }; - - void ClearError() + void ThrowError(ErrorState error, int detail) { - _hasError = false; - _error = ErrorState::ENONE; + if (!_exception.HasError()) + { + _exception.SetError(error, detail); + } + throw _exception; }; - int GetId() + void ThrowError(ErrorState error) { - return _shmID; + ThrowError(error, 0); }; SharedMemory(key_t key, bool unloadLast); ~SharedMemory(); void Allocate(size_t shmSize); - void Destroy(); + void Clean(); private: - ErrorState _error; + SharedMemoryException _exception; int _shmID = 0; void * _mapped=NULL; @@ -176,7 +143,6 @@ class SharedMemory sem_t * _sem=NULL; bool _isAllocator = false; bool _needsAllocation = true; - bool _hasError = false; key_t _key; bool _unloadLast = true; @@ -184,7 +150,7 @@ class SharedMemory int SharedObjectsUseCount(); void OpenIfExists(); void CreateAndInitSharedObject(size_t shmSize); - void MapSharedObjectToMemory(size_t size); + void MapSharedObjectToMemory(); const char * GetPosixObjectKey(); struct stat GetSharedObjectInfo(); void Close(); From ac9aa64418d314e7fd8f1a77442c258f75e67017 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Thu, 12 Feb 2015 16:22:16 -0800 Subject: [PATCH 051/536] append to last commit --- Genome.cpp | 10 ++++++++-- Genome.h | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 798bbc9..6430428 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -27,6 +27,13 @@ Genome::Genome (Parameters* Pin ): P(Pin), shmStart(NULL) { shmKey=ftok(P->genomeDir.c_str(),SHM_projectID); }; +Genome::~Genome() +{ + if (sharedMemory != NULL) + delete sharedMemory; + sharedMemory = NULL; +} + void Genome::freeMemory(){//free big chunks of memory used by genome and suffix array if (P->genomeLoad=="NoSharedMemory") {//can deallocate only for non-shared memory @@ -378,8 +385,7 @@ void Genome::genomeLoad(){//allocate and load Genome for (uint ii=0;iiinOut->logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<> Log.timing.out"); -// exit(0); - return; + return; }; //find chr starts from files diff --git a/Genome.h b/Genome.h index 7bf9df7..f35e60e 100644 --- a/Genome.h +++ b/Genome.h @@ -13,8 +13,9 @@ class Genome { PackedArray SAi; Genome (Parameters* Pin ); - Genome () {};//empty constructor + ~Genome(); + void freeMemory(); void genomeLoad(); From 654ae91cb699bd9f1c72afe764bb1ac88453007f Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Thu, 12 Feb 2015 16:33:51 -0800 Subject: [PATCH 052/536] typo --- SharedMemory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 5f36833..2af206e 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -247,7 +247,7 @@ void SharedMemory::SharedUseDecrement() int ret = sem_trywait(_sem); if (ret == -1) ThrowError(ECOUNTERDEC, errno); - cerr << "incremented shared memory fragment usage to " << SharedObjectsUseCount() << endl; + cerr << "decremented shared memory fragment usage to " << SharedObjectsUseCount() << endl; } int SharedMemory::SharedObjectsUseCount() From 80101786066078e9b2605b07ce0383155eb76306 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Thu, 12 Feb 2015 18:37:37 -0800 Subject: [PATCH 053/536] fix bugs on non posix implementation --- Genome.cpp | 43 +++++++++++++++++++++++++------------------ SharedMemory.cpp | 39 +++++++++++++++++++++++++-------------- SharedMemory.h | 2 +- 3 files changed, 51 insertions(+), 33 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 6430428..99290b8 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -191,44 +191,51 @@ void Genome::genomeLoad(){//allocate and load Genome catch (const SharedMemoryException & exc) { ostringstream errOut; - errOut << "SharedMemory Exception: " << exc.GetErrorCode() << ", errno: " << exc.GetErrorDetail() << endl; - int err = exc.GetErrorDetail(); + errOut << "Shared memory error: " << exc.GetErrorCode() << ", errno: " << strerror(exc.GetErrorDetail()) << "(" << errno << ")" << endl; int exitCode = EXIT_CODE_SHM; switch (exc.GetErrorCode()) { case EOPENFAILED: - errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open(): " << strerror(err) << "\n" << flush; - errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory\n" <Clean(); + if (sharedMemory != NULL) + sharedMemory->Clean(); } catch(...) {} diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 2af206e..5ea2b0c 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -22,7 +22,7 @@ SharedMemory::~SharedMemory() int inUse = SharedObjectsUseCount() - 1; Close(); - if (inUse > 0) + if (inUse > 0 && _unloadLast) { cerr << inUse << " other job(s) are attached to the shared memory segment, will not remove it." <0; - + bool exists=_shmID>=0; if (! (exists || errno == ENOENT)) - ThrowError(EOPENFAILED); // it's there but we couldn't get a handle + ThrowError(EOPENFAILED, errno); // it's there but we couldn't get a handle if (exists) { @@ -141,6 +147,7 @@ void SharedMemory::MapSharedObjectToMemory() size = (size_t) buf.st_size; _mapped = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_NORESERVE, _shmID, (off_t) 0); #else + // size is not needed _mapped= shmat(_shmID, NULL, 0); #endif @@ -161,20 +168,24 @@ void SharedMemory::Close() { if (_mapped != NULL) { + #ifdef POSIX_SHARED_MEM int ret = munmap(_mapped, (size_t) *_length); - _mapped = NULL; if (ret == -1) ThrowError(EMAPFAILED, errno); + #endif + _mapped = NULL; SharedUseDecrement(); } - if (_shmID != 0) + #ifdef POSIX_SHARED_MEM + if (_shmID != -1) { int err = close(_shmID); - _shmID=0; + _shmID=-1; if (err == -1) ThrowError(ECLOSE, errno); } + #endif } void SharedMemory::Unlink() @@ -186,8 +197,8 @@ void SharedMemory::Unlink() shmStatus = shm_unlink(SharedMemory::GetPosixObjectKey()); #else - struct shmid_ds *buf=NULL; - shmStatus=shmctl(_shmID,IPC_RMID,buf); + struct shmid_ds buf; + shmStatus=shmctl(_shmID,IPC_RMID,&buf); #endif if (shmStatus == -1) ThrowError(EUNLINK, errno); @@ -245,7 +256,7 @@ void SharedMemory::SharedUseDecrement() { SharedMemory::EnsureCounter(); int ret = sem_trywait(_sem); - if (ret == -1) + if (ret == -1 && errno != EAGAIN) ThrowError(ECOUNTERDEC, errno); cerr << "decremented shared memory fragment usage to " << SharedObjectsUseCount() << endl; } diff --git a/SharedMemory.h b/SharedMemory.h index 832fb23..3cc4b26 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -137,7 +137,7 @@ class SharedMemory private: SharedMemoryException _exception; - int _shmID = 0; + int _shmID = -1; void * _mapped=NULL; size_t * _length = NULL; sem_t * _sem=NULL; From ad3b8022ff69b1278a8994f0b44f48e82582db7f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 16 Feb 2015 19:21:59 -0500 Subject: [PATCH 054/536] Implemented --chimOutType WithinBAM option for chimeric output merged into main BAM files. --- BAMfunctions.cpp | 74 ++++++++++++++++++++++++++- BAMfunctions.h | 4 +- IncludeDefine.h | 1 + Parameters.cpp | 26 +++++++--- Parameters.h | 1 + ReadAlign.cpp | 13 ++++- ReadAlign.h | 10 ++-- ReadAlign_alignBAM.cpp | 88 ++++++++++++++++++++------------ ReadAlign_chimericDetection.cpp | 79 +++++++++++++++++++++++++--- ReadAlign_outputAlignments.cpp | 7 +-- ReadAlign_quantTranscriptome.cpp | 4 +- VERSION | 2 +- parametersDefault | 4 ++ stitchWindowAligns.cpp | 4 +- 14 files changed, 257 insertions(+), 60 deletions(-) diff --git a/BAMfunctions.cpp b/BAMfunctions.cpp index a48637c..28584d5 100644 --- a/BAMfunctions.cpp +++ b/BAMfunctions.cpp @@ -1,4 +1,76 @@ #include "BAMfunctions.h" +#include "htslib/htslib/kstring.h" + +string bam_cigarString (bam1_t *b) {//output CIGAR string +// kstring_t strK; +// kstring_t *str=&strK; + const bam1_core_t *c = &b->core; + + string cigarString(""); + if ( c->n_cigar > 0 ) { + uint32_t *cigar = bam_get_cigar(b); + for (int i = 0; i < c->n_cigar; ++i) { + cigarString+=to_string((uint)bam_cigar_oplen(cigar[i]))+bam_cigar_opchr(cigar[i]); + }; + }; + + +// if (c->n_cigar) { // cigar +// for (int i = 0; i < c->n_cigar; ++i) { +// kputw(bam_cigar_oplen(cigar[i]), str); +// kputc(bam_cigar_opchr(cigar[i]), str); +// } +// } else kputc('*', str); +// +// string cigarString (str->s,str->l); + return cigarString; +}; + +int bam_read1_fromArray(char *bamChar, bam1_t *b) //modified from samtools bam_read1 to assign BAM record in mmemry to bam structure +{ + 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 +// // } + uint32_t *x; + + uint32_t *bamU32=(uint32_t*) bamChar; + block_len=bamU32[0]; + +// // 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); +// // } + x=bamU32+1; + + 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); + b->data=(uint8_t*) bamChar+4*9; + + return 4 + block_len; +} + void outBAMwriteHeader (BGZF* fp, const string &samh, const vector &chrn, const vector &chrl) { bgzf_write(fp,"BAM\001",4); @@ -35,4 +107,4 @@ TintType bamAttributeInt(const char *bamAux, const char *attrName) {//not tested case ('I'): return (TintType) *(uint32_t*)(attrStart+3); }; -}; \ No newline at end of file +}; diff --git a/BAMfunctions.h b/BAMfunctions.h index b53e0d0..51f3dcc 100644 --- a/BAMfunctions.h +++ b/BAMfunctions.h @@ -3,6 +3,8 @@ #include "IncludeDefine.h" #include SAMTOOLS_BGZF_H +#include SAMTOOLS_SAM_H void outBAMwriteHeader (BGZF* fp, const string &samh, const vector &chrn, const vector &chrl); - + int bam_read1_fromArray(char *bamChar, bam1_t *b); + string bam_cigarString (bam1_t *b); #endif \ No newline at end of file diff --git a/IncludeDefine.h b/IncludeDefine.h index 8cc9aaf..bb8d73c 100644 --- a/IncludeDefine.h +++ b/IncludeDefine.h @@ -25,6 +25,7 @@ //external libs #define SAMTOOLS_BGZF_H "htslib/htslib/bgzf.h" +#define SAMTOOLS_SAM_H "htslib/htslib/sam.h" using namespace std; diff --git a/Parameters.cpp b/Parameters.cpp index c147a32..1fef063 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -173,12 +173,13 @@ Parameters::Parameters() {//initalize parameters info //chimeric - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &chimSegmentMin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &chimScoreMin)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreDropMax", &chimScoreDropMax)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreSeparation", &chimScoreSeparation)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimSegmentMin", &chimSegmentMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreMin", &chimScoreMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreDropMax", &chimScoreDropMax)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreSeparation", &chimScoreSeparation)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimScoreJunctionNonGTAG", &chimScoreJunctionNonGTAG)); parArray.push_back(new ParameterInfoScalar (-1, -1, "chimJunctionOverhangMin", &chimJunctionOverhangMin)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "chimOutType", &chimOutType)); //sjdb parArray.push_back(new ParameterInfoVector (-1, -1, "sjdbFileChrStartEnd", &sjdbFileChrStartEnd)); @@ -656,7 +657,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (outSAMmapqUnique<0 || outSAMmapqUnique>255) { ostringstream errOut; errOut <<"EXITING because of FATAL input ERROR: out of range value for outSAMmapqUnique=" << outSAMmapqUnique <<"\n"; - errOut <<"SOLUTION: specify outSAMmapqUnique withing the range of 0 to 255\n"; + errOut <<"SOLUTION: specify outSAMmapqUnique within the range of 0 to 255\n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; @@ -774,6 +775,12 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters outSAMattrOrder.push_back(ATTR_XS); inOut->logMain << "WARNING --outSAMstrandField=intronMotif, therefore STAR will output XS attribute" <logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <logMain<<"WARNING: --limitBAMsortRAM=0, will use genome sizeas RAM linit foro BAM sorting\n"; }; + if (chimOutType=="WithinBAM" && !outBAMunsorted && !outBAMcoord) { + ostringstream errOut; + errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n"; + errOut <<"SOLUTION: re-run with --outSAMtype BAM Unsorted/SortedByCoordinate\n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + inOut->logMain << "Finished loading and checking parameters\n" <readNmates]; - for (uint ii=0; iireadNmates; ii++) readNameMates[ii]=new char [DEF_readNameLengthMax]; + for (uint ii=0; iireadNmates; ii++) { + readNameMates[ii]=new char [DEF_readNameLengthMax]; + }; + + + outBAMoneAlignNbytes = new uint [P->readNmates+2]; //extra piece for chimeric reads + outBAMoneAlign = new char* [P->readNmates+2]; //extra piece for chimeric reads + for (uint ii=0; iireadNmates+2; ii++) { + outBAMoneAlign[ii]=new char [BAMoutput_oneAlignMaxBytes]; + }; + + readName = readNameMates[0]; Read1 = new char*[3]; diff --git a/ReadAlign.h b/ReadAlign.h index a8dd49a..5fec1c1 100644 --- a/ReadAlign.h +++ b/ReadAlign.h @@ -34,8 +34,10 @@ class ReadAlign : public Genome { uint outBAMbytes, outBAMbytes1; //number of bytes output to SAM/BAM with oneRead char *outBAMarray, *outBAMarray1;//pointer to the (last+1) position of the SAM/BAM output array BAMoutput *outBAMcoord, *outBAMunsorted, *outBAMquant;//sorted by coordinate, unsorted, transcriptomic BAM structure - char outBAMoneAlign[MAX_N_MATES][BAMoutput_oneAlignMaxBytes];//tmp array to store BAM alignmnent - uint outBAMoneAlignNbytes[MAX_N_MATES];//number of bytes in the tmp BAM array +// char outBAMoneAlign[MAX_N_MATES][BAMoutput_oneAlignMaxBytes];//tmp array to store BAM alignmnent +// uint outBAMoneAlignNbytes[MAX_N_MATES];//number of bytes in the tmp BAM array + char** outBAMoneAlign; + uint* outBAMoneAlignNbytes; ostringstream samStreamCIGAR, samStreamSJmotif, samStreamSJintron,samStreamSJannot; @@ -118,7 +120,7 @@ class ReadAlign : public Genome { bool outputTranscript(Transcript *trOut, uint nTrOut, ofstream *outBED); uint outputTranscriptSAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, ostream *outStream); - void alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, vector outSAMattrOrder); + int alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, vector outSAMattrOrder, char** outBAMarray, uint* outBAMarrayN); void samAttrNM_MD (Transcript const &trOut, uint iEx1, uint iEx2, uint &tagNM, string &tagMD); void outputTranscriptSJ(Transcript const &trOut, uint nTrOut, OutSJ *outStream, uint sjReadStartN ); @@ -127,7 +129,7 @@ class ReadAlign : public Genome { int createExtendWindowsWithAlign(uint a1, uint aStr); //extends and windows with one alignment void assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep, uint aFrag, uint aRstart,bool aAnchor, uint sjA); //assigns one alignment to a window void stitchPieces(char **R, char **Q, char *G, PackedArray& SA, uint Lread); - void chimericDetection(); + bool chimericDetection(); void outputAlignments(); void stitchWindowSeeds (uint iW, uint iWrec, char* R, char* Q, char* G);//stitches all seeds in one window: iW diff --git a/ReadAlign_alignBAM.cpp b/ReadAlign_alignBAM.cpp index 1088f32..0b9e699 100644 --- a/ReadAlign_alignBAM.cpp +++ b/ReadAlign_alignBAM.cpp @@ -122,13 +122,20 @@ int bamAttrArrayWriteInt(intType x, const char* tagName, char* attrArray, Parame -void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int unmapType, bool *mateMapped, vector outSAMattrOrder) { +int ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint trChrStart, uint mateChr, uint mateStart, char mateStrand, int alignType, bool *mateMapped, vector outSAMattrOrder, char** outBAMarray, uint* outBAMarrayN) { + //return: number of lines (mates) + + //alignType>=0: unmapped reads + // -1: normal mapped reads + // -11: chimeric alignment, chimeric junction on the left + // -12: chimeric alignment, chimeric junction on the right - if (P->outSAMmode=="None") return; //no SAM/BAM output + + if (P->outSAMmode=="None") return 0; //no SAM/BAM output uint32 recSize=0; //record size - total for both mates - outBAMoneAlignNbytes[0]=0; - outBAMoneAlignNbytes[1]=0; + outBAMarrayN[0]=0; + outBAMarrayN[1]=0; //for SAM output need to split mates uint iExMate=0; //last exon of the first mate @@ -139,7 +146,7 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint bool flagPaired = P->readNmates==2; uint nMates=1; - if (unmapType<0) {//unmapped reads: SAM + if (alignType<0) {//mapped reads: SAM for (iExMate=0;iExMatereadNmates);imate++) { + for (uint imate=0;imate < (alignType<0 ? nMates:P->readNmates);imate++) { uint iEx1=0; uint iEx2=0; @@ -161,8 +168,9 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint int MAPQ=0; uint32 attrN=0; char attrOutArray[BAM_ATTR_MaxSize]; + uint trimL1, trimR1; - if (unmapType>=0) {//this mate is unmapped + if (alignType>=0) {//this mate is unmapped if (mateMapped!=NULL && mateMapped[imate]) continue; //this mate was mapped, do not record it aws unmapped samFLAG=0x4; if (P->readNmates==2) {//paired read @@ -175,7 +183,7 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint }; if (readFilter=='Y') samFLAG+=0x200; //not passing quality control - + Mate=imate; Str=Mate; @@ -184,7 +192,7 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint attrN+=bamAttrArrayWriteInt(0,"HI",attrOutArray+attrN,P); attrN+=bamAttrArrayWriteInt(trBest->maxScore,"AS",attrOutArray+attrN,P); attrN+=bamAttrArrayWriteInt(trBest->nMM,"nM",attrOutArray+attrN,P); - attrN+=bamAttrArrayWrite((to_string((uint) unmapType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers + attrN+=bamAttrArrayWrite((to_string((uint) alignType)).at(0), "uT",attrOutArray+attrN); //cast to uint is only necessary for old compilers if (!P->outSAMattrRG.empty()) attrN+=bamAttrArrayWrite(P->outSAMattrRG.at(readFilesIndex),"RG",attrOutArray+attrN); } else { @@ -201,7 +209,12 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (readFilter=='Y') samFLAG+=0x200; //not passing quality control - + if (alignType==-11 || alignType==-12) { + samFLAG+=0x800; //mark chimeric alignments + } else {//only non-chimeric alignments will be marked as non-primary, since chimeric are already marked with 0x800 + if (!trOut.primaryFlag) samFLAG +=0x100;//mark not primary align + }; + iEx1 = (imate==0 ? 0 : iExMate+1); iEx2 = (imate==0 ? iExMate : trOut.nExons-1); Mate=trOut.exons[iEx1][EX_iFrag]; @@ -221,8 +234,6 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint if (flagPaired && nMates==1 && mateStrand==1) samFLAG +=0x20;//revert strand using inout value of mateStrand (e.g. for chimeric aligns) }; - //not primary align? - if (!trOut.primaryFlag) samFLAG +=0x100; uint trimL; if (Str==0 && Mate==0) { @@ -237,9 +248,9 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint nCIGAR=0; //number of CIGAR operations - uint trimL1 = trimL + trOut.exons[iEx1][EX_R] - (trOut.exons[iEx1][EX_R]0) { - packedCIGAR[nCIGAR++]=trimL1< SJintron; @@ -272,11 +283,11 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint SJintron.push_back(-1); }; - uint trimR1=(trOut.exons[iEx1][EX_R] 0 ) { - packedCIGAR[nCIGAR++]=trimR1<outSAMmapqUnique; @@ -355,29 +366,39 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint qualOut=&qualMate[0]; }; + uint seqMateLength=readLengthOriginal[Mate]; + if (alignType==-11) {//hard-clip on the left + seqMateLength-=trimL1; + seqOut+=trimL1; + qualOut+=trimL1; + } else if (alignType==-12) { + seqMateLength-=trimR1; + } else {//no-chimeric alignment + }; + //pack sequence - nuclPackBAM(seqOut,seqMate,readLengthOriginal[Mate]); + nuclPackBAM(seqOut,seqMate,seqMateLength); /////////////////////////////////// write BAM - uint32 *pBAM=(uint32*) (outBAMoneAlign[imate]); + uint32 *pBAM=(uint32*) (outBAMarray[imate]); recSize=0; //1: refID: Reference sequence ID, -1 <= refID <= n ref; -1 for a read without a mapping position. - if (unmapType<0) { + if (alignType<0) { pBAM[1]=trOut.Chr; } else { pBAM[1]=(uint32) -1; }; //2: pos: 0-based leftmost coordinate (= POS - 1): int32_t - if (unmapType<0) { + if (alignType<0) { pBAM[2]=trOut.exons[iEx1][EX_G] - trChrStart; } else { pBAM[2]=(uint32) -1; }; //3: bin mq nl bin<<16|MAPQ<<8|l read name; bin is computed by the > reg2bin() function in Section 4.3; l read name is the length> of read name below (= length(QNAME) + 1).> uint32 t - if (unmapType<0) { + if (alignType<0) { pBAM[3]=( ( reg2bin(trOut.exons[iEx1][EX_G] - trChrStart,trOut.exons[iEx2][EX_G] + trOut.exons[iEx2][EX_L] - trChrStart) << 16 ) \ |( MAPQ<<8 ) | ( strlen(readName) ) ); //note:read length includes 0-char } else { @@ -388,7 +409,7 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint pBAM[4]=( ( ((samFLAG & P->outSAMflagAND) | P->outSAMflagOR) << 16 ) | (nCIGAR) ); //5: l seq Length of SEQ - pBAM[5]=readLengthOriginal[Mate]; + pBAM[5]=seqMateLength; //6: next refID Ref-ID of the next segment (􀀀1  mate refID < n ref) if (nMates>1) { @@ -420,35 +441,36 @@ void ReadAlign::alignBAM(Transcript const &trOut, uint nTrOut, uint iTrOut, uint recSize+=9*sizeof(int32); //core record size //Read name1, NULL terminated (QNAME plus a tailing `\0') - strcpy(outBAMoneAlign[imate]+recSize,readName+1); + strcpy(outBAMarray[imate]+recSize,readName+1); recSize+=strlen(readName); //CIGAR: op len<<4|op. `MIDNSHP=X'!`012345678' - memcpy(outBAMoneAlign[imate]+recSize,packedCIGAR, nCIGAR*sizeof(int32)); + memcpy(outBAMarray[imate]+recSize,packedCIGAR, nCIGAR*sizeof(int32)); recSize+=nCIGAR*sizeof(int32); //4-bit encoded read: `=ACMGRSVTWYHKDBN'! [0; 15]; other characters mapped to `N'; high nybble rst (1st base in the highest 4-bit of the 1st byte) - memcpy(outBAMoneAlign[imate]+recSize,seqMate,(readLengthOriginal[Mate]+1)/2); - recSize+=(readLengthOriginal[Mate]+1)/2; + memcpy(outBAMarray[imate]+recSize,seqMate,(seqMateLength+1)/2); + recSize+=(seqMateLength+1)/2; //Phred base quality (a sequence of 0xFF if absent) - if (readFileType==2 && P->outSAMmode != "NoQS") {//output qaultiy - for (uint32 ii=0; iioutSAMmode != "NoQS") {//output qualtiy + for (uint32 ii=0; ii -void ReadAlign::chimericDetection() { +bool ReadAlign::chimericDetection() { + bool chimRecord=false; //output chains for out-of-STAR chimeric detection #ifdef OUTPUT_localChains { @@ -296,14 +298,19 @@ void ReadAlign::chimericDetection() { //&& minOverhang2 //&& (diff str || diff chr || //|| gap > (alignIntronMax,alignMatesGapMax) ) negative gap = very large # because of uint + + chimRecord=true; //chimeric alignment was recorded - if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) { + int chimRepresent = -1; + if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) {//tr0 has both mates + chimRepresent = 0; trChim[0].primaryFlag=true;//paired portion is primary trChim[1].primaryFlag=false; - } else if (trChim[1].exons[0][EX_iFrag]!=trChim[1].exons[trChim[1].nExons-1][EX_iFrag]) { + } else if (trChim[1].exons[0][EX_iFrag]!=trChim[1].exons[trChim[1].nExons-1][EX_iFrag]) {//tr1 has both mates + chimRepresent = 1; trChim[1].primaryFlag=true;//paired portion is primary trChim[0].primaryFlag=false; - } else if (trChim[0].exons[0][EX_iFrag]!=trChim[1].exons[0][EX_iFrag]) { + } else if (trChim[0].exons[0][EX_iFrag]!=trChim[1].exons[0][EX_iFrag]) {//tr0 and tr1 are single different mates trChim[1].primaryFlag=true;//paired portion is primary trChim[0].primaryFlag=true; } else {//two chimeric segments are on the same mate, another mate not mapped @@ -311,10 +318,69 @@ void ReadAlign::chimericDetection() { trChim[1].primaryFlag=false; }; + //re-calculate the score for chimeric transcripts trChim[0].alignScore(Read1, G, P); trChim[1].alignScore(Read1, G, P); - for (uint iTr=0;iTr trChim[1].maxScore) ? 0 : 1; + + if (P->chimOutType=="WithinBAM") {//BAM output + int bamN=0, bamNrepresent=0; + for (uint iTr=0;iTrreadNmates==2) { //only unique chimeric alignments are allowed for now + bamN+=alignBAM(trChim[iTr], 1, 1, P->chrStart[trChim[iTr].Chr], trChim[1-iTr].Chr, trChim[1-iTr].exons[0][EX_G], \ + (int) (trChim[1-iTr].Str!=trChim[1-iTr].exons[0][EX_iFrag]), alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); + } else { + bamN+=alignBAM(trChim[iTr], 1, 1, P->chrStart[trChim[iTr].Chr], (uint) -1, (uint) -1, \ + 0, alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); + }; + + }; + vector tagSA; + uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering + for (int ii=0; iichrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ); + bamBytesTotal+=outBAMoneAlignNbytes[ii]+tagSA.at(ii).size()*bamN; + }; + //write all bam lines + for (int ii=0; iioutBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], \ + P->chrStart[ * ( (uint32*) outBAMoneAlign[ii]+1 )], (iReadAll<<32) ); + }; + }; + + + for (uint iTr=0;iTrreadNmates==2) { outputTranscriptSAM(trChim[iTr], chimN, iTr, trChim[1-iTr].Chr, trChim[1-iTr].exons[0][EX_G], (int) (trChim[1-iTr].Str!=trChim[1-iTr].exons[0][EX_iFrag]), -1, NULL, &chunkOutChimSAM); } else { @@ -330,4 +396,5 @@ void ReadAlign::chimericDetection() { }; };//chimeric score };//chimeric search -};//END \ No newline at end of file + return chimRecord; +};//END diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 6ecc994..5b3ffa2 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -10,7 +10,8 @@ void ReadAlign::outputAlignments() { bool mateMapped[2]={false,false}; if (P->outFilterBySJoutStage<=1) {//no chimeric output for stage=2 - chimericDetection(); + if ( chimericDetection() && P->chimOutType=="WithinBAM" ) return; + //if chimeric alignment was recorded in main BAM files, it contains the representative portion, so non-chimeric aligmnent is not output }; if ( nW==0 ) {//no good windows @@ -82,7 +83,7 @@ void ReadAlign::outputAlignments() { for (uint iTr=0;iTroutBAMunsorted || P->outBAMcoord) {//BAM output - alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder); + alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], P->chrStart[trMult[iTr]->Chr], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); @@ -125,7 +126,7 @@ void ReadAlign::outputAlignments() { if (unmapType>=0 && P->outSAMunmapped=="Within") {//unmapped read, at least one mate if (P->outBAMunsorted || P->outBAMcoord || P->quant.trSAM.yes) {//BAM output - alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder); + alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); //TODO clean for single-end alignments of PE reads diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 0420d24..3b46cb3 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -49,10 +49,10 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript }; for (uint iatr=0;iatroutSAMattrOrderQuant); + alignBAM(alignT[iatr], nAlignT, iatr, 0, (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrderQuant, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); }; diff --git a/VERSION b/VERSION index f9764bf..57e932e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -#define STAR_VERSION "STAR_2.4.0j" +#define STAR_VERSION "STAR_2.4.0j_modified" diff --git a/parametersDefault b/parametersDefault index 4442f06..25005bc 100644 --- a/parametersDefault +++ b/parametersDefault @@ -458,6 +458,10 @@ winFlankNbins 4 ### Chimeric Alignments +chimOutType SeparateSAMold + string: type of chimeric output + SeparateSAMold ... output old SAM into separate Chimeric.out.sam file + WithinBAM ... output into main aligned BAM files (Aligned.*.bam) chimSegmentMin 0 int>=0: minimum length of chimeric segment length, if ==0, no chimeric output diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 8ad0a7c..10b163c 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -43,7 +43,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //calculate # of allowed mismatches that has been left - double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[0][EX_iFrag]==0) ? -1 : P->outFilterMismatchNoverLmax1; + double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[0][EX_iFrag]==0 && trA.Str==0) ? -1 : P->outFilterMismatchNoverLmax1; trAstep1.reset(); // //avoid extending before Chr start @@ -67,7 +67,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui //calculate # of allowed mismatches that has been left - double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[trA.nExons-1][EX_iFrag]==0) ? -1 : P->outFilterMismatchNoverLmax1; + double pMMmax=(P->alignEndsType=="Extend5pOfRead1" && trA.exons[trA.nExons-1][EX_iFrag]==0 && trA.Str==0) ? -1 : P->outFilterMismatchNoverLmax1; trAstep1.reset(); // //to prevent extension past the Chr end From bc368eb532792937a859987e9f9ba02d87e9c930 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 16 Feb 2015 23:54:01 -0500 Subject: [PATCH 055/536] Dropped chimeric SA tags for mates --- ReadAlign_chimericDetection.cpp | 78 +++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index b37991a..21b545c 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -316,6 +316,7 @@ bool ReadAlign::chimericDetection() { } else {//two chimeric segments are on the same mate, another mate not mapped trChim[0].primaryFlag=true;//paired portion is primary trChim[1].primaryFlag=false; + chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; }; //re-calculate the score for chimeric transcripts @@ -323,18 +324,21 @@ bool ReadAlign::chimericDetection() { trChim[1].alignScore(Read1, G, P); //if both of chimeric segments are un-paired, the one with max score is "representative" - if (chimRepresent ==-1) chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; + //if (chimRepresent ==-1) chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; if (P->chimOutType=="WithinBAM") {//BAM output - int bamN=0, bamNrepresent=0; + vector tagSA; + int bamN=0, bamNsuppl=0; + uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering for (uint iTr=0;iTrreadNmates==2) { //only unique chimeric alignments are allowed for now @@ -345,34 +349,50 @@ bool ReadAlign::chimericDetection() { 0, alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); }; - }; - vector tagSA; - uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering - for (int ii=0; iichrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]; + if (chimRepresent>=0) { + bam1_t *b; + b=bam_init1(); + bam_read1_fromArray(outBAMoneAlign[bamN-1], b); + uint8_t* auxp=bam_aux_get(b,"NM"); + uint32_t auxv=bam_aux2i(auxp); + tagSA.push_back( P->chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ); - bamBytesTotal+=outBAMoneAlignNbytes[ii]+tagSA.at(ii).size()*bamN; - }; + }; + }; + +// if (chimRepresent>=0) { +// for (int ii=0; iichrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ +// ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ); +// bamBytesTotal+=outBAMoneAlignNbytes[ii]+tagSA.at(ii).size()*bamN; +// }; +// }; //write all bam lines for (int ii=0; ii=0) { + +// string tagSA1("SAZ"); + +// if (ii!=bamNrepresent) {//first is the representative +// tagSA1+=tagSA[chimRepresent]; +// }; +// for (int jj=0; jjoutBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], \ P->chrStart[ * ( (uint32*) outBAMoneAlign[ii]+1 )], (iReadAll<<32) ); From 6fa874fc63742e7dabcbd0aa81f6a76df1bd1ea2 Mon Sep 17 00:00:00 2001 From: Vessere Date: Wed, 18 Feb 2015 12:13:10 -0800 Subject: [PATCH 056/536] compilation backward compatible --- Genome.cpp | 2 +- Genome.h | 2 +- SharedMemory.cpp | 8 ++++++++ SharedMemory.h | 28 ++++++++++++++++------------ 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 99290b8..2fc75af 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -23,7 +23,7 @@ //arbitrary number for ftok function #define SHM_projectID 23 -Genome::Genome (Parameters* Pin ): P(Pin), shmStart(NULL) { +Genome::Genome (Parameters* Pin ): P(Pin), shmStart(NULL), sharedMemory(NULL) { shmKey=ftok(P->genomeDir.c_str(),SHM_projectID); }; diff --git a/Genome.h b/Genome.h index f35e60e..191cd31 100644 --- a/Genome.h +++ b/Genome.h @@ -24,7 +24,7 @@ class Genome { key_t shmKey; char *shmStart; char *G1; //pointer -200 of G - SharedMemory * sharedMemory = NULL; + SharedMemory * sharedMemory; uint OpenStream(string name, ifstream & stream); }; #endif diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 5ea2b0c..50d91ba 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -12,6 +12,14 @@ using namespace std; SharedMemory::SharedMemory(key_t key, bool unloadLast): _key(key), _unloadLast(unloadLast) { + _shmID = -1; + _mapped=NULL; + _length = NULL; + _sem=NULL; + _isAllocator = false; + _needsAllocation = true; + _unloadLast = true; + OpenIfExists(); } diff --git a/SharedMemory.h b/SharedMemory.h index 3cc4b26..a62114e 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -32,14 +32,18 @@ ECOUNTERUSE class SharedMemoryException: public std::exception { private: - bool _hasError = false; - ErrorState _error = ErrorState::ENONE; - int _errorDetail = 0; + bool _hasError; + ErrorState _error; + int _errorDetail; public: SharedMemoryException() - {}; + { + _hasError = false; + _error = ErrorState::ENONE; + _errorDetail = 0; + }; SharedMemoryException(ErrorState error): _error(error) {}; @@ -137,15 +141,15 @@ class SharedMemory private: SharedMemoryException _exception; - int _shmID = -1; - void * _mapped=NULL; - size_t * _length = NULL; - sem_t * _sem=NULL; - bool _isAllocator = false; - bool _needsAllocation = true; + int _shmID; + void * _mapped; + size_t * _length; + sem_t * _sem; + bool _isAllocator; + bool _needsAllocation; key_t _key; - bool _unloadLast = true; + bool _unloadLast; int SharedObjectsUseCount(); void OpenIfExists(); @@ -165,4 +169,4 @@ class SharedMemory }; -#endif \ No newline at end of file +#endif From 85b9b1dc3d5fd260c8bfed9009acb65cef356b68 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Wed, 18 Feb 2015 12:27:04 -0800 Subject: [PATCH 057/536] build warning --- SharedMemory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 50d91ba..dbd33db 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -149,8 +149,8 @@ struct stat SharedMemory::GetSharedObjectInfo() void SharedMemory::MapSharedObjectToMemory() { - size_t size=0; #ifdef POSIX_SHARED_MEM + size_t size=0; struct stat buf = SharedMemory::GetSharedObjectInfo(); size = (size_t) buf.st_size; _mapped = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_NORESERVE, _shmID, (off_t) 0); From 4d34313f5203ed70b132230717bd1966675554fc Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Wed, 18 Feb 2015 12:29:26 -0800 Subject: [PATCH 058/536] fix indentation --- Genome.cpp | 4 +- Genome.h | 2 +- SharedMemory.h | 216 ++++++++++++++++++++++++------------------------- 3 files changed, 111 insertions(+), 111 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 2fc75af..7447881 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -388,8 +388,8 @@ void Genome::genomeLoad(){//allocate and load Genome #endif if (P->genomeLoad=="LoadAndExit") { - uint shmSum=0; - for (uint ii=0;iiinOut->logMain << "genomeLoad=LoadAndExit: completed, the genome is loaded and kept in RAM, EXITING now.\n"<> Log.timing.out"); return; diff --git a/Genome.h b/Genome.h index 191cd31..4291e28 100644 --- a/Genome.h +++ b/Genome.h @@ -20,7 +20,7 @@ class Genome { void genomeLoad(); private: - Parameters* P; + Parameters* P; key_t shmKey; char *shmStart; char *G1; //pointer -200 of G diff --git a/SharedMemory.h b/SharedMemory.h index a62114e..5812ba6 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -32,127 +32,127 @@ ECOUNTERUSE class SharedMemoryException: public std::exception { private: - bool _hasError; - ErrorState _error; - int _errorDetail; + bool _hasError; + ErrorState _error; + int _errorDetail; public: - SharedMemoryException() - { - _hasError = false; - _error = ErrorState::ENONE; - _errorDetail = 0; - }; - - SharedMemoryException(ErrorState error): _error(error) - {}; - - ErrorState GetErrorCode() const - { - return _error; - }; - - int GetErrorDetail() const - { - return _errorDetail; - } - - bool HasError() const - { - return _hasError; - }; - - void SetError(ErrorState error, int detail) - { - if (!_hasError) - { - _hasError = true; - _error = error; - _errorDetail = detail; - } - } - - void ClearError() - { - _hasError = false; - _error = ErrorState::ENONE; - _errorDetail = 0; - }; + SharedMemoryException() + { + _hasError = false; + _error = ErrorState::ENONE; + _errorDetail = 0; + }; + + SharedMemoryException(ErrorState error): _error(error) + {}; + + ErrorState GetErrorCode() const + { + return _error; + }; + + int GetErrorDetail() const + { + return _errorDetail; + } + + bool HasError() const + { + return _hasError; + }; + + void SetError(ErrorState error, int detail) + { + if (!_hasError) + { + _hasError = true; + _error = error; + _errorDetail = detail; + } + } + + void ClearError() + { + _hasError = false; + _error = ErrorState::ENONE; + _errorDetail = 0; + }; }; class SharedMemory { public: - void * GetMapped() - { - return (void *) ((char*) _mapped + sizeof(size_t)); - }; - - size_t GetSize() - { - if (!_needsAllocation) - return *_length - sizeof(size_t); - - _exception.SetError(ENOTALLOCATED, 0); - return -1; - }; - - bool NeedsAllocation() const - { - return _needsAllocation; - }; - - // the owner is the first one that created the named shared memory segment - bool IsAllocator() const - { - return _isAllocator; - }; - - int GetId() const - { - return _shmID; - }; - - bool HasError() const - { - return _exception.HasError(); - } - - void ThrowError(ErrorState error, int detail) - { - if (!_exception.HasError()) - { - _exception.SetError(error, detail); - } - throw _exception; - }; - - void ThrowError(ErrorState error) - { - ThrowError(error, 0); - }; - - SharedMemory(key_t key, bool unloadLast); - ~SharedMemory(); - void Allocate(size_t shmSize); - void Clean(); + void * GetMapped() + { + return (void *) ((char*) _mapped + sizeof(size_t)); + }; + + size_t GetSize() + { + if (!_needsAllocation) + return *_length - sizeof(size_t); + + _exception.SetError(ENOTALLOCATED, 0); + return -1; + }; + + bool NeedsAllocation() const + { + return _needsAllocation; + }; + + // the owner is the first one that created the named shared memory segment + bool IsAllocator() const + { + return _isAllocator; + }; + + int GetId() const + { + return _shmID; + }; + + bool HasError() const + { + return _exception.HasError(); + } + + void ThrowError(ErrorState error, int detail) + { + if (!_exception.HasError()) + { + _exception.SetError(error, detail); + } + throw _exception; + }; + + void ThrowError(ErrorState error) + { + ThrowError(error, 0); + }; + + SharedMemory(key_t key, bool unloadLast); + ~SharedMemory(); + void Allocate(size_t shmSize); + void Clean(); private: - SharedMemoryException _exception; + SharedMemoryException _exception; int _shmID; void * _mapped; - size_t * _length; + size_t * _length; sem_t * _sem; bool _isAllocator; bool _needsAllocation; - key_t _key; + key_t _key; bool _unloadLast; - - int SharedObjectsUseCount(); - void OpenIfExists(); + + int SharedObjectsUseCount(); + void OpenIfExists(); void CreateAndInitSharedObject(size_t shmSize); void MapSharedObjectToMemory(); const char * GetPosixObjectKey(); @@ -160,12 +160,12 @@ class SharedMemory void Close(); void Unlink(); - std::string CounterName(); + std::string CounterName(); - void EnsureCounter(); - void RemoveSharedCounter(); - void SharedUseIncrement(); - void SharedUseDecrement(); + void EnsureCounter(); + void RemoveSharedCounter(); + void SharedUseIncrement(); + void SharedUseDecrement(); }; From 258d4091742c90c1ee21d4998556649b88a9f473 Mon Sep 17 00:00:00 2001 From: gvessere Date: Thu, 19 Feb 2015 15:39:41 -0800 Subject: [PATCH 059/536] fix loadandkeep bug that removes the genome nevertheless --- SharedMemory.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index dbd33db..8c0a478 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -18,7 +18,6 @@ SharedMemory::SharedMemory(key_t key, bool unloadLast): _key(key), _unloadLast(u _sem=NULL; _isAllocator = false; _needsAllocation = true; - _unloadLast = true; OpenIfExists(); } From d142976f53a086d1f0bcd560016dd31998c7e25d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Mon, 2 Mar 2015 16:43:41 -0500 Subject: [PATCH 060/536] Added explicit deallocation for all heap arrays in genomeGenerate. --- ReadAlign_chimericDetection.cpp | 61 ++++++++++++++++++++------------- genomeGenerate.cpp | 12 +++++-- 2 files changed, 48 insertions(+), 25 deletions(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 21b545c..a4fa908 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -301,6 +301,10 @@ bool ReadAlign::chimericDetection() { chimRecord=true; //chimeric alignment was recorded + //re-calculate the score for chimeric transcripts + trChim[0].alignScore(Read1, G, P); + trChim[1].alignScore(Read1, G, P); + int chimRepresent = -1; if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) {//tr0 has both mates chimRepresent = 0; @@ -311,24 +315,20 @@ bool ReadAlign::chimericDetection() { trChim[1].primaryFlag=true;//paired portion is primary trChim[0].primaryFlag=false; } else if (trChim[0].exons[0][EX_iFrag]!=trChim[1].exons[0][EX_iFrag]) {//tr0 and tr1 are single different mates - trChim[1].primaryFlag=true;//paired portion is primary trChim[0].primaryFlag=true; + trChim[1].primaryFlag=true; } else {//two chimeric segments are on the same mate, another mate not mapped - trChim[0].primaryFlag=true;//paired portion is primary - trChim[1].primaryFlag=false; chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; + trChim[chimRepresent].primaryFlag=true; + trChim[1-chimRepresent].primaryFlag=false; }; - //re-calculate the score for chimeric transcripts - trChim[0].alignScore(Read1, G, P); - trChim[1].alignScore(Read1, G, P); - //if both of chimeric segments are un-paired, the one with max score is "representative" //if (chimRepresent ==-1) chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; if (P->chimOutType=="WithinBAM") {//BAM output - vector tagSA; - int bamN=0, bamNsuppl=0; +// vector tagSA({"","",""}); + int bamN=0, bamIsuppl=-1, bamIrepr=-1; uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering for (uint iTr=0;iTrreadNmates==2) { //only unique chimeric alignments are allowed for now + if (P->readNmates==2 && alignType==-1) { //only unique chimeric alignments are allowed for now bamN+=alignBAM(trChim[iTr], 1, 1, P->chrStart[trChim[iTr].Chr], trChim[1-iTr].Chr, trChim[1-iTr].exons[0][EX_G], \ (int) (trChim[1-iTr].Str!=trChim[1-iTr].exons[0][EX_iFrag]), alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); } else { @@ -350,15 +351,16 @@ bool ReadAlign::chimericDetection() { }; bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]; - if (chimRepresent>=0) { - bam1_t *b; - b=bam_init1(); - bam_read1_fromArray(outBAMoneAlign[bamN-1], b); - uint8_t* auxp=bam_aux_get(b,"NM"); - uint32_t auxv=bam_aux2i(auxp); - tagSA.push_back( P->chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ - ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ); - }; +// if (chimRepresent>=0) {//if chimRepresent<0, the chimera is "encompassing" and the SA tags are not needed +// //TODO only record tags for bamIrepr and bamIsuppl +// bam1_t *b; +// b=bam_init1(); +// bam_read1_fromArray(outBAMoneAlign[bamN-1], b); +// uint8_t* auxp=bam_aux_get(b,"NM"); +// uint32_t auxv=bam_aux2i(auxp); +// tagSA.push_back( P->chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ +// ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ); +// }; }; // if (chimRepresent>=0) { @@ -375,7 +377,21 @@ bool ReadAlign::chimericDetection() { // }; //write all bam lines for (int ii=0; ii=0) { + + int tagI=-1; + if (ii==bamIrepr) { + tagI=bamIsuppl; + } else if (ii==bamIsuppl) { + tagI=bamIrepr; + }; + if (tagI>=0) { + bam1_t *b; + b=bam_init1(); + bam_read1_fromArray(outBAMoneAlign[tagI], b); + uint8_t* auxp=bam_aux_get(b,"NM"); + uint32_t auxv=bam_aux2i(auxp); + string tagSA1="SAZ"+P->chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; // string tagSA1("SAZ"); @@ -387,8 +403,7 @@ bool ReadAlign::chimericDetection() { // tagSA1+=tagSA[jj]; // }; // }; - - string tagSA1="SAZ"+(ii==bamNsuppl ? tagSA[chimRepresent] : tagSA[1-chimRepresent]); + memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end outBAMoneAlignNbytes[ii]+=tagSA1.size()+1; * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 4529ef9..d31d3e6 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -424,7 +424,9 @@ void genomeGenerate(Parameters *P) { for (uint ii=0;iiinOut->logMain << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->genomeDir+"/SAindex","ERROR_00124",P); fstreamWriteBig(SAiOut, SAip.charArray, SAip.lengthByte,P->genomeDir+"/SAindex","ERROR_00125",P); SAiOut.close(); - + + SA1.deallocateArray(); + delete [] SAi; + time(&rawTime); timeString=asctime(localtime ( &rawTime )); timeString.erase(timeString.end()-1,timeString.end()); From 3f3d54d7e1c04fae29e2a83b0e3c4ac90a37035b Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 3 Mar 2015 14:50:04 -0500 Subject: [PATCH 061/536] Fixed a problem with calculating the RAM required for BAM sorting. --- STAR.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/STAR.cpp b/STAR.cpp index e804b84..03dfefa 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -270,7 +270,7 @@ int main(int argInN, char* argIn[]) { for (uint32 ibin=0; ibinchunkOutBAMcoord->nBins; ibin++) { uint binS=0; for (int it=0; itrunThreadN; it++) {//collect sizes from threads - binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]; + binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]+24*RAchunk[it]->chunkOutBAMcoord->binTotalN[ibin]; }; if (binS>maxMem) maxMem=binS; }; From 2e3016d081fde775bbe09b739c4d5306021b489f Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Thu, 5 Mar 2015 11:21:01 -0800 Subject: [PATCH 062/536] last touch --- SharedMemory.cpp | 11 ++++++----- SharedMemory.h | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 8c0a478..d1a52b6 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -7,6 +7,7 @@ #include /* For mode constants */ #include /* For O_* constants */ #include +#include using namespace std; @@ -51,11 +52,11 @@ void SharedMemory::Allocate(size_t shmSize) _exception.ClearError(); if (!_needsAllocation) - ThrowError(ErrorState::EALREADYALLOCATED); + ThrowError(EALREADYALLOCATED); CreateAndInitSharedObject(shmSize); - if (_exception.HasError() && _exception.GetErrorCode() != ErrorState::EEXISTS) + if (_exception.HasError() && _exception.GetErrorCode() != EEXISTS) throw _exception; _exception.ClearError(); // someone else came in first so retry open @@ -95,10 +96,10 @@ void SharedMemory::CreateAndInitSharedObject(size_t shmSize) switch (errno) { case EEXIST: - _exception.SetError(ErrorState::EEXISTS, 0); + _exception.SetError(EEXISTS, 0); break; default: - ThrowError(ErrorState::EOPENFAILED, errno); + ThrowError(EOPENFAILED, errno); } return; } @@ -107,7 +108,7 @@ void SharedMemory::CreateAndInitSharedObject(size_t shmSize) int err = ftruncate(_shmID, toReserve); if (err == -1) { - ThrowError(ErrorState::EFTRUNCATE); + ThrowError(EFTRUNCATE); } #endif } diff --git a/SharedMemory.h b/SharedMemory.h index 5812ba6..49f1709 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -41,7 +41,7 @@ class SharedMemoryException: public std::exception SharedMemoryException() { _hasError = false; - _error = ErrorState::ENONE; + _error = ENONE; _errorDetail = 0; }; @@ -76,7 +76,7 @@ class SharedMemoryException: public std::exception void ClearError() { _hasError = false; - _error = ErrorState::ENONE; + _error = ENONE; _errorDetail = 0; }; }; From de187b9f091d848ea779976967afa0da590dae4c Mon Sep 17 00:00:00 2001 From: gvessere Date: Thu, 5 Mar 2015 11:35:48 -0800 Subject: [PATCH 063/536] Header comments with NO copyright --- SharedMemory.cpp | 5 ++++- SharedMemory.h | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/SharedMemory.cpp b/SharedMemory.cpp index d1a52b6..4ffc562 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -1,5 +1,8 @@ -#include "SharedMemory.h" +// SharedMemory.cpp +// Gery Vessere - gvessere@illumina.com, gery@vessere.com +// An abstraction over both SysV and POSIX shared memory APIs +#include "SharedMemory.h" #include #include #include diff --git a/SharedMemory.h b/SharedMemory.h index 49f1709..cb3a600 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -1,3 +1,6 @@ +// SharedMemory.cpp +// Gery Vessere - gvessere@illumina.com, gery@vessere.com +// An abstraction over both SysV and POSIX shared memory APIs #ifndef SHAREDMEMORY_H #define SHAREDMEMORY_H From c44a4573993b07902346974b932059b7d17c1d7e Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sun, 8 Mar 2015 15:06:08 -0400 Subject: [PATCH 064/536] Implemented BAM sorting with variable bin size. Merge-sort for unmapped reads to keep their order. Works without BySJout option. --- BAMoutput.cpp | 98 +++++++++++++++++++++++++++++++++++++++------- BAMoutput.h | 11 +++--- Makefile | 2 +- Parameters.cpp | 2 + Parameters.h | 1 + ReadAlignChunk.cpp | 6 +-- STAR.cpp | 35 +++++++++++------ ThreadControl.h | 3 +- serviceFuns.cpp | 12 ++++++ 9 files changed, 132 insertions(+), 38 deletions(-) diff --git a/BAMoutput.cpp b/BAMoutput.cpp index 06f56f4..845183a 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -2,12 +2,15 @@ #include #include "GlobalVariables.h" #include +#include "serviceFuns.cpp" +#include "ThreadControl.h" -BAMoutput::BAMoutput (uint64 bamArraySizeIn, uint32 nBinsIn, uint64 genomeSize, int iChunk, string tmpDir) {//allocate bam array +BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate bam array - nBins=nBinsIn; - binGlen=genomeSize/(nBins-1)+1; - binSize=bamArraySizeIn/nBins; + P=Pin; + + nBins=P->outBAMcoordNbins; + binSize=P->chunkOutBAMsizeBytes/nBins; bamArraySize=binSize*nBins; bamArray = new char [bamArraySize]; @@ -24,10 +27,16 @@ BAMoutput::BAMoutput (uint64 bamArraySizeIn, uint32 nBinsIn, uint64 genomeSize, binTotalN[ii]=0; binTotalBytes[ii]=0; }; + + binSize1=binStart[nBins-1]-binStart[0]; + nBins=1;//start with one bin to estimate genomic bin sizes }; -BAMoutput::BAMoutput (uint64 bamArraySizeIn, BGZF *bgzfBAMin) {//allocate BAM array with one bin, streamed directly into bgzf file - bamArraySize=bamArraySizeIn; +BAMoutput::BAMoutput (BGZF *bgzfBAMin, Parameters *Pin) {//allocate BAM array with one bin, streamed directly into bgzf file + + P=Pin; + + bamArraySize=P->chunkOutBAMsizeBytes; bamArray = new char [bamArraySize]; binBytes1=0; bgzfBAM=bgzfBAMin; @@ -70,19 +79,78 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint chrStart, uint iR if (bamSize==0) return; //no output, could happen if one of the mates is not mapped - uint iBin; - uint32 alignG= *( (uint32*) (bamIn+2*sizeof(uint32)) ); - if ( alignG == (uint32) -1 ) {//unmapped alignment, last bin - iBin=nBins-1; - } else { - iBin=(alignG + chrStart)/binGlen; + //determine which bin this alignment belongs to + uint32 *bamIn32=(uint32*) bamIn; + uint alignG=( ((uint) bamIn32[1]) << 32 ) | ( (uint)bamIn32[2] ); + uint32 iBin=0; + if (bamIn32[1] == ((uint32) -1) ) {//unmapped + iBin=P->outBAMcoordNbins-1; + } else if (nBins>1) {//bin starts have already been determined + iBin=binarySearch1a (alignG, P->outBAMsortingBinStart, (int32) (nBins-1)); }; + +// if ( alignG == (uint32) -1 ) {//unmapped alignment, last bin +// iBin=nBins-1; +// } else { +// iBin=(alignG + chrStart)/binGlen; +// }; - if (binBytes[iBin]+bamSize+sizeof(uint) > binSize) {//write out this buffer - binStream[iBin]->write(binStart[iBin],binBytes[iBin]); - binBytes[iBin]=0;//rewind the buffer + //write buffer is filled + if (binBytes[iBin]+bamSize+sizeof(uint) > ( (iBin>0 || nBins>1) ? binSize : binSize1)) {//write out this buffer + if ( nBins>1 || iBin==(P->outBAMcoordNbins-1) ) {//normal writing, bins have already been determined + binStream[iBin]->write(binStart[iBin],binBytes[iBin]); + binBytes[iBin]=0;//rewind the buffer + } else {//the first chunk of reads was written in one bin, need to determine bin sizes, and re-distribute reads into bins + nBins=P->outBAMcoordNbins;//this is the true number of bins + + //mutex here + if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexBAMsortBins); + //extract coordinates and sort + uint *startPos = new uint [binTotalN[0]];//array of aligns start positions + for (uint ib=0,ia=0;iainOut->logMain << "BAM sorting: "<inOut->logMain << "BAM sorting bins genomic start loci:\n"; + + P->outBAMsortingBinStart[0]=0; + for (uint32 ib=1; ib<(nBins-1); ib++) { + P->outBAMsortingBinStart[ib]=startPos[binTotalN[0]/(nBins-1)*ib]; + P->inOut->logMain << ib <<"\t"<< (P->outBAMsortingBinStart[ib]>>32) << "\t" << ((P->outBAMsortingBinStart[ib]<<32)>>32) <runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexBAMsortBins); + + //re-allocate binStart + uint binTotalNold=binTotalN[0]; + char *binStartOld=new char [binSize1]; + memcpy(binStartOld,binStart[0],binBytes[0]); + + binBytes[0]=0; + binTotalN[0]=0; + binTotalBytes[0]=0; + + //re-bin all aligns + for (uint ib=0,ia=0;iaoutBAMunsorted) { - chunkOutBAMunsorted = new BAMoutput (P->chunkOutBAMsizeBytes,P->inOut->outBAMfileUnsorted); + chunkOutBAMunsorted = new BAMoutput (P->inOut->outBAMfileUnsorted, P); RA->outBAMunsorted = chunkOutBAMunsorted; } else { chunkOutBAMunsorted=NULL; @@ -48,7 +48,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome }; if (P->outBAMcoord) { - chunkOutBAMcoord = new BAMoutput (P->chunkOutBAMsizeBytes, P->outBAMcoordNbins, P->chrStart[P->nChrReal], iChunk, P->outBAMsortTmpDir); + chunkOutBAMcoord = new BAMoutput (iChunk, P->outBAMsortTmpDir, P); RA->outBAMcoord = chunkOutBAMcoord; } else { chunkOutBAMcoord=NULL; @@ -56,7 +56,7 @@ ReadAlignChunk::ReadAlignChunk(Parameters* Pin, Genome &genomeIn, Transcriptome }; if ( P->quant.trSAM.yes ) { - chunkOutBAMquant = new BAMoutput (P->chunkOutBAMsizeBytes,P->inOut->outQuantBAMfile); + chunkOutBAMquant = new BAMoutput (P->inOut->outQuantBAMfile,P); RA->outBAMquant = chunkOutBAMquant; } else { chunkOutBAMquant=NULL; diff --git a/STAR.cpp b/STAR.cpp index 03dfefa..0f40303 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -17,6 +17,7 @@ #include "BAMfunctions.h" #include "Transcriptome.h" #include "BAMbinSortByCoordinate.h" +#include "BAMbinSortUnmapped.h" #include "signalFromBAM.h" #include "sjdbBuildIndex.h" #include "mapThreadsSpawn.h" @@ -64,6 +65,7 @@ int main(int argInN, char* argIn[]) { pthread_mutex_init(&g_threadChunks.mutexOutUnmappedFastx, NULL); pthread_mutex_init(&g_threadChunks.mutexOutFilterBySJout, NULL); pthread_mutex_init(&g_threadChunks.mutexStats, NULL); + pthread_mutex_init(&g_threadChunks.mutexBAMsortBins, NULL); }; g_statsAll.progressReportHeader(P->inOut->logProgress); @@ -287,27 +289,34 @@ int main(int argInN, char* argIn[]) { // P->inOut->logMain << "Started sorting BAM ..." <outBAMsortingThreadNactual) #pragma omp for schedule (dynamic,1) - for (uint32 ibin=0; ibinchunkOutBAMcoord->nBins; ibin++) { + for (uint32 ibin1=0; ibin1chunkOutBAMcoord->nBins; ibin1++) { + uint32 ibin=RAchunk[0]->chunkOutBAMcoord->nBins-1-ibin1;//start with the last bin - unmapped reads uint binN=0, binS=0; for (int it=0; itrunThreadN; it++) {//collect sizes from threads binN += RAchunk[it]->chunkOutBAMcoord->binTotalN[ibin]; binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]; }; - - uint newMem=binS+binN*24; - bool boolWait=true; - while (boolWait) { - #pragma omp critical - if (totalMem+newMem < P->limitBAMsortRAM) { - boolWait=false; - totalMem+=newMem; + + if (binS==0) continue; //empty bin + + if (ibin == RAchunk[0]->chunkOutBAMcoord->nBins-1) {//last bin for unmapped reads + BAMbinSortUnmapped(ibin,P->runThreadN,P->outBAMsortTmpDir,P->inOut->outBAMfileCoord, P); + } else { + uint newMem=binS+binN*24; + bool boolWait=true; + while (boolWait) { + #pragma omp critical + if (totalMem+newMem < P->limitBAMsortRAM) { + boolWait=false; + totalMem+=newMem; + }; + sleep(0.1); }; - sleep(0.1); + BAMbinSortByCoordinate(ibin,binN,binS,P->runThreadN,P->outBAMsortTmpDir,P->inOut->outBAMfileCoord, P); + #pragma omp critical + totalMem-=newMem;//"release" RAM }; - BAMbinSortByCoordinate(ibin,binN,binS,P->runThreadN,P->outBAMsortTmpDir,P->inOut->outBAMfileCoord, P); - #pragma omp critical - totalMem-=newMem;//"release" RAM }; //concatenate all BAM files, using bam_cat char **bamBinNames = new char* [RAchunk[0]->chunkOutBAMcoord->nBins]; diff --git a/ThreadControl.h b/ThreadControl.h index dd5bfae..f06c439 100644 --- a/ThreadControl.h +++ b/ThreadControl.h @@ -11,7 +11,8 @@ class ThreadControl { bool threadBool; pthread_t *threadArray; - pthread_mutex_t mutexInRead, mutexOutSAM, mutexOutBAM1, mutexOutChimSAM, mutexOutChimJunction, mutexOutUnmappedFastx, mutexOutFilterBySJout, mutexStats, mutexLogMain; + pthread_mutex_t mutexInRead, mutexOutSAM, mutexOutBAM1, mutexOutChimSAM, mutexOutChimJunction, mutexOutUnmappedFastx, mutexOutFilterBySJout; + pthread_mutex_t mutexStats, mutexLogMain, mutexBAMsortBins; uint chunkInN,chunkOutN; diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 6e984d6..0b121c9 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -8,6 +8,18 @@ template return s; }; +inline int funCompareUint1 (const void *a, const void *b) { + uint va= *((uint*) a); + uint vb= *((uint*) b); + + if (va>vb) { + return 1; + } else if (va==vb) { + return 0; + } else { + return -1; + }; +}; inline int funCompareUint2 (const void *a, const void *b) { uint va= *((uint*) a); From 1e8b618ceeaf950f5de430fd4a1b0c52221ee72b Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 10 Mar 2015 12:53:23 -0400 Subject: [PATCH 065/536] Fixing problems with multi-threading for sorting. Not a working copy, will roll back some of the changes. --- BAMoutput.cpp | 95 ++++++++++++++++++++------------- BAMoutput.h | 4 +- Parameters.cpp | 1 + ReadAlign_chimericDetection.cpp | 3 +- ReadAlign_outputAlignments.cpp | 4 +- STAR.cpp | 18 +++++-- 6 files changed, 78 insertions(+), 47 deletions(-) diff --git a/BAMoutput.cpp b/BAMoutput.cpp index 845183a..9a5e02b 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -14,7 +14,9 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate ba bamArraySize=binSize*nBins; bamArray = new char [bamArraySize]; - mkdir((tmpDir+to_string((uint) iChunk)).c_str(),S_IRWXU); + bamDir=tmpDir+to_string((uint) iChunk);//local directory for this thread (iChunk) + + mkdir(bamDir.c_str(),S_IRWXU); binStart=new char* [nBins]; binBytes=new uint64 [nBins]; binStream=new ofstream* [nBins]; @@ -23,7 +25,7 @@ BAMoutput::BAMoutput (int iChunk, string tmpDir, Parameters *Pin) {//allocate ba for (uint ii=0;iioutBAMcoordNbins-1; - } else if (nBins>1) {//bin starts have already been determined - iBin=binarySearch1a (alignG, P->outBAMsortingBinStart, (int32) (nBins-1)); + + if (iBinFlush>=0) {//bamSize=-1 signals the need to flush + iBin=iBinFlush; + } else if (bamSize==0) { + return; //no output, could happen if one of the mates is not mapped + } else { + //determine which bin this alignment belongs to + bamIn32=(uint32*) bamIn; + alignG=( ((uint) bamIn32[1]) << 32 ) | ( (uint)bamIn32[2] ); + if (bamIn32[1] == ((uint32) -1) ) {//unmapped + iBin=P->outBAMcoordNbins-1; + } else if (nBins>1) {//bin starts have already been determined + iBin=binarySearch1a (alignG, P->outBAMsortingBinStart, (int32) (nBins-1)); + }; }; // if ( alignG == (uint32) -1 ) {//unmapped alignment, last bin @@ -96,7 +105,7 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint chrStart, uint iR // }; //write buffer is filled - if (binBytes[iBin]+bamSize+sizeof(uint) > ( (iBin>0 || nBins>1) ? binSize : binSize1)) {//write out this buffer + if (binBytes[iBin]+bamSize+sizeof(uint) > ( (iBin>0 || nBins>1) ? binSize : binSize1) || iBinFlush>=0) {//write out this buffer if ( nBins>1 || iBin==(P->outBAMcoordNbins-1) ) {//normal writing, bins have already been determined binStream[iBin]->write(binStart[iBin],binBytes[iBin]); binBytes[iBin]=0;//rewind the buffer @@ -105,26 +114,28 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint chrStart, uint iR //mutex here if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexBAMsortBins); - //extract coordinates and sort - uint *startPos = new uint [binTotalN[0]];//array of aligns start positions - for (uint ib=0,ia=0;iainOut->logMain << "BAM sorting: "<inOut->logMain << "BAM sorting bins genomic start loci:\n"; - - P->outBAMsortingBinStart[0]=0; - for (uint32 ib=1; ib<(nBins-1); ib++) { - P->outBAMsortingBinStart[ib]=startPos[binTotalN[0]/(nBins-1)*ib]; - P->inOut->logMain << ib <<"\t"<< (P->outBAMsortingBinStart[ib]>>32) << "\t" << ((P->outBAMsortingBinStart[ib]<<32)>>32) <outBAMsortingBinStart[0]!=0) {//it's set to 0 only after the bin sizes are determined + //extract coordinates and sort + uint *startPos = new uint [binTotalN[0]];//array of aligns start positions + for (uint ib=0,ia=0;iainOut->logMain << "BAM sorting: "<inOut->logMain << "BAM sorting bins genomic start loci:\n"; + + P->outBAMsortingBinStart[0]=0; + for (uint32 ib=1; ib<(nBins-1); ib++) { + P->outBAMsortingBinStart[ib]=startPos[binTotalN[0]/(nBins-1)*ib]; + P->inOut->logMain << ib <<"\t"<< (P->outBAMsortingBinStart[ib]>>32) << "\t" << ((P->outBAMsortingBinStart[ib]<<32)>>32) <runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexBAMsortBins); @@ -141,11 +152,13 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint chrStart, uint iR for (uint ib=0,ia=0;ia0) { + coordOneAlign (bamIn, bamSize, -1, iRead); + }; return; }; }; @@ -161,9 +174,17 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint chrStart, uint iR }; void BAMoutput::coordFlush () {//flush all alignments - for (uint32 iBin=0; iBinwrite(binStart[iBin],binBytes[iBin]); + for (int32 iBin=0; iBin<(int32)nBins; iBin++) { + coordOneAlign(NULL,0,iBin,0); binStream[iBin]->flush(); - binBytes[iBin]=0;//rewind the buffer }; }; + +void BAMoutput::coordUnmappedPrepareBySJout () {//flush all alignments + uint iBin=nBins-1; + binStream[iBin]->write(binStart[iBin],binBytes[iBin]); + binStream[iBin]->flush(); + binBytes[iBin]=0;//rewind the buffer + binStream[iBin]->close(); + binStream[iBin]->open((bamDir +"/"+to_string(iBin)+".BySJout").c_str()); +}; diff --git a/BAMoutput.h b/BAMoutput.h index 991c78d..29f43ed 100644 --- a/BAMoutput.h +++ b/BAMoutput.h @@ -9,12 +9,13 @@ class BAMoutput {// public: //sorted output BAMoutput (int iChunk, string tmpDir, Parameters *Pin); - void coordOneAlign (char *bamIn, uint bamSize, uint chrStart, uint iRead); + void coordOneAlign (char *bamIn, uint bamSize, int32 iBinFlush, uint iRead); void coordFlush (); //unsorted output BAMoutput (BGZF *bgzfBAMin, Parameters *Pin); void unsortedOneAlign (char *bamIn, uint bamSize, uint bamSize2); void unsortedFlush (); + void coordUnmappedPrepareBySJout(); uint32 nBins; //number of bins to split genome into uint* binTotalN; //total number of aligns in each bin @@ -29,6 +30,7 @@ class BAMoutput {// ofstream **binStream;//output streams for each bin BGZF *bgzfBAM; Parameters *P; + string bamDir; }; #endif diff --git a/Parameters.cpp b/Parameters.cpp index 756b05e..d8d3935 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -522,6 +522,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; outBAMcoordNbins=max(outBAMsortingThreadNactual*3,10); outBAMsortingBinStart= new uint64 [outBAMcoordNbins]; + outBAMsortingBinStart[0]=1;//this initial value means that the bin sizes have not been determined yet outBAMsortTmpDir=outFileTmp+"/BAMsort/"; mkdir(outBAMsortTmpDir.c_str(),S_IRWXU); diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index a4fa908..eb769e8 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -409,8 +409,7 @@ bool ReadAlign::chimericDetection() { * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); }; if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], \ - P->chrStart[ * ( (uint32*) outBAMoneAlign[ii]+1 )], (iReadAll<<32) ); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], -1, (iReadAll<<32) ); }; }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index 5b3ffa2..d31f892 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -86,7 +86,7 @@ void ReadAlign::outputAlignments() { alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], P->chrStart[trMult[iTr]->Chr], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], -1, (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; }; @@ -131,7 +131,7 @@ void ReadAlign::outputAlignments() { if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); //TODO clean for single-end alignments of PE reads if ( P->quant.trSAM.yes && unmapType!=4) outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], 0, iReadAll); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], -1, iReadAll); }; }; if (P->outSAMbool) { diff --git a/STAR.cpp b/STAR.cpp index 0f40303..6dadf34 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -235,7 +235,14 @@ int main(int argInN, char* argIn[]) { outputSJ(RAchunk,P);//collapse novel junctions P->readFilesIndex=-1; + P->outFilterBySJoutStage=2; + if (P->outBAMcoord) { + for (int it=0; itrunThreadN; it++) {//prepare the unmapped bin + RAchunk[it]->chunkOutBAMcoord->coordUnmappedPrepareBySJout(); + }; + }; + mapThreadsSpawn(P, RAchunk); }; @@ -287,10 +294,11 @@ int main(int argInN, char* argIn[]) { uint totalMem=0; // P->inOut->logMain << "Started sorting BAM ..." <chunkOutBAMcoord->nBins; #pragma omp parallel num_threads(P->outBAMsortingThreadNactual) #pragma omp for schedule (dynamic,1) - for (uint32 ibin1=0; ibin1chunkOutBAMcoord->nBins; ibin1++) { - uint32 ibin=RAchunk[0]->chunkOutBAMcoord->nBins-1-ibin1;//start with the last bin - unmapped reads + for (uint32 ibin1=0; ibin1runThreadN; it++) {//collect sizes from threads @@ -300,7 +308,7 @@ int main(int argInN, char* argIn[]) { if (binS==0) continue; //empty bin - if (ibin == RAchunk[0]->chunkOutBAMcoord->nBins-1) {//last bin for unmapped reads + if (ibin == nBins-1) {//last bin for unmapped reads BAMbinSortUnmapped(ibin,P->runThreadN,P->outBAMsortTmpDir,P->inOut->outBAMfileCoord, P); } else { uint newMem=binS+binN*24; @@ -319,9 +327,9 @@ int main(int argInN, char* argIn[]) { }; }; //concatenate all BAM files, using bam_cat - char **bamBinNames = new char* [RAchunk[0]->chunkOutBAMcoord->nBins]; + char **bamBinNames = new char* [nBins]; vector bamBinNamesV; - for (uint32 ibin=0; ibinchunkOutBAMcoord->nBins; ibin++) { + for (uint32 ibin=0; ibinoutBAMsortTmpDir+"/b"+to_string((uint) ibin)); struct stat buffer; From 8d7a784ec5441be3f0b83b076b4bd5e4a1193342 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 10 Mar 2015 18:09:44 -0400 Subject: [PATCH 066/536] Finalized adjustable bins for BAM sorting. Tested on 1M example --- BAMoutput.cpp | 121 +++++++++++++++++--------------- BAMoutput.h | 3 +- ReadAlign_chimericDetection.cpp | 2 +- ReadAlign_outputAlignments.cpp | 4 +- STAR.cpp | 2 +- 5 files changed, 69 insertions(+), 63 deletions(-) diff --git a/BAMoutput.cpp b/BAMoutput.cpp index 9a5e02b..88156be 100644 --- a/BAMoutput.cpp +++ b/BAMoutput.cpp @@ -77,15 +77,13 @@ void BAMoutput::unsortedFlush () {//flush all alignments binBytes1=0;//rewind the buffer }; -void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, int32 iBinFlush, uint iRead) { +void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, uint iRead) { uint32 *bamIn32; uint alignG; uint32 iBin=0; - if (iBinFlush>=0) {//bamSize=-1 signals the need to flush - iBin=iBinFlush; - } else if (bamSize==0) { + if (bamSize==0) { return; //no output, could happen if one of the mates is not mapped } else { //determine which bin this alignment belongs to @@ -105,60 +103,13 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, int32 iBinFlush, uint // }; //write buffer is filled - if (binBytes[iBin]+bamSize+sizeof(uint) > ( (iBin>0 || nBins>1) ? binSize : binSize1) || iBinFlush>=0) {//write out this buffer + if (binBytes[iBin]+bamSize+sizeof(uint) > ( (iBin>0 || nBins>1) ? binSize : binSize1) ) {//write out this buffer if ( nBins>1 || iBin==(P->outBAMcoordNbins-1) ) {//normal writing, bins have already been determined binStream[iBin]->write(binStart[iBin],binBytes[iBin]); binBytes[iBin]=0;//rewind the buffer } else {//the first chunk of reads was written in one bin, need to determine bin sizes, and re-distribute reads into bins - nBins=P->outBAMcoordNbins;//this is the true number of bins - - //mutex here - if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexBAMsortBins); - if (P->outBAMsortingBinStart[0]!=0) {//it's set to 0 only after the bin sizes are determined - //extract coordinates and sort - uint *startPos = new uint [binTotalN[0]];//array of aligns start positions - for (uint ib=0,ia=0;iainOut->logMain << "BAM sorting: "<inOut->logMain << "BAM sorting bins genomic start loci:\n"; - - P->outBAMsortingBinStart[0]=0; - for (uint32 ib=1; ib<(nBins-1); ib++) { - P->outBAMsortingBinStart[ib]=startPos[binTotalN[0]/(nBins-1)*ib]; - P->inOut->logMain << ib <<"\t"<< (P->outBAMsortingBinStart[ib]>>32) << "\t" << ((P->outBAMsortingBinStart[ib]<<32)>>32) <runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexBAMsortBins); - - //re-allocate binStart - uint binTotalNold=binTotalN[0]; - char *binStartOld=new char [binSize1]; - memcpy(binStartOld,binStart[0],binBytes[0]); - - binBytes[0]=0; - binTotalN[0]=0; - binTotalBytes[0]=0; - - //re-bin all aligns - for (uint ib=0,ia=0;ia0) { - coordOneAlign (bamIn, bamSize, -1, iRead); - }; + coordBins(); + coordOneAlign (bamIn, bamSize, iRead);//record the current align into the new bins return; }; }; @@ -170,18 +121,72 @@ void BAMoutput::coordOneAlign (char *bamIn, uint bamSize, int32 iBinFlush, uint binBytes[iBin] += sizeof(uint); binTotalBytes[iBin] += bamSize+sizeof(uint); binTotalN[iBin] += 1; - + return; +}; + +void BAMoutput::coordBins() {//define genomic starts for bins + nBins=P->outBAMcoordNbins;//this is the true number of bins + + //mutex here + if (P->runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexBAMsortBins); + if (P->outBAMsortingBinStart[0]!=0) {//it's set to 0 only after the bin sizes are determined + //extract coordinates and sort + uint *startPos = new uint [binTotalN[0]];//array of aligns start positions + for (uint ib=0,ia=0;iainOut->logMain << "BAM sorting: "<inOut->logMain << "BAM sorting bins genomic start loci:\n"; + + P->outBAMsortingBinStart[0]=0; + for (uint32 ib=1; ib<(nBins-1); ib++) { + P->outBAMsortingBinStart[ib]=startPos[binTotalN[0]/(nBins-1)*ib]; + P->inOut->logMain << ib <<"\t"<< (P->outBAMsortingBinStart[ib]>>32) << "\t" << ((P->outBAMsortingBinStart[ib]<<32)>>32) <runThreadN>1) pthread_mutex_unlock(&g_threadChunks.mutexBAMsortBins); + + //re-allocate binStart + uint binTotalNold=binTotalN[0]; + char *binStartOld=new char [binSize1]; + memcpy(binStartOld,binStart[0],binBytes[0]); + + binBytes[0]=0; + binTotalN[0]=0; + binTotalBytes[0]=0; + + //re-bin all aligns + for (uint ib=0,ia=0;iawrite(binStart[iBin],binBytes[iBin]); binStream[iBin]->flush(); + binBytes[iBin]=0;//rewind the buffer }; }; void BAMoutput::coordUnmappedPrepareBySJout () {//flush all alignments - uint iBin=nBins-1; + uint iBin=P->outBAMcoordNbins-1; binStream[iBin]->write(binStart[iBin],binBytes[iBin]); binStream[iBin]->flush(); binBytes[iBin]=0;//rewind the buffer diff --git a/BAMoutput.h b/BAMoutput.h index 29f43ed..fd676ef 100644 --- a/BAMoutput.h +++ b/BAMoutput.h @@ -9,7 +9,8 @@ class BAMoutput {// public: //sorted output BAMoutput (int iChunk, string tmpDir, Parameters *Pin); - void coordOneAlign (char *bamIn, uint bamSize, int32 iBinFlush, uint iRead); + void coordOneAlign (char *bamIn, uint bamSize, uint iRead); + void coordBins (); void coordFlush (); //unsorted output BAMoutput (BGZF *bgzfBAMin, Parameters *Pin); diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index eb769e8..8010e68 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -409,7 +409,7 @@ bool ReadAlign::chimericDetection() { * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); }; if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], -1, (iReadAll<<32) ); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); }; }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index d31f892..f95107c 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -86,7 +86,7 @@ void ReadAlign::outputAlignments() { alignBAM(*(trMult[iTr]), nTr, iTr, P->chrStart[trMult[iTr]->Chr], (uint) -1, (uint) -1, 0, -1, NULL, P->outSAMattrOrder,outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], -1, (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], (iReadAll<<32) | (iTr<<8) | trMult[iTr]->exons[0][EX_iFrag] ); }; }; @@ -131,7 +131,7 @@ void ReadAlign::outputAlignments() { if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); //TODO clean for single-end alignments of PE reads if ( P->quant.trSAM.yes && unmapType!=4) outBAMquant->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], -1, iReadAll); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], iReadAll); }; }; if (P->outSAMbool) { diff --git a/STAR.cpp b/STAR.cpp index 6dadf34..e8e1831 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -294,7 +294,7 @@ int main(int argInN, char* argIn[]) { uint totalMem=0; // P->inOut->logMain << "Started sorting BAM ..." <chunkOutBAMcoord->nBins; + uint32 nBins=P->outBAMcoordNbins; #pragma omp parallel num_threads(P->outBAMsortingThreadNactual) #pragma omp for schedule (dynamic,1) for (uint32 ibin1=0; ibin1 Date: Wed, 11 Mar 2015 18:46:03 -0400 Subject: [PATCH 067/536] Fixed small problem with new BAM sorting algorithm. --- STAR.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index e8e1831..aedc35c 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -273,10 +273,11 @@ int main(int argInN, char* argIn[]) { if (P->outBAMcoord) {//sort BAM if needed *P->inOut->logStdOut << timeMonthDayTime() << " ..... Started sorting BAM\n" <inOut->logMain << timeMonthDayTime() << " ..... Started sorting BAM\n" <outBAMcoordNbins; //check max size needed for sorting uint maxMem=0; - for (uint32 ibin=0; ibinchunkOutBAMcoord->nBins; ibin++) { + for (uint32 ibin=0; ibinrunThreadN; it++) {//collect sizes from threads binS += RAchunk[it]->chunkOutBAMcoord->binTotalBytes[ibin]+24*RAchunk[it]->chunkOutBAMcoord->binTotalN[ibin]; @@ -294,7 +295,6 @@ int main(int argInN, char* argIn[]) { uint totalMem=0; // P->inOut->logMain << "Started sorting BAM ..." <outBAMcoordNbins; #pragma omp parallel num_threads(P->outBAMsortingThreadNactual) #pragma omp for schedule (dynamic,1) for (uint32 ibin1=0; ibin1 Date: Fri, 13 Mar 2015 17:01:26 -0400 Subject: [PATCH 068/536] Fixed new chimeric format implementation. --- ReadAlign_chimericDetection.cpp | 149 ++++++++++++++------------------ ReadAlign_outputAlignments.cpp | 9 +- 2 files changed, 73 insertions(+), 85 deletions(-) diff --git a/ReadAlign_chimericDetection.cpp b/ReadAlign_chimericDetection.cpp index 8010e68..eb8825a 100644 --- a/ReadAlign_chimericDetection.cpp +++ b/ReadAlign_chimericDetection.cpp @@ -305,112 +305,93 @@ bool ReadAlign::chimericDetection() { trChim[0].alignScore(Read1, G, P); trChim[1].alignScore(Read1, G, P); - int chimRepresent = -1; + int chimRepresent=-999, chimType=0; if (trChim[0].exons[0][EX_iFrag]!=trChim[0].exons[trChim[0].nExons-1][EX_iFrag]) {//tr0 has both mates chimRepresent = 0; + chimType = 1; trChim[0].primaryFlag=true;//paired portion is primary trChim[1].primaryFlag=false; } else if (trChim[1].exons[0][EX_iFrag]!=trChim[1].exons[trChim[1].nExons-1][EX_iFrag]) {//tr1 has both mates chimRepresent = 1; + chimType = 1; trChim[1].primaryFlag=true;//paired portion is primary trChim[0].primaryFlag=false; } else if (trChim[0].exons[0][EX_iFrag]!=trChim[1].exons[0][EX_iFrag]) {//tr0 and tr1 are single different mates + chimRepresent = -1; + chimType = 2; trChim[0].primaryFlag=true; trChim[1].primaryFlag=true; - } else {//two chimeric segments are on the same mate, another mate not mapped + } else {//two chimeric segments are on the same mate - this can only happen for single-end reads chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; + chimType = 3; trChim[chimRepresent].primaryFlag=true; trChim[1-chimRepresent].primaryFlag=false; }; - - //if both of chimeric segments are un-paired, the one with max score is "representative" - //if (chimRepresent ==-1) chimRepresent = (trChim[0].maxScore > trChim[1].maxScore) ? 0 : 1; if (P->chimOutType=="WithinBAM") {//BAM output -// vector tagSA({"","",""}); - int bamN=0, bamIsuppl=-1, bamIrepr=-1; - uint bamBytesTotal=0;//estimate of the total size of all bam records, for output buffering - for (uint iTr=0;iTrreadNmates==2 && alignType==-1) { //only unique chimeric alignments are allowed for now - bamN+=alignBAM(trChim[iTr], 1, 1, P->chrStart[trChim[iTr].Chr], trChim[1-iTr].Chr, trChim[1-iTr].exons[0][EX_G], \ - (int) (trChim[1-iTr].Str!=trChim[1-iTr].exons[0][EX_iFrag]), alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); - } else { - bamN+=alignBAM(trChim[iTr], 1, 1, P->chrStart[trChim[iTr].Chr], (uint) -1, (uint) -1, \ - 0, alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); - }; + }; + + bamN+=alignBAM(trChim[itr], 1, 1, P->chrStart[trChim[itr].Chr], mateChr, mateStart, mateStrand, \ + alignType, NULL, P->outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN); + bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1];//outBAMoneAlignNbytes[1] = 0 if SE is recorded + }; - bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]; -// if (chimRepresent>=0) {//if chimRepresent<0, the chimera is "encompassing" and the SA tags are not needed -// //TODO only record tags for bamIrepr and bamIsuppl -// bam1_t *b; -// b=bam_init1(); -// bam_read1_fromArray(outBAMoneAlign[bamN-1], b); -// uint8_t* auxp=bam_aux_get(b,"NM"); -// uint32_t auxv=bam_aux2i(auxp); -// tagSA.push_back( P->chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ -// ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ); -// }; - }; - -// if (chimRepresent>=0) { -// for (int ii=0; iichrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ -// ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ); -// bamBytesTotal+=outBAMoneAlignNbytes[ii]+tagSA.at(ii).size()*bamN; -// }; -// }; - //write all bam lines - for (int ii=0; ii=0) { - bam1_t *b; - b=bam_init1(); - bam_read1_fromArray(outBAMoneAlign[tagI], b); - uint8_t* auxp=bam_aux_get(b,"NM"); - uint32_t auxv=bam_aux2i(auxp); - string tagSA1="SAZ"+P->chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ + }; + if (tagI>=0) { + bam1_t *b; + b=bam_init1(); + bam_read1_fromArray(outBAMoneAlign[tagI], b); + uint8_t* auxp=bam_aux_get(b,"NM"); + uint32_t auxv=bam_aux2i(auxp); + string tagSA1="SAZ"+P->chrName[b->core.tid]+','+to_string((uint)b->core.pos+1) +',' + ( (b->core.flag&0x10)==0 ? '+':'-') + \ ',' + bam_cigarString(b) + ',' + to_string((uint)b->core.qual) + ',' + to_string((uint)auxv) + ';' ; - -// string tagSA1("SAZ"); - -// if (ii!=bamNrepresent) {//first is the representative -// tagSA1+=tagSA[chimRepresent]; -// }; -// for (int jj=0; jjoutBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); - if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); - }; + + memcpy( (void*) (outBAMoneAlign[ii]+outBAMoneAlignNbytes[ii]), tagSA1.c_str(), tagSA1.size()+1);//copy string including \0 at the end + outBAMoneAlignNbytes[ii]+=tagSA1.size()+1; + * ( (uint32*) outBAMoneAlign[ii] ) = outBAMoneAlignNbytes[ii]-sizeof(uint32); + }; + + if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], ii>0 ? 0 : bamBytesTotal); + if (P->outBAMcoord) outBAMcoord->coordOneAlign(outBAMoneAlign[ii], outBAMoneAlignNbytes[ii], (iReadAll<<32) ); + }; }; diff --git a/ReadAlign_outputAlignments.cpp b/ReadAlign_outputAlignments.cpp index f95107c..402b40b 100644 --- a/ReadAlign_outputAlignments.cpp +++ b/ReadAlign_outputAlignments.cpp @@ -126,7 +126,14 @@ void ReadAlign::outputAlignments() { if (unmapType>=0 && P->outSAMunmapped=="Within") {//unmapped read, at least one mate if (P->outBAMunsorted || P->outBAMcoord || P->quant.trSAM.yes) {//BAM output - alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], (uint) -1, (uint) -1, 0, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); + uint mateChr=(uint) -1, mateStart=(uint) -1; + uint8_t mateStr=0; + if (unmapType==4) {//other mate is mapped, record its position + mateChr=trBest->Chr; + mateStart=trBest->exons[0][EX_G]; + mateStr=(uint8_t) (trBest->Str!=trBest->exons[0][EX_iFrag]); + }; + alignBAM(*trBest, 0, 0, P->chrStart[trBest->Chr], mateChr, mateStart, mateStr, unmapType, mateMapped, P->outSAMattrOrder, outBAMoneAlign, outBAMoneAlignNbytes); for (uint imate=0; imatereadNmates; imate++) {//output each mate if (P->outBAMunsorted) outBAMunsorted->unsortedOneAlign(outBAMoneAlign[imate], outBAMoneAlignNbytes[imate], imate>0 ? 0 : outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1]); //TODO clean for single-end alignments of PE reads From 88d4229ff6ca19d3b414d7a24ec5a25da6f50c29 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 13 Mar 2015 18:16:46 -0400 Subject: [PATCH 069/536] Sorting for the unmapped reads: added BAMbinSortUnmapped.* --- BAMbinSortUnmapped.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++ BAMbinSortUnmapped.h | 9 ++++++ 2 files changed, 82 insertions(+) create mode 100644 BAMbinSortUnmapped.cpp create mode 100644 BAMbinSortUnmapped.h diff --git a/BAMbinSortUnmapped.cpp b/BAMbinSortUnmapped.cpp new file mode 100644 index 0000000..e561c93 --- /dev/null +++ b/BAMbinSortUnmapped.cpp @@ -0,0 +1,73 @@ +#include "BAMbinSortUnmapped.h" +#include "ErrorWarning.h" +#include "BAMfunctions.h" + +void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgzfBAM, Parameters *P) { + + BGZF *bgzfBin; + bgzfBin=bgzf_open((dirBAMsort+"/b"+to_string((uint) iBin)).c_str(),("w"+to_string((long long) P->outBAMcompression)).c_str()); + outBAMwriteHeader(bgzfBin,P->samHeaderSortedCoord,P->chrName,P->chrLength); + + + vector bamInFile; + std::map startPos; + + for (uint it=0; it bamSize(bamInFile.size(),0); + + //allocate arrays + char **bamIn=new char* [bamInFile.size()]; + ifstream *bamInStream = new ifstream [bamInFile.size()]; + + for (uint it=0; it0) { + uint it=startPos.begin()->second; + uint startNext=startPos.size()>1 ? (++startPos.begin())->first : (uint) -1; + + while (true) { + bgzf_write(bgzfBin, bamIn[it], bamSize.at(it)); + bamInStream[it].read(bamIn[it],sizeof(int32));//read record size + if (bamInStream[it].good()) { + bamSize[it]=((*(uint32*)bamIn[it])+sizeof(int32)); + bamInStream[it].read(bamIn[it]+sizeof(int32),bamSize.at(it)-sizeof(int32)+sizeof(uint));//read the rest of the record, including la$ + uint iRead=*(uint*)(bamIn[it]+bamSize.at(it)); + if (iRead>startNext) {//this read from this chunk is > than a read from another chunk + startPos[iRead]=it; + break; + }; + } else {//nothing to do here, reached the end of the file + break; + }; + }; + startPos.erase(startPos.begin()); + }; + + bgzf_flush(bgzfBin); + bgzf_close(bgzfBin); + + + for (uint it=0; it Date: Fri, 20 Mar 2015 16:08:40 -0400 Subject: [PATCH 070/536] Implementing GTF load for the 2nd pass. --- Genome.cpp | 10 ++++---- Makefile | 4 +-- STAR.cpp | 16 ++++++------ loadGTF.cpp | 8 +++++- sjdbBuildIndex.cpp | 21 +++------------- sjdbBuildIndex.h | 1 - sjdbInsertJunctions.cpp | 54 +++++++++++++++++++++++++++++++++++++++++ sjdbInsertJunctions.h | 9 +++++++ 8 files changed, 87 insertions(+), 36 deletions(-) create mode 100644 sjdbInsertJunctions.cpp create mode 100644 sjdbInsertJunctions.h diff --git a/Genome.cpp b/Genome.cpp index e17098f..bad55cb 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -76,7 +76,7 @@ void Genome::genomeLoad(){//allocate and load Genome } else { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir+("/genomeParameters.txt") << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; @@ -108,7 +108,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (!GenomeIn.good()) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/Genome" <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; @@ -116,7 +116,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (!SAin.good()) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/SA" <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; @@ -124,7 +124,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (!SAiIn.good()) { ostringstream errOut; errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/SAindex" <<"\n" << endl; - errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; @@ -380,7 +380,7 @@ void Genome::genomeLoad(){//allocate and load Genome if (sjdbInfo.fail()) { ostringstream errOut; errOut << "EXITING because of FATAL error, could not open file " << (P->genomeDir+"/sjdbInfo.txt") <<"\n"; - errOut << "SOLUTION: check that the path to genome files, specified in --genomDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; diff --git a/Makefile b/Makefile index 32867d6..8f7c2c5 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o Seq stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o genomeGenerate.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ - sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o mapThreadsSpawn.o \ + sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ Parameters_openReadsFiles.cpp Parameters_closeReadsFiles.cpp \ BAMoutput.o BAMfunctions.o ReadAlign_alignBAM.o BAMbinSortByCoordinate.o signalFromBAM.o bamRemoveDuplicates.o BAMbinSortUnmapped.o \ bam_cat.o @@ -31,7 +31,7 @@ CCFLAGS_common := -pipe -std=c++0x -Wall -Wextra -fopenmp $(COMPTIMEPLACE) $(OPT CCFLAGS_main := -O3 $(CCFLAGS_common) CCFLAGS_gdb := -O0 -g $(CCFLAGS_common) -CXX :=g++ +CXX ?=g++ %.o : %.cpp diff --git a/STAR.cpp b/STAR.cpp index aedc35c..7122832 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -19,9 +19,13 @@ #include "BAMbinSortByCoordinate.h" #include "BAMbinSortUnmapped.h" #include "signalFromBAM.h" -#include "sjdbBuildIndex.h" +// #include "sjdbBuildIndex.h" #include "mapThreadsSpawn.h" #include "ErrorWarning.h" +// #include "sjdbLoadFromStream.h" +// #include "sjdbPrepare.h" +#include "sjdbInsertJunctions.h" + #include "htslib/htslib/sam.h" extern int bam_cat(int nfn, char * const *fn, const bam_hdr_t *h, const char* outbam); @@ -114,14 +118,8 @@ int main(int argInN, char* argIn[]) { ofstream logFinal1 ( (P->twopassDir + "/Log.final.out").c_str()); g_statsAll.reportFinal(logFinal1,P1); - //re-build genome files - - sjdbBuildIndex (P, mainGenome.G, mainGenome.SA, mainGenome.SA2, mainGenome.SAi); - time ( &rawtime ); - *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished inserting 1st pass junctions into genome" <winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; - + sjdbInsertJunctions(P, mainGenome); + //reopen reads files P->closeReadsFiles(); P->openReadsFiles(); diff --git a/loadGTF.cpp b/loadGTF.cpp index d2c8118..657b898 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -47,6 +47,12 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; + if (P->chrNameIndex.size()==0) + { + for (uint ii=0;iinChrReal;ii++) { + P->chrNameIndex[P->chrName[ii]]=ii; + }; + }; std::map transcriptIDnumber, geneIDnumber; uint exonN=0; @@ -174,7 +180,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions }; - {//exon-transctipt data structures + {//exon-transcript data structures //re-sort transcripts by transcript start/end uint* extrLoci=new uint [exonN*GTF_extrLoci_size]; //this also contains transcripts start and end diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 1a8e053..3e457be 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -1,6 +1,6 @@ #include "sjdbBuildIndex.h" -#include "sjdbLoadFromStream.h" -#include "sjdbPrepare.h" +// #include "sjdbLoadFromStream.h" +// #include "sjdbPrepare.h" #include "ErrorWarning.h" #include "SuffixArrayFuns.h" #include "SequenceFuns.h" @@ -51,22 +51,6 @@ inline int64 funCalcSAi(char* G, uint iL) { void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { - ifstream sjdbStreamIn ( P->twopassSJpass1file.c_str() ); - if (sjdbStreamIn.fail()) { - ostringstream errOut; - errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P->twopassSJpass1file <<"\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - SjdbClass sjdbLoci; - sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); - - time_t rawtime; - time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twopassSJpass1file <<": "<nGenome, P->twopassDir);//P->nGenome - change when replacing junctions - time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search" <twopassSJpass1file!="-") + { + ifstream sjdbStreamIn ( P->twopassSJpass1file.c_str() ); + if (sjdbStreamIn.fail()) { + ostringstream errOut; + errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P->twopassSJpass1file <<"\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); + }; + sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twopassSJpass1file <<": "<sjdbFileChrStartEnd.at(0)!="-") + { + sjdbLoadFromFiles(P,sjdbLoci); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; + }; + + //load from GTF + if (P->sjdbGTFfile!="-") + { + loadGTF(sjdbLoci, P); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<nGenome, P->twopassDir);//P->nGenome - change when replacing junctions + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished inserting 1st pass junctions into genome" <winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; +}; \ No newline at end of file diff --git a/sjdbInsertJunctions.h b/sjdbInsertJunctions.h new file mode 100644 index 0000000..f0b4c84 --- /dev/null +++ b/sjdbInsertJunctions.h @@ -0,0 +1,9 @@ +#ifndef CODE_sjdbInsertJunctions +#define CODE_sjdbInsertJunctions + +#include "Parameters.h" +#include "Genome.h" + +void sjdbInsertJunctions (Parameters *P, Genome &genome); + +#endif From 70d00ca1d48af2607e88eae8a1860bc769ae2f1d Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 26 Mar 2015 12:08:37 -0400 Subject: [PATCH 071/536] Implementing annotations on the fly. Some changes to the 2-pass variables. --- Genome.cpp | 33 +++++++++++++++++---------------- Makefile | 2 +- Parameters.cpp | 18 +++++++++++++++++- Parameters.h | 11 ++++++++--- STAR.cpp | 15 ++++++++++----- genomeGenerate.cpp | 2 +- loadGTF.cpp | 12 ++++++------ loadGTF.h | 2 +- sjdbInsertJunctions.cpp | 4 ++-- streamFuns.cpp | 2 +- 10 files changed, 64 insertions(+), 37 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index bad55cb..4c2b6e6 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -60,18 +60,13 @@ void Genome::genomeLoad(){//allocate and load Genome time_t rawtime; time ( &rawtime ); - - - //protect some parameters - uint sjdbOverhang1=P->sjdbOverhang; - vector versionGenomeMin=P->versionGenome; - P->versionGenome[0]=0; + Parameters *P1 = new Parameters; ifstream parFile((P->genomeDir+("/genomeParameters.txt")).c_str()); if (parFile.good()) { P->inOut->logMain << "Reading genome generation parameters:\n"; - P->scanAllLines(parFile,3,-1); + P1->scanAllLines(parFile,3,-1); parFile.close(); } else { ostringstream errOut; @@ -81,14 +76,14 @@ void Genome::genomeLoad(){//allocate and load Genome }; //check genome version - if (P->versionGenome[0]==0) {// + if (P1->versionGenome.size()==0 || P1->versionGenome[0]==0) {// ostringstream errOut; errOut << "EXITING because of FATAL ERROR: read no value for the versionGenome parameter from genomeParameters.txt file\n"; errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); - } else if (P->sjdbFileChrStartEnd.at(0)=="-" && P->versionGenome.at(0) >= versionGenomeMin.at(0)) {// + } else if (P->sjdbFileChrStartEnd.at(0)=="-" && P1->versionGenome.at(0) >= P->versionGenome.at(0)) {// P->inOut->logMain << "Genome version is compatible with current STAR version\n"; - } else if (P->sjdbFileChrStartEnd.at(0)!="-" && P->versionGenome.at(0) >= versionGenomeMin.at(1)) {// + } else if (P->sjdbFileChrStartEnd.at(0)!="-" && P1->versionGenome.at(0) >= P->versionGenome.at(1)) {// P->inOut->logMain << "Genome version is compatible with current STAR version\n"; } else { ostringstream errOut; @@ -97,8 +92,11 @@ void Genome::genomeLoad(){//allocate and load Genome exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; - - if (P->sjdbOverhang==0) P->sjdbOverhang=sjdbOverhang1; //for twopass sjdbOverhang may be defined at the mapping stage + //record required genome parameters in P + P->genomeSAindexNbases=P1->genomeSAindexNbases; + P->genomeChrBinNbits=P1->genomeChrBinNbits; + P->genomeSAsparseD=P1->genomeSAsparseD; + if (P->sjdbOverhang==0) P->sjdbOverhang=P1->sjdbOverhang; //for twopass sjdbOverhang may be defined at the mapping stage //TODO make a more careful check, if the values are different, break! P->inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<genomeLoad=="NoSharedMemory") {// simply allocate memory, do not use shared memory try { - if (P->twopass1readsN==0) {//1-pass, no extra memory - G1=new char[P->nGenome+L+L]; - SA.allocateArray(); - } else {//2-pass: reserve extra memory + if (P->twopass1readsN==0) + {//2-pass: reserve extra memory P->nGenome2=P->nGenome+P->twopassSJlimit*P->sjdbLength; SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->twopassSJlimit*P->sjdbLength); G1=new char[P->nGenome2+L+L]; SA2.allocateArray(); SA.pointArray(SA2.charArray+SA2.lengthByte-SA.lengthByte); + } else + {//1-pass, no extra memory + G1=new char[P->nGenome+L+L]; + SA.allocateArray(); + }; SAi.allocateArray(); P->inOut->logMain <<"Shared memory is not used for genomes. Allocated a private copy of the genome.\n"<logMain, EXIT_CODE_PARAMETER, *this); + }; + } else + { + genomeDirOut=genomeDir; + }; + + //two-pass if (twopass1readsN>0) {//2-pass parameters if (sjdbOverhang<=0) { @@ -870,7 +887,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - twopassSJpass1file=twopassDir+"/SJ.out.tab"; sjdbLength=sjdbOverhang*2+1; }; diff --git a/Parameters.h b/Parameters.h index 25fc084..7b49653 100644 --- a/Parameters.h +++ b/Parameters.h @@ -36,7 +36,7 @@ class Parameters { //genome, SA, ... vector chrStart, chrLength; - string genomeDir,genomeLoad; + string genomeDir,genomeDirOut,genomeLoad; vector genomeFastaFiles; uint genomeSAsparseD;//sparsity=distance between indices //binning,windows,anchors @@ -149,8 +149,13 @@ class Parameters { } outWigFlags; //2-pass - uint twopass1readsN, twopassSJlimit; - string twopassDir,twopassSJpass1file; +// uint twopass1readsN, twopassSJlimit; +// string twopassDir,twopassSJpass1file; + struct { + bool yes; + uint pass1readsN, sjLimit; + string dir,pass1SJfile; + } twoPass; //storage limits uint limitGenomeGenerateRAM; diff --git a/STAR.cpp b/STAR.cpp index 7122832..5b382da 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -53,13 +53,12 @@ int main(int argInN, char* argIn[]) { Genome mainGenome (P); mainGenome.genomeLoad(); - //calculate genome-related parameters - P->winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; + sjdbInsertJunctions(P, mainGenome); + //calculate genome-related parameters Transcriptome *mainTranscriptome=NULL; - if ( P->quant.yes ) {//load transcriptome - mainTranscriptome=new Transcriptome(P); - }; + + /////////////////////////////////////////////////////////////////////////////////////////////////START if (P->runThreadN>1) { g_threadChunks.threadArray=new pthread_t[P->runThreadN]; @@ -118,6 +117,8 @@ int main(int argInN, char* argIn[]) { ofstream logFinal1 ( (P->twopassDir + "/Log.final.out").c_str()); g_statsAll.reportFinal(logFinal1,P1); + P->twopassSJpass1file=P->twopassDir+"/SJ.out.tab"; + sjdbInsertJunctions(P, mainGenome); //reopen reads files @@ -127,6 +128,10 @@ int main(int argInN, char* argIn[]) { //nothing for now }; + if ( P->quant.yes ) {//load transcriptome + mainTranscriptome=new Transcriptome(P); + }; + //initialize Stats g_statsAll.resetN(); time(&g_statsAll.timeStartMap); diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index d31d3e6..923b78e 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -181,7 +181,7 @@ void genomeGenerate(Parameters *P) { uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to fins all the sizes P->chrBinFill(); - loadGTF(sjdbLoci, P); + loadGTF(sjdbLoci, P, P->genomeDir); uint L=10000;//maximum length of genome suffix uint nG1alloc=(nGenomeReal + sjdbLoci.chr.size()*P->sjdbLength+L)*2; diff --git a/loadGTF.cpp b/loadGTF.cpp index 657b898..f1fe512 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -32,7 +32,7 @@ -uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions to P->sjdb +uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file, add junctions to P->sjdb //returns number of added junctions if (P->sjdbOverhang>0 && P->sjdbGTFfile!="-") { time_t rawTime; @@ -162,7 +162,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P) {//load gtf file, add junctions qsort((void*) exgeLoci, exonN, sizeof(uint)*GTF_exgeLoci_size, funCompareArrays); ofstream exgeOut; - ofstrOpen(P->genomeDir+"/exonGeTrInfo.tab","ERROR_00201",P,exgeOut); + ofstrOpen(dirOut+"/exonGeTrInfo.tab","ERROR_00201",P,exgeOut); exgeOut<genomeDir+"/geneInfo.tab","ERROR_00202",P,geOut); + ofstrOpen(dirOut+"/geneInfo.tab","ERROR_00202",P,geOut); geOut << geneID.size() << "\n"; for (uint ig=0; ig); - ofstream trOut ((P->genomeDir+"/transcriptInfo.tab").c_str()); + ofstream trOut ((dirOut+"/transcriptInfo.tab").c_str()); trOut<genomeDir+"/exonInfo.tab").c_str()); + ofstream exOut ((dirOut+"/exonInfo.tab").c_str()); exOut<genomeDir+"/sjdbList.fromGTF.out.tab").c_str()); + ofstream sjdbList ((dirOut+"/sjdbList.fromGTF.out.tab").c_str()); for (uint ii=sjdbN1;iitwopassSJpass1file!="-") + if (P->twopassSJpass1file.size()>0) { ifstream sjdbStreamIn ( P->twopassSJpass1file.c_str() ); if (sjdbStreamIn.fail()) { @@ -37,7 +37,7 @@ void sjdbInsertJunctions(Parameters *P, Genome &genome) { //load from GTF if (P->sjdbGTFfile!="-") { - loadGTF(sjdbLoci, P); + loadGTF(sjdbLoci, P, P->genomeDirOut); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<genomeDir+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P, ifStream); + ifstrOpen(P->genomeDirOut+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P, ifStream); }; From bac805deded56b2102fd41f5157ba9c687c0db75 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 26 Mar 2015 17:26:54 -0400 Subject: [PATCH 072/536] Finished implementing annotations on the fly. --- Genome.cpp | 12 +++--- Parameters.cpp | 75 +++++++++++++++++++++++------------- Parameters.h | 16 ++++++-- STAR.cpp | 15 +++++--- Transcriptome_quantAlign.cpp | 2 +- parametersDefault | 7 ++-- sjdbBuildIndex.cpp | 4 +- sjdbInsertJunctions.cpp | 10 ++--- 8 files changed, 88 insertions(+), 53 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 4c2b6e6..c06ade9 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -234,7 +234,7 @@ void Genome::genomeLoad(){//allocate and load Genome P->inOut->logMain << "nGenome=" << P->nGenome << "; nSAbyte=" << P->nSAbyte <inOut->logMain <<"GstrandBit="<GstrandBit)<<" SA number of indices="<nSA<genomeLoad=="NoSharedMemory") {// simply allocate memory, do not use shared memory try { - if (P->twopass1readsN==0) - {//2-pass: reserve extra memory - P->nGenome2=P->nGenome+P->twopassSJlimit*P->sjdbLength; - SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->twopassSJlimit*P->sjdbLength); + if (P->twoPass.yes || P->sjdbInsert.pass1) + {//2-pass, or annotations: reserve extra memory + P->nGenome2=P->nGenome+P->limitOnTheFlySJ*P->sjdbLength; + SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitOnTheFlySJ*P->sjdbLength); G1=new char[P->nGenome2+L+L]; SA2.allocateArray(); SA.pointArray(SA2.charArray+SA2.lengthByte-SA.lengthByte); @@ -450,7 +450,7 @@ void Genome::genomeLoad(){//allocate and load Genome }; P->winBinChrNbits=P->genomeChrBinNbits-P->winBinNbits; - + P->winBinN = P->nGenome/(1LLU << P->winBinNbits)+1;//this may be chenaged later }; diff --git a/Parameters.cpp b/Parameters.cpp index 2cec63b..d436cbe 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -61,6 +61,8 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSJcollapsed", &limitOutSJcollapsed)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOutSJoneRead", &limitOutSJoneRead)); parArray.push_back(new ParameterInfoScalar (-1, -1, "limitBAMsortRAM", &limitBAMsortRAM)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "limitOnTheFlySJ", &limitOnTheFlySJ)); + //output parArray.push_back(new ParameterInfoScalar (-1, 2, "outFileNamePrefix", &outFileNamePrefix)); @@ -196,8 +198,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quantTranscriptomeBAMcompression)); //2-pass - parArray.push_back(new ParameterInfoScalar (-1, -1, "twopass1readsN", &twopass1readsN)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "twopassSJlimit", &twopassSJlimit)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "twopass1readsN", &twoPass.pass1readsN)); // //SW parameters @@ -845,26 +846,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters } else { quant.yes=false; //no quantification }; - - //run-time genome directory - if (runMode=="alignReads" && (sjdbFileChrStartEnd.at(0)!="-" || sjdbGTFfile!="-")) - {//this is needed for genome files generated on the fly - genomeDirOut=outFileNamePrefix+"_STARgenome/"; - sysRemoveDir (genomeDirOut); - if (mkdir (genomeDirOut.c_str(),S_IRWXU)!=0) { - ostringstream errOut; - errOut <<"EXITING because of fatal ERROR: could not make run-time genome directory directory: "<< genomeDirOut<<"\n"; - errOut <<"SOLUTION: please check the path and writing permissions \n"; - exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); - }; - } else - { - genomeDirOut=genomeDir; - }; - + //two-pass - if (twopass1readsN>0) {//2-pass parameters + twoPass.yes=false; + if (twoPass.pass1readsN>0) {//2-pass parameters if (sjdbOverhang<=0) { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: sjdbOverhang <=0 in the 2-pass mode\n"; @@ -877,19 +863,56 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "SOLUTION: re-run STAR with --genomeLoad NoSharedMemory ; this is the only compatible option at the moment.s"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - - twopassDir=outFileNamePrefix+"_STARpass1/"; - sysRemoveDir (twopassDir); - if (mkdir (twopassDir.c_str(),S_IRWXU)!=0) { + twoPass.yes=true; + twoPass.dir=outFileNamePrefix+"_STARpass1/"; + sysRemoveDir (twoPass.dir); + if (mkdir (twoPass.dir.c_str(),S_IRWXU)!=0) { ostringstream errOut; - errOut <<"EXITING because of fatal ERROR: could not make pass1 directory: "<< twopassDir<<"\n"; + errOut <<"EXITING because of fatal ERROR: could not make pass1 directory: "<< twoPass.dir<<"\n"; errOut <<"SOLUTION: please check the path and writing permissions \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - sjdbLength=sjdbOverhang*2+1; }; + //sjdb insert on the fly + + sjdbInsert.pass1=false; + sjdbInsert.pass2=false; + if (sjdbFileChrStartEnd.at(0)!="-" || sjdbGTFfile!="-") + {//will insert annotated sjdb on the fly + if (twoPass.yes) + { + sjdbInsert.pass2=true; + } else + {//for now, in the twoPass run annotated junctions can be inserted only in the 2nd pass + sjdbInsert.pass1=true; + }; + }; + + if (runMode=="alignReads" && (sjdbInsert.pass1 || sjdbInsert.pass2) ) + {//run-time genome directory, this is needed for genome files generated on the fly + if (sjdbOverhang<=0) { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: sjdbOverhang <=0 while junctions are inserted on the fly with --sjdbFileChrStartEnd or/and --sjdbGTFfile\n"; + errOut << "SOLUTION: specify sjdbOverhang>0, ideally readmateLength-1"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + genomeDirOut=outFileNamePrefix+"_STARgenome/"; + sysRemoveDir (genomeDirOut); + if (mkdir (genomeDirOut.c_str(),S_IRWXU)!=0) { + ostringstream errOut; + errOut <<"EXITING because of fatal ERROR: could not make run-time genome directory directory: "<< genomeDirOut<<"\n"; + errOut <<"SOLUTION: please check the path and writing permissions \n"; + exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + } else + { + genomeDirOut=genomeDir; + }; + + + if (outBAMcoord && limitBAMsortRAM==0) {//check limitBAMsortRAM if (genomeLoad!="NoSharedMemory") { ostringstream errOut; diff --git a/Parameters.h b/Parameters.h index 7b49653..832277d 100644 --- a/Parameters.h +++ b/Parameters.h @@ -149,20 +149,28 @@ class Parameters { } outWigFlags; //2-pass -// uint twopass1readsN, twopassSJlimit; -// string twopassDir,twopassSJpass1file; +// uint twoPass.pass1readsN, twoPass.sjLimit; +// string twoPass.dir,twopassSJpass1file; struct { bool yes; - uint pass1readsN, sjLimit; - string dir,pass1SJfile; + uint pass1readsN; + string dir; + string pass1sjFile; } twoPass; + //inserting junctions on the fly + struct { + bool pass1;//insert on the 1st pass? + bool pass2;//insert on the 2nd pass? + } sjdbInsert; + //storage limits uint limitGenomeGenerateRAM; uint limitIObufferSize; //max size of the in/out buffer, bytes uint limitOutSAMoneReadBytes; uint limitOutSJoneRead, limitOutSJcollapsed; uint limitBAMsortRAM; + uint limitOnTheFlySJ; // penalties intScore scoreGap, scoreGapNoncan, scoreGapGCAG, scoreGapATAC, scoreDelBase, scoreDelOpen, scoreInsBase, scoreInsOpen; diff --git a/STAR.cpp b/STAR.cpp index 5b382da..d4198bb 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -53,7 +53,10 @@ int main(int argInN, char* argIn[]) { Genome mainGenome (P); mainGenome.genomeLoad(); - sjdbInsertJunctions(P, mainGenome); + if (P->sjdbInsert.pass1) + {//for now, cannot insert junctions on the fly in 2-pass run + sjdbInsertJunctions(P, mainGenome); + }; //calculate genome-related parameters Transcriptome *mainTranscriptome=NULL; @@ -73,7 +76,7 @@ int main(int argInN, char* argIn[]) { g_statsAll.progressReportHeader(P->inOut->logProgress); - if (P->twopass1readsN>0) {//2-pass + if (P->twoPass.pass1readsN>0) {//2-pass //re-define P for the pass1 Parameters *P1=new Parameters; @@ -90,9 +93,9 @@ int main(int argInN, char* argIn[]) { P1->outReadsUnmapped="None"; - P1->outFileNamePrefix=P->twopassDir; + P1->outFileNamePrefix=P->twoPass.dir; - P1->readMapNumber=P->twopass1readsN; + P1->readMapNumber=P->twoPass.pass1readsN; // P1->inOut->logMain.open((P1->outFileNamePrefix + "Log.out").c_str()); g_statsAll.resetN(); @@ -114,10 +117,10 @@ int main(int argInN, char* argIn[]) { time_t rawtime; time (&rawtime); P->inOut->logProgress << timeMonthDayTime(rawtime) <<"\tFinished 1st pass mapping\n"; *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished 1st pass mapping\n" <twopassDir + "/Log.final.out").c_str()); + ofstream logFinal1 ( (P->twoPass.dir + "/Log.final.out").c_str()); g_statsAll.reportFinal(logFinal1,P1); - P->twopassSJpass1file=P->twopassDir+"/SJ.out.tab"; + P->twoPass.pass1sjFile=P->twoPass.dir+"/SJ.out.tab"; sjdbInsertJunctions(P, mainGenome); diff --git a/Transcriptome_quantAlign.cpp b/Transcriptome_quantAlign.cpp index cce7dd6..80b9e13 100644 --- a/Transcriptome_quantAlign.cpp +++ b/Transcriptome_quantAlign.cpp @@ -40,7 +40,7 @@ int alignToTranscript(Transcript &aG, uint trS1, uint8 trStr1, uint32 *exSE1, ui aT.exons[aT.nExons-1][EX_L]+=aG.exons[iab][EX_L]; }; switch (aG.canonSJ[iab]) { - case -999: //last exon, do nothing + case -999: //last exon if (trStr1==2) {//convert align coordinates if on the -strand uint32 trlength=exLenCum1[exN1-1]+exSE1[2*exN1-1]-exSE1[2*exN1-2]+1; //transcript length for (uint32 iex=0; iex=0: maximum available RAM for sorting BAM. If =0, it will be set to the genome index size. 0 value can only be used with --genomeLoad NoSharedMemory option. +limitOnTheFlySJ 1000000 + int>=0: maximum number of junction to be inserted to the genome on the fly at the mapping stage, including those from annotations and those detected in the 1st step of the 2-pass run + + ### Output: general outFileNamePrefix ./ string: output files name prefix (including full or relative path). Can only be defined on the command line. @@ -496,6 +500,3 @@ quantTranscriptomeBAMcompression 1 1 twopass1readsN 0 int>0: number of reads to process for the 1st step. 0: 1-step only, no 2nd pass; use very large number (or -1) to map all reads in the first step -twopassSJlimit 1000000 - int>=0: maximum number of junction detected in the 1st step - diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 3e457be..5eb9591 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -245,10 +245,10 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, }; }; - ofstream genomeOut((P->twopassDir+("/Genome")).c_str()); + ofstream genomeOut((P->twoPass.dir+("/Genome")).c_str()); fstreamWriteBig(genomeOut,G,P->nGenome+nGsj); genomeOut.close(); - genomeOut.open((P->twopassDir+("/SA")).c_str()); + genomeOut.open((P->twoPass.dir+("/SA")).c_str()); fstreamWriteBig(genomeOut,SA2.charArray,SA2.lengthByte); genomeOut.close(); */ diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 3f03e52..1fcb14f 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -14,17 +14,17 @@ void sjdbInsertJunctions(Parameters *P, Genome &genome) { time_t rawtime; //load 1st pass junctions - if (P->twopassSJpass1file.size()>0) + if (P->twoPass.pass1sjFile.size()>0) { - ifstream sjdbStreamIn ( P->twopassSJpass1file.c_str() ); + ifstream sjdbStreamIn ( P->twoPass.pass1sjFile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; - errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P->twopassSJpass1file <<"\n"; + errOut << "FATAL INPUT error, could not open input file with junctions from the 1st pass=" << P->twoPass.pass1sjFile <<"\n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twopassSJpass1file <<": "<inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twoPass.pass1sjFile <<": "<inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<nGenome, P->twopassDir);//P->nGenome - change when replacing junctions + sjdbPrepare (sjdbLoci, P, genome.G, P->nGenome, P->twoPass.dir);//P->nGenome - change when replacing junctions time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" < Date: Thu, 26 Mar 2015 18:44:47 -0400 Subject: [PATCH 073/536] Implemented --quantTranscriptomeBan Singleend option to allow indels and softclipping in the Transcriptome output. --- Parameters.cpp | 30 +++++++++---- Parameters.h | 26 +++++++++--- ReadAlign_quantTranscriptome.cpp | 73 ++++++++++++++++++-------------- STAR.cpp | 4 ++ parametersDefault | 4 ++ 5 files changed, 92 insertions(+), 45 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index d436cbe..6615ed4 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -194,8 +194,9 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &sjdbScore)); //quant - parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quantMode)); - parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quantTranscriptomeBAMcompression)); + parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quant.mode)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBAMcompression", &quant.trSAM.bamCompression)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "quantTranscriptomeBan", &quant.trSAM.ban)); //2-pass parArray.push_back(new ParameterInfoScalar (-1, -1, "twopass1readsN", &twoPass.pass1readsN)); @@ -823,23 +824,34 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //quantification parameters - if (quantMode.at(0) != "-") { + if (quant.mode.at(0) != "-") { quant.yes=true; - for (uint32 ii=0; iioutQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quantTranscriptomeBAMcompression)).c_str()); - } else if (quantMode.at(ii)=="GeneCounts") { + inOut->outQuantBAMfile=bgzf_open(outQuantBAMfileName.c_str(),("w"+to_string((long long) quant.trSAM.bamCompression)).c_str()); + if (quant.trSAM.ban=="IndelSoftclipSingleend") + { + quant.trSAM.indel=false; + quant.trSAM.softClip=false; + quant.trSAM.singleEnd=false; + } else if (quant.trSAM.ban=="Singleend") + { + quant.trSAM.indel=true; + quant.trSAM.softClip=true; + quant.trSAM.singleEnd=false; + }; + } else if (quant.mode.at(ii)=="GeneCounts") { quant.geCount.yes=true; } else { ostringstream errOut; - errOut << "EXITING because of fatal INPUT error: unrecognized option in --quantMode=" << quantMode.at(ii) << "\n"; - errOut << "SOLUTION: use one of the allowed values of --quantMode : TranscriptomeSAM or - .\n"; + errOut << "EXITING because of fatal INPUT error: unrecognized option in --quant.mode=" << quant.mode.at(ii) << "\n"; + errOut << "SOLUTION: use one of the allowed values of --quant.mode : TranscriptomeSAM or - .\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; }; diff --git a/Parameters.h b/Parameters.h index 832277d..4d8f0e5 100644 --- a/Parameters.h +++ b/Parameters.h @@ -104,7 +104,7 @@ class Parameters { int outSAMmapqUnique; struct {bool NH,HI,AS,NM,MD,nM,jM,jI,RG,XS;} outSAMattrPresent, outSAMattrPresentQuant; vector outSAMattrOrder, outSAMattrOrderQuant; - int outBAMcompression, quantTranscriptomeBAMcompression; + int outBAMcompression; vector outSAMtype; bool outBAMunsorted, outBAMcoord, outSAMbool; uint32 outBAMcoordNbins; @@ -206,11 +206,27 @@ class Parameters { //quantification parameters //input - vector quantMode; //quantification mode input string - struct { + + struct + { bool yes; //if any quantification is done - struct {bool yes;} trSAM; - struct {bool yes;} geCount; + vector mode; //quantification mode input string + + struct + { + bool yes; + bool indel; + bool softClip; + bool singleEnd; + int bamCompression; + string ban; + } trSAM; + + struct + { + bool yes; + } geCount; + } quant; //chimeric diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index 3b46cb3..c6fc657 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -6,42 +6,53 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript **alignG, Transcript *alignT) { uint nAlignT=0; for (uint iag=0; iagnDel>0 || alignG[iag]->nIns>0 \ - || (P->readNmates==2 && alignG[iag]->exons[0][EX_iFrag]==alignG[iag]->exons[alignG[iag]->nExons-1][EX_iFrag]) ) continue; + + if (!P->quant.trSAM.indel && (alignG[iag]->nDel>0 || alignG[iag]->nIns>0) ) + {//prevent indels if requested + continue; + }; + if (!P->quant.trSAM.singleEnd && (P->readNmates==2 && alignG[iag]->exons[0][EX_iFrag]==alignG[iag]->exons[alignG[iag]->nExons-1][EX_iFrag]) ) + {//prevent single end alignments + continue; + }; + uint nMM1=0; char* R=Read1[alignG[iag]->roStr==0 ? 0:2]; - for (uint32 iab=0; iabnExons; iab++) { - uint left1=0,right1=0;//how many bases to move left or right - if (iab==0) { - left1=alignG[iag]->exons[iab][EX_R]; - } else if (alignG[iag]->canonSJ[iab-1]==-3) { - left1=alignG[iag]->exons[iab][EX_R]-readLength[alignG[iag]->exons[iab-1][EX_iFrag]]-1; - }; - if (alignG[iag]->canonSJ[iab]==-3) { - right1=readLength[alignG[iag]->exons[iab][EX_iFrag]]-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; - } else if (iab==alignG[iag]->nExons-1){ - right1=Lread-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; - }; + if (!P->quant.trSAM.softClip) + {//soft clipping not allowed, extend them if possible + for (uint32 iab=0; iabnExons; iab++) { + uint left1=0,right1=0;//how many bases to move left or right + if (iab==0) { + left1=alignG[iag]->exons[iab][EX_R]; + } else if (alignG[iag]->canonSJ[iab-1]==-3) { + left1=alignG[iag]->exons[iab][EX_R]-readLength[alignG[iag]->exons[iab-1][EX_iFrag]]-1; + }; + if (alignG[iag]->canonSJ[iab]==-3) { + right1=readLength[alignG[iag]->exons[iab][EX_iFrag]]-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; + } else if (iab==alignG[iag]->nExons-1){ + right1=Lread-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; + }; - for (uint b=1; b<=left1 ; b++) {//extend to the left - char r1=R[alignG[iag]->exons[iab][EX_R]-b]; - char g1=G[alignG[iag]->exons[iab][EX_G]-b]; - if ( r1!=g1 && r1<4 && g1<4) ++nMM1; + for (uint b=1; b<=left1 ; b++) {//extend to the left + char r1=R[alignG[iag]->exons[iab][EX_R]-b]; + char g1=G[alignG[iag]->exons[iab][EX_G]-b]; + if ( r1!=g1 && r1<4 && g1<4) ++nMM1; + }; + for (uint b=0; bexons[iab][EX_R]+alignG[iag]->exons[iab][EX_L]+b]; + char g1=G[alignG[iag]->exons[iab][EX_G]+alignG[iag]->exons[iab][EX_L]+b]; + if ( r1!=g1 && r1<4 && g1<4) ++nMM1; + }; + alignG[iag]->exons[iab][EX_R] -= left1; + alignG[iag]->exons[iab][EX_G] -= left1; + alignG[iag]->exons[iab][EX_L] += left1+right1; + }; + + if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P->outFilterMismatchNoverLmax*(Lread-1)) ) ) + {//extension of soft clips yielded too many mismatches, no output + continue; }; - for (uint b=0; bexons[iab][EX_R]+alignG[iag]->exons[iab][EX_L]+b]; - char g1=G[alignG[iag]->exons[iab][EX_G]+alignG[iag]->exons[iab][EX_L]+b]; - if ( r1!=g1 && r1<4 && g1<4) ++nMM1; - }; - alignG[iag]->exons[iab][EX_R] -= left1; - alignG[iag]->exons[iab][EX_G] -= left1; - alignG[iag]->exons[iab][EX_L] += left1+right1; - }; - if ( (alignG[iag]->nMM + nMM1) > min(outFilterMismatchNmaxTotal, (uint) (P->outFilterMismatchNoverLmax*(Lread-1)) ) ) { - continue; }; - // if (alignG[iag]->mappedLength==(readLength[0]+readLength[1]) && alignG[iag]->nDel==0) {//remove transcripts that contain indels of soft-clipping //TODO make this optional nAlignT += Tr->quantAlign(*alignG[iag],alignT+nAlignT); diff --git a/STAR.cpp b/STAR.cpp index d4198bb..bf08253 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -88,7 +88,11 @@ int main(int argInN, char* argIn[]) { P1->outBAMcoord=false; P1->chimSegmentMin=0; + P1->quant.yes=false; + P1->quant.trSAM.yes=false; + P1->quant.geCount.yes=false; + P1->outFilterBySJoutStage=0; P1->outReadsUnmapped="None"; diff --git a/parametersDefault b/parametersDefault index fca2cd9..38d982b 100644 --- a/parametersDefault +++ b/parametersDefault @@ -495,6 +495,10 @@ quantMode - quantTranscriptomeBAMcompression 1 1 int: -1 to 10 transcriptome BAM compression level, -1=default compression (6?), 0=no compression, 10=maximum compression +quantTranscriptomeBan IndelSoftclipSingleend + string: prohibit various alignment type + IndelSoftclipSingleend ... prohibit indels, soft clipping and single-end alignments - compatible with RSEM + Singleend ... prohibit single-end alignments ### 2-pass Mapping twopass1readsN 0 From 8c840399eef71f5484f1084e413700d199c5f848 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 28 Mar 2015 14:21:58 -0400 Subject: [PATCH 074/536] Implementing annotations on the fly. --- Genome.cpp | 16 ++++-- Parameters.cpp | 16 +++--- STAR.cpp | 6 ++- Transcriptome.cpp | 10 ++-- Transcriptome.h | 2 + sjdbBuildIndex.cpp | 113 ++++++++++++++++++++++++++++------------ sjdbBuildIndex.h | 2 +- sjdbInsertJunctions.cpp | 17 ++++-- sjdbInsertJunctions.h | 2 +- sjdbPrepare.cpp | 6 +-- streamFuns.cpp | 2 +- 11 files changed, 134 insertions(+), 58 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index c06ade9..096194d 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -96,16 +96,24 @@ void Genome::genomeLoad(){//allocate and load Genome P->genomeSAindexNbases=P1->genomeSAindexNbases; P->genomeChrBinNbits=P1->genomeChrBinNbits; P->genomeSAsparseD=P1->genomeSAsparseD; - if (P->sjdbOverhang==0) P->sjdbOverhang=P1->sjdbOverhang; //for twopass sjdbOverhang may be defined at the mapping stage - //TODO make a more careful check, if the values are different, break! - + if (P->sjdbOverhang==0) + {//sjdbOverhang may be defined at the genome generation step + P->sjdbOverhang=P1->sjdbOverhang; + } else if (P1->sjdbOverhang>0 && P->sjdbOverhang!=P1->sjdbOverhang) + {//if sjdbOverhang was defined at the genome geneation step,the mapping step value has to agree with it + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: present --sjdbOverhang="<sjdbOverhang << " is not equal to the value at the genome generation step ="<< P1->sjdbOverhang << "\n"; + errOut << "SOLUTION: \n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + P->inOut->logMain << "Started loading the genome: " << asctime (localtime ( &rawtime ))<<"\n"<genomeDir+"/Genome").c_str(), ios::binary); if (!GenomeIn.good()) { ostringstream errOut; - errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/Genome" <<"\n" << endl; + errOut << "EXITING because of FATAL ERROR: could not open genome file "<< P->genomeDir<<"/Genome" <<"\n"; errOut << "SOLUTION: check that the path to genome files, specified in --genomeDir is correct and the files are present, and have user read permsissions\n" <inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; diff --git a/Parameters.cpp b/Parameters.cpp index 6615ed4..5c98fb1 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -893,13 +893,15 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters sjdbInsert.pass2=false; if (sjdbFileChrStartEnd.at(0)!="-" || sjdbGTFfile!="-") {//will insert annotated sjdb on the fly - if (twoPass.yes) - { - sjdbInsert.pass2=true; - } else - {//for now, in the twoPass run annotated junctions can be inserted only in the 2nd pass - sjdbInsert.pass1=true; - }; + sjdbInsert.pass1=true; + sjdbInsert.pass2=true; +// if (twoPass.yes) +// { +// sjdbInsert.pass2=true; +// } else +// {//for now, in the twoPass run annotated junctions can be inserted only in the 2nd pass +// sjdbInsert.pass1=true; +// }; }; if (runMode=="alignReads" && (sjdbInsert.pass1 || sjdbInsert.pass2) ) diff --git a/STAR.cpp b/STAR.cpp index bf08253..7d2a83a 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -55,7 +55,9 @@ int main(int argInN, char* argIn[]) { mainGenome.genomeLoad(); if (P->sjdbInsert.pass1) {//for now, cannot insert junctions on the fly in 2-pass run - sjdbInsertJunctions(P, mainGenome); + Parameters *P1=new Parameters; + *P1=*P; + sjdbInsertJunctions(P, P1, mainGenome); }; //calculate genome-related parameters @@ -126,7 +128,7 @@ int main(int argInN, char* argIn[]) { P->twoPass.pass1sjFile=P->twoPass.dir+"/SJ.out.tab"; - sjdbInsertJunctions(P, mainGenome); + sjdbInsertJunctions(P, P1, mainGenome); //reopen reads files P->closeReadsFiles(); diff --git a/Transcriptome.cpp b/Transcriptome.cpp index 44d14a0..329d707 100644 --- a/Transcriptome.cpp +++ b/Transcriptome.cpp @@ -6,11 +6,13 @@ Transcriptome::Transcriptome (Parameters* Pin) { P=Pin; + trInfoDir = P->sjdbGTFfile=="-" ? P->genomeDir : P->genomeDirOut; //if GTF file is given at the mapping stage, it's always used for transcript info if ( P->quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info + ifstream trinfo; - ifstrOpenGenomeFile("transcriptInfo.tab", "ERROR_011001", P, trinfo); + ifstrOpen(trInfoDir+"transcriptInfo.tab", "ERROR_011001", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step",P, trinfo); trinfo >> nTr; trS=new uint [nTr]; @@ -31,7 +33,7 @@ if ( P->quant.trSAM.yes ) {//load exon-transcript structures trinfo.close(); ifstream exinfo; - ifstrOpenGenomeFile("exonInfo.tab", "ERROR_011002", P, exinfo); + ifstrOpen(trInfoDir+"exonInfo.tab", "ERROR_011002", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); exinfo >> nEx; exSE = new uint32 [2*nEx]; @@ -48,7 +50,7 @@ if ( P->quant.trSAM.yes ) {//load exon-transcript structures } else if ( P->quant.geCount.yes ) {//load exon-gene structures ifstream exinfo; - ifstrOpenGenomeFile("exonGeTrInfo.tab", "ERROR_011003", P, exinfo); + ifstrOpen(trInfoDir+"exonGeTrInfo.tab", "ERROR_011003", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, exinfo); exinfo >> exG.nEx; exG.s=new uint64[exG.nEx]; @@ -63,7 +65,7 @@ if ( P->quant.trSAM.yes ) {//load exon-transcript structures exinfo.close(); ifstream geStream; - ifstrOpenGenomeFile("geneInfo.tab", "ERROR_011004", P, geStream); + ifstrOpen(trInfoDir+"geneInfo.tab", "ERROR_011004", "SOLUTION: utilize --sjdbGTFfile /path/to/annotantions.gtf option at the genome generation step or mapping step", P, geStream); geStream >> nGe; geID.resize(nGe); for (uint ii=0;ii trID, geID; //transcript IDs diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 5eb9591..c61c08f 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -7,6 +7,7 @@ #include "serviceFuns.cpp" #include "IncludeDefine.h" #include "streamFuns.h" +#include "binarySearch2.h" char* globalG1; @@ -50,53 +51,71 @@ inline int64 funCalcSAi(char* G, uint iL) { }; -void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { +void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { #define SPACER_CHAR 5 uint nGsj=P->sjdbLength*P->sjdbN; globalG1=new char[nGsj*2+1]; - memcpy(globalG1,G+P->nGenome,nGsj); - for (uint ii=1; ii<=P->sjdbN; ii++) globalG1[ii*P->sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char + memcpy(globalG1,G+P->chrStart[P->nChrReal],nGsj); + for (uint ii=1; ii<=P->sjdbN; ii++) + { + globalG1[ii*P->sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char + }; globalG1[nGsj*2]=SPACER_CHAR+1;//mark the end of the text - for (uint ii=0; iisjdbN]; + uint nIndicesSJ1=P->sjdbOverhang; //use P->sjdbLength-1 to keep all indices // nIndicesSJ1=P->sjdbLength; uint64* indArray=new uint64[2*P->sjdbN*nIndicesSJ1*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndeices per junction * 2 for reverse compl - + uint64 sjNew=0; #pragma omp parallel num_threads(P->runThreadN) - #pragma omp for schedule (dynamic,1000) + #pragma omp for schedule (dynamic,1000) reduction(+:sjNew) for (uint isj=0; isj<2*P->sjdbN; isj++) {//find insertion points for each of the sequences char** seq1=new char*[2]; seq1[0]=globalG1+isj*P->sjdbLength; seq1[1]=G1c+isj*P->sjdbLength; - - + + uint isj1=isjsjdbN ? isj : 2*P->sjdbN-1-isj; + int sjdbInd = P1->sjdbN==0 ? -1 : binarySearch2(P->sjdbStart[isj1],P->sjdbEnd[isj1],P1->sjdbStart,P1->sjdbEnd,P1->sjdbN); + if (sjdbInd<0) + {//count new junctions + ++sjNew; + } else + {//record new index of the old junctions + oldSJind[sjdbInd]=isj1; + }; + for (uint istart=0; istart3) {//no index for suffices starting with N + if (sjdbInd>=0 || seq1[0][istart]>3) + {//no index for already included junctions, or suffices starting with N indArray[ind1]=-1; - continue; + } else + { + indArray[ind1] = suffixArraySearch(seq1, istart, 10000, G, SA, true, 0, P->nSA-1, 0, P) ; + indArray[ind1+1] = isj*P->sjdbLength+istart; }; - indArray[ind1] = suffixArraySearch(seq1, istart, 10000, G, SA, true, 0, P->nSA-1, 0, P) ; - indArray[ind1+1] = isj*P->sjdbLength+istart; }; }; + sjNew = sjNew/2;//novel junctions were double counted on two strands + time_t rawtime; time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search" <inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search: number of new junctions=" << sjNew <<", old junctions="<sjdbN-sjNew<sjdbN*nIndicesSJ1; ii++) { + uint nInd=0;//true number of new indices + for (uint ii=0; ii<2*P->sjdbN*nIndicesSJ1; ii++) {//remove entries that cannot be inserted, this cannot be done in the parallel cycle above if (indArray[ii*2]!= (uint) -1) { indArray[nInd*2]=indArray[ii*2]; indArray[nInd*2+1]=indArray[ii*2+1]; @@ -104,9 +123,6 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, }; }; -// time ( &rawtime ); -// cout << timeMonthDayTime(rawtime) << "remove -1, nInd="<inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indicesL nInd="<nGenome=P->chrStart[P->nChrReal]+nGsj; P->nSA+=nInd; SA2.defineBits(P->GstrandBit+1,P->nSA); + uint nGsjNew=sjNew*P->sjdbLength; //this is the actual number of bytes added to the genome, while nGsj is the total size of all junctions + uint N2bit= 1LLU << P->GstrandBit; + uint strandMask=~N2bit; + + uint isj=0, isa2=0; for (uint isa=0;isanSA;isa++) { uint ind1=SA[isa]; - if ( (ind1 & N2bit)>0 ) ind1+=nGsj; //reverse complementary indices are all shifted by the length of junctions + + if ( (ind1 & N2bit)>0 ) + {//- strand + uint ind1s = P1->nGenome - (ind1 & strandMask); + if (ind1s>P->chrStart[P->nChrReal]) + {//this index was an old sj, may need to shift it + uint sj1 = (ind1s-P->chrStart[P->nChrReal])/P->sjdbLength;//old junction index + ind1s += (oldSJind[sj1]-sj1)*P->sjdbLength; + ind1 = (P->nGenome - ind1s) | N2bit; + } else + { + ind1+=nGsjNew; //reverse complementary indices are all shifted by the length of junctions + }; + } else + {//+ strand + if (ind1>P->chrStart[P->nChrReal]) + {//this index was an old sj, may need to shift it + uint sj1 = (ind1-P->chrStart[P->nChrReal])/P->sjdbLength;//old junction index + ind1 += (oldSJind[sj1]-sj1)*P->sjdbLength; + }; + }; + SA2.writePacked(isa2,ind1); //TODO make sure that the first sj index is not before the first array index ++isa2; - while (isa==indArray[isj*2]) {//insert sj index + + while (isa==indArray[isj*2]) {//insert sj index after the existing index uint ind1=indArray[isj*2+1]; if (ind1nGenome; - } else { - ind1=( (ind1-nGsj) | N2bit); + ind1+=P->chrStart[P->nChrReal]; + } else {//reverse strand + ind1=(ind1-nGsj) | N2bit; }; SA2.writePacked(isa2,ind1); ++isa2; ++isj; @@ -212,13 +256,12 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, //change parameters, most parameters are already re-defined in sjdbPrepare.cpp SA.defineBits(P->GstrandBit+1,P->nSA);//same as SA2 SA.pointArray(SA2.charArray); - P->sjGstart=P->nGenome; - P->nGenome+=nGsj; + P->sjGstart=P->chrStart[P->nChrReal]; /* testing PackedArray SAio=SAi; SAio.allocateArray(); - ifstream oldSAin("/dev/shm/dobin/STAR2pass/SAindex"); + ifstream oldSAin("/dev/shm/dobin/STARgenomeMale_new1//SAindex"); oldSAin.read(SAio.charArray,128);//skip 128 bytes oldSAin.read(SAio.charArray,SAio.lengthByte); oldSAin.close(); @@ -226,7 +269,7 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, PackedArray SAo; SAo.defineBits(P->GstrandBit+1,P->nSA+nInd); SAo.allocateArray(); - oldSAin.open("/dev/shm/dobin/STAR2pass/SA"); + oldSAin.open("/dev/shm/dobin/STARgenomeMale_new1/SA"); oldSAin.read(SAo.charArray,SAo.lengthByte); oldSAin.close(); @@ -244,13 +287,19 @@ void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, }; }; }; + */ - ofstream genomeOut((P->twoPass.dir+("/Genome")).c_str()); - fstreamWriteBig(genomeOut,G,P->nGenome+nGsj); + ofstream genomeOut("/home/dobin/Genome"); + fstreamWriteBig(genomeOut,G,P->nGenome+nGsj,"777","777",P); genomeOut.close(); - genomeOut.open((P->twoPass.dir+("/SA")).c_str()); - fstreamWriteBig(genomeOut,SA2.charArray,SA2.lengthByte); + genomeOut.open("/home/dobin/SA"); + fstreamWriteBig(genomeOut,SA2.charArray,SA2.lengthByte,"777","777",P); genomeOut.close(); - */ + //*/ + + delete [] indArray; + delete [] globalG1; + delete [] G1c; + delete [] oldSJind; }; diff --git a/sjdbBuildIndex.h b/sjdbBuildIndex.h index 45b179d..8c87936 100644 --- a/sjdbBuildIndex.h +++ b/sjdbBuildIndex.h @@ -4,6 +4,6 @@ #include "Parameters.h" #include "PackedArray.h" -void sjdbBuildIndex (Parameters *P, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi); +void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi); #endif diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 1fcb14f..f791e3b 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -7,8 +7,9 @@ #include "SjdbClass.h" #include "loadGTF.h" #include "sjdbBuildIndex.h" +#include "streamFuns.h" -void sjdbInsertJunctions(Parameters *P, Genome &genome) { +void sjdbInsertJunctions(Parameters *P, Parameters *P1, Genome &genome) { SjdbClass sjdbLoci; time_t rawtime; @@ -40,13 +41,23 @@ void sjdbInsertJunctions(Parameters *P, Genome &genome) { loadGTF(sjdbLoci, P, P->genomeDirOut); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<sjdbN>0) + { + ifstream sjdbStreamIn; + ifstrOpen(P->genomeDir+"/sjdbList.out.tab", "ERROR_012003", "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P, sjdbStreamIn); + sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P->genomeDir+"/sjdbList.out.tab" <<": "<nGenome, P->twoPass.dir);//P->nGenome - change when replacing junctions + sjdbPrepare (sjdbLoci, P, genome.G, P->chrStart[P->nChrReal], P->twoPass.dir);//P->nGenome - change when replacing junctions time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished inserting 1st pass junctions into genome" <sjdbN <<"\t"<< P->sjdbOverhang <<"\n"; uint sjGstart=P->chrStart[P->nChrReal]; - for (uint ii=0;iisjdbN;ii++) { - //add sjdb sequence to genome + for (uint ii=0;iisjdbN;ii++) + {//add sjdb sequence to genome P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; P->sjAstart[ii] = P->sjdbEnd[ii] + 1; - if (P->sjdbMotif[ii]==0) {//shinon-canonical junctions back to their true coordinates + if (P->sjdbMotif[ii]==0) {//shift non-canonical junctions back to their true coordinates P->sjDstart[ii] += P->sjdbShiftLeft[ii]; P->sjAstart[ii] += P->sjdbShiftLeft[ii]; }; diff --git a/streamFuns.cpp b/streamFuns.cpp index c78e735..f8bab07 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -87,5 +87,5 @@ void ifstrOpen (std::string fileName, std::string errorID, std::string solutionS void ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P, ifstream & ifStream) { //open one of the genome files - ifstrOpen(P->genomeDirOut+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P, ifStream); + ifstrOpen(P->genomeDir+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P, ifStream); }; From dbc71550895262e7eeb8f5f4114517cb8a8964a9 Mon Sep 17 00:00:00 2001 From: Gery Vessere Date: Sun, 29 Mar 2015 09:18:14 -0700 Subject: [PATCH 075/536] Use sysV to count processes not a semaphore which requires error recovery. Add streams for error reporting --- Genome.cpp | 113 ++++++++++++++++++++------------------ Genome.h | 1 + SharedMemory.cpp | 138 +++++++++++++++++++++++------------------------ SharedMemory.h | 15 ++++-- 4 files changed, 142 insertions(+), 125 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 7447881..9726208 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -169,6 +169,7 @@ void Genome::genomeLoad(){//allocate and load Genome try { sharedMemory = new SharedMemory(shmKey, unloadLast); + sharedMemory->SetErrorStream(P->inOut->logStdOut); if (!sharedMemory->NeedsAllocation()) P->inOut->logMain <<"Found genome in shared memory\n"<NeedsAllocation()) + if (sharedMemory->NeedsAllocation()){ + P->inOut->logMain <<"Allocating shared memory for genome\n"<Allocate(shmSize); + } } catch (const SharedMemoryException & exc) { - ostringstream errOut; - errOut << "Shared memory error: " << exc.GetErrorCode() << ", errno: " << strerror(exc.GetErrorDetail()) << "(" << errno << ")" << endl; - - int exitCode = EXIT_CODE_SHM; - switch (exc.GetErrorCode()) - { - case EOPENFAILED: - errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open()." << endl << flush; - errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; - break; - case EEXISTS: - errOut << "EXITING: fatal error from shmget() trying to allocate shared memory piece." << endl; - errOut << "Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes" << endl; - errOut << "Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << shmSize+2000000000 << endl; - errOut << "Possible cause 3: allowed shared memory size is not large enough. SOLUTIONS: (i) consult STAR manual on how to increase shared memory allocation; " \ - "(ii) ask your system administrator to increase shared memory allocation; (iii) run STAR with --genomeLoad NoSharedMemory" << endl<Clean(); - } - catch(...) - {} - - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, exitCode, *P); + HandleSharedMemoryException(exc, shmSize); } shmStart = (char*) sharedMemory->GetMapped(); @@ -481,3 +434,59 @@ void Genome::genomeLoad(){//allocate and load Genome }; + +void Genome::HandleSharedMemoryException(const SharedMemoryException & exc, uint64 shmSize) +{ + ostringstream errOut; + errOut << "Shared memory error: " << exc.GetErrorCode() << ", errno: " << strerror(exc.GetErrorDetail()) << "(" << errno << ")" << endl; + + int exitCode = EXIT_CODE_SHM; + switch (exc.GetErrorCode()) + { + case EOPENFAILED: + errOut << "EXITING because of FATAL ERROR: problems with shared memory: error from shmget() or shm_open()." << endl << flush; + errOut << "SOLUTION: check shared memory settings as explained in STAR manual, OR run STAR with --genomeLoad NoSharedMemory to avoid using shared memory" << endl << flush; + break; + case EEXISTS: + errOut << "EXITING: fatal error from shmget() trying to allocate shared memory piece." << endl; + errOut << "Possible cause 1: not enough RAM. Check if you have enough RAM of at least " << shmSize+2000000000 << " bytes" << endl; + errOut << "Possible cause 2: not enough virtual memory allowed with ulimit. SOLUTION: run ulimit -v " << shmSize+2000000000 << endl; + errOut << "Possible cause 3: allowed shared memory size is not large enough. SOLUTIONS: (i) consult STAR manual on how to increase shared memory allocation; " \ + "(ii) ask your system administrator to increase shared memory allocation; (iii) run STAR with --genomeLoad NoSharedMemory" << endl<Clean(); + } + catch(...) + {} + + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, exitCode, *P); +}; + diff --git a/Genome.h b/Genome.h index 4291e28..5aac0c5 100644 --- a/Genome.h +++ b/Genome.h @@ -26,5 +26,6 @@ class Genome { char *G1; //pointer -200 of G SharedMemory * sharedMemory; uint OpenStream(string name, ifstream & stream); + void HandleSharedMemoryException(const SharedMemoryException & exc, uint64 shmSize); }; #endif diff --git a/SharedMemory.cpp b/SharedMemory.cpp index 4ffc562..6c47c3e 100644 --- a/SharedMemory.cpp +++ b/SharedMemory.cpp @@ -3,7 +3,6 @@ // An abstraction over both SysV and POSIX shared memory APIs #include "SharedMemory.h" -#include #include #include #include @@ -14,15 +13,18 @@ using namespace std; -SharedMemory::SharedMemory(key_t key, bool unloadLast): _key(key), _unloadLast(unloadLast) +SharedMemory::SharedMemory(key_t key, bool unloadLast): _key(key), _counterKey(key+1), _unloadLast(unloadLast), _err(&cerr) { _shmID = -1; + _sharedCounterID = -1; + _counterMem = 0; _mapped=NULL; _length = NULL; _sem=NULL; _isAllocator = false; _needsAllocation = true; + EnsureCounter(); OpenIfExists(); } @@ -30,23 +32,30 @@ SharedMemory::~SharedMemory() { try { - int inUse = SharedObjectsUseCount() - 1; + int inUse = SharedObjectsUseCount()-1; Close(); - if (inUse > 0 && _unloadLast) + if (_unloadLast) { - cerr << inUse << " other job(s) are attached to the shared memory segment, will not remove it." < 0) + { + (*_err) << inUse << " other job(s) are attached to the shared memory segment, will not remove it." <=0; - _sem = sem_open(counterName, O_CREAT, 0666, 0); - if (_sem == SEM_FAILED) - ThrowError(ECOUNTERCREATE, errno); -} + if (!exists) + { + errno=0; + _sharedCounterID=shmget(_counterKey, 1, IPC_CREAT | IPC_EXCL | SHM_NORESERVE | 0666); -void SharedMemory::RemoveSharedCounter() -{ - const char * counterName = SharedMemory::CounterName().c_str(); + if (_sharedCounterID < 0) + ThrowError(ECOUNTERCREATE, errno); + } - if (_sem != NULL) + if (_counterMem == 0) { - int ret = sem_close(_sem); - if (ret == -1) - ThrowError(ECLOSE, errno); - - ret = sem_unlink(counterName); - if (ret == -1) - ThrowError(ECOUNTERREMOVE, errno); - _sem = NULL; - } -} + _counterMem = shmat(_sharedCounterID, NULL, 0); -void SharedMemory::SharedUseIncrement() -{ - SharedMemory::EnsureCounter(); - int ret = sem_post(_sem); - if (ret == -1) - ThrowError(ECOUNTERINC, errno); - cerr << "incremented shared memory fragment usage to " << SharedObjectsUseCount() << endl; + if (_counterMem==((void *) -1)) + ThrowError(EMAPFAILED, errno); + } } -void SharedMemory::SharedUseDecrement() +void SharedMemory::RemoveSharedCounter() { - SharedMemory::EnsureCounter(); - int ret = sem_trywait(_sem); - if (ret == -1 && errno != EAGAIN) - ThrowError(ECOUNTERDEC, errno); - cerr << "decremented shared memory fragment usage to " << SharedObjectsUseCount() << endl; + struct shmid_ds buf; + int shmStatus=shmctl(_sharedCounterID,IPC_RMID,&buf); + if (shmStatus == -1) + ThrowError(ECOUNTERREMOVE, errno); } int SharedMemory::SharedObjectsUseCount() { - SharedMemory::EnsureCounter(); - int sval=-1; - int ret = sem_getvalue(_sem, &sval); - - if (ret == -1 || sval == -1) - ThrowError(ECOUNTERUSE, errno); + EnsureCounter(); + if (_sharedCounterID != -1) + { + struct shmid_ds shmStat; + int shmStatus=shmctl(_sharedCounterID,IPC_STAT,&shmStat); + if (shmStatus == -1) + ThrowError(ECOUNTERUSE, errno); - return sval; -} + return shmStat.shm_nattch; + } + else + return -1; +} \ No newline at end of file diff --git a/SharedMemory.h b/SharedMemory.h index cb3a600..dd82170 100644 --- a/SharedMemory.h +++ b/SharedMemory.h @@ -10,7 +10,7 @@ #include #include #include - +#include enum ErrorState { @@ -26,8 +26,6 @@ ECLOSE, EUNLINK, ECOUNTERCREATE, ECOUNTERREMOVE, -ECOUNTERINC, -ECOUNTERDEC, ECOUNTERUSE }; @@ -136,6 +134,11 @@ class SharedMemory ThrowError(error, 0); }; + void SetErrorStream(std::ostream * err) + { + _err = err; + }; + SharedMemory(key_t key, bool unloadLast); ~SharedMemory(); void Allocate(size_t shmSize); @@ -145,6 +148,9 @@ class SharedMemory SharedMemoryException _exception; int _shmID; + int _sharedCounterID; + void * _counterMem; + void * _mapped; size_t * _length; sem_t * _sem; @@ -152,7 +158,9 @@ class SharedMemory bool _needsAllocation; key_t _key; + key_t _counterKey; bool _unloadLast; + std::ostream * _err; int SharedObjectsUseCount(); void OpenIfExists(); @@ -169,7 +177,6 @@ class SharedMemory void RemoveSharedCounter(); void SharedUseIncrement(); void SharedUseDecrement(); - }; #endif From 1afd47202a0108ee6a14aaa92f3da710be124e6f Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 3 Apr 2015 16:15:18 -0400 Subject: [PATCH 076/536] Continue implementing sjdb insertion in the genome with sjdb. Non-working commit. --- Parameters.cpp | 12 ++++------ Parameters.h | 4 +++- SjdbClass.h | 3 ++- SuffixArrayFuns.cpp | 19 +++++++++------ Transcriptome.cpp | 2 +- genomeGenerate.cpp | 5 +++- parametersDefault | 5 ++++ sjdbBuildIndex.cpp | 49 +++++++++++++++++++++----------------- sjdbBuildIndex.h | 2 +- sjdbInsertJunctions.cpp | 34 +++++++++++++++++++++++---- sjdbPrepare.cpp | 52 ++++++++++++++++++++++++++--------------- sjdbPrepare.h | 2 +- 12 files changed, 125 insertions(+), 64 deletions(-) diff --git a/Parameters.cpp b/Parameters.cpp index 5c98fb1..53a96b0 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -192,6 +192,7 @@ Parameters::Parameters() {//initalize parameters info parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbGTFtagExonParentGene", &sjdbGTFtagExonParentGene)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbOverhang", &sjdbOverhang)); parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbScore", &sjdbScore)); + parArray.push_back(new ParameterInfoScalar (-1, -1, "sjdbInsertSave", &sjdbInsert.save)); //quant parArray.push_back(new ParameterInfoVector (-1, -1, "quantMode", &quant.mode)); @@ -912,17 +913,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut << "SOLUTION: specify sjdbOverhang>0, ideally readmateLength-1"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - genomeDirOut=outFileNamePrefix+"_STARgenome/"; - sysRemoveDir (genomeDirOut); - if (mkdir (genomeDirOut.c_str(),S_IRWXU)!=0) { + sjdbInsert.outDir=outFileNamePrefix+"_STARgenome/"; + sysRemoveDir (sjdbInsert.outDir); + if (mkdir (sjdbInsert.outDir.c_str(),S_IRWXU)!=0) { ostringstream errOut; - errOut <<"EXITING because of fatal ERROR: could not make run-time genome directory directory: "<< genomeDirOut<<"\n"; + errOut <<"EXITING because of fatal ERROR: could not make run-time genome directory directory: "<< sjdbInsert.outDir<<"\n"; errOut <<"SOLUTION: please check the path and writing permissions \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - } else - { - genomeDirOut=genomeDir; }; diff --git a/Parameters.h b/Parameters.h index 4d8f0e5..ddb9ba7 100644 --- a/Parameters.h +++ b/Parameters.h @@ -36,7 +36,7 @@ class Parameters { //genome, SA, ... vector chrStart, chrLength; - string genomeDir,genomeDirOut,genomeLoad; + string genomeDir,genomeLoad; vector genomeFastaFiles; uint genomeSAsparseD;//sparsity=distance between indices //binning,windows,anchors @@ -162,6 +162,8 @@ class Parameters { struct { bool pass1;//insert on the 1st pass? bool pass2;//insert on the 2nd pass? + string save; + string outDir; } sjdbInsert; //storage limits diff --git a/SjdbClass.h b/SjdbClass.h index 1e2b584..bb2a687 100644 --- a/SjdbClass.h +++ b/SjdbClass.h @@ -9,6 +9,7 @@ class SjdbClass { vector chr; vector start,end; vector str; + vector priority; }; -#endif \ No newline at end of file +#endif diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index c19cc07..e977e33 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -168,7 +168,6 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool i3=medianUint2(i1,i2); //L3=compareSeqToGenome(s,S,N,L,g,SA,i3,dirR,compRes, P); - { register int64 ii; uint SAstr=SA[i3]; @@ -176,17 +175,22 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool SAstr &= P->GstrandMask; - if (dirG) {//forward on read, forward on genome + if (dirG) + {//forward on read, forward on genome char* s = s2[0] + S + L; char* g = G + SAstr + L; for (ii=0;(uint) ii < N-L; ii++) + { if (s[ii]!=g[ii]) break; + }; if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; L3=ii+L; - } else { + } else + { char* s = s2[1] + S + L; char* g = G + P->nGenome-1-SAstr - L; - for (ii=0; (uint) ii < N-L; ii++) { + for (ii=0; (uint) ii < N-L; ii++) + { if (s[ii]!=g[-ii]) break; }; @@ -196,11 +200,12 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool if (s1>g1) {compRes=true;} else {compRes=false;}; L3=ii+L; }; - }; if (L3==N) { - cout << "L3==N"<sjdbGTFfile=="-" ? P->genomeDir : P->genomeDirOut; //if GTF file is given at the mapping stage, it's always used for transcript info + trInfoDir = P->sjdbGTFfile=="-" ? P->genomeDir : P->sjdbInsert.outDir; //if GTF file is given at the mapping stage, it's always used for transcript info if ( P->quant.trSAM.yes ) {//load exon-transcript structures //load tr and ex info diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 923b78e..70810d8 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -176,12 +176,15 @@ void genomeGenerate(Parameters *P) { //add the sjdb sequences to the genome SjdbClass sjdbLoci; sjdbLoadFromFiles(P, sjdbLoci); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),10); + char *G=NULL, *G1=NULL; uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to fins all the sizes P->chrBinFill(); loadGTF(sjdbLoci, P, P->genomeDir); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),20); uint L=10000;//maximum length of genome suffix uint nG1alloc=(nGenomeReal + sjdbLoci.chr.size()*P->sjdbLength+L)*2; @@ -211,7 +214,7 @@ void genomeGenerate(Parameters *P) { if (sjdbLoci.chr.size()>0) {//prepare sjdb - sjdbPrepare (sjdbLoci, P, G, nGenomeReal, P->genomeDir); + sjdbPrepare (sjdbLoci, P, nGenomeReal, P->genomeDir, G, G+P->chrStart[P->nChrReal]); time ( &rawTime ); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... finished processing splice junctions database ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... finished processing splice junctions database ...\n" <gb[ig]) { // second condition: reached the end of ga, it's >= than any character, but = does not matter @@ -51,25 +51,23 @@ inline int64 funCalcSAi(char* G, uint iL) { }; -void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { +void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi) { - #define SPACER_CHAR 5 + #define SPACER_CHAR GENOME_spacingChar uint nGsj=P->sjdbLength*P->sjdbN; - globalG1=new char[nGsj*2+1]; - memcpy(globalG1,G+P->chrStart[P->nChrReal],nGsj); for (uint ii=1; ii<=P->sjdbN; ii++) { - globalG1[ii*P->sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char + Gsj[ii*P->sjdbLength-1]=SPACER_CHAR; //to make sure this is > than any genome char }; - globalG1[nGsj*2]=SPACER_CHAR+1;//mark the end of the text + Gsj[nGsj*2]=SPACER_CHAR+1;//mark the end of the text for (uint ii=0; iisjdbN]; @@ -82,7 +80,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, Pa for (uint isj=0; isj<2*P->sjdbN; isj++) {//find insertion points for each of the sequences char** seq1=new char*[2]; - seq1[0]=globalG1+isj*P->sjdbLength; + seq1[0]=Gsj+isj*P->sjdbLength; seq1[1]=G1c+isj*P->sjdbLength; uint isj1=isjsjdbN ? isj : 2*P->sjdbN-1-isj; @@ -107,7 +105,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, Pa }; }; }; - + //for (int ii=0;iisjdbN;ii++) {if ( oldSJind[ii]==0){cout <inOut->logMain << timeMonthDayTime(rawtime) << " Finished sorting SA indicesL nInd="<nSA;isa++) { + +// if (isa2>4014920) +// { +// cout <0 ) @@ -191,10 +196,10 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, Pa if ( (iSA1 & P->SAiMarkAbsentMaskC)>0 ) {//index missing from the old genome uint iSJ1=iSJ; - int64 ind1=funCalcSAi(globalG1+indArray[2*iSJ+1],iL); + int64 ind1=funCalcSAi(Gsj+indArray[2*iSJ+1],iL); while (ind1 < (int64)(ii-P->genomeSAindexStart[iL]) && indArray[2*iSJ]genomeSAindexStart[iL]) ) { SAi.writePacked(ii,indArray[2*iSJ]+iSJ+1); @@ -211,7 +216,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, Pa ++iSJ; }; while (indArray[2*iSJ]+1==iSA2) {//special case, the index falls right behind SAi - if (funCalcSAi(globalG1+indArray[2*iSJ+1],iL) >= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index + if (funCalcSAi(Gsj+indArray[2*iSJ+1],iL) >= (int64) (ii-P->genomeSAindexStart[iL]) ) {//this belongs to the next index break; }; ++iSJ; @@ -230,7 +235,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, Pa for (uint isj=0;isjgenomeSAindexNbases; iL++) { - uint g=(uint) globalG1[indArray[2*isj+1]+iL]; + uint g=(uint) Gsj[indArray[2*isj+1]+iL]; ind1 <<= 2; if (g>3) {//this iSA contains N, need to mark the previous for (uint iL1=iL; iL1 < P->genomeSAindexNbases; iL1++) { @@ -256,12 +261,14 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, Pa //change parameters, most parameters are already re-defined in sjdbPrepare.cpp SA.defineBits(P->GstrandBit+1,P->nSA);//same as SA2 SA.pointArray(SA2.charArray); + P->nSAbyte=SA.lengthByte; P->sjGstart=P->chrStart[P->nChrReal]; + memcpy(G+P->chrStart[P->nChrReal],Gsj, nGsj); /* testing PackedArray SAio=SAi; SAio.allocateArray(); - ifstream oldSAin("/dev/shm/dobin/STARgenomeMale_new1//SAindex"); + ifstream oldSAin("./DirTrue/SAindex"); oldSAin.read(SAio.charArray,128);//skip 128 bytes oldSAin.read(SAio.charArray,SAio.lengthByte); oldSAin.close(); @@ -269,7 +276,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, Pa PackedArray SAo; SAo.defineBits(P->GstrandBit+1,P->nSA+nInd); SAo.allocateArray(); - oldSAin.open("/dev/shm/dobin/STARgenomeMale_new1/SA"); + oldSAin.open("./DirTrue/SA"); oldSAin.read(SAo.charArray,SAo.lengthByte); oldSAin.close(); @@ -289,16 +296,16 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, Pa }; */ + /* ofstream genomeOut("/home/dobin/Genome"); fstreamWriteBig(genomeOut,G,P->nGenome+nGsj,"777","777",P); genomeOut.close(); genomeOut.open("/home/dobin/SA"); fstreamWriteBig(genomeOut,SA2.charArray,SA2.lengthByte,"777","777",P); genomeOut.close(); - //*/ + */ delete [] indArray; - delete [] globalG1; delete [] G1c; delete [] oldSJind; diff --git a/sjdbBuildIndex.h b/sjdbBuildIndex.h index 8c87936..cba780f 100644 --- a/sjdbBuildIndex.h +++ b/sjdbBuildIndex.h @@ -4,6 +4,6 @@ #include "Parameters.h" #include "PackedArray.h" -void sjdbBuildIndex (Parameters *P, Parameters *P1, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi); +void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedArray &SA, PackedArray &SA2, PackedArray &SAi); #endif diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index f791e3b..2887f34 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -24,6 +24,7 @@ void sjdbInsertJunctions(Parameters *P, Parameters *P1, Genome &genome) { exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),0); time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twoPass.pass1sjFile <<": "<sjdbFileChrStartEnd.at(0)!="-") { sjdbLoadFromFiles(P,sjdbLoci); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),10); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; }; //load from GTF if (P->sjdbGTFfile!="-") { - loadGTF(sjdbLoci, P, P->genomeDirOut); + loadGTF(sjdbLoci, P, P->sjdbInsert.outDir); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),20); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<genomeDir+"/sjdbList.out.tab", "ERROR_012003", "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P, sjdbStreamIn); sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),30); time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P->genomeDir+"/sjdbList.out.tab" <<": "<chrStart[P->nChrReal], P->twoPass.dir);//P->nGenome - change when replacing junctions + char *Gsj=new char [2*P->sjdbLength*P->sjdbN+1];//arry to store junction sequences, will be filled in sjdbPrepare + sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome.G, Gsj);//P->nGenome - change when replacing junctions time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished inserting 1st pass junctions into genome" <sjdbInsert.save=="All") + {//save big files + ofstream genomeOut; + ofstrOpen(P->sjdbInsert.outDir+"/Genome","ERROR_012004", P, genomeOut); + fstreamWriteBig(genomeOut,genome.G,P->nGenome,P->sjdbInsert.outDir+"/Genome","ERROR_012005",P); + genomeOut.close(); + + ofstrOpen(P->sjdbInsert.outDir+"/SA","ERROR_012006", P, genomeOut); + fstreamWriteBig(genomeOut,(char*) genome.SA.charArray, (streamsize) genome.SA.lengthByte, P->sjdbInsert.outDir+"/SA","ERROR_012007",P); + genomeOut.close(); + + + ofstrOpen(P->sjdbInsert.outDir+"/SAindex","ERROR_012008", P, genomeOut); + fstreamWriteBig(genomeOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->sjdbInsert.outDir+"/SAindex","ERROR_012009",P); + fstreamWriteBig(genomeOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->sjdbInsert.outDir+"/SAindex","ERROR_012010",P); + fstreamWriteBig(genomeOut, genome.SAi.charArray, genome.SAi.lengthByte,P->sjdbInsert.outDir+"/SAindex","ERROR_012011",P); + genomeOut.close(); + }; + //re-calculate genome-related parameters P->winBinN = P->nGenome/(1LLU << P->winBinNbits)+1; -}; \ No newline at end of file +}; diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index 0207c69..06225cd 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -2,7 +2,7 @@ #include "ErrorWarning.h" #include "serviceFuns.cpp" -void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, char *G, uint nGenomeReal, string outDir) { +void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string outDir, char *G, char *Gsj) { uint *sjdbS=new uint [sjdbLoci.chr.size()]; uint *sjdbE=new uint [sjdbLoci.chr.size()]; @@ -95,17 +95,22 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, char *G, uint nGenomeReal, for (uint ii=0;ii0 && sjdbLoci.str.at(isj)==0 ) {//old junction has defined strand, new - does not, keep old junctions -// } else if (sjdbLoci.str.at(isj0)==0 && sjdbLoci.str.at(isj)>0) {//new junction has defined strand, old - does not, replaces -// I[nsj-1]=isj;//replace the old junction + + if (nsj==0 || sjdbS[isj]!=sjdbS[isj0] || sjdbE[isj]!=sjdbE[isj0]) + {//different intron coordinates + I[nsj++]=isj;// add new junction + } else if (sjdbLoci.priority.at(isj)sjdbLoci.priority.at(isj0)) + {//new junction has higher priority + I[nsj-1]=isj;//replace the old junction } else if ( (sjdbMotif[isj]>0 && sjdbMotif[isj0]==0) \ || ( ((sjdbMotif[isj]>0) == (sjdbMotif[isj0]>0)) && sjdbShiftLeft[isj]0 && P->sjdbStart[nsj1-1]==sjdbSort[ii*3] && P->sjdbEnd[nsj1-1]==sjdbSort[ii*3+1] ) {//same loci on opposite strands - //if only one of the strands is defined, keep that junction - if (P->sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') { + uint isj0=sjdbSort[(ii-1)*3+2]; + + if (sjdbLoci.priority.at(isj)sjdbLoci.priority.at(isj0)) + {//new junction has higher priority + nsj1--;//replace the old junction with the new one + } else if (P->sjdbStrand[nsj1-1]>0 && sjdbLoci.str.at(isj)=='.') + {//new junction strand is not defined continue; - } else if (P->sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') { - nsj1--; //replace old with new, keep strand of the new - } else if (P->sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) { - //both are non-canonical (on opposite strand) + } else if (P->sjdbStrand[nsj1-1]==0 && sjdbLoci.str.at(isj)!='.') + {//old junction strand is not defined + nsj1--; //replace old with new + } else if (P->sjdbMotif[nsj1-1]==0 && sjdbMotif[isj]==0) + {//both are non-canonical (on opposite strand) P->sjdbStrand[nsj1-1]=0;//do not record new junction, keep old with undefined strand continue; } else if ( (P->sjdbMotif[nsj1-1]>0 && sjdbMotif[isj]==0) ||(P->sjdbMotif[nsj1-1]%2 == (2-P->sjdbStrand[nsj1-1])) ){//both strands defined, both junctions canonical @@ -176,7 +190,7 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, char *G, uint nGenomeReal, char strandChar[3]={'.','+','-'}; //first line is some general useful information sjdbInfo << P->sjdbN <<"\t"<< P->sjdbOverhang <<"\n"; - uint sjGstart=P->chrStart[P->nChrReal]; + uint sjGstart=0; for (uint ii=0;iisjdbN;ii++) {//add sjdb sequence to genome P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; @@ -185,10 +199,10 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, char *G, uint nGenomeReal, P->sjDstart[ii] += P->sjdbShiftLeft[ii]; P->sjAstart[ii] += P->sjdbShiftLeft[ii]; }; - memcpy(G+sjGstart,G+P->sjDstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci - memcpy(G+sjGstart+P->sjdbOverhang,G+P->sjAstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci + memcpy(Gsj+sjGstart,G+P->sjDstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci + memcpy(Gsj+sjGstart+P->sjdbOverhang,G+P->sjAstart[ii],P->sjdbOverhang);//sjdbStart contains 1-based intron loci sjGstart += P->sjdbLength; - G[sjGstart-1]=GENOME_spacingChar;//spacing char between the sjdb seqs + Gsj[sjGstart-1]=GENOME_spacingChar;//spacing char between the sjdb seqs sjdbInfo << P->sjdbStart[ii] <<"\t"<< P->sjdbEnd[ii] <<"\t"<<(int) P->sjdbMotif[ii] <<"\t"<<(int) P->sjdbShiftLeft[ii] <<"\t"<<(int) P->sjdbShiftRight[ii]<<"\t"<<(int) P->sjdbStrand[ii] <<"\n"; uint chr1=P->chrBin[ P->sjdbStart[ii] >> P->genomeChrBinNbits]; sjdbList << P->chrName[chr1]<< "\t" << P->sjdbStart[ii]-P->chrStart[chr1] + 1 + (P->sjdbMotif[ii]>0 ? 0:P->sjdbShiftLeft[ii]) \ diff --git a/sjdbPrepare.h b/sjdbPrepare.h index 3ca500d..1a40d05 100644 --- a/sjdbPrepare.h +++ b/sjdbPrepare.h @@ -4,6 +4,6 @@ #include "SjdbClass.h" #include "Parameters.h" -void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, char *G, uint nGenomeReal, string outDir); +void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string outDir, char *G, char *Gsj); #endif \ No newline at end of file From 8a2d403459976d08afd7e6fb884a4d22499d54d7 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Sat, 4 Apr 2015 00:18:00 -0400 Subject: [PATCH 077/536] Working again for sjdb isertion into no-sjdb genome. --- Makefile | 1 + sjdbBuildIndex.cpp | 4 +++- sjdbInsertJunctions.cpp | 2 +- sjdbPrepare.cpp | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 1502428..059a670 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,7 @@ LDFLAGS_Mac :=-pthread -lz htslib/libhts.a LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a LDFLAGS_gdb := $(LDFLAGS_static) +LDFLAGS_gdb := $(LDFLAGS) COMPTIMEPLACE := -D'COMPILATION_TIME_PLACE="$(shell echo `date` $(HOSTNAME):`pwd`)"' EXTRAFLAGS := diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 46e50eb..5805b84 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -93,7 +93,9 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr oldSJind[sjdbInd]=isj1; }; - for (uint istart=0; istartsjdbN ? istart1 : istart1+1; //for rev-compl junction, shift by one base to start with the 1st non-spacer base uint ind1=2*(isj*nIndicesSJ1+istart); if (sjdbInd>=0 || seq1[0][istart]>3) {//no index for already included junctions, or suffices starting with N diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 2887f34..39049c6 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -56,7 +56,7 @@ void sjdbInsertJunctions(Parameters *P, Parameters *P1, Genome &genome) { P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P->genomeDir+"/sjdbList.out.tab" <<": "<sjdbLength*P->sjdbN+1];//arry to store junction sequences, will be filled in sjdbPrepare + char *Gsj=new char [2*P->sjdbLength*sjdbLoci.chr.size()+1];//arry to store junction sequences, will be filled in sjdbPrepare sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome.G, Gsj);//P->nGenome - change when replacing junctions time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <sjdbShiftLeft=new uint8 [nsj]; P->sjdbShiftRight=new uint8 [nsj]; P->sjdbStrand=new uint8 [nsj]; - + uint nsj1=0; for (uint ii=0;iisjdbN <<"\t"<< P->sjdbOverhang <<"\n"; uint sjGstart=0; + for (uint ii=0;iisjdbN;ii++) {//add sjdb sequence to genome P->sjDstart[ii] = P->sjdbStart[ii] - P->sjdbOverhang; From c26d6a47b42e086b1aa71f55811970214f99b663 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Tue, 7 Apr 2015 16:05:49 -0400 Subject: [PATCH 078/536] Finished implementing sjdbInsert. --- Makefile | 3 +- STAR.cpp | 10 +++-- genomeGenerate.cpp | 27 +------------ genomeParametersWrite.cpp | 28 +++++++++++++ genomeParametersWrite.h | 7 ++++ sjdbBuildIndex.cpp | 13 ++++--- sjdbInsertJunctions.cpp | 82 ++++++++++++++++++++++----------------- sjdbInsertJunctions.h | 3 +- streamFuns.cpp | 7 ++++ streamFuns.h | 1 + 10 files changed, 111 insertions(+), 70 deletions(-) create mode 100644 genomeParametersWrite.cpp create mode 100644 genomeParametersWrite.h diff --git a/Makefile b/Makefile index 059a670..7812fe9 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,8 @@ OBJECTS = PackedArray.o SuffixArrayFuns.o STAR.o Parameters.o InOutStreams.o Seq ReadAlign_outputTranscriptSAM.o ReadAlign_outputTranscriptSJ.o ReadAlign_outputTranscriptCIGARp.o \ ReadAlign_createExtendWindowsWithAlign.o ReadAlign_assignAlignToWindow.o ReadAlign_oneRead.o \ ReadAlign_stitchWindowSeeds.o ReadAlign_chimericDetection.o \ - stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o genomeGenerate.o \ + stitchWindowAligns.o extendAlign.o stitchAlignToTranscript.o alignSmithWaterman.o \ + genomeGenerate.o genomeParametersWrite.o \ TimeFunctions.o ErrorWarning.o loadGTF.o streamFuns.o stringSubstituteAll.o \ Transcriptome.o Transcriptome_quantAlign.o ReadAlign_quantTranscriptome.o Quantifications.o Transcriptome_geneCountsAddAlign.o \ sjdbLoadFromFiles.o sjdbLoadFromStream.o sjdbPrepare.o sjdbBuildIndex.o sjdbInsertJunctions.o mapThreadsSpawn.o \ diff --git a/STAR.cpp b/STAR.cpp index 7d2a83a..9506321 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -24,6 +24,7 @@ #include "ErrorWarning.h" // #include "sjdbLoadFromStream.h" // #include "sjdbPrepare.h" +#include "SjdbClass.h" #include "sjdbInsertJunctions.h" @@ -53,11 +54,14 @@ int main(int argInN, char* argIn[]) { Genome mainGenome (P); mainGenome.genomeLoad(); + + + SjdbClass sjdbLoci; if (P->sjdbInsert.pass1) {//for now, cannot insert junctions on the fly in 2-pass run Parameters *P1=new Parameters; *P1=*P; - sjdbInsertJunctions(P, P1, mainGenome); + sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); }; //calculate genome-related parameters @@ -128,7 +132,7 @@ int main(int argInN, char* argIn[]) { P->twoPass.pass1sjFile=P->twoPass.dir+"/SJ.out.tab"; - sjdbInsertJunctions(P, P1, mainGenome); + sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); //reopen reads files P->closeReadsFiles(); @@ -136,7 +140,7 @@ int main(int argInN, char* argIn[]) { } else {//not 2-pass //nothing for now }; - + if ( P->quant.yes ) {//load transcriptome mainTranscriptome=new Transcriptome(P); }; diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 70810d8..06d07a6 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -9,6 +9,7 @@ #include "SjdbClass.h" #include "sjdbLoadFromFiles.h" #include "sjdbPrepare.h" +#include "genomeParametersWrite.h" #include "serviceFuns.cpp" #include "streamFuns.h" @@ -146,32 +147,8 @@ void genomeGenerate(Parameters *P) { //define some parameters from input parameters P->genomeChrBinNbases=1LLU << P->genomeChrBinNbits; - - //write genome parameters file - ofstream genomePar; - ofstrOpen(P->genomeDir+("/genomeParameters.txt"),"ERROR_00102", P, genomePar); - - genomePar << "versionGenome\t" << P->versionSTAR <<"\n"; - genomePar << "genomeFastaFiles\t"; - for (uint ii=0;iigenomeFastaFiles.size();ii++) genomePar << P->genomeFastaFiles.at(ii) << " "; - genomePar << "\n"; - genomePar << "genomeSAindexNbases\t" << P->genomeSAindexNbases << "\n"; - genomePar << "genomeChrBinNbits\t" << P->genomeChrBinNbits << "\n"; - genomePar << "genomeSAsparseD\t" << P->genomeSAsparseD <<"\n"; - genomePar << "sjdbOverhang\t" << P->sjdbOverhang <<"\n"; - - genomePar << "sjdbFileChrStartEnd\t"; - for (uint ii=0;iisjdbFileChrStartEnd.size();ii++) genomePar<< P->sjdbFileChrStartEnd.at(ii) << " "; - genomePar<<"\n"; - - genomePar << "sjdbGTFfile\t" << P->sjdbGTFfile <<"\n"; - genomePar << "sjdbGTFchrPrefix\t" << P->sjdbGTFchrPrefix <<"\n"; - genomePar << "sjdbGTFfeatureExon\t" << P->sjdbGTFfeatureExon <<"\n"; - genomePar << "sjdbGTFtagExonParentTranscript\t" << P->sjdbGTFtagExonParentTranscript <<"\n"; - genomePar << "sjdbGTFtagExonParentGene\t" << P->sjdbGTFtagExonParentGene <<"\n"; - - genomePar.close(); + genomeParametersWrite(P->genomeDir+("/genomeParameters.txt"), P, "ERROR_00102"); //add the sjdb sequences to the genome SjdbClass sjdbLoci; diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp new file mode 100644 index 0000000..7208b05 --- /dev/null +++ b/genomeParametersWrite.cpp @@ -0,0 +1,28 @@ +#include "genomeParametersWrite.h" +#include "streamFuns.h" + +void genomeParametersWrite(string fileName, Parameters* P, string errorOut) +{//write the genome information into the genomePar stream + ofstream genomePar; + ofstrOpen(fileName, errorOut, P, genomePar); + + genomePar << "versionGenome\t" << P->versionSTAR <<"\n"; + genomePar << "genomeFastaFiles\t"; + for (uint ii=0;iigenomeFastaFiles.size();ii++) genomePar << P->genomeFastaFiles.at(ii) << " "; + genomePar << "\n"; + genomePar << "genomeSAindexNbases\t" << P->genomeSAindexNbases << "\n"; + genomePar << "genomeChrBinNbits\t" << P->genomeChrBinNbits << "\n"; + genomePar << "genomeSAsparseD\t" << P->genomeSAsparseD <<"\n"; + genomePar << "sjdbOverhang\t" << P->sjdbOverhang <<"\n"; + + genomePar << "sjdbFileChrStartEnd\t"; + for (uint ii=0;iisjdbFileChrStartEnd.size();ii++) genomePar<< P->sjdbFileChrStartEnd.at(ii) << " "; + genomePar<<"\n"; + + genomePar << "sjdbGTFfile\t" << P->sjdbGTFfile <<"\n"; + genomePar << "sjdbGTFchrPrefix\t" << P->sjdbGTFchrPrefix <<"\n"; + genomePar << "sjdbGTFfeatureExon\t" << P->sjdbGTFfeatureExon <<"\n"; + genomePar << "sjdbGTFtagExonParentTranscript\t" << P->sjdbGTFtagExonParentTranscript <<"\n"; + genomePar << "sjdbGTFtagExonParentGene\t" << P->sjdbGTFtagExonParentGene <<"\n"; + genomePar.close(); +}; diff --git a/genomeParametersWrite.h b/genomeParametersWrite.h new file mode 100644 index 0000000..e186b03 --- /dev/null +++ b/genomeParametersWrite.h @@ -0,0 +1,7 @@ +#ifndef CODE_genomeParametersWrite +#define CODE_genomeParametersWrite +#include "Parameters.h" + +void genomeParametersWrite(string fileName, Parameters* P, string errorOut); + +#endif \ No newline at end of file diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 5805b84..421c335 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -29,6 +29,8 @@ inline int funCompareUintAndSuffixes ( const void *a, const void *b){ return 1; } else if (ga[ig]sjdbN]; - uint nIndicesSJ1=P->sjdbOverhang; //use P->sjdbLength-1 to keep all indices -// nIndicesSJ1=P->sjdbLength; + uint nIndicesSJ1=P->sjdbOverhang; +// uint nIndicesSJ1=P->sjdbLength;//keep all indices uint64* indArray=new uint64[2*P->sjdbN*nIndicesSJ1*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndeices per junction * 2 for reverse compl uint64 sjNew=0; #pragma omp parallel num_threads(P->runThreadN) @@ -95,14 +97,15 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr for (uint istart1=0; istart1sjdbN ? istart1 : istart1+1; //for rev-compl junction, shift by one base to start with the 1st non-spacer base + //uint istart=istart1; + uint istart=isjsjdbN ? istart1 : istart1+1; //for rev-compl junction, shift by one base to start with the 1st non-spacer base uint ind1=2*(isj*nIndicesSJ1+istart); if (sjdbInd>=0 || seq1[0][istart]>3) {//no index for already included junctions, or suffices starting with N indArray[ind1]=-1; } else { - indArray[ind1] = suffixArraySearch(seq1, istart, 10000, G, SA, true, 0, P->nSA-1, 0, P) ; + indArray[ind1] = suffixArraySearch(seq1, istart, P->sjdbLength-istart1, G, SA, true, 0, P->nSA-1, 0, P) ; indArray[ind1+1] = isj*P->sjdbLength+istart; }; }; @@ -141,7 +144,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr uint isj=0, isa2=0; - for (uint isa=0;isanSA;isa++) { + for (uint isa=0;isanSA;isa++) { // if (isa2>4014920) // { diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index 39049c6..cb7fcf1 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -3,20 +3,32 @@ #include "sjdbLoadFromFiles.h" #include "sjdbPrepare.h" #include "ErrorWarning.h" -// #include "streamFuns.h" -#include "SjdbClass.h" #include "loadGTF.h" #include "sjdbBuildIndex.h" #include "streamFuns.h" +#include "genomeParametersWrite.h" -void sjdbInsertJunctions(Parameters *P, Parameters *P1, Genome &genome) { - - SjdbClass sjdbLoci; +void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbClass & sjdbLoci) +{ time_t rawtime; + + + if (P->sjdbN>0 && sjdbLoci.chr.size()==0) + {//load from the saved genome, only if the loading did not happen already (if sjdb insertion happens at the 1st pass, sjdbLoci will be populated + ifstream sjdbStreamIn; + ifstrOpen(P->genomeDir+"/sjdbList.out.tab", "ERROR_012003", "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P, sjdbStreamIn); + sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),30); + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P->genomeDir+"/sjdbList.out.tab" <<": "<twoPass.pass1sjFile.size()>0) - { + if (P->twoPass.pass1sjFile.size()>0) //non-empty name marks 2nd pass + {//load 1st pass new junctions + //sjdbLoci already contains the junctions from before 1st pass ifstream sjdbStreamIn ( P->twoPass.pass1sjFile.c_str() ); if (sjdbStreamIn.fail()) { ostringstream errOut; @@ -27,35 +39,27 @@ void sjdbInsertJunctions(Parameters *P, Parameters *P1, Genome &genome) { sjdbLoci.priority.resize(sjdbLoci.chr.size(),0); time ( &rawtime ); P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the 1st pass file: " << P->twoPass.pass1sjFile <<": "<sjdbFileChrStartEnd.at(0)!="-") + {//load from junction files + sjdbLoadFromFiles(P,sjdbLoci); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),10); + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; + }; + + if (P->sjdbGTFfile!="-") + {//load from GTF + loadGTF(sjdbLoci, P, P->sjdbInsert.outDir); + sjdbLoci.priority.resize(sjdbLoci.chr.size(),20); + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<sjdbFileChrStartEnd.at(0)!="-") - { - sjdbLoadFromFiles(P,sjdbLoci); - sjdbLoci.priority.resize(sjdbLoci.chr.size(),10); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the sjdbFileChrStartEnd file(s), " << sjdbLoci.chr.size()<<" total junctions\n\n"; - }; - - //load from GTF - if (P->sjdbGTFfile!="-") - { - loadGTF(sjdbLoci, P, P->sjdbInsert.outDir); - sjdbLoci.priority.resize(sjdbLoci.chr.size(),20); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the GTF file: " << P->sjdbGTFfile<<": "<sjdbN>0) - { - ifstream sjdbStreamIn; - ifstrOpen(P->genomeDir+"/sjdbList.out.tab", "ERROR_012003", "SOLUTION: re-generate the genome in genomeDir=" + P->genomeDir, P, sjdbStreamIn); - sjdbLoadFromStream(sjdbStreamIn, sjdbLoci); - sjdbLoci.priority.resize(sjdbLoci.chr.size(),30); - time ( &rawtime ); - P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P->genomeDir+"/sjdbList.out.tab" <<": "<sjdbLength*sjdbLoci.chr.size()+1];//arry to store junction sequences, will be filled in sjdbPrepare sjdbPrepare (sjdbLoci, P, P->chrStart[P->nChrReal], P->sjdbInsert.outDir, genome.G, Gsj);//P->nGenome - change when replacing junctions time ( &rawtime ); @@ -68,7 +72,15 @@ void sjdbInsertJunctions(Parameters *P, Parameters *P1, Genome &genome) { *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished inserting 1st pass junctions into genome" <sjdbInsert.save=="All") - {//save big files + {//save and copy all genome files into sjdbInsert.outDir, except those created above + copyFile(P->genomeDir+"/chrName.txt", P->sjdbInsert.outDir+"/chrName.txt"); + copyFile(P->genomeDir+"/chrStart.txt", P->sjdbInsert.outDir+"/chrStart.txt"); + copyFile(P->genomeDir+"/chrNameLength.txt", P->sjdbInsert.outDir+"/chrNameLength.txt"); + copyFile(P->genomeDir+"/chrLength.txt", P->sjdbInsert.outDir+"/chrLength.txt"); + + genomeParametersWrite(P->sjdbInsert.outDir+("/genomeParameters.txt"), P, "ERROR_012012"); + + ofstream genomeOut; ofstrOpen(P->sjdbInsert.outDir+"/Genome","ERROR_012004", P, genomeOut); fstreamWriteBig(genomeOut,genome.G,P->nGenome,P->sjdbInsert.outDir+"/Genome","ERROR_012005",P); diff --git a/sjdbInsertJunctions.h b/sjdbInsertJunctions.h index 7d6746c..91f272e 100644 --- a/sjdbInsertJunctions.h +++ b/sjdbInsertJunctions.h @@ -3,7 +3,8 @@ #include "Parameters.h" #include "Genome.h" +#include "SjdbClass.h" -void sjdbInsertJunctions (Parameters *P, Parameters *P1, Genome &genome); +void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbClass & sjdbLoci); #endif diff --git a/streamFuns.cpp b/streamFuns.cpp index f8bab07..04f884e 100644 --- a/streamFuns.cpp +++ b/streamFuns.cpp @@ -89,3 +89,10 @@ void ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters //open one of the genome files ifstrOpen(P->genomeDir+"/"+fileName, errorID, "if this file is missing from the genome directory, you will need to *re-generate the genome*", P, ifStream); }; + +void copyFile(string fileIn, string fileOut) +{//copy fileIn into FileOut + std::ifstream src(fileIn, std::ios::binary); + std::ofstream dst(fileOut, std::ios::binary); + dst << src.rdbuf(); +}; diff --git a/streamFuns.h b/streamFuns.h index 77f581c..5437eb1 100644 --- a/streamFuns.h +++ b/streamFuns.h @@ -11,4 +11,5 @@ void ofstrOpen (std::string fileName, std::string errorID, Parameters *P, ofstre void ifstrOpen (std::string fileName, std::string errorID, std::string solutionString, Parameters *P, ifstream & ofStream); void ifstrOpenGenomeFile (std::string fileName, std::string errorID, Parameters *P, ifstream & ifStream); +void copyFile(string fileIn, string fileOut); #endif From 2109c63bfb0937cd04846267b24f937bbfda3314 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Wed, 8 Apr 2015 18:29:23 -0400 Subject: [PATCH 079/536] Finished debugging sjdbInsert. --- Genome.cpp | 54 ++++++++++++++++++++++++++++++--------- Genome.h | 4 ++- Parameters.cpp | 44 +++++++++++++++++++++++-------- Parameters.h | 7 +++-- STAR.cpp | 4 ++- genomeParametersWrite.cpp | 4 +++ loadGTF.cpp | 8 +++--- parametersDefault | 9 +++++-- sjdbBuildIndex.cpp | 24 ++++++++++++++--- sjdbInsertJunctions.cpp | 10 +++----- stitchWindowAligns.cpp | 2 +- 11 files changed, 126 insertions(+), 44 deletions(-) diff --git a/Genome.cpp b/Genome.cpp index 096194d..856422d 100644 --- a/Genome.cpp +++ b/Genome.cpp @@ -43,12 +43,17 @@ void Genome::freeMemory(){//free big chunks of memory used by genome and suffix delete[] G1; G1=NULL; SA.deallocateArray(); - SA2.deallocateArray(); + SApass2.deallocateArray(); SAi.deallocateArray(); }; }; void Genome::genomeLoad(){//allocate and load Genome + + time_t rawtime; + time ( &rawtime ); + *(P->inOut->logStdOut) << timeMonthDayTime(rawtime) << " ..... Loading genome\n" <genomeDir.c_str(),SHM_projectID);; @@ -58,9 +63,6 @@ void Genome::genomeLoad(){//allocate and load Genome uint L=200,K=6; - time_t rawtime; - time ( &rawtime ); - Parameters *P1 = new Parameters; ifstream parFile((P->genomeDir+("/genomeParameters.txt")).c_str()); @@ -92,6 +94,14 @@ void Genome::genomeLoad(){//allocate and load Genome exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); }; + if ( (P->sjdbInsert.pass1 || P->sjdbInsert.pass2) && P1->sjdbOverhang>0 && P1->sjdbInsert.save=="") + {//if sjdbInsert, and old genome had junctions, it should be re-generated with new STAR + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: old Genome is INCOMPATIBLE with on the fly junction insertion\n"; + errOut << "SOLUTION: please re-generate genome from scratch with the latest version of STAR\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + //record required genome parameters in P P->genomeSAindexNbases=P1->genomeSAindexNbases; P->genomeChrBinNbits=P1->genomeChrBinNbits; @@ -255,15 +265,35 @@ void Genome::genomeLoad(){//allocate and load Genome /////////////////////////////////////// allocate arrays if (P->genomeLoad=="NoSharedMemory") {// simply allocate memory, do not use shared memory try { - if (P->twoPass.yes || P->sjdbInsert.pass1) - {//2-pass, or annotations: reserve extra memory - P->nGenome2=P->nGenome+P->limitOnTheFlySJ*P->sjdbLength; - SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitOnTheFlySJ*P->sjdbLength); - G1=new char[P->nGenome2+L+L]; - SA2.allocateArray(); - SA.pointArray(SA2.charArray+SA2.lengthByte-SA.lengthByte); + + if (P->sjdbInsert.pass1 || P->sjdbInsert.pass2) + {//reserve extra memory for insertion at the 1st and/or 2nd step + nGenomePass1=P->nGenome; + nSApass1=P->nSA; + if (P->sjdbInsert.pass1) + { + nGenomePass1+=P->limitOnTheFlySJ*P->sjdbLength; + nSApass1+=2*P->limitOnTheFlySJ*P->sjdbLength; + }; + nGenomePass2=nGenomePass1; + nSApass2=nSApass1; + if (P->sjdbInsert.pass2) + { + nGenomePass2+=P->limitOnTheFlySJ*P->sjdbLength; + nSApass2+=2*P->limitOnTheFlySJ*P->sjdbLength; + }; + + G1=new char[nGenomePass2+L+L]; + + SApass2.defineBits(P->GstrandBit+1,nSApass2); + SApass2.allocateArray(); + + SApass1.defineBits(P->GstrandBit+1,nSApass1); + SApass1.pointArray(SApass2.charArray+SApass2.lengthByte-SApass1.lengthByte); + + SA.pointArray(SApass1.charArray+SApass1.lengthByte-SA.lengthByte); } else - {//1-pass, no extra memory + {//no insertions G1=new char[P->nGenome+L+L]; SA.allocateArray(); diff --git a/Genome.h b/Genome.h index c721386..7b0e141 100644 --- a/Genome.h +++ b/Genome.h @@ -7,9 +7,11 @@ class Genome { public: char *G, *sigG; - PackedArray SA,SA2; + PackedArray SA,SApass1,SApass2; PackedArray SAi; + uint nGenomePass1, nGenomePass2, nSApass1, nSApass2; + Genome (Parameters* Pin ) : P(Pin) {}; Genome () {};//empty constructor // ~Genome (); diff --git a/Parameters.cpp b/Parameters.cpp index 53a96b0..929a964 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -201,6 +201,8 @@ Parameters::Parameters() {//initalize parameters info //2-pass parArray.push_back(new ParameterInfoScalar (-1, -1, "twopass1readsN", &twoPass.pass1readsN)); + twoPass.pass1readsN_par=parArray.size()-1; + parArray.push_back(new ParameterInfoScalar (-1, -1, "twopassMode", &twoPass.mode)); // //SW parameters @@ -862,18 +864,42 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //two-pass + if (parArray.at(twoPass.pass1readsN_par)->inputLevel>0 && twoPass.mode=="None") + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: --twopass1readsN is defined, but --twoPassMode is not defined\n"; + errOut << "SOLUTION: to activate the 2-pass mode, use --twoPassMode Basic"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + twoPass.yes=false; - if (twoPass.pass1readsN>0) {//2-pass parameters + if (twoPass.mode!="None") {//2-pass parameters + if (twoPass.mode!="Basic") + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: unrecognized value of --twopassMode="<logMain, EXIT_CODE_PARAMETER, *this); + }; + + if (twoPass.pass1readsN==0) + { + ostringstream errOut; + errOut << "EXITING because of fatal PARAMETERS error: --twopass1readsN = 0 in the 2-pass mode\n"; + errOut << "SOLUTION: for the 2-pass mode, specify --twopass1readsN > 0. Use a very large number or -1 to map all reads in the 1st pass.\n"; + exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); + }; + if (sjdbOverhang<=0) { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: sjdbOverhang <=0 in the 2-pass mode\n"; - errOut << "SOLUTION: for the 2-pass mode, specify sjdbOverhang>0, ideally readmateLength-1"; + errOut << "SOLUTION: for the 2-pass mode, specify sjdbOverhang>0, ideally readMateLength-1\n"; exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; if (genomeLoad!="NoSharedMemory") { ostringstream errOut; errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with genomeLoad<<"<logMain, EXIT_CODE_PARAMETER, *this); }; twoPass.yes=true; @@ -895,15 +921,11 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters if (sjdbFileChrStartEnd.at(0)!="-" || sjdbGTFfile!="-") {//will insert annotated sjdb on the fly sjdbInsert.pass1=true; - sjdbInsert.pass2=true; -// if (twoPass.yes) -// { -// sjdbInsert.pass2=true; -// } else -// {//for now, in the twoPass run annotated junctions can be inserted only in the 2nd pass -// sjdbInsert.pass1=true; -// }; }; + if (twoPass.yes) + { + sjdbInsert.pass2=true; + }; if (runMode=="alignReads" && (sjdbInsert.pass1 || sjdbInsert.pass2) ) {//run-time genome directory, this is needed for genome files generated on the fly diff --git a/Parameters.h b/Parameters.h index ddb9ba7..51ffcbf 100644 --- a/Parameters.h +++ b/Parameters.h @@ -152,10 +152,13 @@ class Parameters { // uint twoPass.pass1readsN, twoPass.sjLimit; // string twoPass.dir,twopassSJpass1file; struct { - bool yes; + bool yes; //true in 2-pass mode + bool pass2; //true if now running the 2nd pass uint pass1readsN; + int pass1readsN_par; string dir; - string pass1sjFile; + string pass1sjFile; + string mode; } twoPass; //inserting junctions on the fly diff --git a/STAR.cpp b/STAR.cpp index 9506321..cb84ebc 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -55,7 +55,8 @@ int main(int argInN, char* argIn[]) { Genome mainGenome (P); mainGenome.genomeLoad(); - + P->twoPass.pass2=false; //this is the 1st pass + SjdbClass sjdbLoci; if (P->sjdbInsert.pass1) {//for now, cannot insert junctions on the fly in 2-pass run @@ -130,6 +131,7 @@ int main(int argInN, char* argIn[]) { ofstream logFinal1 ( (P->twoPass.dir + "/Log.final.out").c_str()); g_statsAll.reportFinal(logFinal1,P1); + P->twoPass.pass2=true;//starting the 2nd pass P->twoPass.pass1sjFile=P->twoPass.dir+"/SJ.out.tab"; sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); diff --git a/genomeParametersWrite.cpp b/genomeParametersWrite.cpp index 7208b05..0af13d0 100644 --- a/genomeParametersWrite.cpp +++ b/genomeParametersWrite.cpp @@ -6,6 +6,8 @@ void genomeParametersWrite(string fileName, Parameters* P, string errorOut) ofstream genomePar; ofstrOpen(fileName, errorOut, P, genomePar); + genomePar << "### "<commandLineFull <<"\n"; + genomePar << "versionGenome\t" << P->versionSTAR <<"\n"; genomePar << "genomeFastaFiles\t"; for (uint ii=0;iigenomeFastaFiles.size();ii++) genomePar << P->genomeFastaFiles.at(ii) << " "; @@ -24,5 +26,7 @@ void genomeParametersWrite(string fileName, Parameters* P, string errorOut) genomePar << "sjdbGTFfeatureExon\t" << P->sjdbGTFfeatureExon <<"\n"; genomePar << "sjdbGTFtagExonParentTranscript\t" << P->sjdbGTFtagExonParentTranscript <<"\n"; genomePar << "sjdbGTFtagExonParentGene\t" << P->sjdbGTFtagExonParentGene <<"\n"; + + genomePar << "sjdbInsertSave\t" << P->sjdbInsert.save <<"\n"; genomePar.close(); }; diff --git a/loadGTF.cpp b/loadGTF.cpp index f1fe512..3e56f5f 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -37,8 +37,8 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file if (P->sjdbOverhang>0 && P->sjdbGTFfile!="-") { time_t rawTime; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Starting GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Starting GTF processing\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Processing annotations GTF\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Processing annotations GTF\n" <sjdbGTFfile.c_str() ); if (sjdbStreamIn.fail()) { @@ -276,8 +276,8 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file P->inOut->logMain << "Processing sjdbGTFfile=" << P->sjdbGTFfile <<", found:\n"; P->inOut->logMain << "\t\t" << transcriptIDnumber.size() <<" transcripts\n" << "\t\t" << exonN << " exons (non-collapsed)\n" << "\t\t" << sjdbLoci.chr.size()-sjdbN1 << " collapsed junctions\n"; time(&rawTime); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished GTF processing\n" <inOut->logMain << timeMonthDayTime(rawTime) <<" ..... Finished GTF processing\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ..... Finished GTF processing\n" <0: number of reads to process for the 1st step. 0: 1-step only, no 2nd pass; use very large number (or -1) to map all reads in the first step +twopassMode None + string: 2-pass mapping mode. + None ... 1-pass mapping + Basic ... basic 2-pass mapping, with all 1st pass junctions inserted into the genome indices on the fly + +twopass1readsN -1 + int>0: number of reads to process for the 1st step. Use very large number (or default -1) to map all reads in the first step. diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 421c335..1090108 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -8,6 +8,8 @@ #include "IncludeDefine.h" #include "streamFuns.h" #include "binarySearch2.h" +#include "ErrorWarning.h" +#include char* globalGsj; @@ -57,6 +59,11 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr #define SPACER_CHAR GENOME_spacingChar + time_t rawtime; + time ( &rawtime ); + P->inOut->logMain << timeMonthDayTime(rawtime) << " ..... Inserting junctions into the genome indices" <inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Inserting junctions into the genome indices" <sjdbLength*P->sjdbN; for (uint ii=1; ii<=P->sjdbN; ii++) { @@ -73,8 +80,9 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr uint32* oldSJind=new uint32[P1->sjdbN]; - uint nIndicesSJ1=P->sjdbOverhang; -// uint nIndicesSJ1=P->sjdbLength;//keep all indices + uint nIndicesSJ1=P->sjdbOverhang; +// uint nIndicesSJ1=P->sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome + uint64* indArray=new uint64[2*P->sjdbN*nIndicesSJ1*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndeices per junction * 2 for reverse compl uint64 sjNew=0; #pragma omp parallel num_threads(P->runThreadN) @@ -113,7 +121,6 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr //for (int ii=0;iisjdbN;ii++) {if ( oldSJind[ii]==0){cout <inOut->logMain << timeMonthDayTime(rawtime) << " Finished SA search: number of new junctions=" << sjNew <<", old junctions="<sjdbN-sjNew<nGenome=P->chrStart[P->nChrReal]+nGsj; P->nSA+=nInd; + + uint GstrandBit1 = (uint) floor(log(P->nGenome)/log(2))+1; + if (GstrandBit1<32) GstrandBit1=32; //TODO: use simple access function for SA + if ( GstrandBit1 != P->GstrandBit) + {//too many junctions were added - GstrandBit changed + ostringstream errOut; + errOut << "EXITING because of FATAL ERROR: cannot insert junctions on the fly because of strand GstrandBit problem\n"; + errOut << "SOLUTION: please contact STAR author at https://groups.google.com/forum/#!forum/rna-star\n"; + exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_GENOME_FILES, *P); + }; + SA2.defineBits(P->GstrandBit+1,P->nSA); uint nGsjNew=sjNew*P->sjdbLength; //this is the actual number of bytes added to the genome, while nGsj is the total size of all junctions diff --git a/sjdbInsertJunctions.cpp b/sjdbInsertJunctions.cpp index cb7fcf1..38e42f6 100644 --- a/sjdbInsertJunctions.cpp +++ b/sjdbInsertJunctions.cpp @@ -12,8 +12,6 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC { time_t rawtime; - - if (P->sjdbN>0 && sjdbLoci.chr.size()==0) {//load from the saved genome, only if the loading did not happen already (if sjdb insertion happens at the 1st pass, sjdbLoci will be populated ifstream sjdbStreamIn; @@ -24,9 +22,7 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC P->inOut->logMain << timeMonthDayTime(rawtime) << " Loaded database junctions from the generated genome " << P->genomeDir+"/sjdbList.out.tab" <<": "<twoPass.pass1sjFile.size()>0) //non-empty name marks 2nd pass + if (P->twoPass.pass2) {//load 1st pass new junctions //sjdbLoci already contains the junctions from before 1st pass ifstream sjdbStreamIn ( P->twoPass.pass1sjFile.c_str() ); @@ -66,10 +62,10 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC P->inOut->logMain << timeMonthDayTime(rawtime) << " Finished preparing junctions" <twoPass.pass2 ? genome.SApass2 : genome.SApass1), genome.SAi); delete [] Gsj; //junction sequences have been added to G time ( &rawtime ); - *P->inOut->logStdOut << timeMonthDayTime(rawtime) << " ..... Finished inserting 1st pass junctions into genome" <inOut->logMain << timeMonthDayTime(rawtime) << " ..... Finished inserting junctions into genome" <sjdbInsert.save=="All") {//save and copy all genome files into sjdbInsert.outDir, except those created above diff --git a/stitchWindowAligns.cpp b/stitchWindowAligns.cpp index 10b163c..1d64683 100644 --- a/stitchWindowAligns.cpp +++ b/stitchWindowAligns.cpp @@ -112,7 +112,7 @@ void stitchWindowAligns(uint iA, uint nA, int Score, bool WAincl[], uint tR2, ui }; }; }; - if (trA.sjAnnot[trA.nExons-2]==1 && trA.exons[trA.nExons-1][EX_L] < P->alignSJDBoverhangMin) return; //this exon was not checkedin the cycle above + if (trA.nExons>1 && trA.sjAnnot[trA.nExons-2]==1 && trA.exons[trA.nExons-1][EX_L] < P->alignSJDBoverhangMin) return; //this exon was not checkedin the cycle above trA.intronMotifs[0]=0;trA.intronMotifs[1]=0;trA.intronMotifs[2]=0; for (uint iex=0;iex Date: Thu, 9 Apr 2015 12:09:17 -0400 Subject: [PATCH 080/536] Some changes to satisfy Valgrind. Starting to change genomeGenerate. --- STAR.cpp | 2 +- SuffixArrayFuns.cpp | 74 +++++++++++++++++++++++++++++++++++++-------- loadGTF.cpp | 2 +- sjdbBuildIndex.cpp | 4 +-- sjdbPrepare.cpp | 9 ++++-- 5 files changed, 72 insertions(+), 19 deletions(-) diff --git a/STAR.cpp b/STAR.cpp index cb84ebc..c78d8a5 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -83,7 +83,7 @@ int main(int argInN, char* argIn[]) { g_statsAll.progressReportHeader(P->inOut->logProgress); - if (P->twoPass.pass1readsN>0) {//2-pass + if (P->twoPass.yes) {//2-pass //re-define P for the pass1 Parameters *P1=new Parameters; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index e977e33..de5bd2f 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -23,31 +23,79 @@ uint compareSeqToGenome(char** s2, uint S, uint N, uint L, char* g, PackedArray& char* s = s2[0] + S + L; g += SAstr + L; for (ii=0;(uint) ii < N-L; ii++) - if (s[ii]!=g[ii]) break; - if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; - return ii+L; + { + if (s[ii]!=g[ii]) + { + if (s[ii]>g[ii]) + { + compRes=true; + return ii+L; + } else + { + compRes=false; + return ii+L; + }; + }; + }; +// if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; + return N; //exact match } else if (dirR && !dirG) { char* s = s2[1] + S + L; g += P->nGenome-1-SAstr - L; for (ii=0; (uint) ii < N-L; ii++) - if (s[ii]!=g[-ii]) break; - if (s[ii]>g[-ii] || g[-ii]>3) {compRes=false;} else {compRes=true;}; - return ii+L; + { + if (s[ii]!=g[-ii]) + { + if (s[ii]>g[-ii] || g[-ii]>3) + { + compRes=false; + return ii+L; + } else + { + compRes=true; + return ii+L; + }; + }; + }; + return N; } else if (!dirR && dirG) { char* s = s2[1] + S - L; g += SAstr + L; for (ii=0; (uint) ii < N-L; ii++) - if (s[-ii]!=g[ii]) break; - if (s[-ii]>g[ii]) {compRes=true;} else {compRes=false;}; - return ii+L; + { + if (s[-ii]!=g[ii]) + { + if (s[-ii]>g[ii]) { + compRes=true; + return ii+L; + + } else + { + compRes=false; + return ii+L; + }; + }; + }; + return N; } else {//if (!dirR && !dirG) char* s = s2[0] + S - L; g += P->nGenome-1-SAstr - L; - for (ii=0; (uint) ii < N-L; ii++){ - if (s[-ii]!=g[-ii]) break; + for (ii=0; (uint) ii < N-L; ii++) + { + if (s[-ii]!=g[-ii]) + { + if (s[-ii]>g[-ii] || g[-ii]>3) + { + compRes=false; + return ii+L; + } else + { + compRes=true; + return ii+L; + }; + }; }; - if (s[-ii]>g[-ii] || g[-ii]>3) {compRes=false;} else {compRes=true;}; - return ii+L; + return N; }; }; diff --git a/loadGTF.cpp b/loadGTF.cpp index 3e56f5f..ccc551a 100644 --- a/loadGTF.cpp +++ b/loadGTF.cpp @@ -186,7 +186,7 @@ uint loadGTF(SjdbClass &sjdbLoci, Parameters *P, string dirOut) {//load gtf file uint trex1=0; for (uint iex=0; iex<=exonN; iex++) { - if (exonLoci[GTF_exonTrID(iex)] != exonLoci[GTF_exonTrID(trex1)] || iex==exonN) { + if (iex==exonN || exonLoci[GTF_exonTrID(iex)] != exonLoci[GTF_exonTrID(trex1)]) { for (uint iex1=trex1; iex1sjdbOverhang; // uint nIndicesSJ1=P->sjdbLength;//keep all indices - this is pre-2.4.1 of generating the genome - uint64* indArray=new uint64[2*P->sjdbN*nIndicesSJ1*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndeices per junction * 2 for reverse compl + uint64* indArray=new uint64[2*P->sjdbN*(nIndicesSJ1+1)*2];//8+4 bytes for SA index and index in the genome * nJunction * nIndices per junction * 2 for reverse compl uint64 sjNew=0; #pragma omp parallel num_threads(P->runThreadN) #pragma omp for schedule (dynamic,1000) reduction(+:sjNew) @@ -107,7 +107,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr //uint istart=istart1; uint istart=isjsjdbN ? istart1 : istart1+1; //for rev-compl junction, shift by one base to start with the 1st non-spacer base - uint ind1=2*(isj*nIndicesSJ1+istart); + uint ind1=2*(isj*nIndicesSJ1+istart1); if (sjdbInd>=0 || seq1[0][istart]>3) {//no index for already included junctions, or suffices starting with N indArray[ind1]=-1; diff --git a/sjdbPrepare.cpp b/sjdbPrepare.cpp index 0d55121..1661398 100644 --- a/sjdbPrepare.cpp +++ b/sjdbPrepare.cpp @@ -93,8 +93,13 @@ void sjdbPrepare (SjdbClass &sjdbLoci, Parameters *P, uint nGenomeReal, string o uint *I=new uint [sjdbLoci.chr.size()]; uint nsj=0; for (uint ii=0;ii0) + { + isj0=I[nsj-1]; //index of the last recorded junctions + }; if (nsj==0 || sjdbS[isj]!=sjdbS[isj0] || sjdbE[isj]!=sjdbE[isj0]) {//different intron coordinates From af444a15f17c45c43e399bbff8418f3c48c448f6 Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Thu, 9 Apr 2015 16:35:37 -0400 Subject: [PATCH 081/536] Implemented sjdbInsert for genomeGenerate. Continue with Valgrind clean-up --- PackedArray.cpp | 4 +- Parameters.cpp | 7 +- STAR.cpp | 2 +- genomeGenerate.cpp | 158 ++++++++++++---------------------------- sjdbBuildIndex.cpp | 2 +- sjdbInsertJunctions.cpp | 13 ++-- 6 files changed, 60 insertions(+), 126 deletions(-) diff --git a/PackedArray.cpp b/PackedArray.cpp index 92ed3ad..65c07f6 100644 --- a/PackedArray.cpp +++ b/PackedArray.cpp @@ -10,7 +10,8 @@ void PackedArray::defineBits(uint Nbits, uint lengthIn){ wordCompLength=sizeof(uint)*8LLU-wordLength; bitRecMask=(~0LLU)>>wordCompLength; length=lengthIn; - lengthByte=length*Nbits/8LLU+1LLU; + lengthByte=length*Nbits/8LLU; + lengthByte=((lengthByte+sizeof(uint)-1LLU)/sizeof(uint))*sizeof(uint); }; void PackedArray::writePacked( uint jj, uint x) { @@ -29,6 +30,7 @@ void PackedArray::pointArray(char* pointerCharIn) { void PackedArray::allocateArray() { charArray=new char[lengthByte]; + memset(charArray+lengthByte-sizeof(uint),0,sizeof(uint));//set the last 8 bytes to zero, since some of them may lnever be written arrayAllocated=true; }; diff --git a/Parameters.cpp b/Parameters.cpp index 929a964..a4c2161 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -371,9 +371,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters //annot scoring annotScoreScale=0; annotSignalFile="-"; - //sj-db - sjdbLength=sjdbOverhang*2+1; - //splitting Qsplit=0; @@ -911,7 +908,6 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters errOut <<"SOLUTION: please check the path and writing permissions \n"; exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this); }; - sjdbLength=sjdbOverhang*2+1; }; //sjdb insert on the fly @@ -945,7 +941,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; }; - + //final sjdbOverhang value has been determined + sjdbLength = sjdbOverhang==0 ? 0 : sjdbOverhang*2+1; if (outBAMcoord && limitBAMsortRAM==0) {//check limitBAMsortRAM if (genomeLoad!="NoSharedMemory") { diff --git a/STAR.cpp b/STAR.cpp index c78d8a5..f2ca752 100644 --- a/STAR.cpp +++ b/STAR.cpp @@ -59,7 +59,7 @@ int main(int argInN, char* argIn[]) { SjdbClass sjdbLoci; if (P->sjdbInsert.pass1) - {//for now, cannot insert junctions on the fly in 2-pass run + { Parameters *P1=new Parameters; *P1=*P; sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); diff --git a/genomeGenerate.cpp b/genomeGenerate.cpp index 06d07a6..3eab9ec 100644 --- a/genomeGenerate.cpp +++ b/genomeGenerate.cpp @@ -10,6 +10,7 @@ #include "sjdbLoadFromFiles.h" #include "sjdbPrepare.h" #include "genomeParametersWrite.h" +#include "sjdbInsertJunctions.h" #include "serviceFuns.cpp" #include "streamFuns.h" @@ -150,21 +151,12 @@ void genomeGenerate(Parameters *P) { //write genome parameters file genomeParametersWrite(P->genomeDir+("/genomeParameters.txt"), P, "ERROR_00102"); - //add the sjdb sequences to the genome - SjdbClass sjdbLoci; - sjdbLoadFromFiles(P, sjdbLoci); - sjdbLoci.priority.resize(sjdbLoci.chr.size(),10); - - char *G=NULL, *G1=NULL; - uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to fins all the sizes + uint nGenomeReal=genomeScanFastaFiles(P,G,false);//first scan the fasta file to find all the sizes P->chrBinFill(); - loadGTF(sjdbLoci, P, P->genomeDir); - sjdbLoci.priority.resize(sjdbLoci.chr.size(),20); - uint L=10000;//maximum length of genome suffix - uint nG1alloc=(nGenomeReal + sjdbLoci.chr.size()*P->sjdbLength+L)*2; + uint nG1alloc=(nGenomeReal + L)*2; G1=new char[nG1alloc]; G=G1+L; @@ -189,14 +181,7 @@ void genomeGenerate(Parameters *P) { }; }; - - if (sjdbLoci.chr.size()>0) {//prepare sjdb - sjdbPrepare (sjdbLoci, P, nGenomeReal, P->genomeDir, G, G+P->chrStart[P->nChrReal]); - time ( &rawTime ); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... finished processing splice junctions database ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... finished processing splice junctions database ...\n" <sjdbN*P->sjdbLength; + uint N = nGenomeReal; P->nGenome=N; uint N2 = N*2; @@ -221,17 +206,9 @@ void genomeGenerate(Parameters *P) { errOut <<"EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM="<< (P->limitGenomeGenerateRAM) <<"is too small for your genome\n"; errOut <<"SOLUTION: please specify limitGenomeGenerateRAM not less than"<< nG1alloc+nG1alloc/3 <<" and make that much RAM available \n"; exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - - //write genome to disk - ofstream genomeOut; - ofstrOpen(P->genomeDir+"/Genome","ERROR_00104", P, genomeOut); - fstreamWriteBig(genomeOut,G,N,P->genomeDir+"/Genome","ERROR_00120",P); - genomeOut.close(); - + }; //preparing to generate SA - for (uint ii=0;iiGstrandMask = ~(1LLU<GstrandBit); P->nSAbyte=P->nSA*(P->GstrandBit+1)/8+1; - PackedArray SA1; + PackedArray SA1;//SA without sjdb SA1.defineBits(P->GstrandBit+1,P->nSA); + PackedArray SA2;//SA with sjdb, reserve more space + SA2.defineBits(P->GstrandBit+1,P->nSA+2*P->limitOnTheFlySJ*P->sjdbLength); + P->inOut->logMain << "Number of SA indices: "<< P->nSA << "\n"<inOut->logMain << "SA size in bytes: "<< P->nSAbyte << "\n"<inOut->logMain << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... starting to sort Suffix Array. This may take a long time...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... loading chunks from disk, packing SA...\n" <nSAbyte]; + SA2.allocateArray(); + SA1.pointArray(SA2.charArray + SA2.lengthByte-SA1.lengthByte); //SA1 is shifted to have space for junction insertion uint N2bit= 1LLU << P->GstrandBit; uint packedInd=0; @@ -389,15 +368,6 @@ void genomeGenerate(Parameters *P) { errOut << "SOLUTION: try to re-run suffix array generation, if it still does not work, report this problem to the author\n"<inOut->logMain, EXIT_CODE_INPUT_FILES, *P); }; - - time ( &rawTime ); - P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <genomeDir+"/SA","ERROR_00106", P, SAout); - fstreamWriteBig(SAout,(char*) SA1.charArray, (streamsize) P->nSAbyte,P->genomeDir+"/SA","ERROR_00122",P); - SAout.close(); //DONE with suffix array generation @@ -414,77 +384,7 @@ void genomeGenerate(Parameters *P) { timeString.erase(timeString.end()-1,timeString.end()); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... Finished generating suffix array\n" <nSAbyte - ifstream genomeIn; - genomeIn.open((P->genomeDir+("/SA")).c_str()); - genomeIn.seekg (0, ios::end); - uint nSAbyte1=genomeIn.tellg(); - genomeIn.close(); - if (nSAbyte1>P->nSAbyte) { - ostringstream errOut; - errOut << "WARNING: in genomeGenerate: the size of the SA file on disk, "<nSAbyte<<"\n"; - errOut << " Will try to cut the file to a correct size and check the SA\n"; - errOut << " Please report this error to dobin@cshl.edu\n"; - - ostringstream sysCom; - sysCom << "cd " <genomeDir<<"; mv SA SA.old; head -c " << P->nSAbyte << " SA.old > SA; rm -f SA.old"; - errOut << " Executing system command: " <inOut->logStdOut <inOut->logMain <genomeDir+("/SA")).c_str()); - genomeIn.seekg (0, ios::end); - uint nSAbyte2=genomeIn.tellg(); - genomeIn.close(); - if (nSAbyte2!=P->nSAbyte) { - ostringstream errOut; - errOut << "EXITING: FATAL ERROR in genomeGenerate: could not write correctly sized SA to disk\n"; - errOut << "SOLUTION: Please report this error to dobin@cshl.edu\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - - genomeIn.open((P->genomeDir+("/SA")).c_str()); - fstreamReadBig(genomeIn,SA1.charArray,P->nSAbyte); - genomeIn.close(); - } else if (nSAbyte1nSAbyte) { - ostringstream errOut; - errOut << "EXITING: FATAL ERROR in genomeGenerate: the size of the SA file on disk, "<nSAbyte<<"\n"; - errOut << "SOLUTION: Please try to generate the genome files agains in an empty directory. If the error persists, please report it to dobin@cshl.edu\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - }; - - if (nSAbyte1>P->nSAbyte) {//check SA - time(&rawTime); - timeString=asctime(localtime ( &rawTime )); - timeString.erase(timeString.end()-1,timeString.end()); - P->inOut->logMain << timeString <<" ... starting to check Suffix Array...\n" <inOut->logStdOut << timeString <<" ... starting to check Suffix Array...\n" <nSA-1;isa++) {//check SA - if (isa%100000000==0) P->inOut->logMain << isa*100/P->nSA << " " << flush; - - - *g1=funG2strLocus(SA1[isa ],N,P->GstrandBit,P->GstrandMask); - *g2=funG2strLocus(SA1[isa+1],N,P->GstrandBit,P->GstrandMask); - - uint jj=0; - while (G[*g1+jj]==G[*g2+jj] && jjG[*g2+jj] ) { - ostringstream errOut; - errOut << "EXITING: FATAL ERROR in genomeGenerate: Suffix Array is not properly sorted\n"; - errOut << "SOLUTION: re-run genomeGenerate from scratch, with an empty genomeDir directory\n"; - exitWithError(errOut.str(),std::cerr, P->inOut->logMain, EXIT_CODE_INPUT_FILES, *P); - } - }; - P->inOut->logMain << " done: all suffixes ordered correctly\n"<inOut->logStdOut << " done: all suffixes ordered correctly\n"<sjdbInsert.outDir=P->genomeDir; + sjdbInsertJunctions(P, P1, mainGenome, sjdbLoci); + }; + + //write genome to disk + time ( &rawTime ); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Genome to disk ...\n" <genomeDir+"/Genome","ERROR_00104", P, genomeOut); + fstreamWriteBig(genomeOut,G,P->nGenome,P->genomeDir+"/Genome","ERROR_00120",P); + genomeOut.close(); + + //write SA + time ( &rawTime ); + P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing Suffix Array to disk ...\n" <genomeDir+"/SA","ERROR_00106", P, SAout); + fstreamWriteBig(SAout,(char*) SA2.charArray, (streamsize) P->nSAbyte,P->genomeDir+"/SA","ERROR_00122",P); + SAout.close(); + //write SAi time(&rawTime); P->inOut->logMain << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <inOut->logStdOut << timeMonthDayTime(rawTime) <<" ... writing SAindex to disk\n" <genomeDir+"/SAindex","ERROR_00125",P); SAiOut.close(); - SA1.deallocateArray(); + SA2.deallocateArray(); delete [] SAi; time(&rawTime); diff --git a/sjdbBuildIndex.cpp b/sjdbBuildIndex.cpp index 207e5bb..47cfec9 100644 --- a/sjdbBuildIndex.cpp +++ b/sjdbBuildIndex.cpp @@ -164,7 +164,7 @@ void sjdbBuildIndex (Parameters *P, Parameters *P1, char *Gsj, char *G, PackedAr uint isj=0, isa2=0; for (uint isa=0;isanSA;isa++) { -// if (isa2>4014920) +// if (isa==69789089) // { // cout <sjdbInsert.save=="All") {//save and copy all genome files into sjdbInsert.outDir, except those created above - copyFile(P->genomeDir+"/chrName.txt", P->sjdbInsert.outDir+"/chrName.txt"); - copyFile(P->genomeDir+"/chrStart.txt", P->sjdbInsert.outDir+"/chrStart.txt"); - copyFile(P->genomeDir+"/chrNameLength.txt", P->sjdbInsert.outDir+"/chrNameLength.txt"); - copyFile(P->genomeDir+"/chrLength.txt", P->sjdbInsert.outDir+"/chrLength.txt"); + if (P->genomeDir != P->sjdbInsert.outDir) + { + copyFile(P->genomeDir+"/chrName.txt", P->sjdbInsert.outDir+"/chrName.txt"); + copyFile(P->genomeDir+"/chrStart.txt", P->sjdbInsert.outDir+"/chrStart.txt"); + copyFile(P->genomeDir+"/chrNameLength.txt", P->sjdbInsert.outDir+"/chrNameLength.txt"); + copyFile(P->genomeDir+"/chrLength.txt", P->sjdbInsert.outDir+"/chrLength.txt"); + }; genomeParametersWrite(P->sjdbInsert.outDir+("/genomeParameters.txt"), P, "ERROR_012012"); - ofstream genomeOut; ofstrOpen(P->sjdbInsert.outDir+"/Genome","ERROR_012004", P, genomeOut); @@ -86,7 +88,6 @@ void sjdbInsertJunctions(Parameters * P, Parameters * P1, Genome & genome, SjdbC fstreamWriteBig(genomeOut,(char*) genome.SA.charArray, (streamsize) genome.SA.lengthByte, P->sjdbInsert.outDir+"/SA","ERROR_012007",P); genomeOut.close(); - ofstrOpen(P->sjdbInsert.outDir+"/SAindex","ERROR_012008", P, genomeOut); fstreamWriteBig(genomeOut, (char*) &P->genomeSAindexNbases, sizeof(P->genomeSAindexNbases),P->sjdbInsert.outDir+"/SAindex","ERROR_012009",P); fstreamWriteBig(genomeOut, (char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1),P->sjdbInsert.outDir+"/SAindex","ERROR_012010",P); From 5e3ae782611bd69573f4a32d3970ed3e7a61624b Mon Sep 17 00:00:00 2001 From: Alexander Dobin Date: Fri, 10 Apr 2015 15:58:19 -0400 Subject: [PATCH 082/536] Continue with Valgrind clean-up --- BAMbinSortUnmapped.cpp | 2 +- Genome.cpp | 2 +- OutSJ.cpp | 5 ++- PackedArray.cpp | 4 +- Parameters.cpp | 4 +- ReadAlign_quantTranscriptome.cpp | 9 +++-- SequenceFuns.cpp | 2 +- SuffixArrayFuns.cpp | 68 ++++++++++++++++---------------- outputSJ.cpp | 7 +++- parametersDefault | 2 +- serviceFuns.cpp | 2 +- 11 files changed, 58 insertions(+), 49 deletions(-) diff --git a/BAMbinSortUnmapped.cpp b/BAMbinSortUnmapped.cpp index e561c93..7612fdc 100644 --- a/BAMbinSortUnmapped.cpp +++ b/BAMbinSortUnmapped.cpp @@ -66,7 +66,7 @@ void BAMbinSortUnmapped(uint32 iBin, uint nThreads, string dirBAMsort, BGZF *bgz for (uint it=0; itgenomeSAindexStart = new uint[P->genomeSAindexNbases+1]; SAiInBytes += fstreamReadBig(SAiIn,(char*) P->genomeSAindexStart, sizeof(P->genomeSAindexStart[0])*(P->genomeSAindexNbases+1)); P->nSAi=P->genomeSAindexStart[P->genomeSAindexNbases]; - P->inOut->logMain << "Read from SAindex: genomeSAindexNbases=" << P->genomeSAindexNbases <<" nSAi="<< P->nSAi <inOut->logMain << "Read from SAindex: genomeSAindexNbases=" << P->genomeSAindexNbases <<" nSAi="<< P->nSAi <genomeLoad=="LoadAndKeep" || P->genomeLoad=="LoadAndRemove" || P->genomeLoad=="Remove" || P->genomeLoad=="LoadAndExit") {// find shared memory fragment diff --git a/OutSJ.cpp b/OutSJ.cpp index f7d6328..5280136 100644 --- a/OutSJ.cpp +++ b/OutSJ.cpp @@ -48,7 +48,10 @@ void OutSJ::collapseSJ() {//collapse junctions. Simple version now: re-sort ever } else {//originate new junction: copy from isj to isj1+1 isj1++; isj1P=data+isj1*oneSJ.dataSize; - memcpy(isj1P,isjP,oneSJ.dataSize); + if (isj!=isj1) + { + memcpy(isj1P,isjP,oneSJ.dataSize); + }; }; }; N=isj1+1; diff --git a/PackedArray.cpp b/PackedArray.cpp index 65c07f6..a31616d 100644 --- a/PackedArray.cpp +++ b/PackedArray.cpp @@ -10,8 +10,8 @@ void PackedArray::defineBits(uint Nbits, uint lengthIn){ wordCompLength=sizeof(uint)*8LLU-wordLength; bitRecMask=(~0LLU)>>wordCompLength; length=lengthIn; - lengthByte=length*Nbits/8LLU; - lengthByte=((lengthByte+sizeof(uint)-1LLU)/sizeof(uint))*sizeof(uint); + lengthByte=(length-1)*wordLength/8LLU+sizeof(uint); +// lengthByte=((lengthByte+sizeof(uint)-1LLU)/sizeof(uint))*sizeof(uint); }; void PackedArray::writePacked( uint jj, uint x) { diff --git a/Parameters.cpp b/Parameters.cpp index a4c2161..e999137 100644 --- a/Parameters.cpp +++ b/Parameters.cpp @@ -824,6 +824,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters }; //quantification parameters + quant.yes=false; + quant.geCount.yes=false; if (quant.mode.at(0) != "-") { quant.yes=true; for (uint32 ii=0; iilogMain, EXIT_CODE_PARAMETER, *this); }; }; - } else { - quant.yes=false; //no quantification }; diff --git a/ReadAlign_quantTranscriptome.cpp b/ReadAlign_quantTranscriptome.cpp index c6fc657..850e2c8 100644 --- a/ReadAlign_quantTranscriptome.cpp +++ b/ReadAlign_quantTranscriptome.cpp @@ -27,10 +27,13 @@ uint ReadAlign::quantTranscriptome (Transcriptome *Tr, uint nAlignG, Transcript } else if (alignG[iag]->canonSJ[iab-1]==-3) { left1=alignG[iag]->exons[iab][EX_R]-readLength[alignG[iag]->exons[iab-1][EX_iFrag]]-1; }; - if (alignG[iag]->canonSJ[iab]==-3) { - right1=readLength[alignG[iag]->exons[iab][EX_iFrag]]-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; - } else if (iab==alignG[iag]->nExons-1){ + if (iab==alignG[iag]->nExons-1) + {//last block of left mates right1=Lread-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; + + } else if (alignG[iag]->canonSJ[iab]==-3) + {//last block of the right mate (i.e. whole read) + right1=readLength[alignG[iag]->exons[iab][EX_iFrag]]-alignG[iag]->exons[iab][EX_R]-alignG[iag]->exons[iab][EX_L]; }; for (uint b=1; b<=left1 ; b++) {//extend to the left diff --git a/SequenceFuns.cpp b/SequenceFuns.cpp index f60ed96..143e16a 100644 --- a/SequenceFuns.cpp +++ b/SequenceFuns.cpp @@ -150,7 +150,7 @@ uint qualitySplit(char* r, char* q, uint L, char Qsplit, uint maxNsplit, uint m iR1=iR; //find the next bad base - while ( ( (q[iR]>=Qsplit) && (r[iR]<=3) ) && (iR=Qsplit && r[iR]<=3 ) { iR++; }; diff --git a/SuffixArrayFuns.cpp b/SuffixArrayFuns.cpp index de5bd2f..baa5f6e 100644 --- a/SuffixArrayFuns.cpp +++ b/SuffixArrayFuns.cpp @@ -188,7 +188,7 @@ uint maxMappableLength(char** s, uint S, uint N, char* g, PackedArray& SA, uint return i2-i1+1; }; -uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P) { +uint suffixArraySearch(char** s, uint S, uint N, char* g, PackedArray& SA, bool dirR, uint i1, uint i2, uint L, Parameters* P) { // binary search in SA space // s[0],s[1] - sequence, complementary sequence // S - start offset @@ -214,40 +214,40 @@ uint suffixArraySearch(char** s2, uint S, uint N, char* G, PackedArray& SA, bool uint i3=i1,L3=L1; //in case i1+1>=i2 an not iteration of the loope below is ever made while (i1+1>P->GstrandBit) == 0; //forward or reverse strand of the genome - SAstr &= P->GstrandMask; - - - if (dirG) - {//forward on read, forward on genome - char* s = s2[0] + S + L; - char* g = G + SAstr + L; - for (ii=0;(uint) ii < N-L; ii++) - { - if (s[ii]!=g[ii]) break; - }; - if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; - L3=ii+L; - } else - { - char* s = s2[1] + S + L; - char* g = G + P->nGenome-1-SAstr - L; - for (ii=0; (uint) ii < N-L; ii++) - { - if (s[ii]!=g[-ii]) break; - }; + L3=compareSeqToGenome(s,S,N,L,g,SA,i3,dirR,compRes, P); - char s1=s[ii],g1=g[-ii]; - if (s1<4) s1=3-s1; - if (g1<4) g1=3-g1; - if (s1>g1) {compRes=true;} else {compRes=false;}; - L3=ii+L; - }; +// register int64 ii; +// +// uint SAstr=SA[i3]; +// bool dirG = (SAstr>>P->GstrandBit) == 0; //forward or reverse strand of the genome +// SAstr &= P->GstrandMask; +// +// +// if (dirG) +// {//forward on read, forward on genome +// char* s = s2[0] + S + L; +// char* g = G + SAstr + L; +// for (ii=0;(uint) ii < N-L; ii++) +// { +// if (s[ii]!=g[ii]) break; +// }; +// if (s[ii]>g[ii]) {compRes=true;} else {compRes=false;}; +// L3=ii+L; +// } else +// { +// char* s = s2[1] + S + L; +// char* g = G + P->nGenome-1-SAstr - L; +// for (ii=0; (uint) ii < N-L; ii++) +// { +// if (s[ii]!=g[-ii]) break; +// }; +// +// char s1=s[ii],g1=g[-ii]; +// if (s1<4) s1=3-s1; +// if (g1<4) g1=3-g1; +// if (s1>g1) {compRes=true;} else {compRes=false;}; +// L3=ii+L; +// }; if (L3==N) { L=N; diff --git a/outputSJ.cpp b/outputSJ.cpp index d1ce2f3..4a1b268 100644 --- a/outputSJ.cpp +++ b/outputSJ.cpp @@ -129,8 +129,11 @@ void outputSJ(ReadAlignChunk** RAchunk, Parameters* P) {//collapses junctions fr }; outSJfileStream.close(); } else {//make sjNovel array in P - for (uint ii=0;iisjNovelN=0; + for (uint ii=0;iisjNovelN++; }; diff --git a/parametersDefault b/parametersDefault index f7fe9e4..5f03c51 100644 --- a/parametersDefault +++ b/parametersDefault @@ -74,7 +74,7 @@ sjdbGTFtagExonParentTranscript transcript_id sjdbGTFtagExonParentGene gene_id string: tag name to be used as exons' gene-parents (default "gene_id" works for GTF files) -sjdbOverhang 0 +sjdbOverhang 100 int>=0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1) if =0, splice junction database is not used sjdbScore 2 diff --git a/serviceFuns.cpp b/serviceFuns.cpp index 0b121c9..c68825d 100644 --- a/serviceFuns.cpp +++ b/serviceFuns.cpp @@ -96,7 +96,7 @@ inline int32 binarySearch1a(argType x, argType *X, int32 N) { }; }; - while (i1 Date: Mon, 13 Apr 2015 16:46:03 -0400 Subject: [PATCH 083/536] Ready for 2.4.1 --- ReadAlign_assignAlignToWindow.cpp | 15 +++++++++++---- STAR | Bin 1792790 -> 0 bytes binarySearch2.cpp | 2 +- genomeGenerate.cpp | 9 +++++++-- outputSJ.cpp | 2 +- 5 files changed, 20 insertions(+), 8 deletions(-) delete mode 100755 STAR diff --git a/ReadAlign_assignAlignToWindow.cpp b/ReadAlign_assignAlignToWindow.cpp index 0c5b6ac..b7cb52b 100644 --- a/ReadAlign_assignAlignToWindow.cpp +++ b/ReadAlign_assignAlignToWindow.cpp @@ -24,9 +24,17 @@ void ReadAlign::assignAlignToWindow(uint a1, uint aLength, uint aStr, uint aNrep if (aLength>WA[iW][iA][WA_Length]) {//replace uint iA0;//iA0 is where the align has to be inserted - for (iA0=0;iA0iA) + {//true insertion place since iA will be removed + --iA0; }; if (iA0TtrPX(}hz1x?EXFrwQgi>8?~)9R5vmo#W~c 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